Skip to contentSkip to conversation

Booting armv8 kernel on uboot

U-Boot Vishal Bhoj 6 participants 17 messages May 21, 2014 – Jun 4, 2014

lore
Share & tools
lore
#0 lore raw

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.

#1 lore raw
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 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 ...

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

Quoted 27 lines

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

#2 lore raw
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 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 ...

Quoted 7 lines
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?

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>
#3 lore raw
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 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 ...

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.

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 (0x80000 rather than 0x80080000).

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.

#4 lore raw

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

Quoted 1 line
Quoted 1 line
Quoted 1 line

Loading Device Tree to 000000009fffa000, end 000000009ffff850 ...

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 0x02000000

That ESR_ELx value means Unknown/uncategorized. It would be fantastic

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 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 (0x80000 rather than 0x80080000).

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 7 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/

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.

#5 lore raw
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 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])

Quoted 1 line
Quoted 1 line
Quoted 1 line

Loading Device Tree to 000000009fffa000, end 000000009ffff850 ...

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 0x02000000

That ESR_ELx value means Unknown/uncategorized. It would be fantastic

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 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 (0x80000 rather than 0x80080000).

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 7 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/

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 0x80080000 and 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>
#6 lore raw

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

Quoted 2 lines
Quoted 2 lines

[0x5851])

Quoted 1 line
Quoted 1 line
Quoted 1 line

Loading Device Tree to 000000009fffa000, end 000000009ffff850

...

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 0x02000000

That ESR_ELx value means Unknown/uncategorized. It would be

fantastic

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 (0x80000 rather than 0x80080000).

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 1 line
Quoted 10 lines
Quoted 7 lines
Quoted 6 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/

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 0x80080000 and 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 ?

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

#7 lore raw
In reply to Vishal Bhoj
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 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
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

#8 lore raw
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 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
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>
#9 lore raw

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 and

tested

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

Quoted 25 lines
Quoted 25 lines

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

#10 lore raw
In reply to Tom Rini

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

#11 lore raw

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

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

#12 lore raw

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,

#13 lore raw

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

#14 lore raw

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

#15 lore raw
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

#16 lore raw
In reply to fenghua at phytium.com.cn

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- distclean
vexpress_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 -a
0xC000080000 -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,