iLLD_TC27xD  1.0
MBIST Error Tracking
Collaboration diagram for MBIST Error Tracking:

Functions

IFX_EXTERN void IfxMtu_clearErrorTracking (IfxMtu_MbistSel mbistSel)
 Clears the error tracking registers (ETRR), valid and overflow bits. CAUTION: This function should be called after enabling Mbist Shell (Refer Errata: MTU_TC.005). More...
 
IFX_EXTERN void IfxMtu_enableErrorTracking (IfxMtu_MbistSel mbistSel, boolean enable)
 Enables the tracking of SRAM errors. More...
 
IFX_EXTERN uint32 IfxMtu_getSystemAddress (IfxMtu_MbistSel mbistSel, Ifx_MC_ETRR trackedSramAddress)
 Returns the descrambled system address based on a tracked SRAM error which consists of ADDR and MBI (SRAM address and block) More...
 
IFX_EXTERN uint8 IfxMtu_getTrackedSramAddresses (IfxMtu_MbistSel mbistSel, Ifx_MC_ETRR *trackedSramAddresses)
 Returns the tracked SRAM error addresses and memory blocks which are stored in the MBIST ETRR registers. CAUTION: This function should be called after enabling Mbist Shell (Refer Errata: MTU_TC.005). More...
 
IFX_EXTERN boolean IfxMtu_isErrorTrackingEnabled (IfxMtu_MbistSel mbistSel)
 Returns the status of the error tracking. More...
 
IFX_EXTERN boolean IfxMtu_isErrorTrackingOverflow (IfxMtu_MbistSel mbistSel)
 Returns the error tracking overflow status. CAUTION: This function should be called after enabling Mbist Shell (Refer Errata: MTU_TC.005). More...
 

Detailed Description

Function Documentation

IFX_EXTERN void IfxMtu_clearErrorTracking ( IfxMtu_MbistSel  mbistSel)

Clears the error tracking registers (ETRR), valid and overflow bits. CAUTION: This function should be called after enabling Mbist Shell (Refer Errata: MTU_TC.005).

Parameters
mbistSelMemory Selection
Returns
None

A coding example can be found in How to use the Mtu driver?

Definition at line 53 of file IfxMtu.c.

IFX_EXTERN void IfxMtu_enableErrorTracking ( IfxMtu_MbistSel  mbistSel,
boolean  enable 
)

Enables the tracking of SRAM errors.

Parameters
mbistSelMemory Selection
enableTRUE to enable error tracking, FALSE to disable error tracking.
Returns
None

A coding example can be found in How to use the Mtu driver?

Definition at line 192 of file IfxMtu.c.

IFX_EXTERN uint32 IfxMtu_getSystemAddress ( IfxMtu_MbistSel  mbistSel,
Ifx_MC_ETRR  trackedSramAddress 
)

Returns the descrambled system address based on a tracked SRAM error which consists of ADDR and MBI (SRAM address and block)

Please note that not all memories of the system are supported by this function. Additional memories will be considered on request.

Parameters
mbistSelMemory Selection
trackedSramAddresstracked SRAM address which consists of an ADDR and MBI field (SRAM address and block)
Returns
descrambled system address if supported by this function, otherwise 0

Example usage: see IfxMtu_getTrackedSramAddresses

Definition at line 215 of file IfxMtu.c.

IFX_EXTERN uint8 IfxMtu_getTrackedSramAddresses ( IfxMtu_MbistSel  mbistSel,
Ifx_MC_ETRR *  trackedSramAddresses 
)

Returns the tracked SRAM error addresses and memory blocks which are stored in the MBIST ETRR registers. CAUTION: This function should be called after enabling Mbist Shell (Refer Errata: MTU_TC.005).

Parameters
mbistSelMemory Selection
trackedSramAddresseswill contain the tracked error addresses in trackedSramAdresses[x].B.ADDR and affected blocks in sramAddresses[x].B.MBI

The array size shall be IFXMTU_MAX_TRACKED_ADDRESSES

Returns
number of tracked errors (0..IFXMTU_MAX_TRACKED_ADDRESSES)

Example usage to print out tracked errors of a given memory:

We assume that the MTU clock has already been enabled, and that the MBIST instance has been selected; e.g. for LMU:

// for auto-init memories: wait for the end of the clear operation
while (IfxMtu_isAutoInitRunning(mbistSel))
{}

Now the tracking information can be retrieved with:

{
Ifx_MC_ETRR trackedSramAddresses[IFXMTU_MAX_TRACKED_ADDRESSES];
uint8 numTrackedAddresses = IfxMtu_getTrackedSramAddresses(mbistSel, trackedSramAddresses);
clib_ver_printf("Tracked addresses: %d (Overflow: %d)\n",
numTrackedAddresses,
IfxMtu_isErrorTrackingOverflow(mbistSel) ? 1 : 0);
for(int i=0; i<numTrackedAddresses; ++i) {
clib_ver_printf("%d: A:0x%04x MBI:%d -> SystemAddress: 0x%08x\n",
i,
trackedSramAddresses[i].B.ADDR,
trackedSramAddresses[i].B.MBI,
IfxMtu_getSystemAddress(mbistSel, trackedSramAddresses[i]));
}
}

Definition at line 263 of file IfxMtu.c.

IFX_EXTERN boolean IfxMtu_isErrorTrackingEnabled ( IfxMtu_MbistSel  mbistSel)

Returns the status of the error tracking.

Parameters
mbistSelMemory Selection
Returns
TRUE if error tracking enabled.

Definition at line 295 of file IfxMtu.c.

IFX_EXTERN boolean IfxMtu_isErrorTrackingOverflow ( IfxMtu_MbistSel  mbistSel)

Returns the error tracking overflow status. CAUTION: This function should be called after enabling Mbist Shell (Refer Errata: MTU_TC.005).

Parameters
mbistSelMemory Selection
Returns
TRUE if more errors were detected since last clear than error tracking registers are available, or if more than one memory block was in error at the same time.

Definition at line 302 of file IfxMtu.c.