主题中讨论的其他器件: SK-AM62-LP
工具/软件:
您好、
我的客户在 SK-AM62B-P1 上将 SPI NOR 替换为 SPI NAND、用于引导器件。
他们询问如何为 SPI NAND 引导更改以下配置文件。
configs/am62x_evm_a53_defconfig
configs/am62x_evm_r5_defconfig
Linux SDK 版本为 版本 10.00.07.04。
谢谢。此致、
田代浩一郎
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.
工具/软件:
您好、
我的客户在 SK-AM62B-P1 上将 SPI NOR 替换为 SPI NAND、用于引导器件。
他们询问如何为 SPI NAND 引导更改以下配置文件。
configs/am62x_evm_a53_defconfig
configs/am62x_evm_r5_defconfig
Linux SDK 版本为 版本 10.00.07.04。
谢谢。此致、
田代浩一郎
尊敬的 Dilna:
[报价 userid=“656316" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1545656/sk-am62b-p1-how-to-change-defconfig-files-for-spi-nand-boot/5945936 ]SK-AM62B-P1 不支持 SPI-NAND 闪存。 它仅支持 SPI-NOR 闪存是的。 他们知道。 它们自身将 SPI-NOR 替换为 SPI-NAND。
谢谢。此致、
田代浩一郎
你(嗨)光一郎
请对 am62x_evm_a53_defconfig、am62x_evm_r5_defconfig 进行以下更改并重试
(这些是 am62a 支持 spi-nand 的 defonfig 更改)
CONFIG_SPL_DM_SPI=y CONFIG_SPL_SPI=y CONFIG_SPL_NAND_SPI_SUPPORT=y CONFIG_SPL_DM_SPI_FLASH=y CONFIG_MTD=y CONFIG_DM_MTD=y CONFIG_MTD_SPI_NAND=y CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_CADENCE_QSPI=y CONFIG_CADENCE_QSPI_PHY=y CONFIG_DM_SPI_FLASH=y
并对 SPI-n 的 am62b-P1 DTS 进行修改。 为此、您可以参阅 am62a SPI-n 和器件树更改。
尊敬的 Dilna:
客户尝试了这些配置更改并构建了 u-boot。 他还通过 MTD 命令确认了从 u-boot 进行的 SPI NAND 访问。
然后他做了 DTS 修改。
和“tiboot3.bin",“,"tispl.bin"、"tispl.bin"和“和"u-boot.ilmg"“"u-boot.ilmg"都“都是“是用 SPI NAND 写入的。
但从 SPI NAND 引导失败、并显示以下消息。
U-Boot SPL 2024.04-dirty (Jul 29 2025 - 00:52:39 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 13392 bytes Trying to boot from SPINAND mtd_probe_uclass_mtd_devs 0 MTD device spi-nand not found, ret -1
尊敬的 Koichiro:
问题是否已解决?
如果没有、希望 ypu 正在 从 SD 卡加载二进制文件。 通过 SD 卡引导进行引导并在 U-boot 提示符处停止、然后继续。
1.请确认您使用的是以下命令。
=> mtd list
=> fatload mmc 1 ${loadaddr} tiboot3.bin
=> mtd write spi-nand0 $loadaddr 0x0 $filesize
=> fatload mmc 1 ${loadaddr} tispl.bin
=> mtd write spi-nand0 $loadaddr 0x80000 $filesize
=> fatload mmc 1 ${loadaddr} u-boot.img
=> mtd write spi-nand0 $loadaddr 0x280000 $filesize
2.另外请确认您是否已将引导模式引脚更改为使用串行 NAND 引导模式引导并重新启动 EVM。
尊敬的 Dilna:
现在、客户能够从 SPI NAND 加载 U-Boot SPL、但代码会一直在 SPL 中循环。
客户观察到的是什么;
- MTD_READ 在 SPL 内完成,从 NAND 加载 u-boot 映像。
-在“drivers/spi/cadence_QSPI_APB.c"中“中,函数“cadence_QSPI_APB_INDIRECT READ_EXECUTE“中,
由于返回值、无法退出“while (bytes_to_read!= 0)“循环
bytes_to_read = cadence_QSPI_get_rd_srm_level (priv); 始终为“129"。“。
返回值始终为“129"的“的原因是什么?
有任何解决此问题的建议?
谢谢。此致、
田代浩一郎
尊敬的 Koichiro:
它们将 SPI-NOR 替换为 SPI-NAND。
1/。 在 SK-AM62B-P1 上将 SPI-NOR 替换为 SPI-NAND 时、是否有任何硬件修改?
2/。 我们有 SPI-NAND 数据表吗?
3。 从串行 NAND 引导时、BOOTMODE[15:0]是什么?
供参考。 串行 NAND W35N01JWTBAG TI SK-AM62-LP 和 SK-AM62A 电路板上
此致、
- Hong
Hong Hong:
1/。 在 SK-AM62B-P1 上将 SPI-NOR 替换为 SPI-NAND 时、有任何硬件修改?
我通过电子邮件发送了硬件修改详细信息
2/。 我们有 SPI-NAND 数据表吗?
您可以从下面下载数据表。
https://urldefense.com/v3/__https://www.winbond.com/hq/support/documentation/levelOne.jsp?__locale=ja&DocNo=DA00-W25M02GV.1__;!!G3vK!TjiwHUfVwtbTFhySRKHo58wni9hnu_RnvrL2UdqgMLJX67PcxBgbi3EM0l_TzKimDXxYupI7BzJIxFFnnemmw2RgwTMlOQ$</s>!
3/。 从串行 NAND 引导时、BOOTMODE[15:0]是什么?
BOOT[15:00]= 0x0683
谢谢。此致、
田代浩一郎
尊敬的 Koichiro:
1/。 我们是否有有关客户如何在客户电路板上刷写串行 NAND 的详细步骤(日志文件会有所帮助)?
2/。 刷写后、客户是否验证了串行 NAND 内容?
3。 从串行 nand 引导时、我们是否有完整的引导日志?
供参考。 这是有关如何在 SK-AM62-LP 板上从串行 NAND 进行刷写/引导的常见问题解答
【常见问题解答】如何从 AM62x/AM62Ax 上的串行 NAND 刷写和引导 u-boot
此致、
- Hong
Hong Hong:
1/。 我们是否有详细的步骤(日志文件会有所帮助)、说明客户如何在客户主板上刷写序列号?
客户使用了 SD 卡引导、并在 u-boot 中使用了以下命令。
=> fatload mmc 1 ${loadaddr} tiboot3.bin
313854 bytes read in 54 ms (5.5 MiB/s)
=> mtd write spi-nand0 $loadaddr 0x0 $filesize
Size not on a page boundary (0x800), rounding to 0x4d000
Writing 315392 byte(s) (154 page(s)) at offset 0x00000000
=> fatload mmc 1 ${loadaddr} tispl.bin
1195387 bytes read in 100 ms (11.4 MiB/s)
=> mtd write spi-nand0 $loadaddr 0x80000 $filesize
Size not on a page boundary (0x800), rounding to 0x124000
Writing 1196032 byte(s) (584 page(s)) at offset 0x00080000
=> fatload mmc 1 ${loadaddr} u-boot.img
1449851 bytes read in 116 ms (11.9 MiB/s)
=> mtd write spi-nand0 $loadaddr 0x280000 $filesize
Size not on a page boundary (0x800), rounding to 0x162000
Writing 1449984 byte(s) (708 page(s)) at offset 0x00280000
2/。 刷写后、客户是否验证了序列号和内容?
是的。 此处是在 VERIFY 处记录。
=> printenv loadaddr
loadaddr=0x82000000
=> fatload mmc 1 ${loadaddr} tiboot3.bin
313854 bytes read in 54 ms (5.5 MiB/s)
=> mtd read spi-nand0 0x80000000 0x0 $filesize
Size not on a page boundary (0x800), rounding to 0x4d000
Reading 315392 byte(s) (154 page(s)) at offset 0x00000000
=> cmp.b ${loadaddr} 0x80000000 $filesize
Total of 313854 byte(s) were the same
=> fatload mmc 1 ${loadaddr} tispl.bin
1195387 bytes read in 100 ms (11.4 MiB/s)
=> mtd read spi-nand0 0x80000000 0x80000 $filesize
Size not on a page boundary (0x800), rounding to 0x124000
Reading 1196032 byte(s) (584 page(s)) at offset 0x00080000
=> cmp.b ${loadaddr} 0x80000000 $filesize
Total of 1195387 byte(s) were the same
=> fatload mmc 1 ${loadaddr} u-boot.img
1449851 bytes read in 116 ms (11.9 MiB/s)
=> mtd read spi-nand0 0x80000000 0x280000 $filesize
Size not on a page boundary (0x800), rounding to 0x162000
Reading 1449984 byte(s) (708 page(s)) at offset 0x00280000
=> cmp.b ${loadaddr} 0x80000000 $filesize
Total of 1449851 byte(s) were the same
3/。 从序列 nand 引导时、我们是否有完整的引导日志?
这是启动日志。
U-Boot SPL 2024.04-dirty (Aug 07 2025 - 08:27:08 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 13392 bytes Trying to boot from SPINAND
尊敬的 Koichiro:
感谢您共享调试日志。
Linux SDK 11.x 中引入了 WB 串行 NAND 驱动程序
您的客户是否可以使用最新的 Linux SDK 11.01.05.03 进行测试
https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX AM62X/11.01.05.03
此致、
- Hong
尊敬的 Koichiro:
1/。 这是 u-boot 串行 nAND DT 节点、其中 AM62-LP-SK 板具有 128MB 串行 nAND 闪存 W35N01JW ( OSPI )。 客户需要针对客户电路板上的串行 N 和器件调整 DT 节点 ( QSPI )。
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/commit/arch/arm/dts/k3-am62-lp-sk.dts?h=10.00.07&id=6c2704e46073349030956d3cea04e63e90aeafb6
2/。 客户需要检查 WB 串行 AND 设备是否配置正确
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/drivers/mtd/nand/spi/winbond.c?h=10.00.07#n188
此致、
- Hong
Hong Hong:
客户检查了设备树、但找不到任何可疑点。
以下是他们的文件。 您能检查一下并告诉我是否有问题吗?
e2e.ti.com/.../k3_2D00_am625_2D00_r5_2D00_sk.dtse2e.ti.com/.../0257.k3_2D00_am62x_2D00_sk_2D00_common.dtsie2e.ti.com/.../0257.k3_2D00_am625_2D00_sk.dts
您能回答他们刚才提出的以下问题吗?
客户观察到的是什么;
- MTD_READ 在 SPL 内完成,从 NAND 加载 u-boot 映像。
-在“drivers/spi/cadence_QSPI_APB.c"中“中,函数“cadence_QSPI_APB_INDIRECT READ_EXECUTE“中,
由于返回值、无法退出“while (bytes_to_read!= 0)“循环
bytes_to_read = cadence_QSPI_get_rd_srm_level (priv); 始终为“129"。“。
返回值始终为“129"的“的原因是什么?
有任何解决此问题的建议?
谢谢。此致、
田代浩一郎
尊敬的 Koichiro:
客户检查了设备树、但找不到任何可疑点。
以下是他们的文件。 您能检查一下它们并告诉我是否有问题吗?
我快速查看了随附的 DTS 文件。 从日志文件中、客户似乎正在使用 AM62x Linux SDK 10.0.7.4。 考虑到 TI AM62x-lpsk 板支持串行与、而 AM62x-SK 板支持串行与非、我建议客户参考基于 AM62x-lpsk 板的串行与配置、并针对客户 QSPI-nand 闪存器件(包括)对其进行调整
- u-boot defconfig 文件
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/configs/am62x_lpsk_r5_defconfig?h=10.00.07
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/configs/am62x_lpsk_a53_defconfig?h=10.00.07
- R5/A53 的 DTS 文件(如下所示)以及包含的文件。
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/arch/arm/dts/k3-am62-r5-lp-sk.dts?h=10.00.07
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/arch/arm/dts/k3-am62-lp-sk.dts?h=10.00.07
此致、
- Hong