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.

RM44L520: Issues with PSCON-Error-injection on RM44 MCUs

Part Number: RM44L520
Other Parts Discussed in Thread: HALCOGEN

Dear Hercules team,

My customer has some questions to two of the self-tests out of the SafeTI-Libaray.

The questions are related to the following function call:
SL_PSCON_FailInfo    failInfoPSCON;      /* PSCON failure information */
retVal = SL_SelfTest_PSCON(PSCON_ERROR_FORCING_FAULT_INJECT, TRUE, &failInfoPSCON);

This function call is supposed to inject an Error.
Calling this function on a RM48 device, it returns “true” and a ESM-interrupt with channel ESM_G1ERR_PSCON_SELTEST_ERR gets trigger. That confirms a successful Error-injection.
Calling this function on a RM44 device, it returns “false” and there is no ESM-interrupt trigger. That implies the Error-injection was not successful.

Why is this function call returning “false” on the RM44 (and not triggering a ESM-interrupt)?
Can this Error-injection not be used on the RM44?
Is there are specific configuration required when using this Error-injection (different ones for RM48 and RM44)?

Remark:
For the RM42, this Code does not seem to be usable (according to the SafeTI-Library), but it should work for the RM44:
sl_selftest.c V2.4.0, Zeile 2394)
#if defined(_TMS570LS31x_) || defined(_TMS570LS12x_) || defined(_TMS570LS07x_) || defined(_TMS570LS09x_) || defined(_RM48x_) || defined(_RM46x_) || defined(_RM44x_) || defined(_TMS570LC43x_) || defined(_RM57Lx_)

Some more remarks:
The tests…
SL_SelfTest_PSCON(PSCON_SELF_TEST, true, &failInfoPSCON);
SL_SelfTest_PSCON(PSCON_ERROR_FORCING, true, &failInfoPSCON);
SL_SelfTest_PSCON(PSCON_SELF_TEST_ERROR_FORCING, true, &failInfoPSCON);
SL_SelfTest_PSCON(PSCON_PMA_TEST, true, &failInfoPSCON);
… are working on the RM48 and RM44 as expected

Other Error-injections like:
retVal = SL_SelfTest_Flash(FLASH_ADDRESS_PARITY_FAULT_INJECT, TRUE, &failInfoFlash);
Are working on RM48 and RM44 (and RM42) as expected and trigger a ESM-Interrupt.

retVal = SL_SelfTest_PSCON(PSCON_SELF_TEST_ERROR_FORCING_FAULT_INJECT, TRUE, &failInfoPSCON);
Shows on the RM44 the same issue as described at the beginning of the thread (retVal = SL_SelfTest_PSCON(PSCON_ERROR_FORCING_FAULT_INJECT, TRUE, &failInfoPSCON);).
So it returns “false” and does not trigger a ESM-Interrupt.
 
Please help to clarify these topics/questions towards the customer.

Best Regards,
Matthias

  • Hello Matthias,

    Did you step into the selftest function to find which instruction causes the failure? I will try later.

  • Hi QJ,

    could not test it myself and I do not know, if the customer has tried to step into the function.

    BR,

    Matthias

  • Hello,

    I just did PSCON test on LS0714 launchpad, and I didn't see this issue (retVal=1, pass). The original project is for LS0914, but I modified the settings including linker cmd file for LS714 device.

  • Hello,

    I'm the developer who report the effect to Matthias Schmitt. I checked the problem again an I found a mistake in my report.

    The function call of 
         retVal = SL_SelfTest_PSCON(PSCON_ERROR_FORCING_FAULT_INJECT, TRUE, &failInfoPSCON);
    itself returns true, our own caller function return false because the ESM interrupt is missing.

    So the questions have to be changed in:

    Why do this function not trigger an ESM-interrupt on RM44?
    Can this Error-injection not be used on the RM44?
    Is there are specific configuration required when using this Error-injection (different ones for RM48 and RM44)?

    Sorry for the first faulty description of our problem.

    Thanks and Regards,
    Heiko König

  • The test passes:

  • Hello,

    yes, the test function SL_Selftest_PSCON(PSCON_ERROR_FORCING_FALULT_INJECT, TRUE, &failInfoPSCON) itself return true, but we expect also an immediate ESM interrupt (on RM48 and RM46 the ESM interrupt is present). In first request this was a mistake from me that the function return false.

    Why become we no ESM interrupt on a RM44 device? We expect an ESM interrupt immediately after the fault inject within the function.

    Could we have a wrong configuration?

    Thanks and Regards,

    Heiko König

  • Hello,

    The ESM interrupt is enabled for fault injection in the selftest API. For error forcing test mode, the ESM interrupt is disabled.

    1. For PSCON_ERROR_FORCING_FAULT_INJECT test mode, ESM_State4 = 0xC0 after test

    2. For PSCON_SELF_TEST_ERROR_FORCING_FAULT_INJECT test mode, ESM_State4 = 0x80 after test

  • Hello,

    we found the problem:

    Our RM44 device was first developed at RM42 MCU. The PSCON tests are not usable on RM42 (RM42 not defined in SafeTI library for PSCON selftest). At switching from RM42 to RM44 we transfered the HalCoGen configuration from RM42 device to RM44 device and do not activate the ESM channels 38 PDC Compare and 39 PDC Self-Test on RM44.

    Because of this, we become no ESM-interrupt for those both PSCON error injections on RM44 device.

    Thank you for your help, checking the esm status register was the helpful hint.

    Warm Regards
    Heiko König