AnsweredAssumed Answered

MX6UL: imprecise external abort (0xc06) at 0x0003497c

Question asked by lai zhefeng on Oct 30, 2016

Hi, guys,

We are going to develop a BOOT for our product(no UBOOT), then we encounter the problem below when kernel startup.

[    4.276223] Unhandled fault: imprecise external abort (0x1c06) at 0x0003497c
[    4.283284] pgd = 88510000
[    4.286001] [0003497c] *pgd=88519831, *pte=80aec75f, *ppte=80aecc7f
[    4.292791] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
[    4.292791]
[    4.301962] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
[    4.301962]

Out hardware platform is MX6UL, evk board 14x14, nandflash boot. Software is MX6UL-L4.1.15 with kernel 4.1.15, uboot 2015.04.

We try to boot the same kernel with the same ramdisk, dtb and command line by UBOOT, everything is fine, we can reach the console. Then we caculate the ramdisk image(boot with our BOOT) CRC in kernel, it shows that the ramdisk data is correct.

At the last, we found that add the code below into the UBOOT, the same error happened.

unsigned int *p = (unsigned int *)0x00F00000;

*p = 0xa5a5aa55;

Address 0x00F00000 is a reserved memory in MX6UL, but it did not report a data abort about the code above.

kernel report(the DFSR is 0xc06, different with the above one(0x1c06):

[    3.635183] Unhandled fault: imprecise external abort (0xc06) at 0x0003497c
[    3.642157] pgd = 88510000
[    3.644877] [0003497c] *pgd=88519831, *pte=80aec75f, *ppte=80aecc7f
[    3.651669] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
[    3.651669]
[    3.660842] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
[    3.660842]

It looks like the data abort in UBOOT was hold until the 'init' process start to run.

We try to run the above code in our BOOT, it did not report data abort neither.

So we now focus on our BOOT, to see if it writes to some reserved memory, but we did not find out yet!

The questions I want to ask is:

1. Why no data abort when access to the reserved memory?

2. The data abort will hold to the kernel, does it exist in any situation? Or it just is my mis-understanding?

Any help will be appreciate, this problem already takes me 48 more working hours!

This the kernel command line:

console=ttymxc0,115200 printk.time=1 mem=512M mtdparts=gpmi-nand:2m(boot),512k(nvram_fac),768k(boot_res),4m(boot_logo),12m(kernel),12m(ramdisk),12m(base),-(data)

Original Attachment has been moved to: kernel-2.7.1.unknownT.img.zip

Original Attachment has been moved to: zImage-imx6ul-evk.dtb.zip

Original Attachment has been moved to: ramdisk-2.7.1.unknownT.img.zip

Outcomes