]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg/VirtioGpuDxe: take EFI_PHYSICAL_ADDRESS in ResourceAttachBacking()
authorLaszlo Ersek <lersek@redhat.com>
Sat, 26 Aug 2017 17:54:49 +0000 (19:54 +0200)
committerLaszlo Ersek <lersek@redhat.com>
Fri, 1 Sep 2017 12:28:17 +0000 (14:28 +0200)
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>
OvmfPkg/VirtioGpuDxe/Commands.c
OvmfPkg/VirtioGpuDxe/Gop.c
OvmfPkg/VirtioGpuDxe/VirtioGpu.h

index bdedea1df6a70887c0664f6a79ec38ef623853bb..c1951a807e98d9c32ceae7e41f436c77f28f4f07 100644 (file)
@@ -496,10 +496,10 @@ VirtioGpuResourceUnref (
 \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
@@ -510,7 +510,7 @@ VirtioGpuResourceAttachBacking (
 \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
index 3438bd03224e97dd8c8c0dad838c0b4500efe023..b3c5dae74d0e403dc34cdb6a45bef3029f97a330 100644 (file)
@@ -313,10 +313,10 @@ GopSetMode (
   // 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
index 193e932e1430efa516cc759f74c12a38b6400522..cf2a63accd7221eff1c07ff5aad8c3dc83d8510b 100644 (file)
@@ -252,10 +252,10 @@ VirtioGpuResourceUnref (
 \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