你(们)好。
我正在尝试基于 AM437x-gp-EVM 平台处理器 SDK 生成定制板。 我能够为我们的应用程序构建内核、u-boot 和根文件系统以及自定义软件。 然后、这一切都写入 SD 卡、该卡的引导效果非常好。 SD 卡位于物理器件 mmc0上、可转换为器件树中的 mmc1、而 eMMC 是物理器件 mmc1、可转换为器件树中的 mmc2、并按照 TRM 中的建议使用数据线连接到的线路 GPMC_ad8至 GPMC_ad11进行准确布线 能够引导。
具体而言、问题在于 eMMC。 最初、从 SD 卡引导后、eMMC 在 Linux 中未显示为器件、在进行某种修整后、由于某种原因、当器件的总线宽度设置为1而不是4时、它在 Linux 中被检测为器件并可用。 即使 TRM 中描述的四条物理数据线也是如此。 然后复制 SD 卡的完全相同的分区(通过 Linux 引导至 eMMC)后、预计将根据 SYSBOOT 引脚的配置使用 eMMC。
真正的问题从这里开始。 将文件从 SD 卡复制到 eMMC 后、系统将关闭、然后 SD 卡将被移除。 如果系统再次通电、则会加载存储在 eMMC 引导分区上的 u-boot、并显示以下内容:
正在尝试从 MMC2 spl 引导:找不到 MMC 设备1。 错误:-19 SPL:无法从所有引导设备进行引导 ###错误###请重置主板###
这很奇怪、因为这个 u-boot 是从它现在找不到的同一器件加载的。 因此、我假设这是 u-boot 的问题。
我执行的下一步是重新插入 SD 卡、并在 u-boot 提示符处停止。 然后、我发出命令'mc list'、该命令返回两个器件、如下所示:
OMAP SD/MMC:0 (SD) OMAP SD/MMC:1.
然后、当我尝试使用'mc dev 1'选择 eMMC 时、我会收到以下错误消息:
卡未响应电压选择!
因此、我再次假设 u-boot 可能会出现问题、并且可能是某种类型的配置不正确。 不完全确定。 我认为我可能只是缺少一些非常简单的东西。
最后、我还想了解是否有人知道、如果总线宽度设置为4 (与硬件的物理线路相对应)、内核为何无法引导、但如果总线宽度设置为1、则引导过程不会出现问题。
提前感谢您的帮助!
