
Hi Alex,
On 18 June 2018 at 09:53, Alexander Graf agraf@suse.de wrote:
On 06/18/2018 05:22 PM, Alexander Graf wrote:
This patch set augments Simon's patch set for efi_loader support in sandbox[1], but cuts off the memory allocation scheme at a different point.
According to the UEFI spec, efi_allocate_pages() takes a uint64_t * argument. Via this argument, we get a physical address as input, but emit a pointer as output.
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.
I've assembled a quick grub.efi that does work in sandbox as it no longer accesses I/O ports directly. Patch for it is below.
http://csgraf.de/tmp2/grub.efi
When building your own, make sure to exclude coreboot (cb*) modules - they seem to do something dirty and segfault for me. The other modules seem to work fine for me so far.
OK thanks for that. The binary says this for me:
efi_load_pe: Invalid DOS signature
I'm running on x86_64.
I tried the patch below but it still crashes, presumably because of the coreboot modules. How do I actually exclude them? I cannot see anything in ./configure --help
Regards, Simon