summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/VirtioNetDxe/VirtioNet.h
diff options
context:
space:
mode:
authorBrijesh Singh <brijesh.singh@amd.com>2017-09-14 16:22:41 -0500
committerLaszlo Ersek <lersek@redhat.com>2017-09-14 23:54:05 +0200
commit940baec09c8f4664b34842d13a30ce243d0b7b4b (patch)
tree177e5ff8551fe02ab8fb5d968ea60a01c1a8415c /OvmfPkg/VirtioNetDxe/VirtioNet.h
parent55dd5a673bd7142e3a95a5a597db40bdf385a24c (diff)
downloadedk2-940baec09c8f4664b34842d13a30ce243d0b7b4b.tar.gz
edk2-940baec09c8f4664b34842d13a30ce243d0b7b4b.tar.bz2
edk2-940baec09c8f4664b34842d13a30ce243d0b7b4b.zip
OvmfPkg/VirtioNetDxe: map VRINGs using VirtioRingMap()
When device is behind the IOMMU then driver need to pass the device address when programing the bus master. The patch uses VirtioRingMap() to map the VRING system physical address[es] to device address[es]. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Laszlo Ersek <lersek@redhat.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Regression-tested-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Laszlo Ersek <lersek@redhat.com>
Diffstat (limited to 'OvmfPkg/VirtioNetDxe/VirtioNet.h')
-rw-r--r--OvmfPkg/VirtioNetDxe/VirtioNet.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/OvmfPkg/VirtioNetDxe/VirtioNet.h b/OvmfPkg/VirtioNetDxe/VirtioNet.h
index 87a0f06e01..6762fc9d1d 100644
--- a/OvmfPkg/VirtioNetDxe/VirtioNet.h
+++ b/OvmfPkg/VirtioNetDxe/VirtioNet.h
@@ -82,10 +82,14 @@ typedef struct {
EFI_HANDLE MacHandle; // VirtioNetDriverBindingStart
VRING RxRing; // VirtioNetInitRing
+ VOID *RxRingMap; // VirtioRingMap and
+ // VirtioNetInitRing
UINT8 *RxBuf; // VirtioNetInitRx
UINT16 RxLastUsed; // VirtioNetInitRx
VRING TxRing; // VirtioNetInitRing
+ VOID *TxRingMap; // VirtioRingMap and
+ // VirtioNetInitRing
UINT16 TxMaxPending; // VirtioNetInitTx
UINT16 TxCurPending; // VirtioNetInitTx
UINT16 *TxFreeStack; // VirtioNetInitTx
@@ -267,7 +271,8 @@ VOID
EFIAPI
VirtioNetUninitRing (
IN OUT VNET_DEV *Dev,
- IN OUT VRING *Ring
+ IN OUT VRING *Ring,
+ IN VOID *RingMap
);
//