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: vision_apps and SDL

Part Number: TDA4VM

Tool/software:

Hello,TI expert

I run the vision_apps with SBL. And on the mcu safety island I run the SDL ECC demo. I can inject ECC fault on MCU domain such as MCU_PSRAM,MCU_MSRAM successfully. But when inject ECC fault on main domain the test failed. Can user inject ECC fault on main domain when run vision_apps?

  • Hi,

    Can you provide details on which main domain instances are failing?

    The following are the general recommendations on when the error injection on ECC aggregators must be performed

    • The ECC error injection and monitoring of the error response should be run at ‘startup’ where possible.
    • An alternative recommended approach is to run ECC error injection at ‘shutdown’.

    When running of ECC error injection during ‘runtime’, the system integrator must be aware of the below:

    For interconnect endpoints:

    • The ECC SEC error injection runs during idle cycles, so can be run during ‘runtime’ for checkers of all types.
      • Parity and redundant bit error injections are non-destructive and can be done at runtime.
    • The ECC DED error injection runs during idle cycles, so can be run during ‘runtime’.
      • Only single bit error injections are to be done on parity/redundant checker types. This is because these protect odd number of injections. A 2 bit injection on parity will not cause a failure.

    For RAM memories:

    • ECC self-test for SEC on RAM memories, can be run at runtime:
    • The ECC self-test for SEC injects a single-bit error that is corrected in-line.
    • ECC DED error injection during ‘runtime’ for RAM memories, should only be done for memories with direct read access
      • Two examples of direct read access memories are MSMC SRAM and MCU SRAM
      • Double-bit error injection on all other embedded SRAMS could possibly result in the downstream IP reading bad data if run during ‘runtime’
    • ECC error injection on inject-only memories, should be run at ‘startup’, they are not recommended to be run during ‘runtime’.

    Regards,

    Josiitaa

  • Hi,

    Thanks for your reply.  Before injecting the error, I run the SDL_ECC_init to initialize ECC memory. When run the MCANSS and MSRAM on the main domain,there‘s error . The initializing of MCU memtype is success. Can the memtype on the main doamin be  initialized by SDL_ECC_init?

    test log:

    ECC_Memory_init: [10] SDL_ECC_MEMTYPE_MCU_MSRAM0 ECC Init complete

    ECC_Memory_init: [11] SDL_ECC_MEMTYPE_MCU_NAVSS0 ECC Init complete

    ECC_Memory_init: [12] SDL_ECC_MEMTYPE_MCU_PSRAM0 ECC Init complete

    ECC_Memory_init: [13] SDL_ECC_MEMTYPE_MCU_CBASS_ECC_AGGR0 ECC Init complete

    ECC_Memory_init: [14] Error initializing SDL_MCAN0_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [15] Error initializing SDL_MCAN1_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [16] Error initializing SDL_MCAN2_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [17] Error initializing SDL_MCAN3_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [18] Error initializing SDL_MCAN4_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [19] Error initializing SDL_MCAN5_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [20] Error initializing SDL_MCAN6_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [21] Error initializing SDL_MCAN7_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [22] Error initializing SDL_MCAN8_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [23] Error initializing SDL_MCAN9_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [24] Error initializing SDL_MCAN10_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [25] Error initializing SDL_MCAN11_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [26] Error initializing SDL_MCAN12_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [27] Error initializing SDL_MCAN13_MCANSS_MSGMEM_WRAP_ECC_AGGR: result = -2

    ECC_Memory_init: [28] Error initializing SDL_MSRAM_512K0_MSRAM16KX256E_ECC_AGGR: result = -2

  • Hi,

    When run the MCANSS and MSRAM on the main domain,there‘s error .

    Do you mean you are running the SDL test on the main domain?

    Regards,

    Josiitaa

  • Hi,

    I didn't express clearly. The SDL test run on mcu domain. I mean the ECC memeory on main domain such as MCANSS and MSRAM .  

    Regards,

  • Hi, 

    Understood. Thanks for the clarification. Can you provide more details on your boot flow? Are you running the standalone SDL test app? 

    Regards,

    Josiitaa

  • Hi,

    The boot flow implemented like this.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1214665/faq-tda4vl-q1-run-vision_apps-in-sbl-boot-flow-with-combined_appimage

    The SDL test app run on mcu1_0 but isn't ruuning alone. After the EVM board powered on,the RTOS startup,the linux startup. And then I run the SDL testcase. 

    Regards,

  • Hi,

    We currently do not validate ECC integrated with vision apps. 

    The following are the general recommendations on when the error injection on ECC aggregators must be performed:

    • The ECC error injection and monitoring of the error response should be run at ‘startup’ where possible.

    • An alternative recommended approach is to run ECC error injection at ‘shutdown’.

    When running of ECC error injection during ‘runtime’, the system integrator must be aware of the below:

    For interconnect endpoints:

    • The ECC SEC error injection runs during idle cycles, so can be run during ‘runtime’ for checkers of all types.

    – Parity and redundant bit error injections are non-destructive and can be done at runtime.

    • The ECC DED error injection runs during idle cycles, so can be run during ‘runtime’.

    – Only single bit error injections are to be done on parity/redundant checker types. This is because these protect odd number of injections. A 2 bit injection on parity will not cause a failure.

    For RAM memories:

    • ECC self-test for SEC on RAM memories, can be run at runtime:

    – The ECC self-test for SEC injects a single-bit error that is corrected in-line.

    • ECC DED error injection during ‘runtime’ for RAM memories, should only be done for memories with direct read access

    – Two examples of direct read access memories are MSMC SRAM and MCU SRAM

    – Double-bit error injection on all other embedded SRAMS could possibly result in the downstream IP reading bad data if run during ‘runtime’

    • ECC error injection on inject-only memories, should be run at ‘startup’, they are not recommended to be run during ‘runtime’.

    Regards,

    Josiitaa