AnsweredAssumed Answered

U Boot jump to kernel

Question asked by Bharat Kumar Bacha on Feb 26, 2019
Latest reply on Mar 7, 2019 by igorpadykov

Does the kernel expect the hardware to be initialized by U-Boot except for disabling interrupts, caches, and MMU?

 

I see the following error after kernel starts executing

I see following error
"Synchronous Abort" handler, esr 0x86000000
ELR: ffff00000893017c
LR: 40aa825c
x0 : 0000000040400000 x1 : 0000000040e7a000
x2 : 0000000040e7d000 x3 : 000000000000003f
x4 : 0000000000000001 x5 : 00000000fcffffff
x6 : 0000000034d5d91d x7 : 0000000000000711
x8 : ffff00000893017c x9 : 0000000000000000
x10: 00000032b5103510 x11: 0000000000000002
x12: 00000000ffffffff x13: 00000000ffffffff
x14: 000000000000006a x15: 0000000000000790
x16: 00000000000000b7 x17: 0000000000000108
x18: 0000000000185e40 x19: 0000000040480000
x20: 0000000043000000 x21: 0000000000000000
x22: 0000000000185df0 x23: 0000000000000000
x24: 00000000007f2000 x25: 00000000007f2fa0
x26: 00000000deadbeef x27: 0000000000000000
x28: 0000000040d30018 x29: 0000000000185d70

Seems like control gets passed onto kernel. Kernel runs fine until it enables MMU and swicthes to virtual addresses. Once it jumps to VA, exception is raised which means MMU is not initialized properly.

 

Note: I am skipping filesystem to locate kernel and device tree. These are located at hardcoded sector address which U-Boot is aware of.

Thanks,

Bharat Kumar Bacha.

Outcomes