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.

[参考译文] AM62L-PROCESSOR-SDK:USB-DFU 不起作用

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1510075/am62l-processor-sdk-usb-dfu-does-not-work

器件型号:AM62L-PROCESSOR-SDK
主题中讨论的其他器件:AM62L

工具/软件:

尊敬的专家:

代表我的客户发布:

我们准备了一些带有 AM62L USB 和 UART 的定制电路板、并希望使用 USB-DFU 加载引导加载程序二进制文件。

借助 TI EVM、我可以轻松引导至 uboot、但在我们的电路板上、我在 BL1之后的控制台上看不到任何消息(tiboot3.bin)。

我们 SoM 和 TI EVM 的二进制文件 tiboot3.bin 和 tispl.bin 具有相同的 DDR 设置和 DDR 大小、但 UART 和 USB 弹出的所有内容都相同。

但让我分享 consol 日志:

NOTICE:  bl1_plat_arch_setup arch setup 
NOTICE:  Booting Trusted Firmware
NOTICE:  BL1: v2.12.0(release):11.00.09-7-g144a586a83d2-dirty
NOTICE:  BL1: Built : 14:40:34, May  5 2025
INFO:    BL1: RAM 0x7080b000 - 0x7080f000
INFO:    lpddr4_init <-- 
INFO:    lpddr4 dtb: ctl-data ptr=0x7080718c, pi-data=0x70807834, phy-data=0x70807da4
NOTICE:  BL1: dram_class: 10
INFO:    memory node =0x28 
INFO:    lpddr4: probe done 
INFO:    lpddr4/ddr4: init done 
INFO:    start-status: offset =0x0 
INFO:    start-status reg: before =0x10460a00 
   A. INFO:    Doing normal DDR initINFO:    lpddr4: Start DDR controller
INFO:    lpddr4: start completed successfully status=0x0
INFO:    start-status reg: after =0x10460a01 
INFO:    LPDDR4 start completed !! 
NOTICE:  lpddr4: post start - PI training status=0x29c02000 
INFO:    lpddr4: post start - CTL Interrupt status=0x4 
INFO:    start-status reg: after =0x10460a01 
INFO:    LPDDR4 start completed !! 
NOTICE:  bl1_platform_setup DDR init done
NOTICE:  k3_bl1_handoff ENTERING WFI - end of bl1

与该 EVM 相比、结果是:
对于我们的电路板:

注意:LPDDR4:POST START - PI 训练状态=0x29c02000 
INFO:LPDDR4:POST START - CTL Interrupt STATUS=0x4 



在 EVM 上:

注意:LPDDR4:POST START - PI 训练状态=0x27c0a000 
信息:LPDDR4:启动后- CTL 中断 STATUS=0x0 



遗憾的是、TRM 中未描述两个 INT_STATUS 寄存器的内容。 您能否找出这是否表示 RAM 出现故障? DDR 控制器是否提供更详细的寄存器说明?

谢谢您、

