# XMC Functions
[XMC]

## Functions
CSL_IDEF_INLINE void | CSL_XMC_setXMPAXH (Uint32 index, CSL_XMC_XMPAXH *mpaxh)
CSL_IDEF_INLINE void | CSL_XMC_setXMPAXL (Uint32 index, CSL_XMC_XMPAXL *mpaxl)
CSL_IDEF_INLINE void | CSL_XMC_getXMPAXH (Uint32 index, CSL_XMC_XMPAXH *mpaxh)
CSL_IDEF_INLINE void | CSL_XMC_getXMPAXL (Uint32 index, CSL_XMC_XMPAXL *mpaxl)
CSL_IDEF_INLINE Uint32 | CSL_XMC_getFaultAddress (void)
CSL_IDEF_INLINE void | CSL_XMC_clearFault (void)
CSL_IDEF_INLINE void | CSL_XMC_getFaultStatus (CSL_XMC_MPFSR *xmpfsr)
CSL_IDEF_INLINE void | CSL_XMC_invalidatePrefetchBuffer (void)
CSL_IDEF_INLINE void | CSL_XMC_loadAnalysisCounterEnable (void)
CSL_IDEF_INLINE void | CSL_XMC_setAnalysisCounterEnableMode (CSL_XMC_ACEN_MODE acenMode)
CSL_IDEF_INLINE void | CSL_XMC_resetAnalysisCounters (void)
CSL_IDEF_INLINE void | CSL_XMC_setPrefetchCommand (Uint8 inv, Uint8 acEnLoad, CSL_XMC_ACEN_MODE acenMode, Uint8 acRst)
CSL_IDEF_INLINE CSL_XMC_ACEN_MODE | CSL_XMC_getAnalysisCounterEnableStatus (void)
CSL_IDEF_INLINE Uint32 | CSL_XMC_getNumPrefetchSent (void)
CSL_IDEF_INLINE Uint32 | CSL_XMC_getNumPrefetchCanceled (void)
CSL_IDEF_INLINE Uint32 | CSL_XMC_getNumPrefetchHits (void)
CSL_IDEF_INLINE Uint32 | CSL_XMC_getNumPrefetchMisses (void)
CSL_IDEF_INLINE void | CSL_XMC_getPrefetchAddress (Uint32 index, CSL_XMC_XPFADDR *xpfaddr)
CSL_IDEF_INLINE void | CSL_XMC_setMDMAPriority (Uint32 priority)
CSL_IDEF_INLINE Uint32 | CSL_XMC_getMDMAPriority (void)

## Function Documentation

CSL_IDEF_INLINE void CSL_XMC_clearFault | ( | void |  | ) |

============================================================================
CSL_XMC_clearFault

Description
This function clears the fault information.

Arguments
None

Return Value
None

Pre Condition
None

Post Condition
XMPFCR register configured with the value passed. Fault address and status registers are cleared.

Writes
XMC_XMPFCR_MPFCLR=1

Affects
XMC_XMPFAR_FADDR=0, XMC_XMPFSR_LOCAL=0, XMC_XMPFSR_SR=0, XMC_XMPFSR_SX=0, XMC_XMPFSR_UR=0, XMC_XMPFSR_UW=0, XMC_XMPFSR_UW=0

Example

            CSL_XMC_clearFault ();

=============================================================================

CSL_IDEF_INLINE CSL_XMC_ACEN_MODE CSL_XMC_getAnalysisCounterEnableStatus | ( | void |  | ) |

============================================================================
CSL_XMC_getAnalysisCounterEnableStatus

Description
This function returns the Analysis counter enable mode by reading the contents of 'ACEN' bits from the XPFACS register.

Arguments
None

Return Value CSL_XMC_ACEN_MODE - Event counting mode

Pre Condition
None

Post Condition
CSL_XMC_XPFACS_ACEN bits read and returned

Reads
XMC_XPFACS_ACEN

Example

            CSL_XMC_ACEN_MODE   acenMode;

            // Read ACEN Mode Status
            acenMode = CSL_XMC_getAnalysisCounterEnableStatus ();
            if (acenMode == CSL_XMC_ACEN_MODE_COUNT_DISABLE)
            {
                ...
            }

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_XMC_getFaultAddress | ( | void |  | ) |

============================================================================
CSL_XMC_getFaultAddress

Description
This function gets the access address causing the fault.

Arguments
None

Return Value Uint32

Pre Condition
None

Post Condition
None

