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-Q1:SDL v1.0 BIST 模块使用和 MCU2_1问题

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1214528/tda4vm-q1-sdl-v1-0-bist-module-usage-and-mcu2_1-problem

器件型号:TDA4VM-Q1

您好!  

我正在尝试使用 PDK 0805中的 SDL v1.00在基于 J721e 的系统上设置 BIST。

借助提供的 BIST 示例和测试、我发现示例与测试之间在 BIST 实施方面存在一些差异。

在 pbist 和 lbist 的测试文件夹中、这两个文件夹对于序列板 init--> osal init -->对所有实例运行 BIST 测试(pbist 为15、lbist 为6)-->恢复。

但在 BIST 示例中、定义了三个引导阶段、并将所有实例的 BIST 测试分布到这三个引导阶段。 因此、这些 BIST 实例是按照 SDL 指南中提到的特定顺序执行的:

第0阶段:

  • 主脉冲发生器0的 PBIST 负测试和正测试

  • 主脉冲发生器0的 LBIST 测试

第1阶段:

  • 主脉冲发生器1、C7x、C66x、VPAC 和 DMPAC 的 PBIST 负测试和正测试

  • 主脉冲发生器1、C7x、VPAC、DMPAC 的 LBIST 测试

第2阶段:

  • 针对 A72、HC、编码器和解码器的 PBIST 负测试和正测试

  • 针对 A72的 LBIST 测试

为什么 BIST 示例这么做? 内核/ IP 之间是否存在任何依赖关系? 我能否简单地实现 PBIST/LBIST、方法是像所示的 pbist/lbist 测试源那样逐一运行所有 BIST 实例?

此外、在所有 其他内核都可以运行之前、我会作为系统上 SBL 的一部分为所有实例运行 pbist。 所有 pbist 测试均已通过并返回、但之后系统无法正常启动。 调试之后、在设置 MCU2_1 (主域 R5F core1) ATCM 时、我可以看到下面中报告了总线错误:

在 pbist 之后(对于 MCU2_0成功)、似乎将0xFF 设置为 MCU2_1 ATCM 的操作被拒绝。 如果我跳过 MCU2_0/MCU2_1的 pbist 并运行其他 pbist 实例、则系统可以正常启动。 为什么会发生这种情况?  

感谢您的耐心等待。

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

    我咨询了负责引导管理器的助理、发现指南中提到了这3个引导阶段、但在什么情况下 SDL BIST 会考虑这些启动阶段?  

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

    您好!

    规范

    但在 BIST 示例中、定义了三个引导阶段、并且所有实例的 BIST 测试都分布到这三个引导阶段。 因此、这些 BIST 实例是按照 SDL 指南中提到的特定顺序执行的:"

    BIST 测试是插入式的、因此、正在进行 BIST 测试的 H/W 模块不能用于其他目的。   SDL 示例提供的分阶段方法允许对希望在引导流程中比其他模块更早可用的 H/W 模块进行优先级排序。  在引导流程的较早阶段、BIST 测试在模块上运行、较早的时候、H/W 模块 可以  通过复位释放。

    "examples"目录是用于与 SDK SBL 引导流程集成的目录。

    此致、

    KB

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

    尊敬的 Kb:

    感谢您的答复。

    据我所知、BIST 需要在硬件实际运行任何程序之前完成、因此可以确保硬件在加载任何程序之前完成其 BIST、不一定遵循示例中定义的引导阶段、对吗?

    如果可能、我可以在一开始运行所有 BIST (MCU R5F 除外)。

    "examples"目录是用于与 SDK SBL 引导流程集成的目录。

    我看到、在与 SDK SBL 引导流程集成时、它应该像 pre-boot HW running -> boot stage1 BIST-> boot stage1 HW running -> boot stage2 BIST-> boot stage2 HW running……

    但是、为什么我们不能在很早的阶段全部执行 BIST?

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

    您好!

    SDL 中提供的示例代码就是这样的一个示例。  定制需要满足特定产品的需求。  例如、在所有可能的情况下、并非所有 BIST 都需要运行、在这种情况下未使用的 H/W 模块不需要对其运行 BIST。   同样、可以根据需要更改 BIST 测试的运行顺序。

    在运行任何程序之前运行所有需要的 BIST 的方法没有任何错误。   

    设置中的示例代码为以下各项提供了"框架":

    • 预引导阶段-在设置主域资源之前运行 BIST 测试
    • Boot_stages -能够在引导的不同阶段运行 BIST 测试。

    有关这方面的一些文档  5.8. BIST 安全示例—软件诊断库(SDL)- J721E 用户指南。   这样一来、当前正在设置示例代码时、主域 MCU2_0在第0阶段之后、在运行其余的 BIST 测试之前可以启动并运行、 前提是 MCU2_0上运行的代码未使用从 MCU 域 MCU1_0进行 BIST 测试的任何 H/W 模块。   

    此致、

    KB