The RESOURCE_ATTACH_BACKING virtio GPU command assigns guest-side backing
pages to a host-side resource that was created earlier with the
RESOURCE_CREATE_2D command.
We compose the RESOURCE_ATTACH_BACKING command in the
VirtioGpuResourceAttachBacking() function. Currently this function takes
the parameter
IN VOID *FirstBackingPage
This is only appropriate as long as we pass a (guest-phys) system memory
address to the device. In preparation for a mapped bus master device
address, change the above parameter to
IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress
In order to keep the current call site functional, move the (VOID*) to
(UINTN) conversion out of the function, to the call site.
The "Request.Entry.Addr" field already has type UINT64.
This patch is similar to commit
4b725858de68 ("OvmfPkg/VirtioLib: change
the parameter of VirtioAppendDesc() to UINT64", 2017-08-23).
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Brijesh Singh <brijesh.singh@amd.com>
\r
EFI_STATUS\r
VirtioGpuResourceAttachBacking (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 ResourceId,\r
- IN VOID *FirstBackingPage,\r
- IN UINTN NumberOfPages\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 ResourceId,\r
+ IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,\r
+ IN UINTN NumberOfPages\r
)\r
{\r
volatile VIRTIO_GPU_RESOURCE_ATTACH_BACKING Request;\r
\r
Request.ResourceId = ResourceId;\r
Request.NrEntries = 1;\r
- Request.Entry.Addr = (UINTN)FirstBackingPage;\r
+ Request.Entry.Addr = BackingStoreDeviceAddress;\r
Request.Entry.Length = (UINT32)EFI_PAGES_TO_SIZE (NumberOfPages);\r
Request.Entry.Padding = 0;\r
\r
// Attach backing store to the host resource.\r
//\r
Status = VirtioGpuResourceAttachBacking (\r
- VgpuGop->ParentBus, // VgpuDev\r
- NewResourceId, // ResourceId\r
- NewBackingStore, // FirstBackingPage\r
- NewNumberOfPages // NumberOfPages\r
+ VgpuGop->ParentBus, // VgpuDev\r
+ NewResourceId, // ResourceId\r
+ (UINTN)NewBackingStore, // BackingStoreDeviceAddress\r
+ NewNumberOfPages // NumberOfPages\r
);\r
if (EFI_ERROR (Status)) {\r
goto FreeBackingStore;\r
\r
EFI_STATUS\r
VirtioGpuResourceAttachBacking (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 ResourceId,\r
- IN VOID *FirstBackingPage,\r
- IN UINTN NumberOfPages\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 ResourceId,\r
+ IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,\r
+ IN UINTN NumberOfPages\r
);\r
\r
EFI_STATUS\r