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:有关"numRams/memconfig.readable/RAT register"在 SDL ECC 中的一些问题

Guru**** 2584505 points
Other Parts Discussed in Thread: TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1129212/tda4vm-some-questions-about-numrams-memconfig-readable-rat-register-in-sdl-ecc

器件型号:TDA4VM

1. numRams 为0

我将参数"SDL_ECC_MEMTYPE_MCU_CBASS_ECC_aggr0、&ECC_Test_MCUCBASSECInitConfig"传递给函数 SDL_ECC_init、它成功且 numRams 等于 115、但同样地传递了其他 ECC ARRG 、它们失败且 numRams 等于0。

从 函数 SDL_ECC_aggrGetNumRams 中读取寄存器 numRams、该函数的路径为"SDL/src/IP/ECC/V1/SDL_IP_EC.c"。  代码如下第 473行所示:

 462 /**
 463  * Design: PROC_SDL-1186,PROC_SDL-1187
 464  */
 465 int32_t SDL_ecc_aggrGetNumRams(const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t *pNumRams)
 466 {
 467     int32_t    retVal = SDL_EBADARGS;
 468
 469     if ( pEccAggrRegs != NULL_PTR )
 470     {
 471         if (pNumRams  != NULL_PTR)
 472         {
 473             *pNumRams = (uint32_t)SDL_REG32_FEXT(&pEccAggrRegs->STAT, ECC_AGGR_STAT_NUM_RAMS);
 474              retVal   = SDL_PASS;
 475         }
 476     }
 477     /* Return the API success/fail with value in the address provided by caller */
 478     return (retVal);
 479 }

大多数 ECC 寄存器将失败、请参阅以下代码及其注释

static struct ecc_st ecc_array[] = {
    {SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR, &ECC_Test_A72SS0_COMMON_ECCInitConfig}, // failed 96 numRams = 0
    {SDL_COMPUTE_CLUSTER0_A72SS0_CORE0_ECC_AGGR, &ECC_Test_A72SS0_CORE0_ECCInitConfig}, // failed 96 numRams = 0
    {SDL_COMPUTE_CLUSTER0_A72SS0_CORE1_ECC_AGGR, &ECC_Test_A72SS0_CORE1_ECCInitConfig}, // failed 96 numRams = 0

    {SDL_COMPUTE_CLUSTER0_C71SS0_ECC_AGGR, &ECC_Test_C71SS0_ECCInitConfig}, // failed 102 numRams = 0

    {SDL_PCIE0_ECC_AGGR_CORE_0, &ECC_Test_PCIE0_ECCInitConfig}, // failed 29 MPU falut_type:1 falut_addr:0x2a0000c
    {SDL_PCIE0_ECC_AGGR_CORE_AXI_0, &ECC_Test_PCIE0_ECCInitConfig}, // failed 30 MPU falut_type:1 falut_addr:0x2a0100c numRams = 0
    {SDL_PCIE1_ECC_AGGR_CORE_0, &ECC_Test_PCIE1_ECCInitConfig}, // failed 31 MPU falut_type:1 falut_addr:0x2a0200c
    {SDL_PCIE1_ECC_AGGR_CORE_AXI_0, &ECC_Test_PCIE1_AXI_0_ECCInitConfig}, // failed 32 MPU falut_type:1 falut_addr:0x2a0300c
    {SDL_PCIE2_ECC_AGGR_CORE_0, &ECC_Test_PCIE2_ECCInitConfig}, // failed 33 MPU falut_type:1 falut_addr:0x2a0400c
    {SDL_PCIE2_ECC_AGGR_CORE_AXI_0, &ECC_Test_PCIE2_AXI_0_ECCInitConfig}, // failed 34 MPU falut_type:1 falut_addr:0x2a0500c
    {SDL_PCIE3_ECC_AGGR_CORE_0, &ECC_Test_PCIE3_ECCInitConfig}, // failed 35 MPU falut_type:1 falut_addr:0x2a0600c
    {SDL_PCIE3_ECC_AGGR_CORE_AXI_0, &ECC_Test_PCIE3_AXI_0_ECCInitConfig}, // failed 36 MPU falut_type:1 falut_addr:0x2a0700c

    {SDL_R5FSS0_CORE0_ECC_AGGR, &ECC_Test_R5FSS0_CORE0_ECCInitConfig}, // success numRams = 36

    {SDL_ECC_MEMTYPE_MCU_CBASS_ECC_AGGR0, &ECC_Test_MCUCBASSECCInitConfig}, // success type 13, numRams = 115
    {SDL_ECC_MEMTYPE_MAIN_MSMC_AGGR0, &ECC_Test_MAINMSMCA0ECCInitConfig}, // failed 93 numRams = 0
    {SDL_MCU_I3C0_I3C_P_ECC_AGGR, &ECC_Test_MCU_I3C0_P_ECCInitConfig}, // failed 39 numRams = 4 MPU: Data Abort exception!!
    {SDL_I3C0_I3C_S_ECC_AGGR, &ECC_Test_I3C0_S_ECCInitConfig}, // failed 37 numRams = 4 MPU: Data Abort exception!!
};

memconfig.readable 为0

PCIe ECC 测试 SDL_PCIE0_ECC_aggr_core_0延迟约5秒、Init 已通过测试。 但调用 SDL_ECC_C注入 错误时失败。

根据日志、ESM 中断未被触发。

