On 05/14/20 15:48, 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: ec41733cfd10 ("OvmfPkg: add the 'initrd' dynamic shell command") > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Liming Gao <liming....@intel.com> > Cc: Andrew Fish <af...@apple.com> > Cc: Laszlo Ersek <ler...@redhat.com> > Signed-off-by: Roman Bolshakov <r.bolsha...@yadro.com> > --- > OvmfPkg/OvmfPkgIa32.dsc | 2 +- > OvmfPkg/OvmfPkgIa32.fdf | 2 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- > OvmfPkg/OvmfPkgIa32X64.fdf | 2 +- > OvmfPkg/OvmfPkgX64.dsc | 2 +- > OvmfPkg/OvmfPkgX64.fdf | 2 +- > OvmfPkg/OvmfXen.dsc | 2 +- > OvmfPkg/OvmfXen.fdf | 2 +- > 8 files changed, 8 insertions(+), 8 deletions(-) > > Changes since v1: > - Disabled build and packaging of the command on Xcode toolchain for > all related architectures and platforms (Laszlo) > - Corrected wrong reference in Fixes tag (Laszlo) > > FWIW, I can't really build for IA32X64 arch on macOS: > > $ OvmfPkg/build.sh -a IA32X64 > Initializing workspace > /Users/user/dev/edk2/BaseTools > Loading previous configuration from /Users/user/dev/edk2/Conf/BuildEnv.sh > WORKSPACE: /Users/user/dev/edk2 > EDK_TOOLS_PATH: /Users/user/dev/edk2/BaseTools > CONF_PATH: /Users/user/dev/edk2/Conf > Unsupported processor architecture: IA32X64 > Only IA32 or X64 is supported
For passing both the IA32 and X64 arches to the "build" utility, you have to use separate "-a" options, as in: "-a IA32 -a X64". The same seems to apply to the "OvmfPkg/build.sh" wrapper script; see: > -a) > if [[ x"$arg" != x"IA32" && x"$arg" != x"X64" ]]; then > echo Unsupported processor architecture: $arg > echo Only IA32 or X64 is supported > exit 1 > fi > eval ARCH_$arg=yes > ;; followed by: > if [[ "$ARCH_IA32" == "yes" && "$ARCH_X64" == "yes" ]]; then > PROCESSOR=IA32X64 > Processor=Ia32X64 > BUILD_OPTIONS="$BUILD_OPTIONS -a IA32 -a X64" > PLATFORM_BUILD_DIR=Ovmf3264 > BUILD_ROOT_ARCH=X64 For the patch: Reviewed-by: Laszlo Ersek <ler...@redhat.com> Merged as commit bcf181a33b2e, via <https://github.com/tianocore/edk2/pull/617>. Thanks! Laszlo > > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > index 41ac320296..e54aecdf27 100644 > --- a/OvmfPkg/OvmfPkgIa32.dsc > +++ b/OvmfPkg/OvmfPkgIa32.dsc > @@ -871,11 +871,11 @@ > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > -!endif > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > +!endif > ShellPkg/Application/Shell/Shell.inf { > <LibraryClasses> > > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf > 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/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index c2f11aee2c..c0c8397cb7 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -884,11 +884,11 @@ > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > -!endif > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > +!endif > ShellPkg/Application/Shell/Shell.inf { > <LibraryClasses> > > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf > diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf > index f71134a659..bfca1eff9e 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.fdf > +++ b/OvmfPkg/OvmfPkgIa32X64.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 > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index 643e6041ad..22112bcb04 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -881,11 +881,11 @@ > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > -!endif > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > +!endif > ShellPkg/Application/Shell/Shell.inf { > <LibraryClasses> > > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.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 > diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc > index 143dc6d5a7..3af0ee7054 100644 > --- a/OvmfPkg/OvmfXen.dsc > +++ b/OvmfPkg/OvmfXen.dsc > @@ -675,11 +675,11 @@ > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > -!endif > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > +!endif > ShellPkg/Application/Shell/Shell.inf { > <LibraryClasses> > > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf > diff --git a/OvmfPkg/OvmfXen.fdf b/OvmfPkg/OvmfXen.fdf > index 3c4164a5f5..d9ee14b484 100644 > --- a/OvmfPkg/OvmfXen.fdf > +++ b/OvmfPkg/OvmfXen.fdf > @@ -363,8 +363,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 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#59575): https://edk2.groups.io/g/devel/message/59575 Mute This Topic: https://groups.io/mt/74205864/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-