[U-Boot] Booting armv8 kernel on uboot

Mark Rutland mark.rutland at arm.com
Wed May 21 11:40:38 CEST 2014


On Wed, May 21, 2014 at 09:46:35AM +0100, Vishal Bhoj wrote:
> Hi ,

Hi,

> I have added mmc driver into the vexpress64 board file for uboot and tested
> it on FVP base model. I tried booting a kernel on that but it is aborting
> with the following message:
> Final value for argc=3
>    Loading Kernel Image ... OK
>    kernel loaded at 0x00080000, end = 0x00827024
> using: FDT
>    reserving fdt memory region: addr=80000000 size=10000
> ## initrd_high = 0xffffffffffffffff, copy_to_ram = 1
>    ramdisk load start = 0x00000000, ramdisk load end = 0x00000000
> ## device tree at 0000000090008000 ... 000000009000a850 (len=22609 [0x5851])
>    Loading Device Tree to 000000009fffa000, end 000000009ffff850 ... OK
> Initial value for argc=3
> Final value for argc=3
> ## Transferring control to Linux (at address 80000)...
> Starting kernel ...
> 
> "Synchronous Abort" handler, esr 0x02000000

That ESR_ELx value means Unknown/uncategorized. It would be fantastic if
U-Boot would tell us what EL it's branching to the kernel at as a matter
of course -- it's not really possible to debug from logs otherwise.

Which EL are you loading the kernel at?

> ELR:     80000

And that's the start address of the loaded kernel image (i.e. the very
first instruction), so the likely cause is that the first instruction is
invalid, either in memory or the I-cache.

It's a shame we don't have a dump here of the value at the ELR, that
could tell us if the Image is corrupt or if some cache maintenance has
been missed.

Are you definitely loading a valid Image?

> LR:      fff90fc8
> x0 : 000000009fffa000 x1 : 000000001c090000
> x2 : 000000001c090000 x3 : 0000000000000020

Unrelated, but x1-x3 should be zero here per the boot protocol. That
needs to be fixed ASAP or it's not going to be possible to ever make use
of them.

Thanks,
Mark.

> x4 : 00000000fff6b834 x5 : 0000000000000000
> x6 : 00000000fff6bb40 x7 : 00000000ffffffd0
> x8 : 000000000000000f x9 : 000000007ff8e000
> x10: 00000000fffb7188 x11: 0000000000000000
> x12: 0000000000006000 x13: 0000000000000004
> x14: 0000000000000003 x15: 00000000fffc7c20
> x16: 0000000000000000 x17: 0000000000000000
> x18: 00000000fff6beb8 x19: 0000000000080000
> x20: 00000000fffc7a70 x21: 0000000000000000
> x22: 0000000000000000 x23: 00000000fff6d8d8
> x24: 0000000000000000 x25: 00000000fffc2630
> x26: 0000000000000000 x27: 0000000080008000
> x28: 0000000000000000 x29: 00000000fff6bb40
> 
> Can anyone please provide the procedure on how to boot the kernel with
> u-boot on armv8 models ?
> 
> 
> 
> --
> View this message in context: http://u-boot.10912.n7.nabble.com/Booting-armv8-kernel-on-uboot-tp180377.html
> Sent from the U-Boot mailing list archive at Nabble.com.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> 


More information about the U-Boot mailing list