static int32_t ECC_sdlFuncTest(void)
{
    int32_t result;
    int32_t retVal = 0;
    uint32_t maxTimeOutMilliSeconds = 10000;
    uint32_t timeOutCnt = 0;

    printf("\n\n ESM Safety Example tests: starting");

    if (retVal == 0)
    {
        result = ECC_Test_runECC1BitMSMCParityInjectTest();
        if (result == SDL_PASS)
        {
            printf("\n\n Waiting for ESM Interrupt \n\n");
            do
            {
                /* dummy wait for the interrupt */
                SDL_OSAL_delay(SDL_DELAY_US);;
                timeOutCnt += 10;
                if (timeOutCnt > maxTimeOutMilliSeconds)
                {
                    printf("Ruifeng %s %d timeOutCnt = %d maxTimeOutMilliSeconds = %d esmError = %d break;\n", __func__, __LINE__, timeOutCnt, maxTimeOutMilliSeconds, esmError);
                    result = SDL_EFAIL;
                    break;
                }
            } while (esmError == false);
        }
        if(result == SDL_PASS){
            printf("\n\n Memory Parity Error Test Complete \n\n");
            esmError = false;
        }

        if (result != SDL_PASS) {
            retVal = -1;
            printf("\n\n Memory Parity Error Test has failed...");
        }
    }

以上代码将输出日志:

Ruifeng ECC_sdlFuncTest 481 timeOutCnt = 10010 maxTimeOutMilliSeconds = 10000 esmError = 0 break;

通过添加一些日志、我在 PCIe ECC aggr 的函数 SDL_ECC_C注入 错误中发现 memconfig.readable 值等于0。

if ((retVal == SDL_PASS) && (memConfig.readable == (bool)true))

结果是以下代码无法执行、并且无法触发 ECC 事件和 ESM 中断。

        if ((retVal == SDL_PASS) && (memConfig.readable == (bool)true))
        {
            printf("Ruifeng %s %d retVal = %d pECCErrorConfig->pErrMem = 0x%x memConfig.memStartAddr = 0x%x\n", __func__, __LINE__, retVal, (uint32_t)pECCErrorConfig->pErrMem, memConfig.memStartAddr);
            if ( ((uintptr_t)pECCErrorConfig->pErrMem) < memConfig.memStartAddr) {
                retVal = SDL_EFAIL;
            } else {
                /* Calculate error offset */
                errAddrOffset =  ((uintptr_t)pECCErrorConfig->pErrMem - memConfig.memStartAddr)
                                / (memConfig.stride);
                printf("Ruifeng %s %d retVal = %d errAddrOffset = %d\n", __func__, __LINE__, retVal, errAddrOffset);
            }

            if (retVal == SDL_PASS) {
                /* Set error Address in ECC Wrapper RAM ID */
                sdlRetval = SDL_ecc_aggrWriteEccRamErrCtrlReg(eccAggrRegs,
                                                              ramId, 0u,
                                                              errAddrOffset);
                if (sdlRetval != SDL_PASS) {
                    retVal = SDL_EFAIL;
                }
            }
        }

3. RAT 不能映射内存。

我使用 RAT 将 ECC aggr“SDL_COMPACT_CLUSTER0_A72SS0_common_ecc_aggr”映射到 mcu3_0。 我读出 RAT 寄存器、它看起来正常工作、但无法映射存储器。  释放的代码如下所示:

MCU3_0上保留的存储器、用于 RAT 映射。

/* ========================================================================== */
/*                            Global Variables SDL Config                     */
/* ========================================================================== */

/* Note that this example provide a single instance of mappedEccRegs (which is RAT-mapped
 * ECC aggregator configuration registers that lie in larger address space than the 32-bit
 * address space on the MCU.  If more ECC aggregator registers need to be mapped, additional
 * global variables are needed for each set of aggregator registers, and SDL_ECC_init() needs
 * to be modified to make SDL_ECC_mapEccAggrReg() calls for each one that needs to be mapped.
 * The expectation is that this mapping will be retained in perpetuity because in order to obtain
 * information about the ECC errors, the ECC Aggregator configuration registers require to be
 * visible from the MCU. */
__attribute((section(".my_aggr_reg"))) uint8_t mappedEccRegs[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg1"))) uint8_t mappedEccRegs1[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg2"))) uint8_t mappedEccRegs2[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg3"))) uint8_t mappedEccRegs3[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg4"))) uint8_t mappedEccRegs4[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg5"))) uint8_t mappedEccRegs5[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg6"))) uint8_t mappedEccRegs6[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg7"))) uint8_t mappedEccRegs7[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg8"))) uint8_t mappedEccRegs8[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg9"))) uint8_t mappedEccRegs9[0x400] __attribute__ ((aligned (0x400)));
__attribute((section(".my_aggr_reg10"))) uint8_t mappedEccRegs10[0x400] __attribute__ ((aligned (0x400)));

RAT 转换函数

void* SDL_TEST_addrTranslate(uint64_t addr, uint32_t size)
{
    void * ret = (void *)(-1);
    CSL_RatTranslationCfgInfo translationCfg;
    uint32_t transAddr = (uint32_t)(-1);
    uint32_t index = 0;
    bool result;

    printf("rat version = %d\n", CSL_ratGetRevision((CSL_ratRegs *)PBIST_RAT_CFG_BASE));

    printf("Ruifeng %s %d input addr = 0x%llx\n", __func__, __LINE__, addr);
    if ((addr == SDL_COMPUTE_CLUSTER0_C71SS0_PBIST_BASE) ||
        (addr == SDL_COMPUTE_CLUSTER0_A72SS0_PBIST0_BASE) ||
        (addr == SDL_C66SS0_VBUSP_CFG_PBISTCFG_BASE) ||
        (addr == SDL_C66SS1_VBUSP_CFG_PBISTCFG_BASE) ||
        (addr == SDL_COMPUTE_CLUSTER0_MSMC_PBIST_BASE) ||
        (addr == SDL_COMPUTE_CLUSTER0_MSMC_PBIST_BASE))
    {
        /* Disable RAT translation */
        result = CSL_ratDisableRegionTranslation((CSL_ratRegs *)PBIST_RAT_CFG_BASE,
                                                 PBIST_RAT_REGION_INDEX);
        transAddr = (uint32_t)0x60000000;
        index = PBIST_RAT_REGION_INDEX;
    }
    else
    {
        /* Currently, below aggregators configuration registers can be
         * mapped by this code.  To expand to other aggregators, additional
         * instances of "mappedEccRegs" are needed and should be mapped to
         * those additional aggregators. */
        switch(addr)
        {
            case SDL_COMPUTE_CLUSTER0_MSMC_ECC_AGGR0_BASE:
                transAddr = (uint32_t)mappedEccRegs;
                index = 1;
                break;
            case SDL_COMPUTE_CLUSTER0_MSMC_ECC_AGGR1_BASE:
                transAddr = (uint32_t)mappedEccRegs1;
                index = 2;
                break;
            case SDL_COMPUTE_CLUSTER0_MSMC_ECC_AGGR2_BASE:
                transAddr = (uint32_t)mappedEccRegs2;
                index = 3;
                break;
            case SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR_BASE:
                transAddr = (uint32_t)mappedEccRegs3;
                index = 4;
                break;
            case SDL_COMPUTE_CLUSTER0_A72SS0_CORE0_ECC_AGGR_BASE:
                transAddr = (uint32_t)mappedEccRegs4;
                index = 5;
                break;
            case SDL_COMPUTE_CLUSTER0_A72SS0_CORE1_ECC_AGGR_BASE:
                transAddr = (uint32_t)mappedEccRegs5;
                index = 6;
                break;
            case SDL_COMPUTE_CLUSTER0_ECC_AGGR_VBUS_BASE:
                transAddr = (uint32_t)mappedEccRegs6;
                index = 7;
                break;
            case SDL_COMPUTE_CLUSTER0_ECC_AGGR_CTL_BASE:
                transAddr = (uint32_t)mappedEccRegs7;
                index = 8;
                break;
            case SDL_COMPUTE_CLUSTER0_ECC_AGGR_CFG_BASE:
                transAddr = (uint32_t)mappedEccRegs8;
                index = 9;
                break;
            case SDL_COMPUTE_CLUSTER0_C71SS0_ECC_AGGR_BASE:
                transAddr = (uint32_t)mappedEccRegs9;
                index = 10;
                break;
            case SDL_R5FSS0_CORE0_ICACHE_BASE:
                transAddr = (uint32_t)mappedEccRegs10;
                index = 11;
                break;
            default:
                break;
        }
    }

    if (transAddr != (uint32_t)(-1))
    {
        /* Add RAT configuration to access address > 32bit address range */
        translationCfg.translatedAddress = addr;
        translationCfg.sizeInBytes = size;
        translationCfg.baseAddress = transAddr;

        printf("Ruifeng %s %d translationCfg.translatedAddress = 0x%llx transAddr = 0x%x size = 0x%x\n", __func__, __LINE__, translationCfg.translatedAddress, transAddr, size);
        /* Set up RAT translation */
        result = CSL_ratConfigRegionTranslation((CSL_ratRegs *)PBIST_RAT_CFG_BASE,
                                                 index, &translationCfg);

        printf("Ruifeng %s %d result = %s\n", __func__, __LINE__, result?"true":"false");
        if (result == (bool)true ) {
            ret = (void *)transAddr;
            CSL_ratRegs *pRatRegs = (CSL_ratRegs *)PBIST_RAT_CFG_BASE;

            int i;
            printf("Ruifeng %s %d CSL_REG32_RD(&pRatRegs->CONFIG) = 0x%x\n", __func__, __LINE__, CSL_REG32_RD(&pRatRegs->CONFIG));
            for (i = 0; i < 16; i++)
            {
                printf("Ruifeng %s %d REGION[%d] CTRL = 0x%x\n", __func__, __LINE__, i, CSL_REG32_RD(&pRatRegs->REGION[i].CTRL));
                printf("Ruifeng %s %d REGION[%d] BASE = 0x%x\n", __func__, __LINE__, i, CSL_REG32_RD(&pRatRegs->REGION[i].BASE));
                printf("Ruifeng %s %d REGION[%d] TRANS_L = 0x%x\n", __func__, __LINE__, i, CSL_REG32_RD(&pRatRegs->REGION[i].TRANS_L));
                printf("Ruifeng %s %d REGION[%d] TRANS_U = 0x%x\n", __func__, __LINE__, i, CSL_REG32_RD(&pRatRegs->REGION[i].TRANS_U));
            }

            for (i = 0; i < 0x400 / 4; i++)
            {
                    if (i % 50 == 0)
                            printf("\n[%04d] ", i);
                    printf("%02x ", *((uint32_t *)mappedEccRegs3 + i));
            }
            printf("\n");

        }
    }

    printf("Ruifeng %s %d transAddr = 0x%x\n", __func__, __LINE__, transAddr);

    return ret;
}

我使用了 ECC aggr "SDL_COMPACT_CLUSTER0_A72SS0_common_ecc_aggr"、内存地址为 SDL_COMPACT_CLUSTER0_A72SS0_common_ecc_aggr_BASE。

            case SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR_BASE:
                transAddr = (uint32_t)mappedEccRegs3;
                index = 4;
                break;

然后、我输出 RAT 寄存器并 使用上面第99行到第115行之间的代码映射存储器"mappedEccRegs3"。 再次连接。

            int i;
            printf("Ruifeng %s %d CSL_REG32_RD(&pRatRegs->CONFIG) = 0x%x\n", __func__, __LINE__, CSL_REG32_RD(&pRatRegs->CONFIG));
            for (i = 0; i < 16; i++)
            {
                printf("Ruifeng %s %d REGION[%d] CTRL = 0x%x\n", __func__, __LINE__, i, CSL_REG32_RD(&pRatRegs->REGION[i].CTRL));
                printf("Ruifeng %s %d REGION[%d] BASE = 0x%x\n", __func__, __LINE__, i, CSL_REG32_RD(&pRatRegs->REGION[i].BASE));
                printf("Ruifeng %s %d REGION[%d] TRANS_L = 0x%x\n", __func__, __LINE__, i, CSL_REG32_RD(&pRatRegs->REGION[i].TRANS_L));
                printf("Ruifeng %s %d REGION[%d] TRANS_U = 0x%x\n", __func__, __LINE__, i, CSL_REG32_RD(&pRatRegs->REGION[i].TRANS_U));
            }

            for (i = 0; i < 0x400 / 4; i++)
            {
                    if (i % 50 == 0)
                            printf("\n[%04d] ", i);
                    printf("%02x ", *((uint32_t *)mappedEccRegs3 + i));
            }
            printf("\n");

有关 RAT 问题的完整日志为:

[MCU3_0]      9.448673 s: enter Ecc_Task
[MCU3_0]      9.448730 s: Ruifeng sdl_ecc_init 609
[MCU3_0]      9.448789 s: Ruifeng i = 0 sizeof(ecc_array) = 1 ecc_array[i].ecc_type = 96
[MCU3_0]      9.448843 s: Ruifeng SDL_ECC_mapEccAggrReg 253
[MCU3_0]      9.448889 s: rat version = 1719677184
[MCU3_0]      9.448942 s: Ruifeng SDL_TEST_addrTranslate 99 input addr = 0x4d20010000
[MCU3_0]      9.449023 s: Ruifeng SDL_TEST_addrTranslate 177 translationCfg.translatedAddress = 0x4d20010000 transAddr = 0x2000 size = 0x210
[MCU3_0]      9.449112 s: Ruifeng SDL_TEST_addrTranslate 182 result = true
[MCU3_0]      9.449174 s: Ruifeng SDL_TEST_addrTranslate 188 CSL_REG32_RD(&pRatRegs->CONFIG) = 0x300210
[MCU3_0]      9.449241 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[0] CTRL = 0x0
[MCU3_0]      9.449304 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[0] BASE = 0x0
[MCU3_0]      9.449364 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[0] TRANS_L = 0x0
[MCU3_0]      9.449426 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[0] TRANS_U = 0x0
[MCU3_0]      9.449487 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[1] CTRL = 0x0
[MCU3_0]      9.449549 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[1] BASE = 0x0
[MCU3_0]      9.449610 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[1] TRANS_L = 0x0
[MCU3_0]      9.449682 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[1] TRANS_U = 0x0
[MCU3_0]      9.449749 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[2] CTRL = 0x0
[MCU3_0]      9.449813 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[2] BASE = 0x0
[MCU3_0]      9.449877 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[2] TRANS_L = 0x0
[MCU3_0]      9.449939 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[2] TRANS_U = 0x0
[MCU3_0]      9.450001 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[3] CTRL = 0x0
[MCU3_0]      9.450062 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[3] BASE = 0x0
[MCU3_0]      9.450123 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[3] TRANS_L = 0x0
[MCU3_0]      9.450184 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[3] TRANS_U = 0x0
[MCU3_0]      9.450245 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[4] CTRL = 0x8000000a
[MCU3_0]      9.450308 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[4] BASE = 0x2000
[MCU3_0]      9.450370 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[4] TRANS_L = 0x20010000
[MCU3_0]      9.450433 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[4] TRANS_U = 0x4d
[MCU3_0]      9.450493 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[5] CTRL = 0x0
[MCU3_0]      9.450554 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[5] BASE = 0x0
[MCU3_0]      9.450615 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[5] TRANS_L = 0x0
[MCU3_0]      9.450704 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[5] TRANS_U = 0x0
[MCU3_0]      9.450772 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[6] CTRL = 0x0
[MCU3_0]      9.450833 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[6] BASE = 0x0
[MCU3_0]      9.450893 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[6] TRANS_L = 0x0
[MCU3_0]      9.450954 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[6] TRANS_U = 0x0
[MCU3_0]      9.451016 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[7] CTRL = 0x0
[MCU3_0]      9.451076 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[7] BASE = 0x0
[MCU3_0]      9.451136 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[7] TRANS_L = 0x0
[MCU3_0]      9.451197 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[7] TRANS_U = 0x0
[MCU3_0]      9.451258 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[8] CTRL = 0x0
[MCU3_0]      9.451317 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[8] BASE = 0x0
[MCU3_0]      9.451377 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[8] TRANS_L = 0x0
[MCU3_0]      9.451437 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[8] TRANS_U = 0x0
[MCU3_0]      9.451499 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[9] CTRL = 0x0
[MCU3_0]      9.451559 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[9] BASE = 0x0
[MCU3_0]      9.451620 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[9] TRANS_L = 0x0
[MCU3_0]      9.451690 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[9] TRANS_U = 0x0
[MCU3_0]      9.451753 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[10] CTRL = 0x0
[MCU3_0]      9.451814 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[10] BASE = 0x0
[MCU3_0]      9.451876 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[10] TRANS_L = 0x0
[MCU3_0]      9.451938 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[10] TRANS_U = 0x0
[MCU3_0]      9.451999 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[11] CTRL = 0x0
[MCU3_0]      9.452063 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[11] BASE = 0x0
[MCU3_0]      9.452122 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[11] TRANS_L = 0x0
[MCU3_0]      9.452185 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[11] TRANS_U = 0x0
[MCU3_0]      9.452245 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[12] CTRL = 0x0
[MCU3_0]      9.452305 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[12] BASE = 0x0
[MCU3_0]      9.452365 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[12] TRANS_L = 0x0
[MCU3_0]      9.452426 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[12] TRANS_U = 0x0
[MCU3_0]      9.452486 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[13] CTRL = 0x0
[MCU3_0]      9.452546 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[13] BASE = 0x0
[MCU3_0]      9.452608 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[13] TRANS_L = 0x0
[MCU3_0]      9.452680 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[13] TRANS_U = 0x0
[MCU3_0]      9.452746 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[14] CTRL = 0x0
[MCU3_0]      9.452808 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[14] BASE = 0x0
[MCU3_0]      9.452868 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[14] TRANS_L = 0x0
[MCU3_0]      9.452930 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[14] TRANS_U = 0x0
[MCU3_0]      9.452992 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[15] CTRL = 0x0
[MCU3_0]      9.453052 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[15] BASE = 0x0
[MCU3_0]      9.453116 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[15] TRANS_L = 0x0
[MCU3_0]      9.453179 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[15] TRANS_U = 0x0
[MCU3_0]      9.453216 s:
[MCU3_0]      9.453476 s: [0000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[MCU3_0]      9.453787 s: [0050] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[MCU3_0]      9.454096 s: [0100] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[MCU3_0]      9.454403 s: [0150] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[MCU3_0]      9.454714 s: [0200] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[MCU3_0]      9.454817 s: [0250] 00 00 00 00 00 00
[MCU3_0]      9.454866 s: Ruifeng SDL_TEST_addrTranslate 208 transAddr = 0x2000
[MCU3_0]      9.454926 s: Ruifeng SDL_ECC_init 903 eccMemType = 96 Using RAT translate!
[MCU3_0]      9.454973 s: Ruifeng SDL_ECC_init 912
[MCU3_0]      9.455015 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1526
[MCU3_0]      9.455059 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1530
[MCU3_0]      9.455120 s: Ruifeng SDL_ecc_aggrToggleIntrsEnable 410 numRams = 0 sdlRet = 0
[MCU3_0]      9.455173 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1534
[MCU3_0]      9.455233 s: Ruifeng SDL_ecc_aggrToggleIntrsEnable 410 numRams = 0 sdlRet = 0
[MCU3_0]      9.455292 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1537 retVal = 0
[MCU3_0]      9.455347 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1539 retVal = 0

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

    尊敬的 KB:

    谢谢、您能给我一些建议吗。

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

    您好、Ruifeng、

      以下是对您的问题的回答、

     1   numRams 为0

      至于集成 在多核系统中的 ECC 聚合器、要获取正确的值、请查看以下列表

      A 供电?

      B 参数正确吗?

     C 测试 SDL 示例代码

    2   memconfig.readable 为0

      至于某些 ECC 聚合器不映射到总线、 它无法 直接访问。  

    3 RAT 用于32位内核访问大于32位地址的地址。 在 TDA4VM 系统中、它使用存储器映射将40位地址转换为32位地址。    您是 Clang 编译器的 sdk8.2的工作基础吗?

    林俊

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

    您好、林军、

    1。

    >  有源?

    如何对已经供电的 ECC aggr 进行稳定?

      根据我的理解、ECC aggr 的上电取决于它所属的域。 我在5秒后延迟了测试(启动释放的域的时间应该是多少,对吧?)。 某些 numRams 仍然等于0。

    2.

    >   B 参数正确吗?

    参数、这应该是正确的。 我可以与您分享一些代码、请帮助您进行检查。

    static SDL_ECC_MemSubType ECC_Test_A72SS0_COMMON_subMemTypeList[SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR_NUM_RAMS] =
    {
        SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR_L2_SNP_TAG_SPRAM_BANK0_ECC_SVBUS_RAM_ID,
        SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR_L2_SNP_TAG_SPRAM_BANK1_ECC_SVBUS_RAM_ID,
    };
    
    static SDL_ECC_InitConfig_t ECC_Test_A72SS0_COMMON_ECCInitConfig =
    {
        .numRams = SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR_NUM_RAMS,
        /**< Number of Rams ECC is enabled  */
        .pMemSubTypeList = &(ECC_Test_A72SS0_COMMON_subMemTypeList[0]),
        /**< Sub type list  */
    };
    
    static int32_t sdl_ecc_init(void)
    {
        ...
        result = SDL_ECC_init(SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR, &ECC_Test_A72SS0_COMMON_ECCInitConfig);
                if (result != SDL_PASS) {
                    /* print error and quit */
                     printf("SDTF_init: Error initializing R5F core ECC: result = %d ecc_type = %d\n\n", result, ecc_array[i].ecc_type);
        
                    retValue = -1;
                } else {
                    printf("\n\nSDTF_init: MCU ECC %d Init complete. \n\n", ecc_array[i].ecc_type);
                }
        ...
    }

    3.

    > C 测试 SDL 示例代码

    SDL 似乎仅在 MCU 域中的 MCU1_0上进行测试。 它不同于我在主域中的 mcu3_0上运行 ECC 测试的要求。

    >   由于某些 ECC 聚合器不映射到总线、 因此无法 直接访问。  

    我已经测试过 PCIe ECC aggr (memconfig.readable 为0), 是否未映射到总线?

    对于此问题、如果 memconfig.readable 等于0、我是否可以忽略释放的 ECC?

    4.  

    >  您是 Clang 编译器的 sdk8.2的工作基础吗?

    我在 SDK8.2上运行。

    在我的 opion 中、我们使用了 GCC 编译器。 如何确认使用的编译器? 我可以再次检查。

    BR。

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

    您好、 林军、

    请帮助遵循此主题、谢谢。

    另外 、我发现一些 ACC aggr 可以读取但无法写入、例如"SDL_CBASS_ECC_aggr0"。 但 某些 ACC aggr 无法再读取和写入。 例如"SDL_PCIE0_ECC_aggr_core_0"。

    我需要可以读取和写入 ACC aggr。 有什么建议吗?

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

    您好、Ruifeng、

      请您构建 ecc_func_app、 此应用程序可以测试所有 ECC 聚合器。  

      当您测试遇到的问题时、请在此处提供反馈。  至于您正在运行应用程序的基础、找到根本原因相当复杂。  

      谢谢。

    林俊

      

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

    您好、林军、

    首先需要声明 我们要在主域中的 MCU3_0上完成 ECC 测试、如果您认为我们的实现方法存在问题、请帮助指出。

    主域需要实现的 ECC aggr 包括:

    SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR,
    SDL_COMPUTE_CLUSTER0_A72SS0_CORE0_ECC_AGGR,
    SDL_COMPUTE_CLUSTER0_A72SS0_CORE1_ECC_AGGR,
    SDL_CBASS_ECC_AGGR0,
    SDL_CBASS_ECC_AGGR0_MSRAM32KX256E_ECC_AGGR,
    SDL_R5FSS0_CORE0_ECC_AGGR,
    SDL_R5FSS1_CORE0_ECC_AGGR,
    SDL_R5FSS0_CORE1_ECC_AGGR,
    SDL_R5FSS1_CORE1_ECC_AGGR,
    SDL_MSRAM_512K0_MSRAM16KX256E_ECC_AGGR,
    SDL_NAVSS_NBSS_ECC_AGGR0_NAVSS512L_NBSS_PHYS_ECC_AGGR,
    SDL_NAVSS_VIRTSS_ECC_AGGR0,
    SDL_NAVSS0_MODSS_ECC_AGGR0,
    SDL_NAVSS0_VIRTSS_ECC_AGGR0,
    SDL_NAVSS0_NBSS_ECC_AGGR0,
    SDL_PSRAMECC0_PSRAM256X32EC_ECC_AGGR,

    我们将 SDL 中的函数复制到 MCU3_0、并在 CPU 启动时运行这些函数。 当 MCU3_0引导时、它 将运行一个任务来完成 ECC 验证。 我的实施是否有任何问题?

    如果您需要、我可以与您共享代码。

    此外、您还提到了使用 ecc_func_app 程序测试。 我们遇到了一些问题。
    我们使用 CCS 调试器在 MCU 域中将 SDL/binary/ecc_func_app/bin/j721e/ecc_func_app_r5f_debug.xer5f 加载到 MCU1_0。 但它仅输出以下几行:

     a.连接到 MCU_Cortex_R5_0

     b.重置 CPU

     c.将二进制  ECC_func_app_r5f_debug.xer5f 加载到该 CPU,日志为:

     d.然后、单击"继续"按钮以运行此 CPU。 仅输出三行日志、如下所示:

    请检查操作是否有任何问题。

    此外、请提供一些关于 RAT 地址转换和 ECC 寄存器不能读/写问题的建议、这些问题是在此主题中提交的。  谢谢。

    BR、

    鲁伊丰

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

    您好、Ruifeng、

      如何直接与您联系?  我希望与您讨论这些问题。  

     谢谢。

    此致、

    林俊

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

    我知道、SDL 只能在 MCU R5F 上运行。

    不保证在其他内核上运行

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

    您好、林军、

    我已经使用 SDL 1.0在 EVM 板上测试了 ECC_FUNC_APPS 功能。 测试日志如下所示:

    e2e.ti.com/.../EVM_5F00_MCU_5F00_R5F_5F00_testresult.txt

    此日志显示了一些测试失败和一些问题:

    1) 1)从数字 93到103初始化的 AGTR 失败。

    2) 2)测试用例不执行子类型测试。

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

    您好、林军、

    请帮助检查 EVM 日志和问题、谢谢。

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

    您好、Ruifeng、

      我一侧的 EVM 日志如下所示、

     

    [15:31:49:582] ECC_Test_init:异常初始化完成

    [15:31:49:630]

    [15:31:49:630] ECC_Memory_init:[0] SDL_MCU_R5FSS0_CORE0_ECC_aggr ECC Init Complete

    [15:31:49:710]

    [15:31:49:710] ECC_Memory_init:[1] SDL_ECC_MEMCYPE_MCU_R5F1_CORE ECC Init Complete

    [15:31:49:775]

    [15:31:49:775] ECC_Memory_init:[2] SDL_MCU_ADC12C0_ADC12C_ADC12_CORE_FIFO_RAM_ECC_aggr ECC 初始化完成

    [15:31:49:870]

    [15:31:49:870] ECC_Memory_init:[3] SDL_MCU_ADC12C1_ADC12C_ADC12_CORE_FIFO_RAM_ECC_aggr ECC 初始化完成

    [15:31:49:967]

    [15:31:49:967] ECC_Memory_init:[4]由于丢失数据、跳过 SDL_ECC_MEMCYPE_CPSW0

    [15:31:50:047]

    [15:31:50:047] ECC_Memory_init:[5]由于缺少数据、跳过 SDL_ECC_MEMC_FSS0_HPB0

    [15:31:50:142]

    [15:31:50:142] ECC_Memory_init:[6]由于丢失数据、跳过 SDL_ECC_MEMC_FSS0_OSPI0

    [15:31:50:223]

    [15:31:50:223] ECC_Memory_init:[7]由于丢失数据、跳过 SDL_ECC_MEMCYPE_MCU_FSS0_OSPI1

    [15:31:50:302]

    [15:31:50:302] ECC_Memory_init:[8] SDL_ECC_MEMTYPE_MCU_MCAN0 ECC Init Complete

    [15:31:50:382]

    [15:31:50:382] ECC_Memory_init:[9] SDL_ECC_MEMTYPE_MCU_MCAN1 ECC Init Complete

    [15:31:50:446]

    [15:31:50:446] ECC_Memory_init:[10] SDL_ECC_MEMTYPE_MCU_MSRAM0 ECC Init Complete

    [15:31:50:527]

    [15:31:50:527] ECC_Memory_init:[11] SDL_ECC_MEMTYPE_MCU_NAVSS0 ECC Init 完成

    [15:31:50:591]

    [15:31:50:591] ECC_Memory_init:[12] SDL_ECC_MEMTYPE_MCU_PSRAM0 ECC Init Complete

    [15:31:50:670]

    [15:31:50:670] ECC_Memory_init:[13] SDL_ECC_MEMTYPE_MCU_CBASS_ECC_aggr0 ECC Init Complete

    [15:31:50:750]

    [15:31:50:750] ECC_Memory_init:[14] SDL_MCAN0_MCANSS_MSGMEM_wrap_ECC_aggr ECC 初始化完成

    [15:31:50:830]

    [15:31:50:830] ECC_Memory_init:[15] SDL_MCAN1_MCANSS_MSGMEM_wrap_ECC_aggr ECC 初始化完成

    [15:31:50:911]

    [15:31:50:927] ECC_Memory_init:[16] SDL_MCAN2_MCANSS_MSGMEM_wrap_ECC_aggr ECC 初始化完成

    [15:31:51:007]

    [15:31:51:007] ECC_Memory_init:[17] SDL_MCAN3_MCANSS_MSGMEM_wrap_ECC_aggr ECC 初始化完成

    [15:31:51:086]

    [15:31:51:086] ECC_Memory_init:[18] SDL_MCAN4_MCANSS_MSGMEM_wrap_ECC_aggr ECC 初始化完成

    [15:31:51:166]

    [15:31:51:166] ECC_Memory_init:[19] SDL_MCAN5_MCANSS_MSGMEM_wrap_ECC_aggr ECC 初始化完成

    [15:31:51:246]

    [15:31:51:246] ECC_Memory_init:[20] SDL_MCAN6_MCANSS_MSGMEM_wrap_ECC_aggr ECC 初始化完成

    [15:31:51:326]

    [15:31:51:342] ECC_Memory_init:[21] SDL_MCAN7_MCANSS_MSGMEM_wrap_ECC_aggr ECC Init Complete

    [15:31:51:422]

    [15:31:51:422] ECC_Memory_init:[22] SDL_MCAN8_MCANSS_MSGMEM_wrap_ECC_aggr ECC Init Complete

    [15:31:51:502]

    [15:31:51:502] ECC_Memory_init:[23] SDL_MCAN9_MCANSS_MSGMEM_wrap_ECC_aggr ECC Init Complete

    [15:31:51:582]

    [15:31:51:582] ECC_Memory_init:[24] SDL_MCAN10_MCANSS_MSGMEM_wrap_ECC_aggr ECC Init Complete

    [15:31:51:662]

    [15:31:51:662] ECC_Memory_init:[25] SDL_MCAN11_MCANSS_MSGMEM_wrap_ECC_aggr ECC Init Complete

    [15:31:51:758]

    [15:31:51:758] ECC_Memory_init:[26] SDL_MCAN12_MCANSS_MSGMEM_WOP_ECC_aggr ECC Init Complete

    [15:31:51:838]

    [15:31:51:838] ECC_Memory_init:[27] SDL_MCAN13_MCANSS_MSGMEM_wrap_ECC_aggr ECC Init Complete

    [15:31:51:918]

    [15:31:51:918] ECC_Memory_init:[28] SDL_MSRAM_512K0_MSRAM16KX256E_ECC_aggr ECC 初始化完成

    [15:31:51:998]

    [15:31:51:998] ECC_Memory_init:[29] SDL_PCIE0_ECC_aggr_core_AXI_0 ECC 初始化完成

    [15:31:52:078]

    [15:31:52:078] ECC_Memory_init:[30] SDL_PCIE0_ECC_aggr_core_0 ECC Init 完成

    [15:31:52:158]

    [15:31:52:158] ECC_Memory_init:[31] SDL_PCIE1_ECC_aggr_core_AXI_0 ECC 初始化完成

    [15:31:52:222]

    [15:31:52:222] ECC_Memory_init:[32] SDL_PCIE1_ECC_aggr_core_0 ECC Init 完成

    [15:31:52:302]

    [15:31:52:302] ECC_Memory_init:[33] SDL_PCIe2_ECC_aggr_core_AXI_0 ECC 初始化完成

    [15:31:52:366]

    [15:31:52:366] ECC_Memory_init:[34] SDL_PCIe2_ECC_aggr_core_0 ECC Init 完成

    [15:31:52:446]

    [15:31:52:446] ECC_Memory_init:[35] SDL_PCIe3_ECC_aggr_core_AXI_0 ECC 初始化完成

    [15:31:52:526]

    [15:31:52:526] ECC_Memory_init:[36] SDL_PCIe3_ECC_aggr_core_0 ECC 初始化完成

    [15:31:52:590]

    [15:31:52:590] ECC_Memory_init:[37] SDL_I3C0_I3C_S_ECC_aggr ECC 初始化完成

    [15:31:52:654]

    [15:31:52:654] ECC_Memory_init:[38] SDL_I3C0_I3C_P_ECC_aggr ECC 初始化完成

    [15:31:52:734]

    [15:31:52:734] ECC_Memory_init:[39] SDL_MCU_I3C0_I3C_P_ECC_aggr ECC 初始化完成

    [15:31:52:798]

    [15:31:52:798] ECC_Memory_init:[40] SDL_MCU_I3C0_I3C_S_ECC_aggr ECC 初始化完成

    [15:31:52:878]

    [15:31:52:878] ECC_Memory_init:[41] SDL_MCU_I3C1_I3C_P_ECC_aggr ECC Init Complete

    [15:31:52:942]

    [15:31:52:942] ECC_Memory_init:[42] SDL_MCU_I3C1_I3C_S_ECC_aggr ECC 初始化完成

    [15:31:53:022]

    [15:31:53:022] ECC_Memory_init:[43] SDL_PRU_ICSSG0_ICSS_G_CORE_Borg_ECC_aggr ECC 初始化完成

    [15:31:53:102]

    [15:31:53:102] ECC_Memory_init:[44] SDL_PRU_ICSSG1_ICSS_G_CORE_ECC_AGG ECC Init 完成

    [15:31:53:198]

    [15:31:53:198] ECC_Memory_init:[45] SDL_CBASS_ECC_aggr0 ECC Init 完成

    [15:31:53:262]

    [15:31:53:262] ECC_Memory_init:[46] SDL_MAIN_RC_ECC_aggr0 ECC Init 完成

    [15:31:53:326]

    [15:31:53:326] ECC_Memory_init:[47] SDL_NAVSS_NBSS_ECC_aggr0_NAVSS512L_NBSS_PHY_ECC_aggr ECC 初始化完成

    [15:31:53:438]

    [15:31:53:438] ECC_Memory_init:[48] SDL_DMPAC0_ECC_aggr ECC Init 完成

    [15:31:53:502]

    [15:31:53:502] ECC_Memory_init:[49] SDL_MAIN_HC_ECC_aggr0 ECC Init 完成

    [15:31:53:566]

    [15:31:53:566] ECC_Memory_init:[50] SDL_VPAC0_ECC_aggr ECC Init 完成

    [15:31:53:630]

    [15:31:53:630] ECC_Memory_init:[51] SDL_VPAC0_VISS_ECC_aggr ECC Init 完成

    [15:31:53:694]

    [15:31:53:694] ECC_Memory_init:[52] SDL_VPAC0_LDC_ECC_aggr ECC Init 完成

    [15:31:53:774]

    [15:31:53:774] ECC_Memory_init:[53] SDL_R5FSS0_CORE0_ECC_aggr ECC 初始化完成

    [15:31:53:838]

    [15:31:53:838] ECC_Memory_init:[54] SDL_R5FSS1_CORE0_ECC_aggr ECC 初始化完成

    [15:31:53:918]

    [15:31:53:918] ECC_Memory_init:[55]目前正在跳过 SDL_R5FSS0_Core1_ECC_aggr

    [15:31:53:982]

    [15:31:53:982] ECC_Memory_init:[56]目前正在跳过 SDL_R5FSS1_Core1_ECC_aggr

    [15:31:54:046]

    [15:31:54:062] ECC_Memory_init:[57] SDL_NAVSS_VIRTSS_ECC_aggr0 ECC Init Complete

    [15:31:54:126]

    [15:31:54:126] ECC_Memory_init:[58]由于缺少数据、跳过 SDL_CBASS_ECC_aggr0_MSRAM32KX256E_ECC_aggr

    [15:31:54:222]

    [15:31:54:222] ECC_Memory_init:[59]目前正在跳过 SDL_MCU_SA2_UL0_SA2_UL_SA2_UL_ECC_aggr

    [15:31:54:302]

    [15:31:54:318] ECC_Memory_init:[60] SDL_SA2_UL0_SA2_UL_SA2_UL_ECC_aggr ECC 初始化完成

    [15:31:54:382]

    [15:31:54:398] ECC_Memory_init:[61] SDL_MLB0_MLBSS2P0_MLBDIM_wrap_ECC_aggr ECC Init Complete

    [15:31:54:478]

    [15:31:54:478] ECC_Memory_init:[62] SDL_MAIN_AC_ECC_aggr0 ECC Init 完成

    [15:31:54:542]

    [15:31:54:542] ECC_Memory_init:[63] SDL_WKUP_VTM0_K3VTM_NC_ECCAGGR ECC Init Complete

    [15:31:54:622]

    [15:31:54:622] ECC_Memory_init:[64] SDL_MMCSD0_EMMC8SSC_ECC_aggr_RXMEM ECC Init Complete

    [15:31:54:702]

    [15:31:54:702] ECC_Memory_init:[65] SDL_MMCSD0_EMMC8SSC_ECC_aggr_TXMEM ECC Init Complete

    [15:31:54:782]

    [15:31:54:782] ECC_Memory_init:[66] SDL_MMCSD1_EMMCSD4SS_ECC_aggr_RXMEM ECC Init Complete

    [15:31:54:862]

    [15:31:54:862] ECC_Memory_init:[67] SDL_MMCSD1_EMMCSD4SS_ECC_aggr_TXMEM ECC Init 完成

    [15:31:54:942]

    [15:31:54:942] ECC_Memory_init:[68] SDL_MMCSD2_EMMCSD4SS_ECC_aggr_RXMEM ECC Init Complete

    [15:31:55:022]

    [15:31:55:022] ECC_Memory_init:[69] SDL_MMCSD2_EMMCSD4SS_ECC_aggr_TXMEM ECC Init 完成

    [15:31:55:102]

    [15:31:55:102] ECC_Memory_init:[70] SDL_DSS_EDP0_K3_DSS_EDP_MHDPTX_W包装 程序_ECC_aggr_CORE ECC Init 完成

    [15:31:55:198]

    [15:31:55:198] ECC_Memory_init:[71]目前正在跳过 SDL_DSS_EDP0_K3_DSS_EDP_MHDPTX_W包装 程序_ECC_aggr_PHY

    [15:31:55:294]

    [15:31:55:294] ECC_Memory_init:[72] SDL_DSS_EDP0_K3_DSS_EDP_MHDPTX_W包装 程序_ECC_aggr_DSC ECC Init 完成

    [15:31:55:391]

    [15:31:55:391] ECC_Memory_init:[73] SDL_UFS0_UFSHCI2P1SSC_HCLK_ECC_aggr ECC 初始化完成

    [15:31:55:471]

    [15:31:55:471] ECC_Memory_init:[74] SDL_CSI_RX_IF0_CSI_RX_IF_ECC_aggr ECC 初始化完成

    [15:31:55:550]

    [15:31:55:550] ECC_Memory_init:[75] SDL_CSI_RX_IF1_CSI_RX_IF_ECC_aggr ECC 初始化完成

    [15:31:55:630]

    [15:31:55:630] ECC_Memory_init:[76] SDL_NAVSS0_MODSS_ECC_aggr0 ECC Init 完成

    [15:31:55:710]

    [15:31:55:710] ECC_Memory_init:[77] SDL_USB0_USB3P0SSC_USB3P0SS_CORE_A_ECC_aggr ECC 初始化完成

    [15:31:55:791]

    [15:31:55:806] ECC_Memory_init:[78] SDL_USB1_USB3P0SSC_USB3P0SS_core_a_ECC_aggr ECC 初始化完成

    [15:31:55:886]

    [15:31:55:886] ECC_Memory_init:[79] SDL_NAVSS0_VIRTSS_ECC_aggr0 ECC 初始化完成

    [15:31:55:966]

    [15:31:55:966] ECC_Memory_init:[80] SDL_NAVSS0_NBSS_ECC_aggr0 ECC Init 完成

    [15:31:56:030]

    [15:31:56:030] ECC_Memory_init:[81] SDL_IDOM1_ECC_aggr0 ECC Init 完成

    [15:31:56:094]

    [15:31:56:094] ECC_Memory_init:[82] SDL_IDOM1_ECC_aggr1 ECC Init 完成

    [15:31:56:174]

    [15:31:56:174] ECC_Memory_init:[83]初始化 SDL_WKUP_CBASS_ECC_aggr0_K3VTM_NC_ECCAGGR 时出错:结果=-1

    [15:31:56:271]

    [15:31:56:271] ECC_Memory_init:[84] SDL_IDOM0_ECC_aggr0_IDOM0_ECC_aggr ECC 初始化完成

    [15:31:56:350]

    [15:31:56:350] ECC_Memory_init:[85] SDL_IDOM0_ECC_aggr1_IDOM0_ECC_aggr ECC 初始化完成

    [15:31:56:430]

    [15:31:56:430] ECC_Memory_init:[86] SDL_CSI_TX_IF0_CSI_TX_IF_ECC_aggr ECC 初始化完成

    [15:31:56:510]

    [15:31:56:510] ECC_Memory_init:[87]目前正在跳过 SDL_CSI_TX_IF0_CSI_TX_IF_ECC_aggr_BYTE

    [15:31:56:591]

    [15:31:56:591] ECC_Memory_init:[88] SDL_WKUP_CBASS_ECC_aggr0_WAKEUP_ECC_aggr ECC 初始化完成

    [15:31:56:686]

    [15:31:56:686] ECC_Memory_init:[89] SDL_DSS_DSI0_K3_DSS_DSI_Top_ECC_aggr_SYS ECC Init Complete

    [15:31:56:766]

    [15:31:56:766] ECC_Memory_init:[90] SDL_MCU_NAVSS0_UDMASS_ECC_aggr0 ECC 初始化完成

    [15:31:56:846]

    [15:31:56:846] ECC_Memory_init:[91] SDL_PDMA5_PDMA_MAIN_MCAN_ECCAGGR ECC Init Complete

    [15:31:56:926]

    [15:31:56:926] ECC_Memory_init:[92] SDL_PSRAMECC0_PSRAM256X32EC_ECC_aggr ECC 初始化完成

    [15:31:57:006]

    [15:31:57:006] ECC_Memory_init:[93] SDL_NAVSS0_UDMASS_ECC_aggr0 ECC Init 完成

    [15:31:57:086]

    [15:31:57:086] ECC_Memory_init:[94] SDL_ECC_MEMTYPE_MAIN_MSMC_aggr0 ECC 初始化完成

    [15:31:57:166]

    [15:31:57:166] ECC_Memory_init:[95] SDL_ECC_MEMTYPE_MAIN_MSMC_aggr1 ECC 初始化完成

    [15:31:57:230]

    [15:31:57:230] ECC_Memory_init:[96] SDL_ECC_MEMTYPE_MAIN_MSMC_AGGR2 ECC Init Complete

    [15:31:57:310]

    [15:31:57:310] ECC_Memory_init:[97]初始化 SDL_COMPATE_CLUSTER0_A72SS0_common_ECC_aggr 时出错:结果=-1

    [15:31:57:422]

    [15:31:57:422] ECC_Memory_init:[98] SDL_COMPUT_CLUSTER0_A72SS0_CORE0_ECC_aggr ECC 初始化完成

    [15:31:57:502]

    [15:31:57:502] ECC_Memory_init:[99] SDL_COMPACT_CLUSTER0_A72SS0_Core1_ECC_aggr ECC Init 完成

    [15:31:57:598]

    [15:31:57:598] ECC_Memory_init:[100] SDL_DDR0_DDR32SSC_EW_DV_wrap_DDRSS_brctl_SC_ECC_aggr_VBUS ECC Init 完成

    [15:31:57:694]

    [15:31:57:694] ECC_Memory_init:[101] SDL_DDR0_DDR32SSC_EW_DV_wrap_DDRSS_brctl_SC_ECC_aggr_CTL ECC Init 完成

    [15:31:57:806]

    [15:31:57:806] ECC_Memory_init:[102] SDL_DDR0_DDR32SSC_EW_DV_wrap_DDRSS_brctl_SC_ECC_aggr_CFG ECC Init Complete

    [15:31:57:902]

    [15:31:57:902] ECC_Memory_init:[103] SDL_COMPUTE_CLUSTER0_C71SS0_ECC_aggr ECC Init Complete

    有两个项目 返回-1而不是引导模式。

    1您的侧引导模式是什么?

    2  需要哪些聚合器?

    林俊

     

     

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

    您好、林军、

    以下工程师需要在第一阶段完成。

    SDL_MSRAM_512K0_MSRAM16KX256E_ECC_AGGR
    SDL_CBASS_ECC_AGGR0
    SDL_NAVSS_NBSS_ECC_AGGR0_NAVSS512L_NBSS_PHYS_ECC_AGGR
    SDL_R5FSS0_CORE0_ECC_AGGR
    SDL_R5FSS1_CORE0_ECC_AGGR
    SDL_R5FSS0_CORE1_ECC_AGGR
    SDL_R5FSS1_CORE1_ECC_AGGR
    SDL_NAVSS_VIRTSS_ECC_AGGR0
    SDL_CBASS_ECC_AGGR0_MSRAM32KX256E_ECC_AGGR
    SDL_NAVSS0_MODSS_ECC_AGGR0
    SDL_NAVSS0_VIRTSS_ECC_AGGR0
    SDL_NAVSS0_NBSS_ECC_AGGR0
    SDL_PSRAMECC0_PSRAM256X32EC_ECC_AGGR
    SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR
    SDL_COMPUTE_CLUSTER0_A72SS0_CORE0_ECC_AGGR
    SDL_COMPUTE_CLUSTER0_A72SS0_CORE1_ECC_AGGR
    

    在 ECC aggr 中、我已通过了开发板主 mcu3_0的测试。 如下所示:

    SDL_MSRAM_512K0_MSRAM16KX256E_ECC_AGGR
    SDL_NAVSS_NBSS_ECC_AGGR0_NAVSS512L_NBSS_PHYS_ECC_AGGR
    SDL_NAVSS_VIRTSS_ECC_AGGR0
    SDL_NAVSS0_NBSS_ECC_AGGR0

    其他故障 ECC aggr、

    SDL_CBASS_ECC_aggr0_MSRAM32KX256E_ECC_aggr  也在 EVM 日志中初始化失败

    [15:31:54:126] ECC_Memory_init: [58] Skipping SDL_CBASS_ECC_AGGR0_MSRAM32KX256E_ECC_AGGR due to missing data

    SDL_R5FSS0_CORE0_ECC_aggr/SDL_R5FSS1_CORE0_ECC_aggr/SDL_R5FSS0_Core1_ECC_aggr/SDL_R5FSS1_Core1_ECC_aggr 初始化通过、但执行注入测试时失败。 报告日志:

    ecc_aggr_test: [54] Skipping SDL_R5FSS1_CORE0_ECC_AGGR for now

    3、  SDL_NAVSS0_MODSS_ECC_aggr0/SDL_NAVSS0_VIRTSS_ECC_aggr0初始化通过、但在执行注入测试时在 ESM 中断处理程序中循环。 中断似乎无法清除。

    4、 SDL_PSRAMECC0_PSRAM256X32EC_ECC_aggr 初始化通过、但注入测试失败。 EVM 板上也会出现此错误。

    RamId 3 error ecc_aggr_test self test: SDL_PSRAMECC0_PSRAM256X32EC_ECC_AGGR Subtype 92: fixed location test failed,Interconnect type RAM id = 2, checker group = 6

    5、 SDL_COMPUT_CLUSTER0_A72SS0_common_ecc_aggr/SDL_COMPUT_CLUSTER0_A72SS0_CORE0_ecc_aggr/SDL_COMPUT_CLUSTER0_A72SS0_Core1_ecc_aggr 初始化失败,这三个 ECC aggr 报告失败似乎与 RAT 函数有关,请给出一些建议?

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

    您好、林军、

    请帮助关注此问题、谢谢。

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

    关于 RAT 问题,RAT 使用的是哪种 RAT?  是否可以转储您设置的 RAT 寄存器以供进一步分析?  谢谢。  

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

    RAT 寄存器已在此 线程的原始问题上转储、如下所示:

    [MCU3_0]      9.448673 s: enter Ecc_Task
    [MCU3_0]      9.448730 s: Ruifeng sdl_ecc_init 609
    [MCU3_0]      9.448789 s: Ruifeng i = 0 sizeof(ecc_array) = 1 ecc_array[i].ecc_type = 96
    [MCU3_0]      9.448843 s: Ruifeng SDL_ECC_mapEccAggrReg 253
    [MCU3_0]      9.448889 s: rat version = 1719677184
    [MCU3_0]      9.448942 s: Ruifeng SDL_TEST_addrTranslate 99 input addr = 0x4d20010000
    [MCU3_0]      9.449023 s: Ruifeng SDL_TEST_addrTranslate 177 translationCfg.translatedAddress = 0x4d20010000 transAddr = 0x2000 size = 0x210
    [MCU3_0]      9.449112 s: Ruifeng SDL_TEST_addrTranslate 182 result = true
    [MCU3_0]      9.449174 s: Ruifeng SDL_TEST_addrTranslate 188 CSL_REG32_RD(&pRatRegs->CONFIG) = 0x300210
    [MCU3_0]      9.449241 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[0] CTRL = 0x0
    [MCU3_0]      9.449304 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[0] BASE = 0x0
    [MCU3_0]      9.449364 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[0] TRANS_L = 0x0
    [MCU3_0]      9.449426 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[0] TRANS_U = 0x0
    [MCU3_0]      9.449487 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[1] CTRL = 0x0
    [MCU3_0]      9.449549 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[1] BASE = 0x0
    [MCU3_0]      9.449610 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[1] TRANS_L = 0x0
    [MCU3_0]      9.449682 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[1] TRANS_U = 0x0
    [MCU3_0]      9.449749 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[2] CTRL = 0x0
    [MCU3_0]      9.449813 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[2] BASE = 0x0
    [MCU3_0]      9.449877 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[2] TRANS_L = 0x0
    [MCU3_0]      9.449939 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[2] TRANS_U = 0x0
    [MCU3_0]      9.450001 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[3] CTRL = 0x0
    [MCU3_0]      9.450062 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[3] BASE = 0x0
    [MCU3_0]      9.450123 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[3] TRANS_L = 0x0
    [MCU3_0]      9.450184 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[3] TRANS_U = 0x0
    [MCU3_0]      9.450245 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[4] CTRL = 0x8000000a
    [MCU3_0]      9.450308 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[4] BASE = 0x2000
    [MCU3_0]      9.450370 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[4] TRANS_L = 0x20010000
    [MCU3_0]      9.450433 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[4] TRANS_U = 0x4d
    [MCU3_0]      9.450493 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[5] CTRL = 0x0
    [MCU3_0]      9.450554 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[5] BASE = 0x0
    [MCU3_0]      9.450615 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[5] TRANS_L = 0x0
    [MCU3_0]      9.450704 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[5] TRANS_U = 0x0
    [MCU3_0]      9.450772 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[6] CTRL = 0x0
    [MCU3_0]      9.450833 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[6] BASE = 0x0
    [MCU3_0]      9.450893 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[6] TRANS_L = 0x0
    [MCU3_0]      9.450954 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[6] TRANS_U = 0x0
    [MCU3_0]      9.451016 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[7] CTRL = 0x0
    [MCU3_0]      9.451076 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[7] BASE = 0x0
    [MCU3_0]      9.451136 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[7] TRANS_L = 0x0
    [MCU3_0]      9.451197 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[7] TRANS_U = 0x0
    [MCU3_0]      9.451258 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[8] CTRL = 0x0
    [MCU3_0]      9.451317 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[8] BASE = 0x0
    [MCU3_0]      9.451377 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[8] TRANS_L = 0x0
    [MCU3_0]      9.451437 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[8] TRANS_U = 0x0
    [MCU3_0]      9.451499 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[9] CTRL = 0x0
    [MCU3_0]      9.451559 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[9] BASE = 0x0
    [MCU3_0]      9.451620 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[9] TRANS_L = 0x0
    [MCU3_0]      9.451690 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[9] TRANS_U = 0x0
    [MCU3_0]      9.451753 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[10] CTRL = 0x0
    [MCU3_0]      9.451814 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[10] BASE = 0x0
    [MCU3_0]      9.451876 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[10] TRANS_L = 0x0
    [MCU3_0]      9.451938 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[10] TRANS_U = 0x0
    [MCU3_0]      9.451999 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[11] CTRL = 0x0
    [MCU3_0]      9.452063 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[11] BASE = 0x0
    [MCU3_0]      9.452122 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[11] TRANS_L = 0x0
    [MCU3_0]      9.452185 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[11] TRANS_U = 0x0
    [MCU3_0]      9.452245 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[12] CTRL = 0x0
    [MCU3_0]      9.452305 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[12] BASE = 0x0
    [MCU3_0]      9.452365 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[12] TRANS_L = 0x0
    [MCU3_0]      9.452426 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[12] TRANS_U = 0x0
    [MCU3_0]      9.452486 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[13] CTRL = 0x0
    [MCU3_0]      9.452546 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[13] BASE = 0x0
    [MCU3_0]      9.452608 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[13] TRANS_L = 0x0
    [MCU3_0]      9.452680 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[13] TRANS_U = 0x0
    [MCU3_0]      9.452746 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[14] CTRL = 0x0
    [MCU3_0]      9.452808 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[14] BASE = 0x0
    [MCU3_0]      9.452868 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[14] TRANS_L = 0x0
    [MCU3_0]      9.452930 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[14] TRANS_U = 0x0
    [MCU3_0]      9.452992 s: Ruifeng SDL_TEST_addrTranslate 191 REGION[15] CTRL = 0x0
    [MCU3_0]      9.453052 s: Ruifeng SDL_TEST_addrTranslate 192 REGION[15] BASE = 0x0
    [MCU3_0]      9.453116 s: Ruifeng SDL_TEST_addrTranslate 193 REGION[15] TRANS_L = 0x0
    [MCU3_0]      9.453179 s: Ruifeng SDL_TEST_addrTranslate 194 REGION[15] TRANS_U = 0x0
    [MCU3_0]      9.453216 s:
    [MCU3_0]      9.453476 s: [0000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [MCU3_0]      9.453787 s: [0050] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [MCU3_0]      9.454096 s: [0100] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [MCU3_0]      9.454403 s: [0150] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [MCU3_0]      9.454714 s: [0200] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [MCU3_0]      9.454817 s: [0250] 00 00 00 00 00 00
    [MCU3_0]      9.454866 s: Ruifeng SDL_TEST_addrTranslate 208 transAddr = 0x2000
    [MCU3_0]      9.454926 s: Ruifeng SDL_ECC_init 903 eccMemType = 96 Using RAT translate!
    [MCU3_0]      9.454973 s: Ruifeng SDL_ECC_init 912
    [MCU3_0]      9.455015 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1526
    [MCU3_0]      9.455059 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1530
    [MCU3_0]      9.455120 s: Ruifeng SDL_ecc_aggrToggleIntrsEnable 410 numRams = 0 sdlRet = 0
    [MCU3_0]      9.455173 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1534
    [MCU3_0]      9.455233 s: Ruifeng SDL_ecc_aggrToggleIntrsEnable 410 numRams = 0 sdlRet = 0
    [MCU3_0]      9.455292 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1537 retVal = 0
    [MCU3_0]      9.455347 s: Ruifeng SDL_ecc_aggrDisableAllIntrs 1539 retVal = 0

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

    您好、Ruifeng、

      关于 RAT 问题、请您先参考 TT。 该线程中有一个 GEL 脚本示例。   https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1012107/tda4vm-tda4vm---how-to-config-rat-on-r5f-core?tisearch=e2e-sitesearch&keymatch=rat#

     如果仍然存在使用 RAT 的问题。 我想我们可以设置一个会话进行讨论。  

    林俊

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

    您好、林军、

    我将尝试 RAT 问题。 还有其他问题呢?

    SDL_CBASS_ECC_aggr0_MSRAM32KX256E_ECC_aggr 也在 EVM 日志中初始化失败

    [15:31:54:126] ECC_Memory_init: [58] Skipping SDL_CBASS_ECC_AGGR0_MSRAM32KX256E_ECC_AGGR due to missing data

    SDL_R5FSS0_CORE0_ECC_aggr/SDL_R5FSS1_CORE0_ECC_aggr/SDL_R5FSS0_Core1_ECC_aggr/SDL_R5FSS1_Core1_ECC_aggr 初始化通过、但执行注入测试时失败。 报告日志:

    ecc_aggr_test: [54] Skipping SDL_R5FSS1_CORE0_ECC_AGGR for now

    3、SDL_NAVSS0_MODSS_ECC_aggr0/SDL_NAVSS0_VIRTSS_ECC_aggr0初始化通过、但在执行注入测试时在 ESM 中断处理程序中循环。 中断似乎无法清除。

    4、SDL_PSRAMECC0_PSRAM256X32EC_ECC_aggr 初始化通过、但注入测试失败。 EVM 板上也会出现此错误。

    RamId 3 error ecc_aggr_test self test: SDL_PSRAMECC0_PSRAM256X32EC_ECC_AGGR Subtype 92: fixed location test failed,Interconnect type RAM id = 2, checker group = 6

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

    您好、Ruifeng、

      1 对于一些 ECC 数据尚未就绪、需要更多时间进行修复。 这 在您的项目中是强制性的?

      2  您能否制作组合图像以测试 SDL? 某些内核未正确加电。 然后访问 ECC 寄存器将导致此问题。

    下面是创建组合映像命令的示例。  

      合并镜像:# pdk/packages/ti/boot/SBL/tools/multoreImageGen/bin/MulticoreImageGen LE 55 ecc_func_app_multicore.appimage 4 ecc_func_app_r5f_debug.rprc 6 ipc_perf_test_freertos_mcuu2_0..rprprprce_rprce_r5_rprob_rpr_rprue_rprue_r5_rprob_rpru_rprue_rprue_rprue_rpru_rprobe_r5_rprobe_rprobe_rprobe_rprobe_r5_rprue_rprobe_rprobe_rprobe_rprobe_r1_rpru_rpru_rprue_rpru_r

      

     3 请粘贴错误日志。

     4 我假设您可能会遇到多个固定位置测试失败的问题。  请在您的项目中列出所有此问题。  

    林俊

      

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

    您好、林军、

    1 对于一些 ECC 数据尚未就绪、需要更多时间进行修复。 这 在您的项目中是强制性的?

    是的、需要完成的第一阶段 ECC AGG 列表已经显示出来。

    2  您能否制作组合图像以测试 SDL? 某些内核未正确加电。 然后访问 ECC 寄存器将导致此问题。

    我不理解此命令,我应该在哪里找到这些二进制文件?

    例如 、LE 55 ecc_func_app_multicore.appimage 4 ecc_func_app_r5f_debug.rprc 6 ipc_perf_test_freertos_MCU2_0._release.rprc 7 ipc_perf_test_freertos_mcu1_release.rprc 5 ipc_perf_test_rpr1_freert1_rprue_rpr1_rpruos_rpr1_rpr1.rpr1_rpr1_rpru_rprobe_rprue_rpr1.rpr1_rprue_rprue_rpr1_rprue_rprue_rpr1.rpr1_rpruos_rpr1.rpr1_r

    您能提供完整的操作过程吗?

    4 我假设您可能会遇到多个固定位置测试失败的问题。  请在您的项目中列出所有此问题。  

    在第一阶段,我们强制执行上面的某些 ECC aggr 列表。 SDL 的不同状态测试 这些 ECC 已与您同步。

    您能否分享有关这些 ECC 的测试结果?

    SDL_MSRAM_512K0_MSRAM16KX256E_ECC_AGGR
    SDL_CBASS_ECC_AGGR0
    SDL_NAVSS_NBSS_ECC_AGGR0_NAVSS512L_NBSS_PHYS_ECC_AGGR
    SDL_R5FSS0_CORE0_ECC_AGGR
    SDL_R5FSS1_CORE0_ECC_AGGR
    SDL_R5FSS0_CORE1_ECC_AGGR
    SDL_R5FSS1_CORE1_ECC_AGGR
    SDL_NAVSS_VIRTSS_ECC_AGGR0
    SDL_CBASS_ECC_AGGR0_MSRAM32KX256E_ECC_AGGR
    SDL_NAVSS0_MODSS_ECC_AGGR0
    SDL_NAVSS0_VIRTSS_ECC_AGGR0
    SDL_NAVSS0_NBSS_ECC_AGGR0
    SDL_PSRAMECC0_PSRAM256X32EC_ECC_AGGR
    SDL_COMPUTE_CLUSTER0_A72SS0_COMMON_ECC_AGGR
    SDL_COMPUTE_CLUSTER0_A72SS0_CORE0_ECC_AGGR
    SDL_COMPUTE_CLUSTER0_A72SS0_CORE1_ECC_AGGR