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>
This commit is contained in:
committed by
Laszlo Ersek
parent
55dd5a673b
commit
940baec09c
@@ -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
|
||||
);
|
||||
|
||||
//
|
||||
|
Reference in New Issue
Block a user