This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3352: Data abort error in U-boot

Part Number: AM3352

Tool/software: Linux

hello

I used u-boot-2017.01+gitAUTOINC+9fd60700db-g9fd60700db. In uboot, there is a data abort error when I erase the nand flash, the error message as follow:

=> nand erase.part NAND.SPL

NAND erase.part: device 0 offset 0x0, size 0x20000
data abort
pc : [<8ff7815e>] lr : [<fffffffc>]
reloc pc : [<8082515e>] lr : [<f08acffc>]
sp : 8df28a98 ip : 08000000 fp : 00000000
r10: 00000040 r9 : 8df32ed8 r8 : 8df351c4
r7 : 8df351c0 r6 : 00000001 r5 : 8df351c0 r4 : 8ffbb1c8
r3 : 8ffaa9a4 r2 : 00000000 r1 : 00000040 r0 : 00000040
Flags: Nzcv IRQs off FIQs on Mode SVC_32
Resetting CPU ...

resetting ...

I had found the exact location where error was happened:

in driver/mtd/nand/omap_gpmc.c file __read_prefetch_aligned function

for (i = 0; i < cnt / 4; i++) {
*buf++ = readl(CONFIG_SYS_NAND_BASE);
len -= 4;
}

when the code run "readl(CONFIG_SYS_NAND_BASE)" ,the error was happened, and CONFIG_SYS_NAND_BASE=0x8000000, cnt=4;

why the error happened? how can I deal the problem?

thanks.