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.

TMS320TCI6618: L1P and L1D cache issue

Part Number: TMS320TCI6618

Hi, TI experts,

Could you help about this cache issue, what is the cache error indicate, and how could we fix it?

Background:

in TCI6618, We try to send event from same core 1 to core 1(core index start from 0). If we use use mfence after Emti_wb(), issue won't happen, if we use mfence without Emti_wb(), then cache issue would happen.

With same code, this issue only happen in TCI6618, but won't happen in K2K devices.

Issue:

oth L1P and L1D issue happen together.

L1P issue:

        • Line: 842  0x00006940 allocated from:0x1184e940 -> *:Emti_wbinv (o = 0x80)
        • BIT ERROS DETECTED:
   L1P cache address (way:0-3) : DSP address : the data in phy mem : the data in cache
    ------------------------------------------------------------------------------------
      0x00006940 (way:0)      :  0x1184e940 :     0x00000000     :    0x00006000 : *:Emti_wbinv (o = 0x80)
       errors in bits:
                                 !!
                33222222222111111111110000000000
                10987654321098765432109876543210
       original:00000000000000000000000000000000
       toggled :00000000000000000110000000000000
Correct fetch packet: *:Emti_wbinv (o = 0x80)
Corrupted fetch packet:  *:Emti_wbinv (o = 0x80)
Total number of bit errors: 2
L1D issue:

lastExceptionType = 0xea07a = 958586
| bits 0 -19 : 958586 == EXCPHNDL_PRISYS_DMC_CMPA_EVT : CPU memory protection fault (L1D)

internalExceptionsCount = 0x0 = 0
externalExceptionsCount = 0x2 = 2
otherExceptionsCount = 0x0 = 0
exceptionReturnAddress = 0x118004dc = *:_odo_os_int_stub_stub (o = 0x00000120)
memProtFaultingAddress = 0x15000102 = 352321794
memProtFaultStatus = 0x120 = 288
| bit 5 : 1 == Supervisor read request
| bit 8 : 1 == Access was LOCAL access

memProtFaultStatusExtension = 0x0 = 0
mdmaErrorStatus = 0x20000d01 = 536874241
| bits 29-31 : 1 == MDMA read status error detected
| bits 0 -2 : 1 == Addressing error
| bits 8 -11 : XID: 0x000d

xmcMemProtFaultingAddress = 0x0 = 0
xmcMemProtFaultStatus = 0x0 = 0
busErrorStatus = 0x0 = 0
semErrorStatus = 0x0 = 0
tpccEmrReg = 0x0 = 0
tpccEmrhReg = 0x0 = 0
tpccQemrReg = 0x0 = 0
tpccCcerrReg = 0x0 = 0
tpccCcstatReg = 0x0 = 0
tptcErrstatReg = 0x0 = 0
tptcErrdetReg = 0x0 = 0
l1pErrorDetected = 0x0 = 0
l1pErrorInfo =
{
L1PEDADDR = 0x0 = 0
L1PEDSTAT = 0x0 = 0
}

Dave

  • BTW, the cache register configured as below.
    CSR = 0x15000102 = 352321794
    | bit 0 : 0 == GIE, Interrupts disabled
    | bit 1 : 1 == PGIE, Interrupts will be enabled after return from interrupt
    | bits 2 -4 : 0 == DCC, 2-way cache enabled
    | bits 5 -7 : 0 == PCC, direct-mapped cache enabled
    | bit 8 : 1 == Little endian mode
    | bit 9 : SAT bit, 0x0
    | bits 10-15 : Power-down mode:0x00
    | bits 16-23 : Revision ID:0x00

    Dave
  • Hi,

    I've notified the team. Their feedback will be posted here.

    Best Regards,
    Yordan