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.
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
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).