Booting armv8 kernel on uboot
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 ?
--
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.
Quoted 1 line · Vishal Bhoj
Hi ,
Hi,
Quoted 17 lines
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 at0x00080000, 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 to000000009fffa000, end000000009ffff850... OK
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)...
Starting kernel ...
Quoted 1 line
"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?
Quoted 1 line
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?
Quoted 3 lines
LR:
fff90fc8
x0 :000000009fffa000x1 :000000001c090000
x2 :000000001c090000x3 : 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.
Quoted 27 lines
x4 :
00000000fff6b834x5 : 0000000000000000
x6 :00000000fff6bb40x7 :00000000ffffffd0
x8 :000000000000000fx9 :000000007ff8e000
x10:00000000fffb7188x11: 0000000000000000
x12: 0000000000006000 x13: 0000000000000004
x14: 0000000000000003 x15:00000000fffc7c20
x16: 0000000000000000 x17: 0000000000000000
x18:00000000fff6beb8x19: 0000000000080000
x20:00000000fffc7a70x21: 0000000000000000
x22: 0000000000000000 x23:00000000fff6d8d8
x24: 0000000000000000 x25:00000000fffc2630
x26: 0000000000000000 x27: 0000000080008000
x28: 0000000000000000 x29:00000000fff6bb40Can 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
Quoted 22 lines · Mark Rutland
Quoted 1 line · Vishal Bhoj
Hi ,
Hi,
Quoted 17 lines
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 at0x00080000, 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 to000000009fffa000, end000000009ffff850... OK
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)...
Starting kernel ...
Quoted 7 lines
Quoted 1 line
"Synchronous Abort" handler, esr
0x02000000That
ESR_ELxvalue 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?
So, this I suspect is one of the problems I was trying to describe to you back at ELC which turned out to be loading things at the very wrong address (0x80000 rather than 0x80080000).
Vishal, cay you apply:
http://patchwork.ozlabs.org/patch/345746/
http://patchwork.ozlabs.org/patch/345748/
http://patchwork.ozlabs.org/patch/345749/
http://patchwork.ozlabs.org/patch/345747/
I need to do a v2 still to address some feedback, and then also say we require Mark's recent series to add an image size field (and other cleanups) and make use of that (and the rest of the series changes/clarifications).
But it should get you farther along.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140521/ad40c473/attachment.pgp>
Quoted 29 lines · Tom Rini
Quoted 28 lines · Mark Rutland
Quoted 1 line · Vishal Bhoj
Hi ,
Hi,
Quoted 17 lines
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 at0x00080000, 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 to000000009fffa000, end000000009ffff850... OK
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)...
Starting kernel ...Quoted 1 line
"Synchronous Abort" handler, esr
0x02000000That
ESR_ELxvalue 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.
Quoted 5 lines
Quoted 1 line
Which EL are you loading the kernel at?
So, this I suspect is one of the problems I was trying to describe to you back at ELC which turned out to be loading things at the very wrong address (
0x80000rather than0x80080000).
That would certainly explain it. From the lines above stating that the kernel had been loaded to 0x80000 I assumed that memory had been configured there.
Quoted 11 lines
Vishal, cay you apply:
http://patchwork.ozlabs.org/patch/345746/
http://patchwork.ozlabs.org/patch/345748/
http://patchwork.ozlabs.org/patch/345749/
http://patchwork.ozlabs.org/patch/345747/I need to do a v2 still to address some feedback, and then also say we require Mark's recent series to add an image size field (and other cleanups) and make use of that (and the rest of the series changes/clarifications).
I'll try to get a v2 out on my series shortly, it'd be nice to have as soon as possible. :)
Cheers,
Mark.
Hi,
Thanks for the inputs.
Quoted 38 lines · Mark Rutland
Quoted 7 lines · Tom Rini
Quoted 6 lines · Mark Rutland
Quoted 1 line · Vishal Bhoj
Hi ,
Hi,
Quoted 1 line
I have added mmc driver into the vexpress64 board file for uboot and
tested
Quoted 1 line
Quoted 1 line
Quoted 1 line
it on FVP base model. I tried booting a kernel on that but it is
aborting
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
with the following message:
Final value for argc=3
Loading Kernel Image ... OK
kernel loaded at0x00080000, 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])Quoted 1 line
Quoted 1 line
Quoted 1 line
Loading Device Tree to
000000009fffa000, end000000009ffff850...OK
Quoted 8 lines
Quoted 8 lines
Quoted 6 lines
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)... Starting kernel ..."Synchronous Abort" handler, esr
0x02000000That
ESR_ELxvalue means Unknown/uncategorized. It would be fantasticif
Quoted 1 line
Quoted 1 line
U-Boot would tell us what EL it's branching to the kernel at as a
matter
Quoted 4 lines
Quoted 3 lines
of course -- it's not really possible to debug from logs otherwise.
Which EL are you loading the kernel at?
Quoted 16 lines
Quoted 3 lines
So, this I suspect is one of the problems I was trying to describe to you back at ELC which turned out to be loading things at the very wrong address (
0x80000rather than0x80080000).That would certainly explain it. From the lines above stating that the kernel had been loaded to
0x80000I assumed that memory had been configured there.
Included these patches.
Quoted 5 lines
Quoted 4 lines
I need to do a v2 still to address some feedback, and then also say we require Mark's recent series to add an image size field (and other cleanups) and make use of that (and the rest of the series changes/clarifications).
Can you please share the patches. I am currently booting 3.10 Linaro stable kernel which works with ARM's trusted firmware + UEFI. The same kernel with the above patches doesn't boot on u-boot. Is there any specific kernel tree you suggest I should use which is known to boot on uboot + models ?
I have generated uImage with loadaddress as 0x80080000 and tried booting but doesn't boot. Here are the logs:
http://pastebin.com/T882rK3P
Quoted 7 lines
I'll try to get a v2 out on my series shortly, it'd be nice to have as soon as possible. :)
Cheers,
Mark.
Quoted 68 lines · Vishal Bhoj
Hi,
Thanks for the inputs.
Quoted 38 lines · Mark Rutland
Quoted 7 lines · Tom Rini
Quoted 6 lines · Mark Rutland
Quoted 1 line · Vishal Bhoj
Hi ,
Hi,
Quoted 1 line
I have added mmc driver into the vexpress64 board file for uboot and
tested
Quoted 1 line
Quoted 1 line
Quoted 1 line
it on FVP base model. I tried booting a kernel on that but it is
aborting
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
with the following message:
Final value for argc=3
Loading Kernel Image ... OK
kernel loaded at0x00080000, 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])Quoted 1 line
Quoted 1 line
Quoted 1 line
Loading Device Tree to
000000009fffa000, end000000009ffff850...OK
Quoted 8 lines
Quoted 8 lines
Quoted 6 lines
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)... Starting kernel ..."Synchronous Abort" handler, esr
0x02000000That
ESR_ELxvalue means Unknown/uncategorized. It would be fantasticif
Quoted 1 line
Quoted 1 line
U-Boot would tell us what EL it's branching to the kernel at as a
matter
Quoted 4 lines
Quoted 3 lines
of course -- it's not really possible to debug from logs otherwise.
Which EL are you loading the kernel at?
Quoted 16 lines
Quoted 3 lines
So, this I suspect is one of the problems I was trying to describe to you back at ELC which turned out to be loading things at the very wrong address (
0x80000rather than0x80080000).That would certainly explain it. From the lines above stating that the kernel had been loaded to
0x80000I assumed that memory had been configured there.Included these patches.
Quoted 5 lines
Quoted 4 lines
I need to do a v2 still to address some feedback, and then also say we require Mark's recent series to add an image size field (and other cleanups) and make use of that (and the rest of the series changes/clarifications).
Quoted 8 lines
Can you please share the patches. I am currently booting 3.10 Linaro stable kernel which works with ARM's trusted firmware + UEFI. The same kernel with the above patches doesn't boot on u-boot. Is there any specific kernel tree you suggest I should use which is known to boot on uboot + models ?
I have generated uImage with loadaddress as
0x80080000and tried booting but doesn't boot. Here are the logs:
http://pastebin.com/T882rK3P
What are your bootargs? Can you add in earlyprintk=pl011,0x1c090000 consolelog=9 ?
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140522/879f70c9/attachment.pgp>
Hi,
Quoted 81 lines · Tom Rini
Quoted 15 lines · Vishal Bhoj
Hi,
Thanks for the inputs.
Quoted 8 lines · Mark Rutland
Quoted 7 lines · Tom Rini
Quoted 6 lines · Mark Rutland
Quoted 1 line · Vishal Bhoj
Hi ,
Hi,
Quoted 1 line
I have added mmc driver into the vexpress64 board file for uboot
and
Quoted 12 lines
Quoted 12 lines
tested
Quoted 1 line
Quoted 1 line
Quoted 1 line
it on FVP base model. I tried booting a kernel on that but it is
aborting
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
with the following message:
Final value for argc=3
Loading Kernel Image ... OK
kernel loaded at0x00080000, 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
Quoted 2 lines
Quoted 2 lines
[
0x5851])Quoted 1 line
Quoted 1 line
Quoted 1 line
Loading Device Tree to
000000009fffa000, end000000009ffff850...
Quoted 9 lines
Quoted 9 lines
OK
Quoted 8 lines
Quoted 8 lines
Quoted 6 lines
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)... Starting kernel ..."Synchronous Abort" handler, esr
0x02000000That
ESR_ELxvalue means Unknown/uncategorized. It would befantastic
Quoted 9 lines
Quoted 9 lines
if
Quoted 1 line
Quoted 1 line
U-Boot would tell us what EL it's branching to the kernel at as a
matter
Quoted 6 lines
Quoted 3 lines
of course -- it's not really possible to debug from logs otherwise.
Which EL are you loading the kernel at?
So, this I suspect is one of the problems I was trying to describe to you back at ELC which turned out to be loading things at the very
wrong
Quoted 7 lines
Quoted 7 lines
Quoted 1 line
address (
0x80000rather than0x80080000).That would certainly explain it. From the lines above stating that the kernel had been loaded to
0x80000I assumed that memory had been configured there.Quoted 1 line
Quoted 10 lines
Quoted 7 lines
Included these patches.
Quoted 1 line
Quoted 1 line
I need to do a v2 still to address some feedback, and then also say
we
Quoted 5 lines
Quoted 4 lines
Quoted 3 lines
require Mark's recent series to add an image size field (and other cleanups) and make use of that (and the rest of the series changes/clarifications).
Can you please share the patches. I am currently booting 3.10 Linaro
stable
Quoted 1 line
kernel which works with ARM's trusted firmware + UEFI. The same kernel
with
Quoted 1 line
the above patches doesn't boot on u-boot. Is there any specific kernel
tree
Quoted 9 lines
Quoted 5 lines
you suggest I should use which is known to boot on uboot + models ?
I have generated uImage with loadaddress as
0x80080000and tried booting but doesn't boot. Here are the logs:
http://pastebin.com/T882rK3PWhat are your bootargs? Can you add in earlyprintk=pl011,0x1c090000 consolelog=9 ?
That helps. I could get some logs. Here is the logs:
http://pastebin.com/eAjWDS8t
I see few things going wrong:
[ 0.000000] GIC CPU mask not found - kernel will fail to boot. ---- [ 113.978373] swapper/0[1]: undefined instruction: pc=ffffffc000088008 [ 113.978454] Code: 00000000 00000000 d4000002 d65f03c0 (d4000003) [ 113.978510] Internal error: Oops - undefined instruction: 0 [#1] SMP [ 113.978553] Modules linked in: [ 113.978610] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.39 #2 [ 113.978673] task: ffffffc07dc85440 ti: ffffffc07dc88000 task.ti: ffffffc07dc88000 [ 113.978749] PC is at __invoke_psci_fn_smc+0x0/0x8 [ 113.978815] LR is at psci_cpu_on+0x2c/0x54
-----
It looks like kernel is trying to communicate to the ARM's trusted firmware. I am not an expert, please correct me if this assumption is wrong.
Is there a way to run uboot above ARM trusted firmware ?
Quoted 3 lines
--
Tom
Quoted 39 lines
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 at0x00080000, 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 to000000009fffa000, end000000009ffff850... OK
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)...
Starting kernel ..."Synchronous Abort" handler, esr
0x02000000ELR: 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
Quoted 2 lines
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.
David
Quoted 39 lines · fenghua at phytium.com.cn
Quoted 39 lines
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 at0x00080000, 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 to000000009fffa000, end000000009ffff850... OK
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)...
Starting kernel ..."Synchronous Abort" handler, esr
0x02000000ELR: 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
Quoted 4 lines
Quoted 2 lines
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!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140522/8a8595a6/attachment.pgp>
Hi,
Quoted 43 lines · Tom Rini
Quoted 4 lines · fenghua at phytium.com.cn
Quoted 4 lines
Hi ,
I have added mmc driver into the vexpress64 board file for uboot andtested
Quoted 1 line
Quoted 1 line
it on FVP base model. I tried booting a kernel on that but it is
aborting
Quoted 9 lines
Quoted 9 lines
with the following message:
Final value for argc=3
Loading Kernel Image ... OK
kernel loaded at0x00080000, 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])Quoted 25 lines
Quoted 25 lines
Loading Device Tree to
000000009fffa000, end000000009ffff850... OK
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)... Starting kernel ..."Synchronous Abort" handler, esr
0x02000000ELR: 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
Quoted 8 lines
Quoted 3 lines
Quoted 2 lines
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.
Quoted 1 line
Wish this help you.
Which version of the model are you using and which kernel tree? Thanks!
I am using 3.10 Linaro stable kernel which is boots up on UEFI [1]. I will give a try with the mainline kernel next. This is the FVP model version:FVP_VE_AEMv8A -v
Fast Models [0.8.5202 (Oct 22 2013)]
Copyright 2000-2013 ARM Limited.
All Rights Reserved.
Top component name: FVP_Base_AEMv8A_AEMv8A
[1] https://git.linaro.org/kernel/linux-linaro-stable.git/
Quoted 4 lines
--
Tom
hi Tom,
Quoted 40 lines · fenghua at phytium.com.cn
Quoted 39 lines
Quoted 39 lines
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 at0x00080000, 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 to000000009fffa000, end000000009ffff850... OK
Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)...
Starting kernel ..."Synchronous Abort" handler, esr
0x02000000ELR: 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
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
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.
Best regards,
David
Dear Tom, Tiger,
Quoted 48 lines
hi Tom,
Quoted 45 lines · fenghua at phytium.com.cn
Quoted 43 lines
Quoted 39 lines
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 at0x00080000, 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 to000000009fffa000, end000000009ffff850... OK Initial value for argc=3
Final value for argc=3
## Transferring control to Linux (at address 80000)...
Starting kernel ..."Synchronous Abort" handler, esr
0x02000000ELR: 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: 00000000fff6bb40Quoted 2 lines
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.
Quoted 7 lines
Quoted 2 lines
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 uImage3. 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
Hi, fenghua:
Followed your steps, I also downloaded linux-3.14.4.tar.xz . And run it with ATF + Uboot.
It could boot into linux kernel, and hangs at mounting root fs.
Thanks a lot!
Best wishes,
hi Tiger,
Quoted 6 lines
Hi, fenghua:
Followed your steps, I also downloaded linux-3.14.4.tar.xz . And run it with ATF + Uboot.
It could boot into linux kernel, and hangs at mounting root fs.Thanks a lot!
I did not test rootfs. It depends on where you place the rootfs(ramdisk or mmc etc). The kernel should be reconfigured to support corresponding device.
Best wishes,
David
Hi,
Thanks for the help. I am able to boot the kernel on foundation models but unable to boot the kernel on the FVP base models. The model itself seem to hang while booting the kernel. Here is the log:
http://pastebin.com/HajuPFZ1
I am investigating on what the last instruction getting executed in the kernel. In the meantime I wanted to know if people are able to boot the kernel with the same u-boot binary on FVP Base models. The model version that I am using is given below:/usr/local/FVP_Base_AEMv8A-AEMv8A/models/Linux64_GCC-4.1/FVP_Base_AEMv8A-AEMv8A --version
Fast Models [0.8.5502 (Mar 17 2014)]
Copyright 2000-2014 ARM Limited.
All Rights Reserved.
Top component name: FVP_Base_AEMv8A_AEMv8A
Regards,
Vishal
Quoted 23 lines · fenghua at phytium.com.cn
hi Tiger,
Quoted 6 lines
Hi, fenghua:
Followed your steps, I also downloaded linux-3.14.4.tar.xz . And run it with ATF + Uboot.
It could boot into linux kernel, and hangs at mounting root fs.Thanks a lot!
I did not test rootfs. It depends on where you place the rootfs(ramdisk or mmc etc).
The kernel should be reconfigured to support corresponding device.Best wishes,
David_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Quoted 7 lines · Vishal Bhoj
Hi,
Thanks for the help. I am able to boot the kernel on foundation models but unable to boot the kernel on the FVP base models. The model itself seem to hang while booting the kernel. Here is the log:
http://pastebin.com/HajuPFZ1
Hi, fenghua:
Quoted 1 line
I always use mkimage converting kernel to uImage and booting it. It
works fine.
Quoted 1 line
Wish this help you.
I followed these steps :
1. git clone git://git.linaro.org/kernel/linaro-aarch64.git
2. compiled it
% make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- distcleanvexpress_defconfig
% make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 Image
3. got the Image from "arch\arm64\boot" dir
4. use mkimage to package Image to uImage
./mkimage -n 'linux-3.12' -A arm64 -O linux -T kernel -C none -a0xC000080000 -e 0xC000080000 -d Image uimage
5. run it with FVP model.(free charge licensed ver) /home/lion/ARMv8/Foundation_v8pkg/models/Linux64_GCC-4.1/Foundation_v8 --cores=2 --no-gicv3 --data="./build/fvp/debug/bl1.bin"@0x0 --data="./build/fvp/debug/fip.bin"@0x08000000 --data=foundation-v8.dtb at 0x82000000 --data=uimage at 0x00080000
Then, got the same "Synchronous Abort" as Bhoj.
So, could you describe your explicit steps to get correct uimage?
Best wishes,