On 15 March 2015 at 14: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.
~$ dmesg|grep -i efi [ 0.000000] efi: Getting EFI parameters from FDT: [ 0.000000] EFI v2.40 by Linaro HiKey EFI Mar 9 2015 15:25:34 [ 0.000000] efi: [ 0.137729] Remapping and enabling EFI services. [ 0.144124] Freed 0xbf2000 bytes of EFI boot services memory [ 4.153810] rtc-efi rtc-efi: can't read time [ 4.158218] rtc-efi rtc-efi: rtc core: registered rtc-efi as rtc0 [ 4.950297] rtc-efi rtc-efi: can't read time [ 4.974951] rtc-efi rtc-efi: hctosys: unable to read the hardware clock [ 81.484828] rtc-efi rtc-efi: can't read time [ 82.484885] rtc-efi rtc-efi: can't read time [ 83.485007] rtc-efi rtc-efi: can't read time [ 84.485119] rtc-efi rtc-efi: can't read time
This is with 3.18+, but I get similar results with 4.0+
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>;
};
Mine looks ok:
chosen { linux,uefi-mmap-desc-size = <0x30>; linux,uefi-mmap-size = <0x3f0>; linux,initrd-end = <0x0 0xb600000>; linux,uefi-system-table = <0x0 0x3fcdbf18>; linux,uefi-stub-kern-ver = "Linux version 3.18.0+ ..."; linux,uefi-mmap-start = <0x0 0x39f67598>; linux,uefi-mmap-desc-ver = <0x1>; bootargs = "fs0:\vmlinux-3.18.0+ dtb=hikey-new.dtb nfsroot=192.168.1.6:/data/..."; linux,initrd-start = <0x0 0xae00000>; };
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?
Koen is probably using a .bat^W.nsh script like me:
https://lists.96boards.org/pipermail/dev/2015-March/000058.html
I think the uBoot emulator could only be problem if Koen as expliclty converted the Image/vmlinux to an uImage?
Riku