[PATCH 00/15] efi_loader: Add support for logging to a buffer

Ilias Apalodimas ilias.apalodimas at linaro.org
Tue Oct 29 10:58:15 CET 2024


Hi Simon,

On Mon, 28 Oct 2024 at 14:48, Simon Glass <sjg at chromium.org> wrote:
>
> It is a bit of a pain to log EFI boot-services calls at present. The
> output goes to the console so cannot easily be inspected later. Also it
> would be useful to be able to store the log and review it later, perhaps
> after something has gone wrong.
>
> This series makes a start on implementing a log-to-buffer feature. It
> provides a simple 'efidebug log' command to inspect the buffer. For now,
> only memory allocations are logged.

Why is this problem specific to EFI and no U-Boot in general? Do we
have a similar machinery for malloc()?

Thanks
/Ilias
>
> This feature makes it possible to add tests to check which EFI calls are
> made by U-Boot itself. It may also make it easier to figure out what is
> needed for booting Windows.
>
> Some patches to help with debugging sandbox memory-mapping are included,
> but for now EFI's use of mapping is not adjusted.
>
>
> Simon Glass (15):
>   log: Add a new category for tests
>   test: Allow saving and restoring the bloblist
>   bloblist: test: Mark tests with UTF_BLOBLIST
>   sandbox: Convert sb command to use new macro
>   doc: sandbox: Add docs for the sb command
>   sandbox: Add a way to show the sandbox memory-mapping
>   sandbox: Fix comment for nomap_sysmem() function
>   lmb: Drop extra 16KB of stack space
>   efi_loader: Fix free in ..._media_device_boot_option()
>   efi_loader: Add support for logging EFI calls
>   efi_loader: Create the log on startup
>   efi_loader: Add a command to show the EFI log
>   test: efi_loader: Add a simple test for the EFI log
>   efi_loader: Use the log with memory-related functions
>   efi_loader: Add documentation for the EFI log
>
>  MAINTAINERS                    |   7 +
>  arch/sandbox/cpu/cpu.c         |  13 +
>  arch/sandbox/include/asm/cpu.h |   3 +
>  arch/sandbox/include/asm/io.h  |   2 +-
>  cmd/efidebug.c                 |  53 +++-
>  cmd/sb.c                       |  42 ++--
>  common/log.c                   |   1 +
>  configs/sandbox_defconfig      |   3 +
>  doc/develop/uefi/uefi.rst      |  22 ++
>  doc/usage/cmd/efidebug.rst     | 109 ++++++++
>  doc/usage/cmd/sb.rst           |  79 ++++++
>  doc/usage/index.rst            |   2 +
>  include/bloblist.h             |   1 +
>  include/efi.h                  |   1 +
>  include/efi_log.h              | 316 +++++++++++++++++++++++
>  include/log.h                  |   2 +
>  include/test/test.h            |   3 +
>  lib/efi_loader/Kconfig         |  19 ++
>  lib/efi_loader/Makefile        |   1 +
>  lib/efi_loader/efi_bootmgr.c   |   3 +-
>  lib/efi_loader/efi_log.c       | 444 +++++++++++++++++++++++++++++++++
>  lib/efi_loader/efi_memory.c    | 119 ++++++---
>  lib/efi_loader/efi_setup.c     |   7 +
>  lib/lmb.c                      |   2 -
>  test/common/bloblist.c         |  28 +--
>  test/lib/Makefile              |   1 +
>  test/lib/efi_log.c             |  93 +++++++
>  test/test-main.c               |  13 +
>  28 files changed, 1305 insertions(+), 84 deletions(-)
>  create mode 100644 doc/usage/cmd/efidebug.rst
>  create mode 100644 doc/usage/cmd/sb.rst
>  create mode 100644 include/efi_log.h
>  create mode 100644 lib/efi_loader/efi_log.c
>  create mode 100644 test/lib/efi_log.c
>
> --
> 2.43.0
>


More information about the U-Boot mailing list