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.

[参考译文] TDA4VM:来自百度公司的 SDK7.1 DDR API

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1111119/tda4vm-sdk7-1-ddr-api-from-baidu-company

器件型号:TDA4VM

TI 专家:

我们百度有一个要求、我们需要读取 SBL 中的 DDR 制造商 ID、然后针对该模型的 DDR 进行相应的初始化

如下图所示、需要 DDR 控制器发出 MRR 命令来读取制造商 ID API。 我要确认此 API 当前存在于 sdk7.1中吗? 我们需要您的支持

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

    在上述补充信息之后、我尝试使用 LPDDR4_GetMmrRegister 接口读取 DDR 制造商 ID、但未成功。 理论上、该接口应支持读取 DDR 制造商 ID。 我不确定我是否使用了错误的接口或接口本身是否有问题

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

    您好、 TI 的专家:

    期待您的更新!

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

    您好!

    1) 1)该部分驱动程序未由 TI 测试(因为未使用)。 但是、一位同事告诉我、模式寄存器读取函数有一个错误。

    2) 2)无论上面的#1如何、SDK 都不支持多种配置。  

    此致、
    Kevin

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

    大家好、Kevin S

    我不理解您上面的第二点#2。 通常,它应支持读取 DDR 制造商 ID 的能力。 这也是业内常见的应用。 我已验证 TI SDK 是否存在问题。 您能帮助解决这个问题吗?

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

    您好 Kevins:

    我不理解您上面的第二点#2。 通常,它应支持读取 DDR 制造商 ID 的能力。 这也是业内常见的应用。 我已验证 TI SDK 是否存在问题。 您能帮助解决这个问题吗?

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

    Kevin、

    我认为这里的请求只是为了获取"DDR 制造商 ID。  "且不适用于多个配置。 是否有方法从 SBL 读取 DDR 制造商 ID?

    -凯尔西

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

    您好 Keerthy:

    我对您有什么看法、您是否也是 TI 的工程师? 我们百度酒店需要您的帮助来解决这个问题、这也有利于扩展 TDA4平台

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

    你好、基尔西、贾尼、

    [引用 userid="474888" URL"~/support/processors-group/processors/f/processors-forum/1111119/tda4vm-sdk7-1-ddr-api-from-baidu-company "]我们需要读取 SBL 中的 DDR 制造商 ID,然后针对该模型的 DDR 执行相应的初始化操作

    我将原请求解释为:

    步骤1)读取 LP4模式寄存器以获取制造商 ID

    步骤2)初始化 LP4

    我假设第1步的目的是让引导加载程序知道如何初始化 LP4 (在同一系统中使用多个不同存储器的情况下)。

    如果读取模式寄存器的目的只是提供信息、而不是用于确定如何对寄存器进行编程、则如果上述步骤相反、则可以支持读取 LP4模式寄存器。 (I.e、步骤1 =初始化 LP4; 步骤2 =读取 LP4模式寄存器)

    此致、
    Kevin  

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

    尊敬的 Kevin:

    我们的需求是如此
    步骤1)读取 LP4模式寄存器以获取制造商 ID
    步骤2)根据获得的制造 ID、初始化 LP4在行业中的相应常见应用、理论上可以实现、这也是 LP4供应商 Micron 提供的信息

    1:正如您所说的、如果上述步骤被逆转、这对我们来说就没有意义。 我们的目的是首先根据获得的 LP4制造商 ID 初始化该模型的 LP4。
    2:我认为可以在 LP4初始化之前读取 LP4的模式寄存器。 这只是一个读取操作、而不是 CONFIG。 我不明白为什么需要依赖 LP4初始化来读取 LP4模式寄存器。
    期待您的专业回答、谢谢

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

    您好、Jianye、

    不需要完全初始化、但为了使两个 IC 能够通信、必须执行一些初始化过程(在 DDRSS 和 LP4存储器内)。 这意味着我们需要触发 DDRSS 的硬件初始化例程(即使配置为执行最新/最简单的步骤)、然后才能发出 MRR。

    如前所述、我们在 SDK 中不提供任何支持来完成您想要执行的操作。 我是说这是不可能的,我说这不是我们今天支持的,目前没有计划在将来支持。  

    作为其他信息、我 不 同意您的请求只是"阅读行为"。  作为一个完整的解决方案、此请求需要对现有代码库进行重大代码更改、以便能够支持多种配置(因为您希望根据 LP4制造商 ID 配置寄存器)。 此外、我们需要研究支持 (有效) LP4存储器两个初始化的最佳方法(1个最简单的初始化、1个带有最终配置的初始化)。 我需要验证、但我的回忆是、与通过软件启动(当前不受支持)时相比、我们的一些培训算法在首次硬件初始化(当前受支持)期间触发时的行为可能不完全相同。  这是一个问题、因为我们尚未以这种方式测试/表征培训算法。  

    总而言之,我的回应不是可能或不可能的。 我的回答是说我们目前支持什么、我们不支持您的请求。  

    此致、
    Kevin

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

    Jianye、

    另一个注释是、如果您使用类似的存储器(例如、在数据总线宽度、列数、密度方面具有相同的底层架构)、则可能会在两个不同的存储器供应商之间使用单个配置、并且不需要读取 LP4制造商 ID。  

    此外、 可能还有其他解决方案(例如使用 EEPROM)可用作替代方案。 如果您有更多有关您希望在系统中使用的 DDR 器件型号(共享相同的二进制文件)的信息、以及有关需要不同存储器的原因的驱动因素、这可能有助于我们更好地了解问题和潜在解决方案。  

    出于我的理解、您能否评论一下您的项目的时间范围、该时间范围需要多个 DDR 器件型号的支持?

    谢谢、
    Kevin

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

    大家好、Kevin:


    根据 Scholz 和 Kevin 提供的 Uboot 补丁软件包、我将其移植到 SBL。 验证后、我可以获得 mMRValue、该值为0x1C001D、函数接口为 K3_LPDDR4_MRR,我不知道该值是否正确、请帮助确认

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

    您好!

    我已将补丁移植到 SBL。

    e2e.ti.com/.../0001_2D00_packages_2D00_ti_2D00_board_2D00_src_2D00_j721e_5F00_evm_2D00_board_5F00_ddr.c_2D00_Enable_2D00_L.patch

    请检查您的末尾并分享所读的值。 该补丁基于最新的8.2 SDK。

    此致、
    基尔西

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

    您好、Keerty:

    我选择将此补丁整合到基于 sdk7.2的验证中、并获得了几个关键数据、但我不确定结果是否正确、如下所示:

    请帮助确认

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

    您能否确认正在使用的 DDR 器件和运行的电路板?

    -凯尔西

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

    您好!

    将补丁附加到8.2 SDK U-Boot 存储库之上。 该补丁针对 Samsung 和 Micron 动态 DDR 检测和配置进行了测试。

    e2e.ti.com/.../0001_2D00_ram_2D00_k3_2D00_ddrss_2D00_Enable_2D00_dynamic_2D00_DDR_2D00_part_2D00_detection_2D00_confi.patch

    请百度查看补丁并确保满足最终目标。
    与此同时、TI 将在 SBL 上开发上述方法。

    注意:这只是8.2 SDK 之上的概念验证补丁。 有进一步优化的余地、目前支持2个 DDR 配置。
    三星/ Micron。

    此致、
    基尔西

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

    您好、Keerty:

    我验证的电路板是 Micron 的 DDR 电路板、但我不知道我读取的数据是 Micron、

    请帮助确认

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

    您好、Keerty:

    我们的产品最终基于 SBL、因此我想等待您基于 SBL 实施此解决方案。 我们 Baidu 将最终进行验证。 最后、我有一个问题。 我们的产品基于 sdk7.2。 我不确定集成是否有任何问题

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

    您好!

    我们完全了解最终产品使用 SBL 引导流程。 我正在努力获取 SBL 的功能。 这只是检查一下
    在 SPL 侧使用流校正的百度、同时我们还计划在 SBL 侧实施相同的设计。

    -凯尔西

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

    您好!

    这是一个有关8.2 RTOS SDK 的补丁。 具体如下:

    增加了动态检测 DDR 的支持。 而不是现在使用一个 DDR 配置
    有3个配置。

    1) 1)一种默认配置、我们通过该配置启动 DDR 来读取 MR5/6寄存器。
    2) 2)根据读取的值、决定选择 Micron 或 Samsung DDR。
    3) Config1对应于 Micron、而 config2对应于另一个。

    仅在具有 Micron DDR 的 J721e-EVM 上进行了测试。

    e2e.ti.com/.../0001_2D00_board_2D00_src_2D00_j721e_5F00_evm_2D00_board_5F00_ddr_2D00_Add_2D00_support_2D00_to_2D00_detect_2D00_.patch

    请您使用其他 DDR 器件进行测试、

    此致、
    基尔西

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

    您好、Keerty:

    我验证了此补丁、发现读取的 mmrValue 仍然为0、您验证此补丁是否正常? 您能否通过远程协助查看我的环境是否有问题

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

    您好!

    您可以共享 SBL 引导日志吗?

    以下是我们的测试日志:

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

    您好 Keerthy:

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

    您好、Keerty:

    您是否有任何进展?

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

    您好!

    从我们的角度来看、我们已经能够使用基于8.2的 SBL 在 Samsung 和 Micron DDR 上启动了。 通过查看日志、我们可以看到 PLL 未锁定。 您能否在基于默认 Micron DDR 的 TDA4板上尝试7.1上的图像? 这奏效了吗?

    -凯尔西

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

    您好、Keerty:

    我基于 micro DDR 卡和 sdk7.1对其进行了验证。 从结果可以看出、您提供的补丁程序不起作用。 否则、我们何时将举行远程会议以查看我的环境

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

    您好!

    请共享您在 SDK 7.1上移植的补丁。下周我们将在审核您的更改后进行调试调用。

    -凯尔西

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

    您好、Jianye、

    附加7.2 PSDK_RTOS 上的补丁:

    e2e.ti.com/.../0001_2D00_Add_2D00_support_2D00_to_2D00_detect_2D00_DDR_2D00_dynamically._2D00_Instead_2D00_of_2D00_us.patch

    日志:

    SBL 修订版本:01.00.10.00 (2022年9月 2日- 09:50:52)
    TIFS 版本:20.8.5-v2020.08b (极好的 LLA
    Board_DDRInit:使用默认配置进行初始化...
           DDR_freq0 = 27500000
           DDR_freq1 = 533000000
           DDR_freq2 = 533000000
           DDR_FHS_cnt = 10
    --> LPDDR4初始化正在进行... <<<--
    -->频率更改请求握手已完成... <<<--
           正在检测连接的 LP4存储器...
           正在读取 MR5...Rank0 MR5
           通道 A:0xFF
           通道 B:0xFF
    MR5=0xff
           内存与配置1匹配!
    Board_DDRInit:使用最终配置(1)进行初始化...
           DDR_freq0 = 27500000
           DDR_freq1 = 1066500000
           DDR_freq2 = 1066500000
           DDR_FHS_cnt = 10
    --> LPDDR4初始化正在进行... <<<--
    -->频率更改请求握手已完成... <<<--

    请尝试使用 MMC-SD 引导模式、并告诉我这是否适用于您的 Micron DDR。


    -凯尔西

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

    您好 Keerthy:

    我更换了另一个微型 DDR 板卡进行测试。 基于 sdk7.2的 SD 启动 SBL 验证。 验证日志如下图所示

    我需要您的远程在线帮助、谢谢

    (笑声)

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

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

    SBL ptach 现在正在与百度合作。 我们可以关闭它吗?

    -凯尔西