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.

TMS570LC4357: ESM Channel for MibSPI ECC single bit error

Part Number: TMS570LC4357
Other Parts Discussed in Thread: HALCOGEN

setup is as follows for MibSPI1:

  1. SBE_EVT_EN, EDAC_MODE, PTESTEN, EDEN enabled in PAR_ECC_CTRL
  2. ECCDIAG_EN enabled in ECCDIAG_CTRL.
  3. generate single bit error using code attached.
  4. getting appropriate error flags set in ECCDIAG_STAT and PAR_ECC_STAT.
  5. but esmGroup1Notification is called with channel 45 as argument instead of 77 as stated in data sheet, which i have enabled the same in ESM of halcogen. 45 is stated as reserved.
  6. single bit error is also corrected in MibSPI Tx RAM index 0.
    volatile uint32 *ecc_pointer = ((volatile uint32 *)(0xFF0E0000U + 0x400U)); /* only last 8 bits are valid from 0x0 to 0x7U */

    *ecc_pointer = (0x59U); /* ECC for data 0xA1, single bit flipped */

    uint16 data = mibspiRAM1->tx[0].data; /* read to cause ecc error */

 

  • To add:

    ECC was generated for 0xA5, so adding ECC as 0xA1 should cause 1 bit error when read, please correct me if i am wrong (ECC generated for different data is noted, by writing to Tx RAM).

    double bit error induced in the same way, ESM gets triggered with the same channel number.

  • small update: for double bit errors, i get correct channel passed as argument i.e. 17. single bit error still gives me 45.

  • Hi Prajwal,

    Recommendations:

    1. Verify ESM Configuration:
    • Check your HALCoGen configuration for the ESM channel mappings
    • Ensure that channel 77 is properly enabled in the ESM enable bitmap (0)
    1. Check MibSPI Configuration:
    • Verify that the MibSPI ECC detection is properly enabled through PAR_ECC_CTRL
    • Confirm that ECCDIAG_EN is correctly set in ECCDIAG_CTRL
    1. Debug Steps:
    • Set a breakpoint in the ESM notification handler to verify which channel is actually triggering
    • Check the ESM status registers when the interrupt occurs to confirm the error source
    • Verify that no other error conditions are being triggered simultaneously

    Try these things if issue didn't resolve, i will do further debugging from my end.

    --
    Thanks & regards,
    Jagadish.