Hi Heinrich, On Fri, 3 Jan 2025 at 16:35, Heinrich Schuchardt <heinrich.schucha...@canonical.com> wrote: > > > > Simon Glass <s...@chromium.org> schrieb am Fr., 3. Jan. 2025, 02:40: >> >> Hi Heinrich, >> >> On Fri, 3 Jan 2025 at 07:11, Heinrich Schuchardt >> <heinrich.schucha...@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? > > > Building the EFI Shell is documented in the EDK II project. U-Boot's bootefi > command is already documented. What documentation are you missing?
How about this: Mention ACTIVE_PLATFORM = ShellPkg/ShellPkg.dsc How to run U-Boot (presumably with gdb?) How to figure out the load address when the .dll is loaded Perhaps where to set a breakpoint, etc? I think it could take the form of an example showing the commands to do the debugging would be helpful. Probably 'history' will do some of the work for you. > > The HII config protocol just returns EFI_OUT_OF_RESOURCES in each function. > So there is not much functionality to be tested. We could verify that the > protocol as well as the HOB and DXE tables are available. Yes I think that would be good. Regards, Simon