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.

[参考译文] AM4376:AM437X 未通过 eMMC 引导

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1225777/am4376-am437x-not-booting-with-emmc

器件型号:AM4376
主题中讨论的其他器件: CSD

您好!

我们一直在尝试从 AM4376 (GP)上的 eMMC 引导。 我们没有成功获得稳定的 MLO 来运行和输出调试输出。 我们已成功使用具有相同分区方案的 FAT32模式的 SD 卡。

名称        MAJ:最小 RM 大小 RO 类型安装点
mmcblk0     179:   0 29.8G 0 磁盘  
|-mmcblk0p1 179:1   0 128M 0 部件/run/media/mmcblk0p1
`-mmcblk0p2 179:2   0 3.9G 0部件/
mmcblk1     179:16  0 14.8G 0 磁盘  
|-mmcblk1p1 179:17  0 128M 0部件/run/media/mmcblk1p1
`-mmcblk1p2 179:18  0 3.9G 0部件/run/media/mmcblk1p2
mmcblk1boot0 179:32  0 31.5M 1磁盘  
mmcblk1boot1 179:48  0 31.5M 1磁盘  

(分区1为 FAT32、分区2为.ext3)

  当没有 SD 卡时、Sysboot 设置为 SYSBOOT[4:0]= 10100默认为 eMMC。

我们等待所有引导源循环、但我们不会看到任何调试输出。

从备用源引导时 、我们可以在 mmcblk1中访问 eMMC、如上所示。

(eMMC 原理图)

(AM4376 eMMC 原理图)

正如我们在之前的对话中看到的 、我们已经从电路板中移除了 DS 、建议针对 eMMC 4.5保持悬空(从而禁用 5.x)

请告知。

