[U-Boot] [PATCH v4 00/16] efi: Enable basic sandbox support for EFI loader

Simon Glass sjg at chromium.org
Wed May 16 15:42:17 UTC 2018


A limitation of the EFI loader at present is that it does not build with
sandbox. This makes it hard to write tests, since sandbox is used for most
testing in U-Boot.

This series enables the EFI loader feature. It allows sandbox to build and
run a trivial function which calls the EFI API to output a message.

This series is at u-boot-dm/efi-working

Changes in v4:
- Fix up the sizeof() operations on jmp_buf
- Move the fix to query_console_serial()
- Rebase to master
- Remove code already applied
- Update SPDX tags
- Update subject

Changes in v3:
- Add comments on aligment
- Add new patch to init the 'rows' and 'cols' variables
- Add new patch to rename bootefi_test_finish() to bootefi_run_finish()
- Add new patch to split out test init/uninit into functions
- Add patch to create a function to set up for running EFI code
- Drop incorrect map_sysmem() in write_smbios_table()
- Init the 'rows' and 'cols' vars to avoid a compiler error (gcc 4.8.4)
- Rebase to master
- Return error value of efi_allocate_pages()
- Update function comment for write_smbios_table()

Changes in v2:
- Rebase to master
- Update return type of efi_smbios_register() to efi_status_t
- Update to use mapmem instead of a cast
- Use return value of efi_install_configuration_table

Simon Glass (16):
  efi: Init the 'rows' and 'cols' variables
  efi: Update some comments related to smbios tables
  efi: sandbox: Adjust memory usage for sandbox
  sandbox: smbios: Update to support sandbox
  sandbox: Add a setjmp() implementation
  efi: sandbox: Add required linker sections
  efi: sandbox: Add distroboot support
  Define board_quiesce_devices() in a shared location
  Add a comment for board_quiesce_devices()
  efi: sandbox: Add relocation constants
  efi: Add a comment about duplicated ELF constants
  efi: sandbox: Enable EFI loader builder for sandbox
  efi: Split out test init/uninit into functions
  efi: sandbox: Add a simple 'bootefi test' command
  efi: Create a function to set up for running EFI code
  efi: Rename bootefi_test_finish() to bootefi_run_finish()

 arch/arm/include/asm/u-boot-arm.h |   1 -
 arch/sandbox/cpu/cpu.c            |  13 +++
 arch/sandbox/cpu/os.c             |  23 +++++
 arch/sandbox/cpu/u-boot.lds       |  29 ++++++
 arch/sandbox/include/asm/setjmp.h |  30 ++++++
 arch/sandbox/lib/Makefile         |   2 +-
 arch/sandbox/lib/sections.c       |  12 +++
 arch/x86/include/asm/u-boot-x86.h |   1 -
 arch/x86/lib/bootm.c              |   4 -
 cmd/bootefi.c                     | 158 +++++++++++++++++++++---------
 common/bootm.c                    |   4 +
 include/bootm.h                   |   8 ++
 include/config_distro_bootcmd.h   |   2 +-
 include/efi_loader.h              |  10 ++
 include/os.h                      |  21 ++++
 include/smbios.h                  |   5 +-
 lib/efi_loader/Kconfig            |  12 ++-
 lib/efi_loader/Makefile           |   1 +
 lib/efi_loader/efi_console.c      |   5 +-
 lib/efi_loader/efi_memory.c       |  31 +++---
 lib/efi_loader/efi_runtime.c      |   7 ++
 lib/efi_loader/efi_smbios.c       |   7 +-
 lib/efi_loader/efi_test.c         |  16 +++
 lib/smbios.c                      |  32 ++++--
 24 files changed, 351 insertions(+), 83 deletions(-)
 create mode 100644 arch/sandbox/include/asm/setjmp.h
 create mode 100644 arch/sandbox/lib/sections.c
 create mode 100644 lib/efi_loader/efi_test.c

-- 
2.17.0.441.gb46fe60e1d-goog



More information about the U-Boot mailing list