summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/VirtioNetDxe/VirtioNet.h
diff options
context:
space:
mode:
authorBrijesh Singh <brijesh.singh@amd.com>2017-09-14 16:22:42 -0500
committerLaszlo Ersek <lersek@redhat.com>2017-09-14 23:54:07 +0200
commit46b11f00ac704ed4a1e3c8c1c3439f914e2dfadc (patch)
tree1dd769f7b42341364f9633203764324c3ca52256 /OvmfPkg/VirtioNetDxe/VirtioNet.h
parent940baec09c8f4664b34842d13a30ce243d0b7b4b (diff)
downloadedk2-46b11f00ac704ed4a1e3c8c1c3439f914e2dfadc.tar.gz
edk2-46b11f00ac704ed4a1e3c8c1c3439f914e2dfadc.tar.bz2
edk2-46b11f00ac704ed4a1e3c8c1c3439f914e2dfadc.zip
OvmfPkg/VirtioNetDxe: alloc RxBuf using AllocateSharedPages()
When device is behind the IOMMU, VirtioNetDxe is required to use the device address in bus master operations. RxBuf is allocated using AllocatePool() which returns the system physical address. The patch uses VIRTIO_DEVICE_PROTOCOL.AllocateSharedPages() to allocate the RxBuf and map with VirtioMapAllBytesInSharedBuffer() so that we can obtain the device address for RxBuf. 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.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/OvmfPkg/VirtioNetDxe/VirtioNet.h b/OvmfPkg/VirtioNetDxe/VirtioNet.h
index 6762fc9d1d..995593f4b2 100644
--- a/OvmfPkg/VirtioNetDxe/VirtioNet.h
+++ b/OvmfPkg/VirtioNetDxe/VirtioNet.h
@@ -4,6 +4,7 @@
Protocol instances for virtio-net devices.
Copyright (C) 2013, Red Hat, Inc.
+ Copyright (c) 2017, AMD Inc, All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
under the terms and conditions of the BSD License which accompanies this
@@ -86,6 +87,9 @@ typedef struct {
// VirtioNetInitRing
UINT8 *RxBuf; // VirtioNetInitRx
UINT16 RxLastUsed; // VirtioNetInitRx
+ UINTN RxBufNrPages; // VirtioNetInitRx
+ EFI_PHYSICAL_ADDRESS RxBufDeviceBase; // VirtioNetInitRx
+ VOID *RxBufMap; // VirtioNetInitRx
VRING TxRing; // VirtioNetInitRing
VOID *TxRingMap; // VirtioRingMap and