Reads
XMC_XMPFAR_FADDR

Example

            Uint32 faultAddr;

            faultAddr = CSL_XMC_getFaultAddress ();

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_getFaultStatus | ( | CSL_XMC_MPFSR * | xmpfsr | ) |

============================================================================
CSL_XMC_getFaultStatus

Description
This function gets the contents of Fault Status Register XMPFSR.

Arguments

              xmpfsr    CSL_XMC_MPFSR structure that needs to be filled in from
                        XMPFSR register

Return Value
None

Pre Condition
None

Post Condition
None

Reads
XMC_XMPFSR_LOCAL, XMC_XMPFSR_SR, XMC_XMPFSR_SX, XMC_XMPFSR_UR, XMC_XMPFSR_UW, XMC_XMPFSR_UW

Example

            CSL_XMC_MPFSR xmpfsr;

            CSL_XMC_getFaultStatus (&xmpfsr);

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_XMC_getMDMAPriority | ( | void |  | ) |

============================================================================
CSL_XMC_getMDMAPriority

Description
This function retrieves the priority of transaction submissions to Master DMA (MDMA).

Arguments
None

Return Value Uint32

Pre Condition
None

Post Condition
None

Reads
XMC_MDMAARBX_PRI

Example

            Uint32 priority;

            priority = CSL_XMC_getMDMAPriority ();

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_XMC_getNumPrefetchCanceled | ( | void |  | ) |

============================================================================
CSL_XMC_getNumPrefetchCanceled

Description
This function returns the contents of XPFAC1 register, i.e., the number of prefetch requests canceled (prefetch requests that returned a non-zero rstatus or other error).

Arguments
None

Return Value Uint32

Pre Condition
None

Post Condition
None

Reads
XMC_XPFAC1_CANCELED

Example

            Uint32      numPrefetchCanceled;

            // Read Prefetch request canceled
            numPrefetchCanceled = CSL_XMC_getNumPrefetchCanceled ();

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_XMC_getNumPrefetchHits | ( | void |  | ) |

============================================================================
CSL_XMC_getNumPrefetchHits

Description
This function returns the contents of XPFAC2 register, i.e., the number of demand prefetch requests that resulted in a successful prefetch.

Arguments
None

Return Value Uint32

Pre Condition
None

Post Condition
None

Reads
XMC_XPFAC2_HIT

Example

            Uint32      numPrefetchHits;

            // Read Number of Prefetch request hits
            numPrefetchHits = CSL_XMC_getNumPrefetchHits ();

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_XMC_getNumPrefetchMisses | ( | void |  | ) |

============================================================================
CSL_XMC_getNumPrefetchMisses

Description
This function returns the contents of XPFAC3 register, i.e., the number of prefetch requests that resulted in a miss and had to be submitted as a demand prefetch request into the system.

Arguments
None

Return Value Uint32

Pre Condition
None

Post Condition
None

Reads
XMC_XPFAC3_MISS

Example

            Uint32      numPrefetchMisses;

            // Read Number of Prefetch request misses
            numPrefetchMisses = CSL_XMC_getNumPrefetchMisses ();

=============================================================================

CSL_IDEF_INLINE Uint32 CSL_XMC_getNumPrefetchSent | ( | void |  | ) |

============================================================================
CSL_XMC_getNumPrefetchSent

Description
This function returns the contents of XPFAC0 register, i.e., the number of prefetch requests sent into the system.

Arguments
None

Return Value Uint32

Pre Condition
None

Post Condition
None

Reads
XMC_XPFAC0_SENT

Example

            Uint32      numPrefetchSent;

            // Read Prefetch request sent count
            numPrefetchSent = CSL_XMC_getNumPrefetchSent ();

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_getPrefetchAddress | ( | Uint32 | index,
|  | CSL_XMC_XPFADDR * | xpfaddr |
| ) |  |  |

============================================================================
CSL_XMC_getPrefetchAddress

Description
This function gets the contents of XPFADDR register.

Arguments

              index     Index into the set of 8 registers
              xpfaddr   CSL_XMC_XPFADDR structure that needs to be filled from
                        XPFADDR register

Return Value
None

Pre Condition
None

Post Condition
None

Reads
XMC_XPFADDR_ADDR, XMC_XPFADDR_DIR, XMC_XPFADDR_DPH, XMC_XPFADDR_DVH, XMC_XPFADDR_AVH, XMC_XPFADDR_DPL, XMC_XPFADDR_DVL, XMC_XPFADDR_AVL

