[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