AnsweredAssumed Answered

Data Abort exception in uboot when trying to load the kernel.

Question asked by Gautam Bhat on Mar 3, 2016
Latest reply on Apr 3, 2018 by Jason Kang


  I am trying to load the kernel using uboot and I get a data abort exception. I have followed the procedures same as what is given by Freescale. uboot version : uboot-imx-rel_imx_3.10.53_1.1.1


I have tried putting $(PF_NO_ALIGNED) in the of the uboot but there is no luck. How can I debug this?


I get the following message:


Normal Boot
Hit any key to stop autoboot:  0
reading uImage
4659752 bytes read in 225 ms (19.8 MiB/s)
reading imx6dl-sabresd.dtb
49157 bytes read in 19 ms (2.5 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...
   Image Name:   Linux-3.10.53
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4659688 Bytes = 4.4 MiB
   Load Address: 10008000
   Entry Point:  10008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 18000000
   Booting using the fdt blob at 0x18000000
   Loading Kernel Image ... OK
   Using Device Tree in place at 18000000, end 1800f004
switch to ldo_bypass mode!

Starting kernel ...

data abort
pc : [<10815be8>]          lr : [<10815460>]
sp : 10c87540  ip : 0000001c     fp : 10c86540
r10: 10814310  r9 : 10814cd8     r8 : 18000000
r7 : 00000f8c  r6 : 10c8654c     r5 : 108161fc  r4 : 00000055
r3 : 00000f8c  r2 : f42ec000     r1 : 021ec000  r0 : 00000055
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Resetting CPU ...

resetting ...


My fdt_addr is 0x18000000

and my loadaddr is 0x12000000


What seems to have gone wrong? I have booted this properly with one set of boards where the UART was uart3.  The newer boards have UART as UART1 and that is the only change done. Also I find that exception happens when the kernel entry point function pointer gets called in uboot.