From: Shivanshu Goyal <shivanshu3@gmail.com>
To: Stefan Berger <stefanb@linux.ibm.com>
Cc: devel@edk2.groups.io, marcandre.lureau@redhat.com,
Ard Biesheuvel <ardb+tianocore@kernel.org>,
Jiewen Yao <jiewen.yao@intel.com>,
Jordan Justen <jordan.l.justen@intel.com>,
Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [PATCH] OvmfPkg: Call PlatformInitializeConsole for GPU passthrough case
Date: Thu, 16 Dec 2021 13:42:55 -0800 [thread overview]
Message-ID: <CANZYUUVcWGnpnKMsgCzGy6J2q7ntzH2BrFWuSJMcYUCDk6X_Zw@mail.gmail.com> (raw)
In-Reply-To: <20211215154408.248444-1-stefanb@linux.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 3826 bytes --]
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@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@kernel.org>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
>
Tested-by: Shivanshu Goyal <shivanshu3@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
[-- Attachment #2: Type: text/html, Size: 5387 bytes --]
next prev parent reply other threads:[~2021-12-16 21:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-15 15:44 [PATCH] OvmfPkg: Call PlatformInitializeConsole for GPU passthrough case Stefan Berger
2021-12-16 21:42 ` Shivanshu Goyal [this message]
2021-12-17 5:49 ` Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CANZYUUVcWGnpnKMsgCzGy6J2q7ntzH2BrFWuSJMcYUCDk6X_Zw@mail.gmail.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox