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/AM5728:QSPI 引导问题

Guru**** 2562120 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/615123/linux-am5728-qspi-boot-issue

器件型号:AM5728

工具/软件:Linux

您好!

我们正在设计一个定制板、我们计划使用 QSPI 引导。使用以下命令、我们将 MLO、u-boot.img、am57xx-evm-reva3.dtb、zImage 文件写入 QSPI NOR 闪存:

U-Boot # tftp ${loadaddr}MLO
U-Boot # SF write ${loadaddr}0x00000 0x40000
U-Boot # tftp ${loadaddr}u-boot.img
U-Boot # SF write ${loadaddr}0x40000 0x100000 
U-Boot # tftp ${loadaddr}am57xx-EVM-reva3.dtb
U-Boot # SF write ${loadaddr}0x140000 0x80000 
U-Boot # tftp ${loadaddr}zImage
U-Boot # SF write ${loadaddr}0x1e0000 0x800000 

然后、u-Boot 可以成功启动、但当我键入以下命令时:
U-Boot # SF 读取${loadaddr}0x1e0000 0x800000
U-Boot # SF 读取${fdtaddr}0x140000 0x80000
U-Boot # bootz ${loadaddr}-${fdtaddr} 

内核不启动、它显示"错误的 Linux ARM zImage magic"。

我使用"SF Read"命令读取 QSPI 或闪存中的数据、我发现读取数据与 tftp 中的源数据不同。为什么? 它是否与 QSPI 存储器映射相关?
谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请访问 processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我的板上、没有用于支持 DFU 的 USB 接口、但我也参考了本指南中的一些步骤、结果是上面提到的、不起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    首先、我们可以忽略启动问题。 还有另一件我不理解的事情、例如:
    U-Boot # tftp ${loadaddr}mLO
    U-Boot # MD ${loadaddr} (1)
    U-Boot # SF WRITE ${loadaddr}0x00000 0x40000
    U-Boot # SF 读取${loadaddr}0x00000 0x40000
    U-Boot # MD ${loadaddr} (2)
    (1)和(2)处的数据完全不同。
    为什么?