On 15 March 2015 at 13:09, Leif Lindholm leif.lindholm@linaro.org wrote:
On Sun, Mar 15, 2015 at 11:16:04AM +0100, Koen Kooi wrote:
Hi,
I was reading https://www.kernel.org/doc/Documentation/arm/uefi.txt and it looks like I should have everything needed to get EFI stuff in linux, but instead I get:
root@hikey:~# dmesg | grep -i efi [ 0.000000] efi: Getting EFI parameters from FDT: [ 0.000000] efi: UEFI not found. [ 0.079367] EFI services will not be available.
So, most likely the kernel has been invoked by the world's most tedious and least useful U-Boot emulator, also known as the "built-in Linux loader".
I am unfortunately completely unfamiliar with the HiKey UEFI port.
It would have been useful to get the UEFI team involved in the HiKey work somewhere along the line, to ensure mix-ups like this did not happen.
[snip kernel config]
This is an UEFI I built myself using https://github.com/96boards/edk2/commits/hikey with a change to use /dev/sda1 as root in bootargs, nothing more.
What is needed to get linux to notice UEFI? It looks like all the bits are in place (bootloader, kernelstub, kernel config).
Booting the kernel as a stub.
How is the kernel actually invoked in this HiKey build-UEFI-but-don't-use-it firmware?
I'm still unfamiliar with EDK2, so I'm going to take a stab at answering your question without knowning what I'm doing :)
HisiPkg/HiKeyPkg/HiKey.dsc sets:
gArmPlatformTokenSpaceGuid.PcdDefaultBootType|2
Which seems to imply it's not loaded in EFI mode:
# PcdDefaultBootType define the type of the binary pointed by PcdDefaultBootDevicePath: \r # - 0 = an EFI application\r # - 1 = a Linux kernel with ATAG support\r # - 2 = a Linux kernel with FDT support\r
Would entering the shell and doing
./Image dtb=hi6220-hikey.dtb console=ttyAMA0,115200 earlycon=pl011,0xf8015000 root=/dev/sda1 r0 quiet
Should launch it in uefi mode, right?