[edk2-devel] [PATCH] OvmfPkg: Call PlatformInitializeConsole for GPU passthrough case

Shivanshu Goyal shivanshu3 at gmail.com
Thu Dec 16 21:42:55 UTC 2021


Thank you for making this change Stefan. I tested your patch locally on my
GPU passthrough Windows 10 VM and it successfully fixes it.
I added a "Tested-by:" note inline in your patch.

Thank you,
Shivanshu Goyal

On Wed, Dec 15, 2021 at 7:44 AM Stefan Berger <stefanb at linux.ibm.com> wrote:

> For GPU passthrough support we have to initialize the console after
> EfiBootManagerDispatchDeferredImages() has loaded ROMs. This was the
> calling order before the TCG physical presence support moved it to
> before End-of-DXE since End-of-DXE disables the TPM 2 platform
> hierarchy and some physical presence commands would not work otherwise.
> To enable user interaction, the console initialization was also moved
> to before End-of-DXE. With this fix, the console is now initialized twice
> where the second initialization fixes the GPU passthrough support but it
> doesn't allow user interaction for TCG physical presence when GPU
> passthrough is used.
>
> Fixes: b8675deaa819631db2667df63f89799fe65fc906
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=3771
> Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
> Cc: Jiewen Yao <jiewen.yao at intel.com>
> Cc: Jordan Justen <jordan.l.justen at intel.com>
> Cc: Gerd Hoffmann <kraxel at redhat.com>
> Signed-off-by: Stefan Berger <stefanb at linux.ibm.com>
>
Tested-by: Shivanshu Goyal <shivanshu3 at gmail.com>

> ---
>  OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c      | 7 +++++++
>  OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c | 6 ++++++
>  OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c  | 6 ++++++
>  3 files changed, 19 insertions(+)
>
> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
> b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
> index 186401296a..faf5d2b9ae 100644
> --- a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
> +++ b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
> @@ -414,6 +414,13 @@ PlatformBootManagerBeforeConsole (
>    //
>    EfiBootManagerDispatchDeferredImages ();
>
> +  //
> +  // GPU passthrough only allows console enablement after ROM image load
> +  //
> +  PlatformInitializeConsole (
> +    XenDetected() ? gXenPlatformConsole : gPlatformConsole);
> +
> +
>    FrontPageTimeout = GetFrontPageTimeoutFromQemu ();
>    PcdStatus = PcdSet16S (PcdPlatformBootTimeOut, FrontPageTimeout);
>    ASSERT_RETURN_ERROR (PcdStatus);
> diff --git a/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
> b/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
> index e767c3b172..0dab0ecbb7 100644
> --- a/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
> +++ b/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
> @@ -400,6 +400,12 @@ PlatformBootManagerBeforeConsole (
>    //
>    EfiBootManagerDispatchDeferredImages ();
>
> +  //
> +  // GPU passthrough only allows console enablement after ROM image load
> +  //
> +  PlatformInitializeConsole (
> +    XenDetected() ? gXenPlatformConsole : gPlatformConsole);
> +
>    PlatformRegisterOptionsAndKeys ();
>
>    //
> diff --git a/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
> b/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
> index fd80577355..b82931d726 100644
> --- a/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
> +++ b/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
> @@ -363,6 +363,12 @@ PlatformBootManagerBeforeConsole (
>    //
>    EfiBootManagerDispatchDeferredImages ();
>
> +  //
> +  // GPU passthrough only allows console enablement after ROM image load
> +  //
> +  PlatformInitializeConsole (
> +    XenDetected() ? gXenPlatformConsole : gPlatformConsole);
> +
>    Status = gRT->SetVariable (
>                    EFI_TIME_OUT_VARIABLE_NAME,
>                    &gEfiGlobalVariableGuid,
> --
> 2.31.1
>
>

-- 
Shivanshu Goyal
shivanshu.ca


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#85032): https://edk2.groups.io/g/devel/message/85032
Mute This Topic: https://groups.io/mt/87746240/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20211216/6d03072d/attachment.htm>


More information about the edk2-devel-archive mailing list