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.

[参考译文] AM62Ax:SPL 级中的引导失败问题

Guru**** 2478785 points
Other Parts Discussed in Thread: SK-AM62A-LP, AM62A7, AM62A3

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1447551/am62ax-boot-failed-issue-in-spl-stage

器件型号:AM625-Q1
主题中讨论的其他器件:AM62A7AM62A3、SK-AM62A-LP

工具与软件:

尊敬的专家

我们有以下链接中的相同问题。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1421515/am625-boot-issue-in-spl-stage?tisearch=e2e-quicksearch&keymatch=spl%20initial%20stack%20usageL

这是定制电路板、DDR 芯片与 AM62A EVM (MT53E1G32D2FW)、SDK10.0、SD 引导相同

然后、我们尝试添加调试信息、如下所示。

似乎通过了 DDR 探针测试、但在 SPL malloc 测试中失败

我们使用同一 SD 卡进行 AM62A EVM 引导。 按如下方式进行记录

U-Boot SPL 2024.04-dirty (Dec 05 2024 - 17:48:48 +0800)
SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
k3_ddrss_probe(dev=43c34b5c)
k3_ddrss_ofdata_to_priv(dev=43c34b5c)
k3_ddrss memory-controller@f300000: ddr freq0 not populated, using bypass frequency.
k3_ddrss_power_on(ddrss=43c39b80)
k3_ddrss memory-controller@f300000: vtt-supply not found.
k3_lpddr4_probe: PASS
k3_lpddr4_init: PASS
--->>> LPDDR4 Initialization is in progress ... <<<---
k3_lpddr4_freq_update: received freq change req: req type = 2, req no. = 0, instance = 0
k3_lpddr4_freq_update: received freq change req: req type = 0, req no. = 1, instance = 0
k3_lpddr4_freq_update: received freq change req: req type = 2, req no. = 2, instance = 0
k3_lpddr4_freq_update: received freq change req: req type = 0, req no. = 3, instance = 0
k3_lpddr4_freq_update: received freq change req: req type = 2, req no. = 4, instance = 0
k3_lpddr4_start: Post start PASS
SPL initial stack usage: 13568 bytes
This is piny test commnet
SPL malloc() before relocation used 0x6608 bytes (25 KB)
>>SPL: board_init_r()
spl_init
Trying to boot from MMC2
Authentication passed
Authentication passed
Authentication passed
Unsupported OS image.. Jumping nevertheless..
SPL malloc() used 0x1ad8c0 bytes (1718 KB)
Authentication passed
Authentication passed
Starting ATF on ARM64 core...

NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
NOTICE:  BL31: Built : 16:09:05, Feb  9 2024

U-Boot SPL 2024.04-dirty (Dec 05 2024 - 17:48:44 +0800)
SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
SPL malloc() before relocation used 0x2e80 bytes (11 KB)
>>SPL: board_init_r()
spl_init
Trying to boot from MMC2
Authentication passed
Authentication passed
Jumping to U-Boot...
SPL malloc() used 0x12a740 bytes (1193 KB)
image entry point: 0x80800000


U-Boot 2024.04-dirty (Dec 05 2024 - 17:48:44 +0800)

SoC:   AM62AX SR1.0 HS-FS
Model: Texas Instruments AM62A7 SK
DRAM:  2 GiB (effective 4 GiB)
Core:  87 devices, 30 uclasses, devicetree: separate
MMC:   mmc@fa10000: 0, mmc@fa00000: 1
Loading Environment from nowhere... OK
In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
Net:   eth0: ethernet@8000000port@1
Hit any key to stop autoboot:  1

为什么 SPL 没有输入"board_init_r ()"?

我想我们需要调试方向和建议。

非常感谢

