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.
Double checking:
root@hikey:~# uname -a Linux hikey 4.0.0-rc3 #19 SMP Sun Mar 15 10:57:36 CET 2015 aarch64 GNU/Linux root@hikey:~# zcat /proc/config.gz | grep -i efi CONFIG_EFI_PARTITION=y CONFIG_EFI_STUB=y CONFIG_EFI=y CONFIG_RTC_DRV_EFI=y # EFI (Extensible Firmware Interface) Support CONFIG_EFI_VARS=y CONFIG_EFI_PARAMS_FROM_FDT=y CONFIG_EFI_RUNTIME_WRAPPERS=y CONFIG_EFI_ARMSTUB=y CONFIG_EFIVAR_FS=y
Yeah, all good there.
So it has everything mentioned in the kernel doc, which goes on to say "The stub populates the FDT /chosen node with (and the kernel scans for) the following parameters: [linux,uefi-system-table and more]". On hikey I get this:
root@hikey:~# dtc -I fs -O dts -o ~/effective.dts /proc/device-tree/
root@hikey:~# grep chosen -A4 effective.dts
chosen {
linux,initrd-end = <0x0 0x7fff200>;
bootargs = "console=ttyAMA0,115200 earlycon=pl011,0xf8015000 root=/dev/sda1 rootwait ro ";
linux,initrd-start = <0x0 0x7fff000>;
};
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?
/ Leif