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.

[参考译文] QSPI 引导过程问题

Guru**** 2559950 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588752/qspi-boot-procedure-question

根据"GLSDK 软件开发人员指南"、mk-qspi-boot.sh 可以将 MLO 和 u-boot 刷写到 QSPI 闪存、以及  MMC/SD 中的 DTB 和 uImage 存储 。 此外,从 MMC/SD 挂载 rootfs。

我 有一些问题、

1.看起来系统将从 QSPI 引导至 u-boot、然后通过 MMC/SD 启动内核、对吧?

2、在我们的定制板(带 J6)中、通过 GPMC 接口连接 NAND 闪存。 我是否可以更改引导过程=>从 QSPI 闪存引导至 u-boot 并 通过 NAND 闪存启动内核?

3.如果问题2的答案是"是",那么我应该做些什么来使它发挥作用?  

此致、

肖恩

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

    肖恩

    mK-QSPI-boot.sh、它所做的是、将 MLO、u-boot.img、uImage 和 DTB 闪存到 QSPI 中相应的分区/偏移位置、并将文件系统复制到 eMMC 中。 因此、在 QSPI 引导模式(SYSBOOT 引脚= QSPI 引导模式00110110)下、J6加载 MLO、检查 uImage 在 QSPI 分区中是否有效、加载 uImage 和 DTB 并跳转至内核。 此模式称为单级引导模式。 (引导 SPL->kernel)。

    如果 uImage 无效、则加载 u-boot 并执行 u-boot。 这称为两阶段引导模式(SPL->U-boot->kernel)。

    是的、根据您的要求、它可以使用两级引导。 因此、您无需在 QSPI 闪存中加载 uImage 和 DTB (您可以相应地修改 mk-spi-boot)。  

    因此、只有闪存 MLO 和 u-boot.img 进入 QSPI 并设置 SYSBOOT[7..0]= 00110110。 有关详细信息、请参阅用户指南。

    此致

    Ravi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您还可以使用 DFU-util 从 Ubuntu PC 刷写 QSPI。 请参阅用户指南中的 DFU 部分。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ravi:

    感谢您的回复。
    以下是一些问题需要您的建议、
    在 QSPI 两级引导中、我应该将相关文件(uImage、dtb、rootfs)复制到 NAND 闪存中、以便让系统引导到内核中、对吧?
    2.是否有任何关于如何将文件刷写到 NAND 闪存中的用户协会?
    目前、QSPI 两级引导将从 eMMC 加载内核。 为了让系统能够从 NAND 闪存加载内核、我应该修改什么。

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

    肖恩

    当前 QSPI 引导的解决方案、您可以在 QSPI 中使用 MLO、u-boot.img、uImage、DTB、在 eMMC 或 SD 卡中使用 rootfs。  

    我从未使用过 NAND。 我将回到 NAND 相关的问题。

    此致

    Ravi

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

    最新版本不支持 NAND。

    您是否能够从 QSPI 进入 u-boot 提示符。

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

    尊敬的 Ravi:

    根据用户指南中描述的"从 uBoot 刷写到 QSPI"、

    是的、现在 、我可以从 QSPI 引导进入 u-boot 提示符。

    我有一些问题、

    那么、现在我无法从 NAND 器件加载内核?

    2.是否有任何实用程序可让我在 u-boot 提示符或内核提示符处读/写 NAND 器件?

    在我们的定制板上、我们使用"MT29F2G16ABAEAWP-AIT" NAND 器件、这是否得到了 DRA-750的支持?

    此致、

    肖恩

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

    肖恩

    我尚未验证 J6平台上的 NAND。  

    在 u-boot 中、nand 命令可用于读取/写入 nand 存储器。 选中 cmd/nand.c、您必须启用 CONFIG_CMD_NAND。

    此致

    Ravi

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

    我尝试在 u-boot 中启用 nand 命令
    添加"CONFIG_CMD_NAND"、"CONFIG_SYS_MAX_NAND_DEVICE"、"CONFIG_SYS_NAND_BASE"这些定义位于~/J6_SDK/board-support/u-boot/include/configs/xxx.h (xxx.h 用于我们的定制板)
    尝试构建映像,但出现错误,显示 nand.c 中的 board_nand_init()未定义引用
    Board_nand_init()已在 nand.h 中定义,但我不知道为什么会出现错误。
    我做得对吗? 或者、我是否在其他位置添加 CONFIG_CMD_NAND?

    此外、我还发现一些文档描述了如何在 DRA7xx EVM 上启用 NAND 启动、链接如下
    patchwork.kernel.org/.../
    我没有尝试过、这是启用 NAND 启动的正确方法吗?

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

    您可以在2014.07 u-boot 中检查针对 dra7xx 的 NAND 支持的参考代码。
    检查 boards.cfg、dra7xx_evm_nandboot_config。

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

    尊敬的 Ravi:

    我选中2014.07 u-boot、boards.cfg、但找不到"dra7xx_evm_nandboot_config"。 只有"dra7xx_EVM"、"dra7xx_EVM_uart3"、"dra7xx_EVM_usbboot"...等等

    因此、我仍然无法在 u-boot 上启用"nand"命令。 您能给我提供更多信息来启用此命令吗、谢谢。

    此致、

    肖恩

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

    更新最新状态。 我尝试在 dra7xx EVM 板上启用 NAND、但遇到同样的问题。
    在我参考此处的信息 =>lists.denx.de/.../184174.html 后
    我在 board-support/u-boot/include/configs/dra7xx_evm.h 上添加了更多配置
    最后、我可以在 u-boot 提示符处使用 nand 命令。

    但另一个问题是、我使用"nand info"来探测 nand 设备、什么也没有。
    您是否知道这可能是什么原因?

    P.S.我正在使用 DRA7xx EVM 板。 它应该具有 NAND 器件(MT29F2G16AADWP)。

    此致、
    肖恩