On Sun, Jan 04, 2015 at 06:11:02PM +0530, varadgautam@gmail.com wrote:
I get the following error while loading the LEG-UEFI kernel [1] on a BeagleBone Black (omap2plus_defconfig + efi stub support) when the kernel requests memory from UEFI.:
Shell> zImage EFI stub: Booting Linux Kernel... ConvertPages: failed to find range 80800000 - 81FFFFFF EFI stub: ERROR: Unable to allocate memory for uncompressed kernel. EFI stub: ERROR: Failed to relocate kernel Error: Image at 0009A3F8000 start failed: Load Error Unloading driver at 0x0009A3F8000 Error reported: Load Error
`memmap` shows the map to have a gap from 80800000 - 81FFFFFF (PcdFdBaseAddress for BBB UEFI is 0x80800000, so that's where I have UEFI loaded).
Does this mean I should adjust the BBB memory map so that all external allocations are done *after* the UEFI region (possibly by reserving the lower addresses)?
No, the stub loader should work anyway.
Is there an alternate way of getting the kernel up?
Fix the kernel :)
[1] https://git.linaro.org/people/leif.lindholm/linux.git/shortlog/refs/heads/to...
So, I rebased that branch to 3.18 in order to include all of the core changes required for this to work. But I didn't have a platform handy to test that it resolved this issue. Modifications are required in handle_kernel_image() in arm/boot/comressed/efi-stub.c.
If you don't want to wait for me to get around to sorting it, you could compare it to the arm64/kernel/efi-stub.c version and modify it yourself.
/ Leif