[PATCH 0/4] efi_loader: enable running the debug UEFI shell

Simon Glass sjg at chromium.org
Fri Jan 3 02:40:12 CET 2025


Hi Heinrich,

On Fri, 3 Jan 2025 at 07:11, Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> wrote:
>
> Currently running the SCT fails on x86. The EFI shell overrides U-Boot's
> Simple Text Output Protocol. When ConsoleLoggerPrintWithPageBreak() is
> invoked with ConsoleInfo == NULL a crash occurs.
>
> Debugging requires running the debug version of the UEFI shell.
> We can use `add-symbol-file` in gdb to point to
> Build/Shell/DEBUG_GCC/X64/ShellPkg/Application/Shell/Shell/DEBUG/Shell.dll
> and the load address of Shell.efi.
>
> The debug version of the UEFI shell checks several requirements and
> fails to run without them:
>
> * HOB list (only on x86)
> * HII configuration protocol
> * DXE services table
>
> Implement the missing requirements.
>
> When starting image add the image load address to the debug output.
>
> Heinrich Schuchardt (4):
>   efi_loader: implement a HOB list
>   efi_loader: build with HII configuration protocol
>   efi_loader: install DXE services table
>   efi_loader: print image load address in StartImage
>
>  include/efi_dxe.h               |  54 ++++++++++
>  include/efi_hob.h               |  32 ++++++
>  include/efi_loader.h            |  16 +++
>  lib/efi_loader/Kconfig          |  15 +++
>  lib/efi_loader/Makefile         |   4 +-
>  lib/efi_loader/efi_boottime.c   |   7 +-
>  lib/efi_loader/efi_dxe.c        | 176 ++++++++++++++++++++++++++++++++
>  lib/efi_loader/efi_hii_config.c |   4 -
>  lib/efi_loader/efi_hob.c        |  33 ++++++
>  lib/efi_loader/efi_root_node.c  |   3 +
>  lib/efi_loader/efi_setup.c      |  13 +++
>  11 files changed, 349 insertions(+), 8 deletions(-)
>  create mode 100644 include/efi_dxe.h
>  create mode 100644 include/efi_hob.h
>  create mode 100644 lib/efi_loader/efi_dxe.c
>  create mode 100644 lib/efi_loader/efi_hob.c

Please can you document how to actually run UEFI like this? Also, is
it possible to add a test for this new code?

Regards,
Simon


More information about the U-Boot mailing list