Example

            Uint32 index = 0;
            CSL_XMC_XPFADDR xpfaddr;

            CSL_XMC_getPrefetchAddress (index, &xpfaddr);

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_getXMPAXH | ( | Uint32 | index,
|  | CSL_XMC_XMPAXH * | mpaxh |
| ) |  |  |

============================================================================
CSL_XMC_getXMPAXH

Description
This function gets the contents of XMPAXH register.

Arguments

            index       Index into the set of 16 XMPAXH registers
            mpaxh       CSL_XMC_XMPAXH structure that needs to be populated with
                        XMPAXH register contents.

Return Value
None

Pre Condition
None

Post Condition
None

Reads
XMC_XMPAXH_SEGSZ, XMC_XMPAXH_BADDR

Example

            Uint32 index = 0;
            CSL_XMC_XMPAXH mpaxh;

            CSL_XMC_getXMPAXH (index, &mpaxh);

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_getXMPAXL | ( | Uint32 | index,
|  | CSL_XMC_XMPAXL * | mpaxl |
| ) |  |  |

============================================================================
CSL_XMC_getXMPAXL

Description
This function gets the contents of XMPAXL register.

Arguments

            index       Index into the set of 16 registers
            mpaxl       CSL_XMC_XMPAXL structure that needs to be populated with
                        XMPAXL register contents.

Return Value
None

Pre Condition
None

Post Condition
None

Reads
XMC_XMPAXL_RADDR, XMC_XMPAXL_UX, XMC_XMPAXL_UW, XMC_XMPAXL_UR, XMC_XMPAXL_SX, XMC_XMPAXL_SW, XMC_XMPAXL_SR

Example

            Uint32 index = 0;
            CSL_XMC_XMPAXL mpaxl;

            CSL_XMC_getXMPAXL (index, &mpaxl);

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_invalidatePrefetchBuffer | ( | void |  | ) |

============================================================================
CSL_XMC_invalidatePrefetchBuffer

Description
This function when called marks all slots in the data prefetch buffer and program prefetch buffer invalid by writing 1 in the XPFCMD register's INV bit.

Arguments
None

Return Value
None

Pre Condition
None

Post Condition
CSL_XMC_XPFCMD_INV bit set to 1 and data and program prefetch buffers are invalidated.

Writes
XMC_XPFCMD_INV=1

Affects
XMC_XPFADDR_DVH=0, XMC_XPFADDR_DVL=0

Example

     *
            CSL_XMC_invalidatePrefetchBuffer ();

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_loadAnalysisCounterEnable | ( | void |  | ) |

============================================================================
CSL_XMC_loadAnalysisCounterEnable

Description
This function when called sets the 'ACENL' bit of the XPFCMD register, thus triggering a copy/load of ACEN bits (Analysis counter enable mode) into ACEN bits of XPFACS register.

Arguments
None

Return Value
None

Pre Condition
None

Post Condition
CSL_XMC_XPFCMD_ACENL bit set to 1 and ACEN bits value is loaded into the ACEN bits of XPFACS register.

Writes
XMC_XPFCMD_ACENL=1

Affects
XMC_XPFACS_ACEN

Example

     *
            CSL_XMC_loadAnalysisCounterEnable ();

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_resetAnalysisCounters | ( | void |  | ) |

============================================================================
CSL_XMC_resetAnalysisCounters

Description
This function when called sets the 'ACRST' bit of the XPFCMD register, thus triggering a clear/reset operation on the prefetch analysis counter registers.

Arguments
None

Return Value
None

Pre Condition
None

Post Condition
CSL_XMC_XPFCMD_ACRST bit set to 1 and prefetch analysis counter registers are cleared.

Writes
XMC_XPFCMD_ACRST=1

Affects
XMC_XPFAC0_SENT=0, XMC_XPFAC1_CANCELED=0, XMC_XPFAC2_HIT=0, XMC_XPFAC3_MISS=0

Example

     *
            CSL_XMC_resetAnalysisCounters ();

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_setAnalysisCounterEnableMode | ( | CSL_XMC_ACEN_MODE | acenMode | ) |

============================================================================
CSL_XMC_setAnalysisCounterEnableMode

Description
This function when called sets up the Event counting mode by writing to the 'ACEN' bits of the XPFCMD register.

Arguments

              acenMode  Analyis counter mode.

Return Value
None

Pre Condition
None

Post Condition
CSL_XMC_XPFCMD_ACEN bits written with the Analysis counter mode specified.

