
Hi Heinrich,
On Fri, 3 Jan 2025 at 07:11, Heinrich Schuchardt heinrich.schuchardt@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