Thread 中讨论的其他器件:TMDS64EVM
工具/软件:
AM64X OSPI_NOR 闪存和内核引导问题
我目前正在使用两个电路板、A tmds64evm (proc101c) 和 A SK-am64 (proc10e3) 。 我已使用 UART、TFTP 和 DFU 成功刷写 tiboot3.bin、tispl.bin 和 u-boot.img、并确认电路板可以在 OSPI 模式下引导。
我的最终目标是 从 OSPI-NOR 闪存引导内核映像文件 。
问题 1:OSPI MTD Re 分区和 Saveenv 问题
我尝试按照此链接中的步骤进行操作: https://dev.ti.com/tirex/explore/node?node=A__ARACMGmwZUkJurQKuv0ezw__AM64-ACADEMY__WI1KRXP__LATEST
在中 OSPI MTD 重新分区 部分、重新分区不起作用。 我的结果屏幕如下所示:
=> setenv mtddparts=fc40000.spi.0:512K (ospi.tiboot3)、2m (ospi.tispl)、4m (ospi.u-boot)、256k (ospi.env@)、256k (ospi.env.backup)、1m (ospi.tispl)、4m (ospi.u-boot)、256k (ospi.enpi)、256k (ospi.8fs.rootn)、ospi (ospit.8fs.tb)
=> MTD 列表
无法找到 fc40000.SPI.0 的有效设备
MTD 设备列表:
* nor0
-设备:闪存@0
-父母: SPI@fc40000
-驱动程序: JEDEC_SPI_NOR
-路径:/ bus@f4000/bus@fc00000/spi@fc40000/flash@0
-类型: nor flash
-块大小:0x40000 字节
-最小 I/O:0x10 字节
- 0x000000000000-0x000004000000:“nor0"</s>“
- 0x000000000000-0x000000100000 :“ ospi.tiboot3“
- 0x00000010000-0x000000300000 :“ospi.tispl"</s>“
- 0x000000300000-0x000000700000:“ospi.u-boot"</s>“
- 0x000000700000-0x000000740000:“ospi.env"</s>“
- 0x000000740000-0x000000780000:“ospi.env.backup"</s>“
- 0x000000800000-0x000003fc0000 :“ospi.rootfs"</s>“
- 0x000003fc0000-0x000004000000 :“ ospi.phypatern“
当我使用如下命令脚本时:
setenv mtddparts=nor0:512k(ospi.tiboot3)、2m(ospi.tispl)、4m(ospi.u-boot)、256k(ospi.env)、256k(ospi.env.backup)、1m(ospi.dtb)、20m@8m(ospi.u-boot)、256k(ospi.enfs,36spi.)
Re 分区工作正常、我的结果屏幕如下所示:
=> setenv mtddparts=nor0:512K(ospi.tiboot3)、2m(ospi.tispl)、4m(ospi.u-boot)、256k(ospi.env)、256k(ospi.env.backup)、1m(ospi.dtb)、20m@8spatteri(ospi.root)、256k(osp.ospi.36m)
=> MTD 列表
sf:检测到 s28hs512t、页面大小为 256 字节、擦除大小为 256 KiB、总共为 64 MiB
MTD 设备列表:
* nor0
-设备:闪存@0
-父母: SPI@fc40000
-驱动程序: JEDEC_SPI_NOR
-路径:/ bus@f4000/bus@fc00000/spi@fc40000/flash@0
-类型: nor flash
-块大小:0x40000 字节
-最小 I/O:0x10 字节
- 0x000000000000-0x000004000000:“nor0"</s>“
- 0x000000000000-0x000000080000 :“ ospi.tiboot3“
- 0x000000080000-0x000000280000:“ospi.tispl"</s>“
- 0x000000280000-0x000000680000:“ospi.u-boot"</s>“
- 0x000000680000-0x0000006c0000:“ospi.env"</s>“
- 0x0000006c0000-0x000000700000 :“ospi.env.backup"</s>“
- 0x000000700000-0x000000800000 :“ospi.dtb"</s>“
- 0x000000800000-0x000001c00000:“ospi.kernel"</s>“
- 0x000001c00000-0x000003fc0000 :“ospi.rootfs"</s>“
- 0x000003fc0000-0x000004000000 :“ ospi.phypatern“
但是、saveenv 不起作用。 将显示以下屏幕:
=> saveenv
未知命令'saveenv'-尝试'help'
重新引导后、分区内容将恢复到初始状态。
我的问题是:
- 是否可以通过将映像和.dtb 文件放在 rootfs 分区内而不重新分区来引导内核?
- 是否绝对需要重新分区才能通过 OSPI-NOR 引导内核?
问题 2:Yocto 构建故障
我认为所需的 rootfs 是 tisdk-tiny-initramfs 映像、我正在尝试使用命令 machine=am64xx-EVM bitbake -k tisdk-tiny-image 进行编译。
尽管具有足够规格的强大 PC、但构建不成功。 我还为与 Dash 相关的消息选择了“否“。 构建需要几个小时、最终失败并出现许多错误。
请提供此问题的解决方案吗?
问题 3:一般指导
我不熟悉 Linux、因此这个过程非常困难且具有挑战性。 我的最终目标是在没有 SD 卡的情况下从闪存启动内核、就像从 SD 卡启动一样。
- 根据我所描述的问题、我是否误解了任何内容或采取了错误的方法?
- 如果是、请告诉我其他方法吗?
我非常感谢任何帮助。