OvmfPkg/VirtioGpuDxe: take EFI_PHYSICAL_ADDRESS in ResourceAttachBacking()
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 4b725858de
("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>
This commit is contained in:
parent
067b648332
commit
5409c6abc8
|
@ -496,10 +496,10 @@ VirtioGpuResourceUnref (
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
VirtioGpuResourceAttachBacking (
|
VirtioGpuResourceAttachBacking (
|
||||||
IN OUT VGPU_DEV *VgpuDev,
|
IN OUT VGPU_DEV *VgpuDev,
|
||||||
IN UINT32 ResourceId,
|
IN UINT32 ResourceId,
|
||||||
IN VOID *FirstBackingPage,
|
IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,
|
||||||
IN UINTN NumberOfPages
|
IN UINTN NumberOfPages
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
volatile VIRTIO_GPU_RESOURCE_ATTACH_BACKING Request;
|
volatile VIRTIO_GPU_RESOURCE_ATTACH_BACKING Request;
|
||||||
|
@ -510,7 +510,7 @@ VirtioGpuResourceAttachBacking (
|
||||||
|
|
||||||
Request.ResourceId = ResourceId;
|
Request.ResourceId = ResourceId;
|
||||||
Request.NrEntries = 1;
|
Request.NrEntries = 1;
|
||||||
Request.Entry.Addr = (UINTN)FirstBackingPage;
|
Request.Entry.Addr = BackingStoreDeviceAddress;
|
||||||
Request.Entry.Length = (UINT32)EFI_PAGES_TO_SIZE (NumberOfPages);
|
Request.Entry.Length = (UINT32)EFI_PAGES_TO_SIZE (NumberOfPages);
|
||||||
Request.Entry.Padding = 0;
|
Request.Entry.Padding = 0;
|
||||||
|
|
||||||
|
|
|
@ -313,10 +313,10 @@ GopSetMode (
|
||||||
// Attach backing store to the host resource.
|
// Attach backing store to the host resource.
|
||||||
//
|
//
|
||||||
Status = VirtioGpuResourceAttachBacking (
|
Status = VirtioGpuResourceAttachBacking (
|
||||||
VgpuGop->ParentBus, // VgpuDev
|
VgpuGop->ParentBus, // VgpuDev
|
||||||
NewResourceId, // ResourceId
|
NewResourceId, // ResourceId
|
||||||
NewBackingStore, // FirstBackingPage
|
(UINTN)NewBackingStore, // BackingStoreDeviceAddress
|
||||||
NewNumberOfPages // NumberOfPages
|
NewNumberOfPages // NumberOfPages
|
||||||
);
|
);
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
goto FreeBackingStore;
|
goto FreeBackingStore;
|
||||||
|
|
|
@ -252,10 +252,10 @@ VirtioGpuResourceUnref (
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
VirtioGpuResourceAttachBacking (
|
VirtioGpuResourceAttachBacking (
|
||||||
IN OUT VGPU_DEV *VgpuDev,
|
IN OUT VGPU_DEV *VgpuDev,
|
||||||
IN UINT32 ResourceId,
|
IN UINT32 ResourceId,
|
||||||
IN VOID *FirstBackingPage,
|
IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,
|
||||||
IN UINTN NumberOfPages
|
IN UINTN NumberOfPages
|
||||||
);
|
);
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
|
Loading…
Reference in New Issue