Writes
XMC_XPFCMD_ACEN

Example

            // Enable both program and data events
            CSL_XMC_setAnalysisCounterEnableMode (CSL_XMC_ACEN_MODE_COUNT_ALL);

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_setMDMAPriority | ( | Uint32 | priority | ) |

============================================================================
CSL_XMC_setMDMAPriority

Description
This function configures the priority of transaction submissions to Master DMA (MDMA).

Arguments

            priority        Priority value to set for MDMA transactions.

Return Value
None

Pre Condition
None

Post Condition
None

Writes
XMC_MDMAARBX_PRI

Example

            Uint32 priority = 4;

            CSL_XMC_setMDMAPriority (priority);

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_setPrefetchCommand | ( | Uint8 | inv,
|  | Uint8 | acEnLoad,
|  | CSL_XMC_ACEN_MODE | acenMode,
|  | Uint8 | acRst |
| ) |  |  |

============================================================================
CSL_XMC_setPrefetchCommand

Description
This function sets up the contents of the XPFCMD register based on the inputs specified.

Arguments

            inv         Invalidate Prefetch Buffer command flag. When set to 1,
                        data and program prefetch buffers are invalidated.
            acEnLoad    Analysis Counter Enable Load flag. When set to 1, the
                        Analysis Counter Enable mode is loaded into the XPFACS status
                        register.
            acEnMode    Analyis counter enable mode. Specifies the event counting mode
                        for the prefetcher.
            acRst       Analysis counter Reset flag. When set to 1, resets all
                        the prefetch event counters.

Return Value
None

Pre Condition
None

Post Condition
CSL_XMC_XPFCMD written with the settings specified.

Writes
XMC_XPFCMD_INV, XMC_XPFCMD_ACENL, XMC_XPFCMD_ACEN, XMC_XPFCMD_ACRST

Example

            // Issue the following prefetch commands:
            //  - Dont invalidate prefetch buffers
            //  - Enable Analysis Counter Enable load
            //  - Enable both program and data event counting
            //  - Dont reset the prefetch counters
            CSL_XMC_setPrefetchCommand (0, 1, CSL_XMC_ACEN_MODE_COUNT_ALL, 0);

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_setXMPAXH | ( | Uint32 | index,
|  | CSL_XMC_XMPAXH * | mpaxh |
| ) |  |  |

============================================================================
CSL_XMC_setXMPAXH

Description
This function sets the contents of XMPAXH register indicated by the index here.

Arguments

            index       Index into the set of 16 registers (0-15)
            mpaxh       CSL_XMC_XMPAXH structure that needs to be set into the
                        register

Return Value
None

Pre Condition
None

Post Condition
Corresponding XMPAXH register configured with the value passed.

Writes
XMC_XMPAXH_SEGSZ, XMC_XMPAXH_BADDR

Example

            Uint32 index = 0;
            CSL_XMC_XMPAXH mpaxh;

            mpaxh.segSize = 4;
            mpaxh.baseAddress = 0x1000;

            CSL_XMC_setXMPAXH (index, &mpaxh);

=============================================================================

CSL_IDEF_INLINE void CSL_XMC_setXMPAXL | ( | Uint32 | index,
|  | CSL_XMC_XMPAXL * | mpaxl |
| ) |  |  |

============================================================================
CSL_XMC_setXMPAXL

Description
This function sets the contents of XMPAXL register corresponding to the index specified.

Arguments

            index       Index into the set of 16 registers (0-15)
            mpaxl       CSL_XMC_XMPAXL structure that needs to be set into the
                        register

Return Value
None

Pre Condition
None

Post Condition
Corresponding XMPAXL register configured with the value passed.

Writes
XMC_XMPAXL_RADDR, XMC_XMPAXL_UX, XMC_XMPAXL_UW, XMC_XMPAXL_UR, XMC_XMPAXL_SX, XMC_XMPAXL_SW, XMC_XMPAXL_SR

Example

            Uint32 index = 0;
            CSL_XMC_XMPAXL mpaxl;

            mpaxl.ux = 1;
            mpaxl.uw = 1;
            mpaxl.ur = 1;
            mpaxl.sx = 1;
            mpaxl.sw = 1;
            mpaxl.sr = 1;
            mpaxl.rAddr = 0x4000 ;

            CSL_XMC_setXMPAXL (index, &mpaxl);

=============================================================================

Copyright 2012, Texas Instruments Incorporated