谢谢!

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

    此外、我们没有为该器件使用 PMIC。  

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

    您好!

    请花几天时间来研究此问题。

    此致、

    朱迪斯

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

    您好!
    为了由 ROM 从 eMMC 引导第一个引导加载程序 SPL/MLO、使用的 eMMC 引脚需要与 AM43xx TRM 中使用的第5.2.6.5.8节引脚兼容。
    此致!
    -洪

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

    除了正确设置 SYSBOOT 外、我们如何在 ROM 操作期间控制引脚多路复用寄存器?

    在 eMMC 引导期间(我们使用25MHz)、参考时钟频率是否会产生任何差异

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

    您好!
    按照 TRM 中"5.2.6.5.8所用引脚"的规定、ROM 配置 eMMC 引脚上的引脚多路复用。
    对于 eMMC 引导、您可以在 ROM 的默认配置中参阅"5.2.6.5 MMC/SD 卡"。
    此致!
    -洪

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

    您好!

    我和 Aneesh 在同一个案件上工作。 我们的 sysboot 已被确认是正确的。 我们的芯片器件型号为"AM4378BZDNA100S"。 我们已将 EMMC_CLK、EMMC_CMD、 EMMC_D0和 EMMC_D1连接 至逻辑分析器、并发现命令序列(来自引导 ROM)为:

    CLK 速度为~200kHz

    CMD0 (GO_IDLE_STATE):复位所有 SD 卡
    CMD8 (SEND_IF_COND):将接口条件发送到卡(ARG:0x000001aa)
    无响应、eMMC 应以(R1)响应
    CMD55 + CMD1= ACMD41 (SEND_OP_COND):CMD1 (ARG:0x00000000)、读取 OCR
    响应:R1 (0x00ff8080) Decive Busy
    CMD1 (SEND_OP_COND):CMD1 (ARG:0x40ff8080)
    响应:R1 (0x00ff8080) Decive Busy
    CMD1 (SEND_OP_COND):CMD1 (ARG:0x40ff8080)
    响应:R1 (0xC0ff8080)器件就绪
    CMD2 (ALL_SEND_CID):询问卡以获取 CID 编号(arg:0x40ff8080)
    响应:R2 (中间0x13、Micron...)
    CMD3 (send_related_ADDR):要求卡提供新的相对卡地址(RCA)(ARG:0x12330000)
    响应:R6 (0x00000500)
    CMD9 (SEND_CSD):发送卡专用数据(CSD)(ARG:0x12340000)
    回复:R2 (... CCC=0x8F5)
    CMD4 (SET_DSR):CMD4 (ARG:0x04040000)
    CLK 速度被切换至~12.5MHz
    CMD7 (SELECT/DESELECT_CARD):选择/取消选择卡(ARG:12340000)
    响应:R6 (0x00000700)
    回复:R6
    CMD16 (SET_BLOCKLEN):ARG (0x00000200)
    响应:R1 (0x00000900)将块长度设置为2304字节
    CMD8 (SEND_EXT_CSD)(ARG 00000000)
    响应:(0x00000000)
    D0开始切换、在~512Bytes (ECSD 读取)后全部为0

    在可正常工作的第三方 EV 板上、到目前为止、我们看到完全相同的序列、但在我们的板上、在10s 内不再发生 EMMC_CMD 更改、D0上也保持不变、直到尝试下一个引导介质、 但第三方主板进行了更多的 EMMC_CMD 更改、并最终引导至 Linux。

    我们的电路板在 读取 ECSD 寄存器后停止、不会发出任何 EMMC 闪存读取。 从逻辑分析仪中、捕获的 ECSD 读取:

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    01 03 20 B3 BD 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FC 00 00
    00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AB 03 00
    07 00 00 00 00 15 1F 20 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    08 00 02 00 57 1F 0F 01 00 00 00 00 00 00 00 00
    00 00 00 01 00 40 DA 01 0E 14 00 00 00 10 01 01
    01 00 FC 00 07 01 51 01 00 00 00 00 00 00
    01 0A 00 00 00 00 32 0A 00 04 00 00 34
    51 4E 30 31 53 34 00 00 40 00 01 01 01 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 1F 01 00 00 00 00 AE 00 B1 00 CF 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    CE 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 01 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 AC 01 00 00 00 C9 00 00 00 00 00 00 00 01 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 03 00 00 01 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 01 FF 00 00 00 00 01 03
    05 00 03 01 00 01 01 01 00 00 00 00 00 00 00 00
    CB FA FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    粗体部分与 eMMC 芯片 (MTFC16GAPALBH-AAT)尺寸匹配。  

    eMMC 检测序列与 TRM (SPRUHL71) PG213~214不对齐

    同样、我们的电路板在 ECSD 读取后停止发送 eMMC 命令(ECSD 的 D0上的内容 似乎正确)

    有什么建议吗?   

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

    您好、Ling:

    我们的芯片器件型号为"AM4378BZDNA100S"[/报价]

    1/. 我们是否已从任何启动介质中使用"AM4378BZDNA100S"启动了"不工作电路板"?
    2/. 如果有、哪个二进制文件会刷写到不工作的电路板上的 eMMC?
    3/. "在第三方正常工作的电动汽车电路板上"上的芯片 P/N 是什么?
    此致!
    -洪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Hong:
    我在此澄清一下、我们在同一 PCB 设计上尝试了两种类型的 TI 芯片、一种是 "AM4376BZDND100"、另一种是 "AM4378BZDNA100S"、 这是一种安全启动处理器。 当然、它将从非签名映像引导。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ling:
    似乎 eMMC 引导是由 ROM 启动的、但无法以某种方式继续引导。
    您的电路板上是否有可用的 JTAG?
    如果需要、我们可以尝试将 JTAG "连接"到电路板、以确定哪个点代码正在运行? 其中"连接"表示在没有目标复位的情况下连接/连接 JTAG。 让我们使用 JTAG 调试器来找出 SPL 是否开始在电路板上运行。
    A)。 如果是、则需要进一步调试 SPL 以查看锁定位置。
    B)。 如果否、可按照 TRM 的"5.2.3.2.5跟踪数据"中的说明、通过读取跟踪矢量来检查 ROM 引导进度。
    此致!
    -洪

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

    您好、Hong:

    为了再次说明、SPL (MLO)尚未加载。 在 ECSD (512字节寄存器、而不是闪存)读取之后、ROM 代码停止发送任何 eMMC 命令。 从逻辑分析仪上、我没有在 EMMC_CMD 线路上看到任何来自引导 ROM 代码的 eMMC 闪存读取命令。

    我对 JTAG 调试器部分很困惑、您是否建议我使用 JTAG 调试器来调试 ROM 代码? 这是如何工作的?  您是否会为我提供 ROM 代码源和二进制文件以供开始?

    谢谢

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

    您好、Ling:
    如果您的电路板上提供了 JTAG、则一种选择是使用 JTAG 转储 ROM 跟踪矢量、以帮助精确指向代码运行到的哪个点。
    TRM 的"5.2.3.2.5跟踪数据"和"5.2.12跟踪"介绍了 ROM 跟踪矢量。
    通常、JTAG 调试器对于任何电路板启动都很有用。
    此致!
    -洪