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:U-boot 中存在数据中止错误

Guru**** 2619225 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/662557/linux-am3352-data-abort-error-in-u-boot

器件型号:AM3352

工具/软件:Linux

你好

我使用 了 u-boot-2017.01+gitAUTOINC+9fd60700db-g9fd60700db。 在 uboot 中、当我擦除 nand 闪存时出现数据中止错误、错误消息如下:

=> n 和 ERASE.part NAND.SPL

NAND 擦除.part:器件0偏移量0x0、大小0x20000
数据中止
PC:[<8ff7815e>] LR:[ ]
重新分配 PC :[<8082515e>] LR :[ ]
SP:8df28a98 IP:080000 FP:00000000
R10:00000040 R9:8df32ed8 R8:8df351c4
R7:8df351c0 R6:00000001 R5:8df351c0 R4:8ffbb1c8
r3:8ffaa9a4 r2:00000000 r1:00000040 r0:00000040
标志:在模式 SVC_32上关闭 FIQ 的 Nzcv IRQ
正在重置 CPU ...

正在重置...

我找到了发生错误的确切位置:

在 driver/MTD/nand/omap_gpmc.c 文件 _read_prefet_aligned 函数中

对于(i = 0;i < cnt / 4;i++){
* buf++= readl (CONFIG_SYS_NAND_BASE);
Len -= 4;

当代码运行"readl (CONFIG_SYS_NAND_BASE)"时,发生错误, CONFIG_SYS_NAND_BASE=0x80000,cnt=4;

为什么会发生错误? 我如何解决这个问题?

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我将对此进行研究。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的关注、我得到了这样的原因、我的 CONFIG7寄存器错误导致了这种情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的更新。

    此致、
    Yordan