[U-Boot] [PATCH v3 00/17] sandbox: efi_loader support

Simon Glass sjg at chromium.org
Fri Jun 15 15:18:18 UTC 2018


Hi Alex,

On 15 June 2018 at 06:42, Alexander Graf <agraf at suse.de> wrote:
>
> This patch set augments Simon's patch set for efi_loader support
> in sandbox[1], but follows a different memory allocation scheme.
>
> Instead of keeping U-Boot addresses in the EFI memory map, this
> patch set makes the EFI memory map contain host virtual addresses.
> That way most logic "just works" and all EFI interfaces automatically
> gain sandbox awareness.
>
> We also change the memory map of sandbox to hard code RAM to always
> live at address 0x80000000. This patch is completely optional.
>
> With this patch set in place, I can successfully run the selftest suite
> as well as an aarch64 grub.efi binary. X86_64 grub.efi doesn't work
> because that one requires inl instructions to work.
>
> Alex
>
> [1] https://patchwork.ozlabs.org/project/uboot/list/?series=49832
>
> v1 -> v2:
>
>   - only compile efi_add_known_memory if efi_loader is enabled
>   - clarify address vs pointer in fs_read patch
>   - include mapmem.h
>
> v2 -> v3:
>
>   - removed: efi_loader: Pass address to fs_read()
>   - new: fs: Convert fs_read/write to take buffer instead of address
>   - new: efi_loader: Introduce ms abi vararg helpers
>   - new: sandbox: Enable 1:1 map
>   - new: distro: Move to compiler based target architecture determination
>   - new: efi_loader: Move to compiler based target architecture determination
>   - new: sandbox: Allow to execute from RAM
>   - new: sandbox: Fix setjmp/longjmp
>
> Alexander Graf (13):
>   efi_loader: Use compiler constants for image loader
>   efi_loader: Use map_sysmem() in bootefi command
>   efi.h: Do not use config options
>   efi_loader: Allow SMBIOS tables in highmem
>   sandbox: Map host memory for efi_loader
>   efi_loader: Disable miniapps on sandbox
>   fs: Convert fs_read/write to take buffer instead of address
>   efi_loader: Introduce ms abi vararg helpers
>   sandbox: Enable 1:1 map
>   distro: Move to compiler based target architecture determination
>   efi_loader: Move to compiler based target architecture determination
>   sandbox: Allow to execute from RAM
>   sandbox: Fix setjmp/longjmp
>
> Heinrich Schuchardt (1):
>   efi_loader: efi_allocate_pages is too restrictive
>
> Simon Glass (3):
>   efi: sandbox: Add distroboot support
>   efi: sandbox: Add relocation constants
>   efi: sandbox: Enable EFI loader for sandbox
>
>  Makefile                              |  2 +-
>  arch/sandbox/cpu/cpu.c                | 30 ++++++++----------------
>  arch/sandbox/cpu/os.c                 | 43 ++++++++++++++++++++---------------
>  arch/sandbox/cpu/state.c              |  4 ++--
>  arch/sandbox/cpu/u-boot.lds           |  9 ++++++++
>  arch/sandbox/include/asm/io.h         | 17 ++++----------
>  arch/sandbox/include/asm/setjmp.h     |  4 +++-
>  board/BuR/common/common.c             |  2 +-
>  board/gdsys/p1022/controlcenterd-id.c | 10 ++++----
>  cmd/bootefi.c                         | 13 +++++++----
>  cmd/mvebu/bubt.c                      |  4 ++--
>  common/board_f.c                      |  4 +++-
>  common/splash_source.c                |  4 +++-
>  configs/sandbox64_defconfig           |  6 ++---
>  configs/sandbox_defconfig             |  6 ++---
>  configs/sandbox_flattree_defconfig    |  4 ++--
>  configs/sandbox_noblk_defconfig       |  4 ++--
>  configs/sandbox_spl_defconfig         |  4 ++--
>  drivers/bootcount/bootcount_ext.c     | 12 +++++-----
>  drivers/fpga/zynqpl.c                 |  8 ++++---
>  fs/fs.c                               | 20 ++++++++--------
>  include/config_distro_bootcmd.h       | 14 +++++++-----
>  include/configs/sandbox.h             | 32 +++++++++++++-------------
>  include/efi.h                         | 25 ++++++++++----------
>  include/fs.h                          | 12 +++++-----
>  include/os.h                          | 19 ++++++++++++++++
>  lib/efi/Makefile                      |  4 ++--
>  lib/efi_loader/Kconfig                |  2 +-
>  lib/efi_loader/efi_boottime.c         | 36 ++++++++++++++---------------
>  lib/efi_loader/efi_file.c             |  6 ++---
>  lib/efi_loader/efi_image_loader.c     | 12 +++++-----
>  lib/efi_loader/efi_memory.c           |  2 +-
>  lib/efi_loader/efi_runtime.c          | 14 +++++++-----
>  lib/efi_loader/efi_smbios.c           | 11 +++++++--
>  lib/efi_selftest/Makefile             |  2 +-
>  35 files changed, 219 insertions(+), 182 deletions(-)
>
> --
> 2.12.3
>

General comment on this series. I don't see the need to change how
sandbox works just to avoid a few map_sysmem() calls in the EFI code.
I don't think it is very hard to press on from 'sandbox runs hello
world' to 'sandbox runs grub', particularly as you have solved some of
the other problems. I'll take a look.

Regards,
Simon


More information about the U-Boot mailing list