Gibbs  

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

    嗨、Gibbs、

    定制电路板上的 DDR 大小是多少?

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

    您好、Bin

    谢谢您的回复。

    抱歉、我弄错了、它不是 AM62x。

    客户的器件是 采用 DDR MT53E1G32D2FW  (4GB LPDDR4)的 AM62A32AOMHIAMBR。 它与我们的 AM62A EVB 相同。

    AM62A EVB 使用 XAM62A74ATMGHIAMB 、我认为这是唯一的不同

    由于存储器是相同的、因此也可以在不修改任何代码(SPL/U-Boot)的情况下引导、这个想法是否正确?

    我认为 SBL 将自动识别器件 AM62A3或 AM62A7

    谢谢你

    Gibbs  

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

    嗨、Gibbs、

    我看到客户使用速度等级"O"(1GHz) AM62A32、而 SK EVM 使用速度等级"U"。 您能否让客户使用以下 U-Boot 补丁进行测试、以查看是否可以解决启动问题?

    diff --git a/arch/arm/dts/k3-am62a7-r5-sk.dts b/arch/arm/dts/k3-am62a7-r5-sk.dts                                             
    index 3c63b99f1784..a37f047dcf8e 100644
    --- a/arch/arm/dts/k3-am62a7-r5-sk.dts
    +++ b/arch/arm/dts/k3-am62a7-r5-sk.dts              
    @@ -54,7 +54,7 @@                                                                                                            
                    clocks = <&k3_clks 61 0>;                                                                                    
                    assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
                    assigned-clock-parents = <&k3_clks 61 2>;     
    -               assigned-clock-rates = <200000000>, <1200000000>;
    +               assigned-clock-rates = <200000000>, <1000000000>;                   
                    ti,sci = <&dmsc>;                
                    ti,sci-proc-id = <32>;  
                    ti,sci-host-id = <10>;

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

    嗨、Gibbs、

    我会将您的问题发送给我们的 DDR 专家、以征求您的意见。

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

    GIBBS、器件 AM62A32AOMHIAMBR LPDDR4的速度等级为3200MTs。  EVM 上的器件配置为3733MTs。  您将需要使用 DDR 寄存器配置工具生成新的 DDR 配置文件: https://dev.ti.com/sysconfig/?product=Processor_DDR_Config&device=AM62Ax。 有关说明、请查看该工具中的自述文件链接。  您很可能只需要将频率设置更改为1600MHz、但对于您的定制电路板、驱动强度和终端的某些 IO 设置可能需要更改。  您是否对定制电路板执行了任何 DDR SI 仿真?

    如果在更改频率后仍然失败、请执行此页面的"第2节:DDR 初始化期间挂起"中 的步骤:https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1358039/faq-board-bring-up-tips-for-sitara-devices-am64x-am243x-am62x-am62ax-am62px

    添加将转储 DDR 寄存器的补丁、然后将它们发布在此处。  我将能够帮助诊断此问题。

    此致、

    James

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

    是的、根据 regdump、似乎无法进行 CA 培训。  

    请尝试使用 CA ODT = 80 Ω。  

    他们是否进行过任何电路板仿真?  这些将有助于确定最佳驱动强度和端接设置。

    此致、

    James

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

    您好、James

    他们已经在 执行 DDR SI 和 PI 的电路板仿真、我会将相关的仿真结果邮寄给您、

    我有点不想知道、 基于我的帖子日志、您如何知道 CA 培训失败?

    非常感谢

    Gibbs

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

    您好、James。

    是否有更新?

    我们发现了一些不同之处。

    MT53E1G32D2FW-046 AUT:B -> AM62_LP_EVM ->支持16 位行寻址
    MT53E1G32D2FW-046 AAT:C -->客户电路板-->  支持17 位寻址行

    AM62A LPDDR4器件的最大支持行数为17行。  

    如何在 DDR 配置中设置行寻址?

    谢谢

    Gibbs

    MT53E1G32D2FW-046 AUT:B

    MT53E1G32D2FW-046 AAT:C

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

    你好、Gibbs、很抱歉响应延迟。  最后一个 regdump 仍显示 CA 训练失败。   

    对于这种类型的故障、温度等级不是问题。  在工具中更改频率时、读取/写入延迟值将自动更改、因此这也不是问题。  这里没有配置行寻址的位置、这是根据提供的密度在工具中自动完成的。

    我认为这个问题更为根本。   

    -您是否在多个电路板上看到了相同的问题?  是否可能是组装错误。

    -您能否检查与 DDR 相关的电压轨:

    处理器电压轨:

    • VDDS_DDR = VDDS_DDR_C = 1.1V
    • VDDA_PLL4 = 1.8V (AM62Ax)
    • VDDA_DDR_PLL0 = VDD_CORE = 0.75或0.85V

    内存电压轨:

    • VDDQ = VDD2 = 1.1V
    • VDD1 = 1.8V

    -我检查了原理图,没有看到任何问题。  实际上、它似乎是 EVM 的一个副本

    -您能仔细检查一下 LPDDR4器件的顶部标记吗?  并确保它是  MT53E1G32D2FW 双列双通道器件

    -您发送的仿真报告显示了使用48欧姆驱动和48欧姆终端对所有信号进行仿真。  我已使用这些值附加了一个配置。  请尝试一下。

    /cfs-file/__key/communityserver-discussions-components-files/791/k3_2D00_am62Ax_2D00_ddr_2D00_config_5F00_ODI_5F00_ODT_5F00_48.dtsi

    此致、

    James

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

    您好、James

    此处提供一些更新。

    1.多个板出现同样的问题。

    2.导轨正常,您可以检查附件。

    3.  LPDDR4器件顶部标识是相同的

    4. 使用"48欧姆驱动和48欧姆端接所有信号设置"与你补丁,它仍然失败,并停止在日志"SPL malloc () "

    您是否还可以共享您的 DDR 配置文件? 因为我想知道如何 在 DDR 配置工具中设置48 Ω 端接

    5. MT53E1G32D2FW-046是否采用此默认设置(SK-AM62A-LP)? 由于我尝试再次查看"AM62A 低功耗 SK EVM 用户指南"、因此它描述的 EVM 使用的是 MT53E2G32D4DE-046。 检查原理图后、我发现有两个版本、一个版本使用 MT53E1G32D2FW、另一个版本使用 MT53E2G32D4DE、哪个版本适用于默认设置?

    6.我怀疑"DDR 密度(每通道)(GB) = 8  "是错误的、因为我检查  MT53E1G32D2FW-046工作表、它告诉我们设置 应该是 "DDR 密度(每通道)(GB) = 16 "、哪个设置是正确的?

    7. 您认为这是 DDR 问题吗? 因为我怀疑我们可能有错误的调试方向。 我们是否还有另一个问题、它可能会在使用0x6608字节的重定位之前导致"SPL malloc ()"?

     

    谢谢你。

    Gibbs

    e2e.ti.com/.../ddr_5F00_voltage.pdf

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

    嗨、Gibbs、

    啊、是的!  我认为这是问题所在。  该器件的:B 版本(在 EVM 上)的每通道具有8Gb

    但是:C 版本是16GB,正如你所显示的。  很抱歉我漏掉了这个详细信息。

    此致、

    James

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

    Gibbs、请尝试连接的配置

    此配置具有以下设置:

    -工作温度-40°C 至125°C

    每通道16GB

    -1等级(注意: MT53E1G32D2FW-046  AAT:C 是单列器件)

    -CA ODT = 80 Ω、CS 驱动= 80 Ω、CA/CK 驱动= 40 Ω。  这是为了容纳 CA/CK 板上的 T 分支、但 CS 不进行 T 分支

    如上所述、-DQ 驱动器和 ODT 设置为48欧姆

    /cfs-file/__key/communityserver-discussions-components-files/791/MT53E1G32D2FW_2D00_046-AAT_5F00_C.dtsi

    以下是可加载到工具中的完整配置:

    /cfs-file/__key/communityserver-discussions-components-files/791/MT53E1G32D2FW_2D00_046-AAT_5F00_C_5F00_full.syscfg

    您还可以将其加载到工具中、并显示我所做的更改。

    /cfs-file/__key/communityserver-discussions-components-files/791/MT53E1G32D2FW_2D00_046-AAT_5F00_C.syscfg

    您所做的其他更改(尤其是 WL 套件 B)应该不是必需的。

    注意:我还更改了该主题的标题以反映 AM62Ax

    此致、

    James

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

    Gibbs、行地址不是专门输入到工具中的。  它将由密度、总线宽度等其他参数确定

    这似乎只是一个配置问题。  请尝试使用我的更新并报告。

    此致、

    James

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

    您好、James

    更新了、

    我将您的 DTS "MT53E1G32D2FW_2D00_046-AAT_5F00_C.dtsi"、并看到日志是不同的。

    结果如下。

    我认为该错误消息应该与 DDR 无关、

    基本上、DDR 已经通过了、我是否正确?

    谢谢你。

    Gibbs

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

    你好 Gibbs、是的、现在它看起来像是 SD 卡问题。  看起来引导已经成功通过了 DDR 训练、而是尝试从 SD 卡引导。  您仍然需要对 DDR 执行应力测试、以确保配置的可靠性、但目前、问题似乎是无法切换 SD 卡电压。  您可能需要尝试在旧模式下配置 SD 卡、使其保持在3.3V、以查看是否可以进一步执行引导。

    此致、

    James

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

    嗨、Gibbs、

    请向 U-Boot devicetre 中的&sdhci1节点添加以下补丁、以在旧版模式下使用 SD 卡。

    diff --git a/arch/arm/dts/k3-am62x-sk-common.dtsi b/arch/arm/dts/k3-am62x-sk-common.dtsi
    index 59ee49616505..7e90a11ae8fb 100644
    --- a/arch/arm/dts/k3-am62x-sk-common.dtsi
    +++ b/arch/arm/dts/k3-am62x-sk-common.dtsi
    @@ -467,6 +467,7 @@
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&main_mmc1_pins_default>;
    +       no-1-8-v;
            disable-wp;
     };