[U-Boot] Booting armv8 kernel on uboot
fenghua at phytium.com.cn
fenghua at phytium.com.cn
Tue May 27 15:56:10 CEST 2014
Dear Tom, Tiger,
>
> hi Tom,
>
>> On Thu, May 22, 2014 at 10:26:17PM +0800, fenghua at phytium.com.cn wrote:
>>>
>>>
>>>> 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
>>>> ELR: 80000
>>>> LR: fff90fc8
>>>> x0 : 000000009fffa000 x1 : 000000001c090000
>>>> x2 : 000000001c090000 x3 : 0000000000000020
>>>> 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 ?
>>> I always use mkimage converting kernel to uImage and booting it. It works fine.
>>> Wish this help you.
>>
>> Which version of the model are you using and which kernel tree? Thanks!
>>
> The model is the most recent FVP from linaro website and the kernel is a very old one.
> But mkimage has nothing to do with the kernel. uImage produced
> by mkimage is correctly loaded by u-boot for aarch64.
> I will make a test with the most recently kernel and give you feedback.
>
I have made a kernel booting test.
u-boot: cloned from git tree.
Foundation Model: FM000-KT-00035-r0p8-52rel06.tar, downloaded from arm website.
Linux kernel: linux-3.14.4.tar.xz, stable version from kernel.org
steps:
1. compile u-boot, replace CONFIG_GICV3 with CONFIG_GICV2 in vexpress_aemv8a.h
due to GICv3 support has not been upstream to kernel mainline.
2. compile linux kernel, use arch/arm64/boot/configs/defconfig as the default configuration.
then,
mkimage -A arm64 -O linux -C none -T kernel -a 0x80080000 -e 0x80080000 -n 3.14.4 -d Image uImage
3. use linux/arch/arm64/boot/dts/foundation-v8.dts as the device tree, because CONFIG_SYS_TEXT_BASE is 0x80000000 I reconfigure 'cpu-release-addr' as 0x8007fff0.
then,
dtc foundation-v8.dts -O dtb -o u-boot.dtb
4. run foundation model:
Foundation_v8 --image=u-boot.elf --data=uImage at 0x90000000 --data=u-boot.dtb at 0xa0000000 --cores=4
5. In u-boot command line, type the following command to boot os,
bootm 0x90000000 - 0xa0000000
I did not test the rootfs yet.
Best regards,
David
More information about the U-Boot
mailing list