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.

[参考译文] TMDS64EVM:TMDS64EVM:如何在 SBL 中的 PBIST 之后加载固件

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1654841/tmds64evm-tmds64evm-how-to-load-firmware-after-pbist-in-sbl

器件型号: TMDS64EVM

大家好、TI 专家。

我仅对 SBL 中的 R5F1 实现了 PBIST 执行、并确认 PBIST 本身可以正确运行。
但是、在执行 PBIST 后、当我尝试在不执行系统复位的情况下将固件加载到 R5F1-1 时、该过程会在 Bootloader_loadCpu () 处冻结、特别是在 Bootloader_soccpuPowerOnReset () 处。


相关代码如下所示:

 

int32_t Bootloader_loadCpu (Bootloader_Handle 句柄、Bootloader_Cpu * cpuinfo)
{
   int32_t 状态= SystemP_Success;

   Status = Bootloader_soccpuRequest (cpuinfo->CPUID);

   Status = Bootloader_soccpuSetClock (cpuinfo->CPUID、cpuinfo->clkHz);

   if (SystemP_Success == status)
   {
       Bootloader_Config *配置=(Bootloader_Config *) 句柄;
       Status = Bootloader_soccpuPowerOnReset (cpuinfo->CPUID、config->socCoreOpMode);
   }

   if (SystemP_Success == status)
   {
       if (cpuinfo->rprcOffset != bootloader_invalid_ID)
       {
           状态= Bootloader_rprcImageLoad (handle、cpuinfo);
       }
   }
   返回状态;
}

 


环境:
- AM64x 工业通信 SDK 11.00.00.13

PBIST 配置:
-基于以下 E2E 主题中共享的 PBIST_SBL_Example.zip:
 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1609245/tmds64evm-how-to-run-pbist-in-sbl
-修改为仅执行 Pulsar 实例 1.
-启用 PBIT_RunTest() 部分(未注释)

问题:
在一个内核上执行 PBIST 后、在不执行完全系统复位的情况下、加载固件并在该内核上开始执行的正确过程是什么?

此致、  
Ryuhei Kawabata

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

    尊敬的 Ryuhei-San:

    对延迟深表歉意。

    [报价 userid=“703925“ url=“~/support/processors-group/processors/f/processors-forum/1654841/tmds64evm-tmds64evm-how-to-load-firmware-after-pbist-in-sbl

    在一个内核上执行 PBIST 后、在不执行完全系统复位的情况下、加载固件并在该内核上开始执行的正确过程是什么?

    [/报价]

    在 PBIST 测试后、R5F 内核是否断电? 您可以在 PBIST 测试完成后检查 R5F 内核的状态吗?  

    此致、

    Nihar Potturu

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

    你好、Potturu-san、

    PBIST 测试后、我们不会关闭 R5F 内核。
    这是否意味着我们需要关闭一次器件电源才能在 PBIST 测试后加载固件?

    此外、您能否说明一下“ R5F 内核的状态“是什么意思?
    很抱歉、我不完全了解您希望我们检查哪些特定条件或参数。

    为了便于参考、目前正在通过启用(取消注释)以下代码来执行 PBIST 测试
    /*执行 PBIST_test_func.c 中的 PBIST_SBL_example.zip(在原始样本中注释掉)辅助恢复函数。

    此致、
    Ryuhei Kawabata

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

    尊敬的 Ryuhei-San:

    这是否意味着我们需要关闭一次器件电源才能在 PBIST 测试后加载固件?

    是的、一旦 PBIST 测试完成、建议在加载固件之前将由 PBIST 测试的模块断电、使这些模块处于干净状态。

    [报价 userid=“703925“ url=“~/support/processors-group/processors/f/processors-forum/1654841/tmds64evm-tmds64evm-how-to-load-firmware-after-pbist-in-sbl/6399342
    很抱歉、我不完全了解您希望我们检查哪些特定条件或参数。

    您能在 PBIST 测试之后检查下面寄存器的值吗?

    0x400870

    这将在 PBIST 测试之后告诉我们 R5F 1-1 内核的电源状态。  

    此致、

    Nihar Potturu

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

    你好、Potturu-san、

    我检查了 0x400870 的值、结果是 0x00000A00。
    该值在 PBIST 执行之前和之后没有变化。

    输出日志:

    在 PBIST 之前:
    PSC_mdstat (0x400860)= 0x00011F03
    PSC_mdstat (0x400864)= 0x00011F03
    PSC_mdstat (0x40086C)= 0x00000A00
    PSC_mdstat (0x400870)= 0x00000A00

    < PBIST (PULSAR1) 执行>

    在 PBIST 之后:
    PSC_mdstat (0x400860)= 0x00011F03
    PSC_mdstat (0x400864)= 0x00011F03
    PSC_mdstat (0x40086C)= 0x00000A00
    PSC_mdstat (0x400870)= 0x00000A00

    因此、在 PBIST 测试之前和之后、电源状态似乎没有变化。

    此致、
    Ryuhei Kawabata