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.

[参考译文] TDA4VH-Q1:重复加载和验证 tifs.bin 两次将失败。

Guru**** 2556590 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1286131/tda4vh-q1-repeatedly-loading-and-verifying-tifs-bin-twice-will-fail

器件型号:TDA4VH-Q1

大家好。

   我想做一些关于在 SBL 中加载 tifs.bin 的测试。

   我正在使用 SDK8.6,下面是我的测试步骤:

  1. 将 tifs.bin    分别刻录到 OSPI 闪存地址0x80000U 和0x480000U。

    在 0x80000U 处 存储已损坏的 tifs.bin 文件。

    在  0x480000U μ,处、会存储一个完整的 tifs.bin 文件。

  2.修改 lds 脚本。

   OCMRAM_SBL_SYSFW (RWIX):origin=0x41C70000 length=0x28000
   OCMRAM_SBL_SYSFW_B (RWIX):origin=0x41C98000 length=0x28000

    

   .firmware:{}palign (8)> OCMRAM_SBL_SYSFW

  .firmware_b:{}palign (8)> OCMRAM_SBL_SYSFW_B

  3. 请参阅 SBL_ReadSysfwImage,在 OSPI 闪存中两个不同地址处读取 tifs.bin。

    #define OSPI_OFFSET_SYSFW (0x80000U)
    #define OSPI_OFFSET_SYSFW_BACK (0x480000U)

    ReadSysfw Image_Test (void **pbuffer, void **pbuffer_b,uint32_t num_Bytes)

    {

      .........

      ...........

      SBL_SysFwLoad ((void *)(* pbuffer)、(void *)(ospi_cfg.dataAddr + OSPI_OFFSET_SYSFW)、num_Bytes);
      SBL_SysFwLoad ((void *)(* pbuffer_b)、(void *)(ospi_cfg.dataAddr + OSPI_OFFSET_SYSFW_Back)、num_Bytes);

      .........................................................................

    }

  4.   修改  SBL_SciClientInit (uint32_t devGroup)。

    void SBL_SciClientInit (uint32_t devGroup)
    {
        int32_t status = CSL_EFAIL;
        void * sysfw_ptr = gSciclient_firmware;
        void * sysfw_ptr_b = gSciclient_firmware_b;

        四、决定草案.

        *……

       

       

       
       
       
      
         
      
         
       

          
          
          
          
             
                
            
                
            
              
           
        

       

        

    

  

     

   

     

    

…… Status = ReadSysfw Image_Test (&sysfw_ptr、&sysfw_ptr_b、SBL_SYSFW_MAX_SIZE); *………… 状态= Sciclient_loadFirmware ((const uint32_t *) sysfw_ptr); if (status!= CSL_PASS) { #if defined (SOC_J721E)|| defined (SOC_J7200)|| defined (SOC_J721S2)|| defined (SOC_J784S4) SBL_log (SBL_LOG_ERR、"TIFS 加载失败..."); #else SBL_log (SBL_LOG_ERR、"SYSFW 加载失败..."); #endif SBL_log (SBL_LOG_ERR、"返回 TIFS 加载...\n"); 状态= Sciclient_loadFirmware (((const uint32_t *) sysfw_ptr_b); if (status!= CSL_PASS) { #if defined (SOC_J721E)|| defined (SOC_J7200)|| defined (SOC_J721S2)|| defined (SOC_J784S4) SBL_log (SBL_LOG_ERR、"返回 TIFS 加载失败\n"); #else SBL_log (SBL_LOG_ERR、"SYSFW 加载失败..."); #endif SblErrLoop (__FILE__、__LINE__); } } …………… 四、. } 5.预期结果: 分别从 OSPI 闪存的两个地址中读出 tifs.bin 到指定的缓冲区。 加载并验证第一个缓冲区的 tifs.bin、该操作失败。 然后加载并验证第二个缓冲区的 tifs.bin。 系统成功启动。 6、实际结果 在加载第一个缓冲区的 tifs.bin 并验证失败后、我尝试加载并验证第二个缓冲区的 tifs.bin、程序卡在 Sciclient_loadFirmware 中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    猜、可能需要复位。 请在内部与团队核实、我们会在2天内与您联系。

    此致、
    帕尔特

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

    好的、感谢 U。

    也就是说、tifs.bin 已加载并验证两次。 第一次加载损坏的 tifs.bin 文件、第二次加载完整的 tifs.bin 时、它将卡在  Sciclient_loadFirmware 中。

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

    您好,

    您是否有最新答案?

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

    您好

    如果有任何新消息、请通知我

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

    您好

    如果有任何新消息、请通知我

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

    您好!

    很抱歉延迟回复。

    我们从未在我们方面验证过这一点。 您能否说明一下您的具体用例、我们可能会根据这些用例提供更具针对性的建议。

    此外、您能否准确地在 Sciclient_loadFirmware 中检查控件的卡住位置。

    此致、
    帕尔特

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

    您好!

      我很抱歉这么晚才回复,因为我一直忙于其他事情。

      1. 我使用 CCS 进行调试、发现程序卡在 while ((HW_RD_REG32 (Sciclient_threadStatusReg (rxThread))和 CSL_SEC_proxy_RT_thread_STATUS_CUR_CNT_MASK)= 0u){WAIT_cn++;}

       

    2. 用例

      升级该计划时也会重写 tifs.bin。 为了防止刷新 titifs.bin,系统无法引导。 我们希望实现 tifs.bin 文件的冗余加载。

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

    您有什么需要告诉我们的新信息吗?

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

    您有什么需要告诉我们的新信息吗?

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

    您有什么需要告诉我们的新信息吗?

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

    您好!

    对此深表歉意。

    我使用 CCS 进行调试并发现程序卡在 时间((HW_RD_REG32 (Sciclient_threadStatusReg (rxThread))& CSL_SEC_PROXT_RT_THREAD_STATUS_CUR_CNT_MASK)== 0U){WAIT_CCNT+;]

    我将检查它并返回。
    另外、您能否也解释一下预期的流程? 那么、如果我的理解是正确的、您正在计划实施 OTA 类型的功能、在那里可以正确地升级 SBL 和 tifs?  

    所以既可以是 SBL 更新、也可以是 tifs 更新、两者都可以?

    此致、
    帕尔特

    PS->我将一个回复错误地标记为"TI 认为已解决"、请忽略此问题。

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

    是的,您是对的。

    我计划实施 OTA 类型的功能、并 想升级 SBL 和 tifs。

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

    您有什么需要告诉我们的新信息吗?

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

    您有什么需要告诉我们的新信息吗?

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

    您有什么需要告诉我们的新信息吗?