public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Laszlo Ersek" <lersek@redhat.com>
To: Roman Bolshakov <r.bolshakov@yadro.com>, devel@edk2.groups.io
Cc: "Cameron Esfahani" <dirty@apple.com>,
	"LAHAYE Olivier" <olivier.lahaye@cea.fr>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Ard Biesheuvel" <ard.biesheuvel@linaro.org>,
	"Liming Gao" <liming.gao@intel.com>,
	"Andrew Fish" <afish@apple.com>
Subject: Re: [PATCH] OvmfPkg: Skip initrd command on Xcode toolchain
Date: Wed, 13 May 2020 12:23:33 +0200	[thread overview]
Message-ID: <54530251-0d9a-7be7-b51c-361a95a658e3@redhat.com> (raw)
In-Reply-To: <20200512205832.17032-1-r.bolshakov@yadro.com>

On 05/12/20 22:58, Roman Bolshakov wrote:
> OVMF booting stops with the assert if built with Xcode on macOS:
> 
>   Loading driver at 0x0001FAB8000 EntryPoint=0x0001FABF249 LinuxInitrdDynamicShellCommand.efi
>   InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 1F218398
>   ProtectUefiImageCommon - 0x1F218140
>     - 0x000000001FAB8000 - 0x0000000000008A60
> 
>   ASSERT_EFI_ERROR (Status = Unsupported)
>   ASSERT LinuxInitrdDynamicShellCommand.c(378): !EFI_ERROR (Status)
> 
> The assert comes from InitializeHiiPackage() after an attempt to
> retrieve HII package list from ImageHandle.
> 
> Xcode still doesn't support HII resource section and
> LinuxInitrdDynamicShellCommand depends on it. Likewise 277a3958d93a
> ("OvmfPkg: Don't include TftpDynamicCommand in XCODE5 tool chain"),
> disable initrd command if built with Xcode toolchain
> 
> Fixes: 2632178bc683 ("OvmfPkg: add 'initrd' shell command to expose Linux initrd via device path")
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
> ---
>  OvmfPkg/OvmfPkgIa32.fdf | 2 +-
>  OvmfPkg/OvmfPkgX64.fdf  | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)

Thanks for the patch!

The reference to commit 277a3958d93a is very welcome.

(1) However, this patch doesn't follow commit 277a3958d93a closely
enough. The present patch only conditionalizes some FDF files. We should
conditionalize the DSC files too, otherwise we're still going to build
LinuxInitrdDynamicShellCommand, just not include it in the firmware.

(2) The "Fixes:" reference is incorrect. Technically, the issue (for
XCODE5) was introduced in the commit that modified the FDF file(s).
Therefore, based on "git-blame", we should have

Fixes: ec41733cfd10

Now, if you look at that commit -- i.e., "OvmfPkg: add the 'initrd'
dynamic shell command" --, then not only will you find the parts in the
DSC files that are necessary to gate (per my point (1) above), you'll
also notice my next point:

(3) The present patch only covers 2 out of the 4 OvmfPkg platforms;
namely, "OvmfPkgIa32X64" and "OvmfXen" are missed.

Please extend the patch to those platforms as well.

In total, the patch should modify 8 files:

OvmfPkg/OvmfPkgIa32.dsc
OvmfPkg/OvmfPkgIa32.fdf
OvmfPkg/OvmfPkgIa32X64.dsc
OvmfPkg/OvmfPkgIa32X64.fdf
OvmfPkg/OvmfPkgX64.dsc
OvmfPkg/OvmfPkgX64.fdf
OvmfPkg/OvmfXen.dsc
OvmfPkg/OvmfXen.fdf

because they all reference
"OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf".

Thanks!
Laszlo

> 
> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
> index fd81b6fa8b..e2b759aa8d 100644
> --- a/OvmfPkg/OvmfPkgIa32.fdf
> +++ b/OvmfPkg/OvmfPkgIa32.fdf
> @@ -290,8 +290,8 @@ INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
>  
>  !if $(TOOL_CHAIN_TAG) != "XCODE5"
>  INF  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
> -!endif
>  INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf
> +!endif
>  INF  ShellPkg/Application/Shell/Shell.inf
>  
>  INF MdeModulePkg/Logo/LogoDxe.inf
> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
> index f71134a659..bfca1eff9e 100644
> --- a/OvmfPkg/OvmfPkgX64.fdf
> +++ b/OvmfPkg/OvmfPkgX64.fdf
> @@ -291,8 +291,8 @@ INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
>  
>  !if $(TOOL_CHAIN_TAG) != "XCODE5"
>  INF  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
> -!endif
>  INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf
> +!endif
>  INF  ShellPkg/Application/Shell/Shell.inf
>  
>  INF MdeModulePkg/Logo/LogoDxe.inf
> 


  parent reply	other threads:[~2020-05-13 10:23 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-12 20:58 [PATCH] OvmfPkg: Skip initrd command on Xcode toolchain Roman Bolshakov
2020-05-13  8:19 ` Philippe Mathieu-Daudé
     [not found]   ` <0800D7A1-34BB-4DCF-ACCB-AA81490BFCD7@cea.fr>
2020-05-13 10:10     ` Philippe Mathieu-Daudé
2020-05-13 10:23 ` Laszlo Ersek [this message]
2020-05-14 13:27   ` Roman Bolshakov

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=54530251-0d9a-7be7-b51c-361a95a658e3@redhat.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