Message ID | 20180615124229.35310-1-agraf@suse.de |
---|---|
Headers | show |
Series | sandbox: efi_loader support | expand |
Hi Alex, On 15 June 2018 at 06:42, Alexander Graf <agraf@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