Marinus

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

    谢谢 Marinus。

    在通过 DDR 配置进行一些调整后、我们使用 USB DFU 使其进入 U-Boot 提示符。

    INFO:    lpddr4: post start - CTL Interrupt status=0x0 

    由于该寄存器现在也是0x0、我假设这确实指示了错误。

    但最好具有更多有关 Cadence DDR 控制器寄存器的信息。

    此致

    Dominik

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

    Dominik、DDR 寄存器在 TRM 中进行了介绍、但我们主要使客户指向 DDR 寄存器配置工具、以便于寄存器编程、因为这么多寄存器。

    如果您告诉我您进行了哪些调整(或向我发送配置文件的差异)、我可以更好地解释这些差异

    此致、

    James

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

    您好、James、

    TRM 介绍 DDR 控制器 CTL 寄存器342:

    如果日志级别增加、驱动程序只会打印寄存器、但不会将其视为错误:

    https://github.com/TexasInstruments/arm-trusted-firmware/blob/ti-master/plat/ti/k3/common/drivers/lpddr4/k3-ddrss.c#L617

    那么我的问题是、除了该 CTL 寄存器342中的0x0之外还有任何问题吗?

    谢谢

    Dominik

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

    嗨、Dominik、是、CTL_342 = 0x4表示控制器收到了来自 PHY 的错误。  这通常在配置不匹配导致某种训练错误时发生。  当一切都正常时、该寄存器将为0x0 (实际上 INT_STATUS_INIT = 0x2、表示初始化已完成、但 Linux 驱动程序在向控制台读出该状态位之前将其清除)。   

    根据上一篇文章、您似乎对配置进行了一些更改以使其正常工作。  是时序变化还是其他一些配置?

    此致、

    James

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

    您好、James、

    是的、将 CWL 增加到11使我们的 DDR4-1600与 AS4C512M16D4A-62BIN 内存设置工作。

    乍一看、它现在运行稳定、但我们尚未完成气候室测试。

    我还没有完全理解为什么它以前根本没有使用 CWL 9运行,所以我在这里开放的想法。

    此致

    Dominik

    DDRSS.system_cfg_dram_type                    = "DDR4";
    DDRSS.reference                               = "AM62L_DDR4";
    DDRSS.ddr4.$name                              = "sitara_ddr4_DDRSS_DDR40";
    DDRSS.ddr4.config_dram_DQ1                    = "Memory DQ3";
    DDRSS.ddr4.config_dram_DQ5                    = "Memory DQ1";
    DDRSS.ddr4.config_dram_DQ6                    = "Memory DQ2";
    DDRSS.ddr4.config_dram_DQ7                    = "Memory DQ4";
    DDRSS.ddr4.config_dram_DQ3                    = "Memory DQ5";
    DDRSS.ddr4.config_dram_DQ2                    = "Memory DQ6";
    DDRSS.ddr4.config_dram_DQ4                    = "Memory DQ7";
    DDRSS.ddr4.config_dram_DQ8                    = "Memory DQ8";
    DDRSS.ddr4.config_dram_DQ15                   = "Memory DQ9";
    DDRSS.ddr4.config_dram_DQ14                   = "Memory DQ11";
    DDRSS.ddr4.config_dram_DQ13                   = "Memory DQ12";
    DDRSS.ddr4.config_dram_DQ10                   = "Memory DQ14";
    DDRSS.ddr4.config_dram_DQ9                    = "Memory DQ15";
    DDRSS.ddr4.config_dram_DQ0                    = "Memory DQ0";
    DDRSS.ddr4.config_dram_mr2_lpasr              = "Manual mode, Extended temp";
    DDRSS.ddr4.config_dram_mr4_temp_refresh_range = "Extended";
    DDRSS.ddr4.system_cfg_temp_range              = "-40C to 95C";
    DDRSS.ddr4.config_dram_tCCD_L_tCK             = 5;
    DDRSS.ddr4.config_dram_tCCD_L_ns              = 6.25;
    DDRSS.ddr4.config_dram_tDQSCKmax_ns           = 0.225;
    DDRSS.ddr4.system_cfg_dram_density            = 8;
    DDRSS.ddr4.config_dram_mr2_cwl                = 11;

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

    您好 Dominik、这可能是内存供应商的更多问题。  数据表显示9或11适用于工作频率

    可能存在一些边际容差、需要更长的 CWL。   

    也可能存在一些信号完整性问题、如果清除、CWL=9可能会起作用。  这一点很难判断。  请告诉我腔室测试是如何进行的。

    此致、

    James

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

    您好、James、

    是的、我认为这里也回答了所有问题。

    在驱动程序启动结束时、DDR CTL 寄存器342应为0x0、并且 USB DFU 从未出现问题。

    谢谢你

    Dominik

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

    好的、现在将关闭。

    James