TI中文支持网
TI专业的中文技术问题搜集分享网站

uboot中擦除nand时报告data abort

各位好。

我使用的是SDK04.00.00.04版本的uboot,uboot具体版本信息如下

u-boot-2017.01+gitAUTOINC+9fd60700db-g9fd60700db

板子是我们自己做的,硬件已经在SDK06.00.00.00版本(2013年的版本)上验证过了,硬件不存在问题,现在想升级使用4.x的内核,选择使用去年一月份发布的SDK04.00.00.04版本,经过对uboot简单修改,uboot已经跑起来了,可以通过敲任意键使uboot停住,进入命令模式,在执行nand的擦除操作时会报如下错误,麻烦TI的大神们帮忙看看到底哪里有问题,谢谢。

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

LONGFEI LI1:

已经定位到了出问题的位置,可是不明白为什么会提示数据溢出,出错位置在driver/mtd/nand/omap_gpmc.c文件的__read_prefetch_aligned函数中:for (i = 0; i < cnt / 4; i++) {*buf++ = readl(CONFIG_SYS_NAND_BASE);len -= 4;}

Denny%20Yang99373:

回复 LONGFEI LI1:

既然定位到这个地方了,可以通过CCS JTAG链接,手动读写一下寄存器看看
你的NAND设计和EVM有什么区别吗?

LONGFEI LI1:

回复 LONGFEI LI1:

已找到原因,因为gpmc的config7寄存器配置有问题导致的问题。

赞(0)
未经允许不得转载:TI中文支持网 » uboot中擦除nand时报告data abort
分享到: 更多 (0)