NMSIS-Core  Version 1.6.0
NMSIS-Core support for Nuclei processor-based devices
SMPCC Functions

SMPCC related functions. More...

Functions

__STATIC_FORCEINLINE SMP_VER_Type SMPCC_GetVersion (void)
 Get the SMP version number. More...
 
__STATIC_FORCEINLINE uint8_t SMPCC_IsCCachePresent (void)
 Check if cluster cache is present. More...
 
__STATIC_FORCEINLINE uint8_t SMPCC_GetCoreNum (void)
 Get the number of cores in the cluster. More...
 
__STATIC_FORCEINLINE uint8_t SMPCC_GetIOCPNum (void)
 Get the number of IO coherency ports. More...
 
__STATIC_FORCEINLINE uint8_t SMPCC_GetPMONNum (void)
 Get the number of performance monitors. More...
 
__STATIC_FORCEINLINE uint32_t SMPCC_GetCCacheSetNum (void)
 Get the number of cache sets. More...
 
__STATIC_FORCEINLINE uint32_t SMPCC_GetCCacheWayNum (void)
 Get the number of cache ways. More...
 
__STATIC_FORCEINLINE uint8_t SMPCC_GetCCacheLineSize (void)
 Get the cache line size. More...
 
__STATIC_FORCEINLINE uint8_t SMPCC_IsCCacheSupportECC (void)
 Check if cluster cache supports ECC. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableSnoop (uint16_t client_msk)
 Enable snoop for specific clients. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableSnoop (uint16_t client_msk)
 Disable snoop for specific clients. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCCache (void)
 Enable cluster cache. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCCache (void)
 Disable cluster cache. More...
 
__STATIC_FORCEINLINE int32_t SMPCC_IsCCacheEnabled (void)
 Get status of cluster cache. More...
 
__STATIC_FORCEINLINE uint8_t SMPCC_IsAnySnoopPending (uint32_t client_msk)
 Check if any client is being snooped. More...
 
__STATIC_FORCEINLINE uint8_t SMPCC_IsAnyTransactionPending (uint32_t client_msk)
 Check if any transaction is pending for clients. More...
 
__STATIC_FORCEINLINE void SMPCC_SetCLMAllWays (uint64_t addr)
 Set Cluster Local Memory to use all ways. More...
 
__STATIC_FORCEINLINE void SMPCC_SetCLMNWays (uint64_t addr, uint32_t way_msk)
 Set Cluster Local Memory to use specific ways. More...
 
__STATIC_FORCEINLINE void SMPCC_SetCLMNoWay (void)
 Configure Cluster Local Memory to use no ways. More...
 
__STATIC_FORCEINLINE void SMPCC_SetCCacheControl (uint32_t val)
 Set Cluster Cache Control register. More...
 
__STATIC_FORCEINLINE uint32_t SMPCC_GetCCacheControl (void)
 Get Cluster Cache Control register value. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCCacheECC (void)
 Enable Cluster Cache ECC. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCCacheECC (void)
 Disable Cluster Cache ECC. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCCacheECCExcp (void)
 Enable Cluster Cache ECC Exception. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCCacheECCExcp (void)
 Disable Cluster Cache ECC Exception. More...
 
__STATIC_FORCEINLINE void SMPCC_LockECCConfig (void)
 Lock ECC Configuration. More...
 
__STATIC_FORCEINLINE void SMPCC_LockECCErrInjection (void)
 Lock ECC Error Injection Register. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableRecvErrIrq (void)
 Enable Recoverable Error Interrupt. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableRecvErrIrq (void)
 Disable Recoverable Error Interrupt. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableFatalErrIrq (void)
 Enable Fatal Error Interrupt. More...
 
__STATIC_FORCEINLINE void SMPCC_ClearBusErrPending (void)
 Clear Bus Error Pending Status. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableFatalErrIrq (void)
 Disable Fatal Error Interrupt. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableBusErrIrq (void)
 Enable Bus Error Interrupt. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableBusErrIrq (void)
 Disable Bus Error Interrupt. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableSModeCmd (void)
 Enable Supervisor Mode Commands. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableSModeCmd (void)
 Disable Supervisor Mode Commands. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableUModeCmd (void)
 Enable User Mode Commands. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableUModeCmd (void)
 Disable User Mode Commands. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCCacheECCCheck (void)
 Enable Cluster Cache ECC Check. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCCacheECCCheck (void)
 Disable Cluster Cache ECC Check. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCLMECC (void)
 Enable Cluster Local Memory ECC. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCLMECC (void)
 Disable Cluster Local Memory ECC. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCLMECCCheck (void)
 Enable Cluster Local Memory ECC Check. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCLMECCCheck (void)
 Disable Cluster Local Memory ECC Check. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCLMECCExcp (void)
 Enable Cluster Local Memory ECC Exception. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCLMECCExcp (void)
 Disable Cluster Local Memory ECC Exception. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableL1PrefetchShareCacheline (void)
 Enable L1 Prefetch to Snoop and Share Cacheline. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableL1PrefetchShareCacheline (void)
 Disable L1 Prefetch to Snoop and Share Cacheline. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCCacheEarlyPrefetch (void)
 Enable Cluster Cache Early Prefetch. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCCacheEarlyPrefetch (void)
 Disable Cluster Cache Early Prefetch. More...
 
__STATIC_FORCEINLINE void SMPCC_LimitCCachePrefetchOutsNum (void)
 Limit Cluster Cache Prefetch Outstanding Number. More...
 
__STATIC_FORCEINLINE void SMPCC_UnlimitCCachePrefetchOutsNum (void)
 Unlimit Cluster Cache Prefetch Outstanding Number. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableCCachePrefetchNoWb (void)
 Enable Cluster Cache Prefetch to Avoid Write Back. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableCCachePrefetchNoWb (void)
 Disable Cluster Cache Prefetch to Avoid Write Back. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableICacheSnoopDCache (void)
 Enable ICache to Snoop DCache. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableICacheSnoopDCache (void)
 Disable ICache to Snoop DCache. More...
 
__STATIC_FORCEINLINE uint32_t SMPCC_GetRecvErrCount (void)
 Get Recoverable Error Count. More...
 
__STATIC_FORCEINLINE void SMPCC_ClearRecvErrCount (void)
 Clear Recoverable Error Count. More...
 
__STATIC_FORCEINLINE uint32_t SMPCC_GetFatalErrCount (void)
 Get Fatal Error Count. More...
 
__STATIC_FORCEINLINE void SMPCC_ClearFatalErrCount (void)
 Clear Fatal Error Count. More...
 
__STATIC_FORCEINLINE void SMPCC_SetRecvErrCntThreshold (uint16_t threshold)
 Set Recoverable Error Count Threshold. More...
 
__STATIC_FORCEINLINE uint16_t SMPCC_GetRecvErrCntThreshold (void)
 Get Recoverable Error Count Threshold. More...
 
__STATIC_FORCEINLINE void SMPCC_SetFatalErrCntThreshold (uint16_t threshold)
 Set Fatal Error Count Threshold. More...
 
__STATIC_FORCEINLINE uint16_t SMPCC_GetFatalErrCntThreshold (void)
 Get Fatal Error Count Threshold. More...
 
__STATIC_FORCEINLINE uint32_t SMPCC_GetClientErrStatus (uint8_t client_id)
 Get Client Error Status. More...
 
__STATIC_FORCEINLINE void SMPCC_SetSTMControl (uint32_t val)
 Set Stream Control Register. More...
 
__STATIC_FORCEINLINE uint32_t SMPCC_GetSTMControl (void)
 Get Stream Control Register Value. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableStreamRead (void)
 Enable Stream Read. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableStreamRead (void)
 Disable Stream Read. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableStreamWrite (void)
 Enable Stream Write. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableStreamWrite (void)
 Disable Stream Write. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableStreamTransAlloc (void)
 Enable Stream Translate Allocate. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableStreamTransAlloc (void)
 Disable Stream Translate Allocate. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableStreamMergeNCRead (void)
 Enable Stream Merge Non-Cacheable Read. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableStreamMergeNCRead (void)
 Disable Stream Merge Non-Cacheable Read. More...
 
__STATIC_FORCEINLINE void SMPCC_EnableStreamReadCross4K (void)
 Enable Stream Read Cross 4K Boundary. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableStreamReadCross4K (void)
 Disable Stream Read Cross 4K Boundary. More...
 
__STATIC_FORCEINLINE void SMPCC_SetNSRegionNACL (uint8_t region_id, uint64_t addr)
 Set Non-Shareable Region to NACL. More...
 
__STATIC_FORCEINLINE void SMPCC_SetNSRegionNAPOT (uint8_t region_id, uint64_t addr)
 Set Non-Shareable Region to NAPOT. More...
 
__STATIC_FORCEINLINE void SMPCC_DisableNSRegion (uint8_t region_id)
 Disable Non-Shareable Region. More...
 
__STATIC_FORCEINLINE void SMPCC_SetPMONEventSelect (uint8_t idx, uint8_t client_id, uint8_t event)
 Set Performance Monitor Event Selection. More...
 
__STATIC_FORCEINLINE uint32_t SMPCC_GetPMONEventSelect (uint8_t idx)
 Get Performance Monitor Event Selection. More...
 
__STATIC_FORCEINLINE uint64_t SMPCC_GetPMONCount (uint8_t idx)
 Get Performance Monitor Count. More...
 
__STATIC_FORCEINLINE void SMPCC_ClearPMONCount (uint8_t idx)
 Clear Performance Monitor Count. More...
 
__STATIC_FORCEINLINE uint64_t SMPCC_GetClientErrAddr (uint8_t client_id)
 Get Client Error Address. More...
 
__STATIC_FORCEINLINE void SMPCC_MaskClientCCacheWays (uint8_t client_id, uint32_t way_msk)
 Mask Client Cluster Cache Ways. More...
 
__STATIC_FORCEINLINE int32_t SMPCC_IsXorErrorInjectMode (void)
 Check if ECC error injection mode is XOR mode. More...
 
__STATIC_FORCEINLINE void SMPCC_SetECCCode (uint32_t ecc_code)
 Set ECC code for error injection. More...
 
__STATIC_FORCEINLINE void SMPCC_CCacheTramErrInject (uint32_t ecc_code, uint32_t *addr, uint16_t way)
 Inject ECC error to cluster cache tag RAM. More...
 
__STATIC_FORCEINLINE void SMPCC_CCacheDramErrInject (uint32_t ecc_code, uint32_t *addr, uint16_t way)
 Inject ECC error to cluster cache data RAM. More...
 
__STATIC_FORCEINLINE void SMPCC_CLMErrInject (uint32_t ecc_code, uint32_t *addr)
 Inject ECC error to CLM (Cluster Local Memory) More...
 
__STATIC_FORCEINLINE void SMPCC_CCacheErrRestore (void *addr)
 Restore cluster cache after error injection. More...
 

Detailed Description

SMPCC related functions.

Function Documentation

◆ SMPCC_CCacheDramErrInject()

__STATIC_FORCEINLINE void SMPCC_CCacheDramErrInject ( uint32_t  ecc_code,
uint32_t *  addr,
uint16_t  way 
)

Inject ECC error to cluster cache data RAM.

This function injects an ECC error into the cluster cache data RAM at the specified address.

Parameters
ecc_codeECC code to be injected
addrAddress where the error should be injected
wayCache way number used for precise injection
Remarks
The 4-byte data pointed to by addr is used to refill the CCache line. The cache line is larger than 4 bytes, this data is replicated to fill the entire line.
The way value must be one-hot. For example, if the cache has 2 ways, valid values are 0x01 and 0x02; all other values are invalid.
Returns
None

Definition at line 1952 of file core_feature_smpcc.h.

1953 {
1954  if (IINFO_IsPreciseECCInjSupported()) {
1955  SMPCC->CC_ECC_INJ_ADDR = (unsigned long)addr;
1956  SMPCC->CC_ECC_INJ_WAY.b.num = way;
1957  SMPCC->CC_ECC_INJ_DATA = *addr;
1958  }
1959  SMPCC_SetECCCode(ecc_code);
1961  MInvalICacheLine((unsigned long)addr);
1962  MFlushInvalDCacheCCacheLine((unsigned long)addr);
1963  __RWMB();
1964  SMPCC->CC_ERR_INJ.b.inj_data = SMPCC_ERR_INJ_INJDATA_ENABLE;
1965 
1966  if (IINFO_IsPreciseECCInjSupported()) {
1967  SMPCC->CC_ERR_INJ.b.cs = SMPCC_ERR_INJ_CS_START;
1968  /* Wait for the ECC injection to complete */
1969  while (SMPCC->CC_ERR_INJ.b.cs == SMPCC_ERR_INJ_CS_START);
1970  } else {
1971  MLockCCacheLine((unsigned long)addr);
1972  }
1973 
1974  SMPCC->CC_ERR_INJ.b.inj_data = SMPCC_ERR_INJ_INJDATA_DISABLE;
1975  __RWMB(); // To ensure the ECC error injection is finished
1977  __RWMB(); // To ensure the ECC check is enabled
1978 }

References __RWMB, MFlushInvalDCacheCCacheLine, MInvalICacheLine(), MLockCCacheLine(), SMPCC, SMPCC_DisableCCacheECCCheck(), SMPCC_EnableCCacheECCCheck(), SMPCC_ERR_INJ_CS_START, SMPCC_ERR_INJ_INJDATA_DISABLE, SMPCC_ERR_INJ_INJDATA_ENABLE, and SMPCC_SetECCCode().

◆ SMPCC_CCacheErrRestore()

__STATIC_FORCEINLINE void SMPCC_CCacheErrRestore ( void *  addr)

Restore cluster cache after error injection.

This function restores the cluster cache after an error injection operation.

Parameters
addrAddress to be restored
Returns
None

Definition at line 2022 of file core_feature_smpcc.h.

2023 {
2025  MInvalICacheLine((unsigned long)addr);
2026  MFlushInvalDCacheCCacheLine((unsigned long)addr);
2027  MLockCCacheLine((unsigned long)addr);
2029 }

References MFlushInvalDCacheCCacheLine, MInvalICacheLine(), MLockCCacheLine(), SMPCC_DisableCCacheECCCheck(), and SMPCC_EnableCCacheECCCheck().

◆ SMPCC_CCacheTramErrInject()

__STATIC_FORCEINLINE void SMPCC_CCacheTramErrInject ( uint32_t  ecc_code,
uint32_t *  addr,
uint16_t  way 
)

Inject ECC error to cluster cache tag RAM.

This function injects an ECC error into the cluster cache tag RAM at the specified address.

Parameters
ecc_codeECC code to be injected
addrAddress where the error should be injected
wayCache way number used for precise injection
Remarks
The 4-byte data pointed to by addr is used to refill the CCache line. The cache line is larger than 4 bytes, this data is replicated to fill the entire line.
The way value must be one-hot. For example, if the cache has 2 ways, valid values are 0x01 and 0x02; all other values are invalid.
Returns
None

Definition at line 1913 of file core_feature_smpcc.h.

1914 {
1915  if (IINFO_IsPreciseECCInjSupported()) {
1916  SMPCC->CC_ECC_INJ_ADDR = (unsigned long)addr;
1917  SMPCC->CC_ECC_INJ_WAY.b.num = way;
1918  SMPCC->CC_ECC_INJ_DATA = *addr;
1919  }
1920  SMPCC_SetECCCode(ecc_code);
1922  MInvalICacheLine((unsigned long)addr);
1923  MFlushInvalDCacheCCacheLine((unsigned long)addr);
1924  __RWMB();
1925  SMPCC->CC_ERR_INJ.b.inj_tag = SMPCC_ERR_INJ_INJTAG_ENABLE;
1926 
1927  if (IINFO_IsPreciseECCInjSupported()) {
1928  SMPCC->CC_ERR_INJ.b.cs = SMPCC_ERR_INJ_CS_START;
1929  /* Wait for the ECC injection to complete */
1930  while (SMPCC->CC_ERR_INJ.b.cs == SMPCC_ERR_INJ_CS_START);
1931  } else {
1932  MLockCCacheLine((unsigned long)addr);
1933  }
1934 
1935  SMPCC->CC_ERR_INJ.b.inj_tag = SMPCC_ERR_INJ_INJTAG_DISABLE;
1936  __RWMB(); // To ensure the ECC error injection is finished
1938  __RWMB(); // To ensure the ECC check is enabled
1939 }

References __RWMB, MFlushInvalDCacheCCacheLine, MInvalICacheLine(), MLockCCacheLine(), SMPCC, SMPCC_DisableCCacheECCCheck(), SMPCC_EnableCCacheECCCheck(), SMPCC_ERR_INJ_CS_START, SMPCC_ERR_INJ_INJTAG_DISABLE, SMPCC_ERR_INJ_INJTAG_ENABLE, and SMPCC_SetECCCode().

◆ SMPCC_ClearBusErrPending()

__STATIC_FORCEINLINE void SMPCC_ClearBusErrPending ( void  )

Clear Bus Error Pending Status.

This function clears the pending status for bus errors in cluster cache maintenance operations.

See also

Definition at line 1179 of file core_feature_smpcc.h.

1180 {
1181  SMPCC->CC_CTRL.b.bus_err_pend = 0;
1182 }

References SMPCC.

◆ SMPCC_ClearFatalErrCount()

__STATIC_FORCEINLINE void SMPCC_ClearFatalErrCount ( void  )

Clear Fatal Error Count.

This function clears the fatal error count register.

See also

Definition at line 1529 of file core_feature_smpcc.h.

1530 {
1531  SMPCC->CC_FATAL_CNT.w = 0;
1532 }

References SMPCC.

◆ SMPCC_ClearPMONCount()

__STATIC_FORCEINLINE void SMPCC_ClearPMONCount ( uint8_t  idx)

Clear Performance Monitor Count.

This function clears the count value of a performance monitor.

Parameters
[in]idxIndex of the performance monitor to clear
See also

Definition at line 1849 of file core_feature_smpcc.h.

1850 {
1851  SMPCC->SMP_PMON_CNT[idx] = 0;
1852 }

References SMPCC.

◆ SMPCC_ClearRecvErrCount()

__STATIC_FORCEINLINE void SMPCC_ClearRecvErrCount ( void  )

Clear Recoverable Error Count.

This function clears the recoverable error count register.

See also

Definition at line 1504 of file core_feature_smpcc.h.

1505 {
1506  SMPCC->CC_RECV_CNT.w = 0;
1507 }

References SMPCC.

◆ SMPCC_CLMErrInject()

__STATIC_FORCEINLINE void SMPCC_CLMErrInject ( uint32_t  ecc_code,
uint32_t *  addr 
)

Inject ECC error to CLM (Cluster Local Memory)

This function injects an ECC error into the CLM at the specified address. Only the ecc code can be injected, the data will keep as it is.

Parameters
ecc_codeECC code to be injected
addrAddress where the error should be injected
Returns
None

Definition at line 1988 of file core_feature_smpcc.h.

1989 {
1990  if (IINFO_IsPreciseECCInjSupported()) {
1991  SMPCC->CC_ECC_INJ_ADDR = (unsigned long)addr;
1992  /* The way number should be one-hot, but not used for CLM error injection. */
1993  SMPCC->CC_ECC_INJ_WAY.b.num = 1;
1994  SMPCC->CC_ECC_INJ_DATA = *addr;
1995  }
1996  SMPCC_SetECCCode(ecc_code);
1998  MFlushInvalDCacheCCacheLine((unsigned long)addr);
1999  __RWMB();
2000  SMPCC->CC_ERR_INJ.b.inj_clm = SMPCC_ERR_INJ_INJCLM_ENABLE;
2001 
2002  if (IINFO_IsPreciseECCInjSupported()) {
2003  SMPCC->CC_ERR_INJ.b.cs = SMPCC_ERR_INJ_CS_START;
2004  /* Wait for the ECC injection to complete */
2005  while (SMPCC->CC_ERR_INJ.b.cs == SMPCC_ERR_INJ_CS_START);
2006  } else {
2007  MLockCCacheLine((unsigned long)addr);
2008  }
2009 
2010  SMPCC->CC_ERR_INJ.b.inj_clm = SMPCC_ERR_INJ_INJCLM_DISABLE;
2011  __RWMB(); // To ensure the ECC error injection is finished
2013  __RWMB(); // To ensure the ECC check is enabled
2014 }

References __RWMB, MFlushInvalDCacheCCacheLine, MLockCCacheLine(), SMPCC, SMPCC_DisableCCacheECCCheck(), SMPCC_EnableCCacheECCCheck(), SMPCC_ERR_INJ_CS_START, SMPCC_ERR_INJ_INJCLM_DISABLE, SMPCC_ERR_INJ_INJCLM_ENABLE, and SMPCC_SetECCCode().

◆ SMPCC_DisableBusErrIrq()

__STATIC_FORCEINLINE void SMPCC_DisableBusErrIrq ( void  )

Disable Bus Error Interrupt.

This function disables interrupt generation for bus errors in cluster cache maintenance operations.

See also

Definition at line 1215 of file core_feature_smpcc.h.

1216 {
1217  SMPCC->CC_CTRL.b.bus_err_irq_en = SMPCC_CTRL_BUS_ERR_IRQ_EN_DISABLE;
1218 }

References SMPCC, and SMPCC_CTRL_BUS_ERR_IRQ_EN_DISABLE.

◆ SMPCC_DisableCCache()

__STATIC_FORCEINLINE void SMPCC_DisableCCache ( void  )

Disable cluster cache.

This function disables the cluster cache.

See also

Definition at line 914 of file core_feature_smpcc.h.

915 {
916  SMPCC->CC_CTRL.b.cc_en = SMPCC_CTRL_CC_EN_DISABLE;
917 }

References SMPCC, and SMPCC_CTRL_CC_EN_DISABLE.

◆ SMPCC_DisableCCacheEarlyPrefetch()

__STATIC_FORCEINLINE void SMPCC_DisableCCacheEarlyPrefetch ( void  )

Disable Cluster Cache Early Prefetch.

This function disables L2 prefetch to initialize external bus read access while looking up the cluster cache.

See also

Definition at line 1407 of file core_feature_smpcc.h.

1408 {
1409  SMPCC->CC_CTRL.b.pf_l2_early_en = SMPCC_CTRL_PF_L2_EARLY_EN_DISABLE;
1410 }

References SMPCC, and SMPCC_CTRL_PF_L2_EARLY_EN_DISABLE.

◆ SMPCC_DisableCCacheECC()

__STATIC_FORCEINLINE void SMPCC_DisableCCacheECC ( void  )

Disable Cluster Cache ECC.

This function disables ECC functionality for the cluster cache.

See also

Definition at line 1082 of file core_feature_smpcc.h.

1083 {
1084  SMPCC->CC_CTRL.b.cc_ecc_en = SMPCC_CTRL_CC_ECC_EN_DISABLE;
1085 }

References SMPCC, and SMPCC_CTRL_CC_ECC_EN_DISABLE.

◆ SMPCC_DisableCCacheECCCheck()

__STATIC_FORCEINLINE void SMPCC_DisableCCacheECCCheck ( void  )

Disable Cluster Cache ECC Check.

This function disables ECC check functionality for the cluster cache.

See also

Definition at line 1287 of file core_feature_smpcc.h.

1288 {
1289  SMPCC->CC_CTRL.b.ecc_chk_en = SMPCC_CTRL_ECC_CHK_EN_DISABLE;
1290 }

References SMPCC, and SMPCC_CTRL_ECC_CHK_EN_DISABLE.

Referenced by SMPCC_CCacheDramErrInject(), SMPCC_CCacheErrRestore(), SMPCC_CCacheTramErrInject(), and SMPCC_CLMErrInject().

◆ SMPCC_DisableCCacheECCExcp()

__STATIC_FORCEINLINE void SMPCC_DisableCCacheECCExcp ( void  )

Disable Cluster Cache ECC Exception.

This function disables ECC exception handling for the cluster cache.

See also

Definition at line 1106 of file core_feature_smpcc.h.

1107 {
1108  SMPCC->CC_CTRL.b.ecc_excp_en = SMPCC_CTRL_CC_ECC_EXCP_EN_DISABLE;
1109 }

References SMPCC, and SMPCC_CTRL_CC_ECC_EXCP_EN_DISABLE.

◆ SMPCC_DisableCCachePrefetchNoWb()

__STATIC_FORCEINLINE void SMPCC_DisableCCachePrefetchNoWb ( void  )

Disable Cluster Cache Prefetch to Avoid Write Back.

This function disables L2 prefetch from aborting and avoiding dirty cacheline write back when filling the cluster cache.

See also

Definition at line 1455 of file core_feature_smpcc.h.

1456 {
1457  SMPCC->CC_CTRL.b.pf_no_wb = SMPCC_CTRL_PF_NO_WB_DISABLE;
1458 }

References SMPCC, and SMPCC_CTRL_PF_NO_WB_DISABLE.

◆ SMPCC_DisableCLMECC()

__STATIC_FORCEINLINE void SMPCC_DisableCLMECC ( void  )

Disable Cluster Local Memory ECC.

This function disables ECC functionality for the Cluster Local Memory.

See also

Definition at line 1311 of file core_feature_smpcc.h.

1312 {
1313  SMPCC->CC_CTRL.b.clm_ecc_en = SMPCC_CTRL_CLM_ECC_EN_DISABLE;
1314 }

References SMPCC, and SMPCC_CTRL_CLM_ECC_EN_DISABLE.

◆ SMPCC_DisableCLMECCCheck()

__STATIC_FORCEINLINE void SMPCC_DisableCLMECCCheck ( void  )

Disable Cluster Local Memory ECC Check.

This function disables ECC check functionality for the Cluster Local Memory.

See also

Definition at line 1335 of file core_feature_smpcc.h.

1336 {
1337  SMPCC->CC_CTRL.b.clm_ecc_chk_en = SMPCC_CTRL_CLM_ECC_CHK_EN_DISABLE;
1338 }

References SMPCC, and SMPCC_CTRL_CLM_ECC_CHK_EN_DISABLE.

◆ SMPCC_DisableCLMECCExcp()

__STATIC_FORCEINLINE void SMPCC_DisableCLMECCExcp ( void  )

Disable Cluster Local Memory ECC Exception.

This function disables ECC exception handling for the Cluster Local Memory.

See also

Definition at line 1359 of file core_feature_smpcc.h.

1360 {
1361  SMPCC->CC_CTRL.b.clm_excp_en = SMPCC_CTRL_CLM_EXCP_EN_DISABLE;
1362 }

References SMPCC, and SMPCC_CTRL_CLM_EXCP_EN_DISABLE.

◆ SMPCC_DisableFatalErrIrq()

__STATIC_FORCEINLINE void SMPCC_DisableFatalErrIrq ( void  )

Disable Fatal Error Interrupt.

This function disables interrupt generation when fatal error count exceeds the threshold.

See also

Definition at line 1191 of file core_feature_smpcc.h.

1192 {
1193  SMPCC->CC_CTRL.b.fatal_err_irq_en = SMPCC_CTRL_FATAL_ERR_IRQ_EN_DISABLE;
1194 }

References SMPCC, and SMPCC_CTRL_FATAL_ERR_IRQ_EN_DISABLE.

◆ SMPCC_DisableICacheSnoopDCache()

__STATIC_FORCEINLINE void SMPCC_DisableICacheSnoopDCache ( void  )

Disable ICache to Snoop DCache.

This function disables snoop to dcache for icache refill reads.

See also

Definition at line 1479 of file core_feature_smpcc.h.

1480 {
1481  SMPCC->CC_CTRL.b.i_snoop_d_en = SMPCC_CTRL_I_SNOOP_D_EN_DISABLE;
1482 }

References SMPCC, and SMPCC_CTRL_I_SNOOP_D_EN_DISABLE.

◆ SMPCC_DisableL1PrefetchShareCacheline()

__STATIC_FORCEINLINE void SMPCC_DisableL1PrefetchShareCacheline ( void  )

Disable L1 Prefetch to Snoop and Share Cacheline.

This function disables L1 prefetch to snoop and share cacheline from other cores.

See also

Definition at line 1383 of file core_feature_smpcc.h.

1384 {
1385  SMPCC->CC_CTRL.b.pf_sh_cl_en = SMPCC_CTRL_PF_SH_CL_EN_DISABLE;
1386 }

References SMPCC, and SMPCC_CTRL_PF_SH_CL_EN_DISABLE.

◆ SMPCC_DisableNSRegion()

__STATIC_FORCEINLINE void SMPCC_DisableNSRegion ( uint8_t  region_id)

Disable Non-Shareable Region.

This function disables a non-shareable region.

Parameters
[in]region_idID of the region to disable
See also

Definition at line 1783 of file core_feature_smpcc.h.

1784 {
1785  SMPCC->NS_RG[region_id].dw = SMPCC_NS_RG_CFG_DISABLE;
1786 }

References SMPCC, and SMPCC_NS_RG_CFG_DISABLE.

◆ SMPCC_DisableRecvErrIrq()

__STATIC_FORCEINLINE void SMPCC_DisableRecvErrIrq ( void  )

Disable Recoverable Error Interrupt.

This function disables interrupt generation when recoverable error count exceeds the threshold.

See also

Definition at line 1154 of file core_feature_smpcc.h.

1155 {
1156  SMPCC->CC_CTRL.b.recv_err_irq_en = SMPCC_CTRL_RECV_ERR_IRQ_EN_DISABLE;
1157 }

References SMPCC, and SMPCC_CTRL_RECV_ERR_IRQ_EN_DISABLE.

◆ SMPCC_DisableSModeCmd()

__STATIC_FORCEINLINE void SMPCC_DisableSModeCmd ( void  )

Disable Supervisor Mode Commands.

This function disables supervisor mode from operating CC_sCMD and SMP_PMON_SEL registers.

See also

Definition at line 1239 of file core_feature_smpcc.h.

1240 {
1241  SMPCC->CC_CTRL.b.sup_cmd_en = SMPCC_CTRL_SUP_CMD_EN_DISABLE;
1242 }

References SMPCC, and SMPCC_CTRL_SUP_CMD_EN_DISABLE.

◆ SMPCC_DisableSnoop()

__STATIC_FORCEINLINE void SMPCC_DisableSnoop ( uint16_t  client_msk)

Disable snoop for specific clients.

This function disables snoop functionality for specified client mask.

Parameters
[in]client_mskClient mask to disable snoop for
See also

Definition at line 890 of file core_feature_smpcc.h.

891 {
892  SMPCC->SMP_ENB.b.smp_enable &= ~client_msk;
893 }

References SMPCC.

◆ SMPCC_DisableStreamMergeNCRead()

__STATIC_FORCEINLINE void SMPCC_DisableStreamMergeNCRead ( void  )

Disable Stream Merge Non-Cacheable Read.

This function disables non-cacheable attribute read merge functionality.

See also

Definition at line 1715 of file core_feature_smpcc.h.

1716 {
1717  SMPCC->STM_CTRL.b.rd_merge_en = SMPCC_STMCTRL_RD_MERGE_EN_DISABLE;
1718 }

References SMPCC, and SMPCC_STMCTRL_RD_MERGE_EN_DISABLE.

◆ SMPCC_DisableStreamRead()

__STATIC_FORCEINLINE void SMPCC_DisableStreamRead ( void  )

Disable Stream Read.

This function disables stream read functionality.

See also

Definition at line 1643 of file core_feature_smpcc.h.

1644 {
1645  SMPCC->STM_CTRL.b.rd_stm_en = SMPCC_STMCTRL_RD_STM_EN_DISABLE;
1646 }

References SMPCC, and SMPCC_STMCTRL_RD_STM_EN_DISABLE.

◆ SMPCC_DisableStreamReadCross4K()

__STATIC_FORCEINLINE void SMPCC_DisableStreamReadCross4K ( void  )

Disable Stream Read Cross 4K Boundary.

This function disables read stream from crossing 4K boundary.

See also

Definition at line 1739 of file core_feature_smpcc.h.

1740 {
1741  SMPCC->STM_CTRL.b.cross_en = SMPCC_STMCTRL_CROSS_EN_DISABLE;
1742 }

References SMPCC, and SMPCC_STMCTRL_CROSS_EN_DISABLE.

◆ SMPCC_DisableStreamTransAlloc()

__STATIC_FORCEINLINE void SMPCC_DisableStreamTransAlloc ( void  )

Disable Stream Translate Allocate.

This function disables translation of allocate attribute to non-alloc attribute.

See also

Definition at line 1691 of file core_feature_smpcc.h.

1692 {
1693  SMPCC->STM_CTRL.b.trans_alloc = SMPCC_STMCTRL_TRANS_ALLOC_DISABLE;
1694 }

References SMPCC, and SMPCC_STMCTRL_TRANS_ALLOC_DISABLE.

◆ SMPCC_DisableStreamWrite()

__STATIC_FORCEINLINE void SMPCC_DisableStreamWrite ( void  )

Disable Stream Write.

This function disables stream write functionality.

See also

Definition at line 1667 of file core_feature_smpcc.h.

1668 {
1669  SMPCC->STM_CTRL.b.wr_stm_en = SMPCC_STMCTRL_WR_STM_EN_DISABLE;
1670 }

References SMPCC, and SMPCC_STMCTRL_WR_STM_EN_DISABLE.

◆ SMPCC_DisableUModeCmd()

__STATIC_FORCEINLINE void SMPCC_DisableUModeCmd ( void  )

Disable User Mode Commands.

This function disables user mode from operating CC_uCMD and SMP_PMON_SEL registers.

See also

Definition at line 1263 of file core_feature_smpcc.h.

1264 {
1265  SMPCC->CC_CTRL.b.use_cmd_en = SMPCC_CTRL_USE_CMD_EN_DISABLE;
1266 }

References SMPCC, and SMPCC_CTRL_USE_CMD_EN_DISABLE.

◆ SMPCC_EnableBusErrIrq()

__STATIC_FORCEINLINE void SMPCC_EnableBusErrIrq ( void  )

Enable Bus Error Interrupt.

This function enables interrupt generation for bus errors in cluster cache maintenance operations.

See also

Definition at line 1203 of file core_feature_smpcc.h.

1204 {
1205  SMPCC->CC_CTRL.b.bus_err_irq_en = SMPCC_CTRL_BUS_ERR_IRQ_EN_ENABLE;
1206 }

References SMPCC, and SMPCC_CTRL_BUS_ERR_IRQ_EN_ENABLE.

◆ SMPCC_EnableCCache()

__STATIC_FORCEINLINE void SMPCC_EnableCCache ( void  )

Enable cluster cache.

This function enables the cluster cache.

See also

Definition at line 902 of file core_feature_smpcc.h.

903 {
904  SMPCC->CC_CTRL.b.cc_en = SMPCC_CTRL_CC_EN_ENABLE;
905 }

References SMPCC, and SMPCC_CTRL_CC_EN_ENABLE.

◆ SMPCC_EnableCCacheEarlyPrefetch()

__STATIC_FORCEINLINE void SMPCC_EnableCCacheEarlyPrefetch ( void  )

Enable Cluster Cache Early Prefetch.

This function enables L2 prefetch to initialize external bus read access while looking up the cluster cache.

See also

Definition at line 1395 of file core_feature_smpcc.h.

1396 {
1397  SMPCC->CC_CTRL.b.pf_l2_early_en = SMPCC_CTRL_PF_L2_EARLY_EN_ENABLE;
1398 }

References SMPCC, and SMPCC_CTRL_PF_L2_EARLY_EN_ENABLE.

◆ SMPCC_EnableCCacheECC()

__STATIC_FORCEINLINE void SMPCC_EnableCCacheECC ( void  )

Enable Cluster Cache ECC.

This function enables ECC functionality for the cluster cache.

See also

Definition at line 1070 of file core_feature_smpcc.h.

1071 {
1072  SMPCC->CC_CTRL.b.cc_ecc_en = SMPCC_CTRL_CC_ECC_EN_ENABLE;
1073 }

References SMPCC, and SMPCC_CTRL_CC_ECC_EN_ENABLE.

◆ SMPCC_EnableCCacheECCCheck()

__STATIC_FORCEINLINE void SMPCC_EnableCCacheECCCheck ( void  )

Enable Cluster Cache ECC Check.

This function enables ECC check functionality for the cluster cache.

See also

Definition at line 1275 of file core_feature_smpcc.h.

1276 {
1277  SMPCC->CC_CTRL.b.ecc_chk_en = SMPCC_CTRL_ECC_CHK_EN_ENABLE;
1278 }

References SMPCC, and SMPCC_CTRL_ECC_CHK_EN_ENABLE.

Referenced by SMPCC_CCacheDramErrInject(), SMPCC_CCacheErrRestore(), SMPCC_CCacheTramErrInject(), and SMPCC_CLMErrInject().

◆ SMPCC_EnableCCacheECCExcp()

__STATIC_FORCEINLINE void SMPCC_EnableCCacheECCExcp ( void  )

Enable Cluster Cache ECC Exception.

This function enables ECC exception handling for the cluster cache.

See also

Definition at line 1094 of file core_feature_smpcc.h.

1095 {
1096  SMPCC->CC_CTRL.b.ecc_excp_en = SMPCC_CTRL_CC_ECC_EXCP_EN_ENABLE;
1097 }

References SMPCC, and SMPCC_CTRL_CC_ECC_EXCP_EN_ENABLE.

◆ SMPCC_EnableCCachePrefetchNoWb()

__STATIC_FORCEINLINE void SMPCC_EnableCCachePrefetchNoWb ( void  )

Enable Cluster Cache Prefetch to Avoid Write Back.

This function enables L2 prefetch to abort and avoid dirty cacheline write back when filling the cluster cache.

See also

Definition at line 1443 of file core_feature_smpcc.h.

1444 {
1445  SMPCC->CC_CTRL.b.pf_no_wb = SMPCC_CTRL_PF_NO_WB_ENABLE;
1446 }

References SMPCC, and SMPCC_CTRL_PF_NO_WB_ENABLE.

◆ SMPCC_EnableCLMECC()

__STATIC_FORCEINLINE void SMPCC_EnableCLMECC ( void  )

Enable Cluster Local Memory ECC.

This function enables ECC functionality for the Cluster Local Memory.

See also

Definition at line 1299 of file core_feature_smpcc.h.

1300 {
1301  SMPCC->CC_CTRL.b.clm_ecc_en = SMPCC_CTRL_CLM_ECC_EN_ENABLE;
1302 }

References SMPCC, and SMPCC_CTRL_CLM_ECC_EN_ENABLE.

◆ SMPCC_EnableCLMECCCheck()

__STATIC_FORCEINLINE void SMPCC_EnableCLMECCCheck ( void  )

Enable Cluster Local Memory ECC Check.

This function enables ECC check functionality for the Cluster Local Memory.

See also
  • SMPCC_DisableCLMCCCheck

Definition at line 1323 of file core_feature_smpcc.h.

1324 {
1325  SMPCC->CC_CTRL.b.clm_ecc_chk_en = SMPCC_CTRL_CLM_ECC_CHK_EN_ENABLE;
1326 }

References SMPCC, and SMPCC_CTRL_CLM_ECC_CHK_EN_ENABLE.

◆ SMPCC_EnableCLMECCExcp()

__STATIC_FORCEINLINE void SMPCC_EnableCLMECCExcp ( void  )

Enable Cluster Local Memory ECC Exception.

This function enables ECC exception handling for the Cluster Local Memory.

See also

Definition at line 1347 of file core_feature_smpcc.h.

1348 {
1349  SMPCC->CC_CTRL.b.clm_excp_en = SMPCC_CTRL_CLM_EXCP_EN_ENABLE;
1350 }

References SMPCC, and SMPCC_CTRL_CLM_EXCP_EN_ENABLE.

◆ SMPCC_EnableFatalErrIrq()

__STATIC_FORCEINLINE void SMPCC_EnableFatalErrIrq ( void  )

Enable Fatal Error Interrupt.

This function enables interrupt generation when fatal error count exceeds the threshold.

See also

Definition at line 1166 of file core_feature_smpcc.h.

1167 {
1168  SMPCC->CC_CTRL.b.fatal_err_irq_en = SMPCC_CTRL_FATAL_ERR_IRQ_EN_ENABLE;
1169 }

References SMPCC, and SMPCC_CTRL_FATAL_ERR_IRQ_EN_ENABLE.

◆ SMPCC_EnableICacheSnoopDCache()

__STATIC_FORCEINLINE void SMPCC_EnableICacheSnoopDCache ( void  )

Enable ICache to Snoop DCache.

This function enables snoop to dcache for icache refill reads.

See also

Definition at line 1467 of file core_feature_smpcc.h.

1468 {
1469  SMPCC->CC_CTRL.b.i_snoop_d_en = SMPCC_CTRL_I_SNOOP_D_EN_ENABLE;
1470 }

References SMPCC, and SMPCC_CTRL_I_SNOOP_D_EN_ENABLE.

◆ SMPCC_EnableL1PrefetchShareCacheline()

__STATIC_FORCEINLINE void SMPCC_EnableL1PrefetchShareCacheline ( void  )

Enable L1 Prefetch to Snoop and Share Cacheline.

This function enables L1 prefetch to snoop and share cacheline from other cores.

See also

Definition at line 1371 of file core_feature_smpcc.h.

1372 {
1373  SMPCC->CC_CTRL.b.pf_sh_cl_en = SMPCC_CTRL_PF_SH_CL_EN_ENABLE;
1374 }

References SMPCC, and SMPCC_CTRL_PF_SH_CL_EN_ENABLE.

◆ SMPCC_EnableRecvErrIrq()

__STATIC_FORCEINLINE void SMPCC_EnableRecvErrIrq ( void  )

Enable Recoverable Error Interrupt.

This function enables interrupt generation when recoverable error count exceeds the threshold.

See also

Definition at line 1142 of file core_feature_smpcc.h.

1143 {
1144  SMPCC->CC_CTRL.b.recv_err_irq_en = SMPCC_CTRL_RECV_ERR_IRQ_EN_ENABLE;
1145 }

References SMPCC, and SMPCC_CTRL_RECV_ERR_IRQ_EN_ENABLE.

◆ SMPCC_EnableSModeCmd()

__STATIC_FORCEINLINE void SMPCC_EnableSModeCmd ( void  )

Enable Supervisor Mode Commands.

This function enables supervisor mode to operate CC_sCMD and SMP_PMON_SEL registers.

See also

Definition at line 1227 of file core_feature_smpcc.h.

1228 {
1229  SMPCC->CC_CTRL.b.sup_cmd_en = SMPCC_CTRL_SUP_CMD_EN_ENABLE;
1230 }

References SMPCC, and SMPCC_CTRL_SUP_CMD_EN_ENABLE.

◆ SMPCC_EnableSnoop()

__STATIC_FORCEINLINE void SMPCC_EnableSnoop ( uint16_t  client_msk)

Enable snoop for specific clients.

This function enables snoop functionality for specified client mask.

Parameters
[in]client_mskClient mask to enable snoop for
See also

Definition at line 877 of file core_feature_smpcc.h.

878 {
879  SMPCC->SMP_ENB.b.smp_enable |= client_msk;
880 }

References SMPCC.

◆ SMPCC_EnableStreamMergeNCRead()

__STATIC_FORCEINLINE void SMPCC_EnableStreamMergeNCRead ( void  )

Enable Stream Merge Non-Cacheable Read.

This function enables non-cacheable attribute read merge functionality.

See also

Definition at line 1703 of file core_feature_smpcc.h.

1704 {
1705  SMPCC->STM_CTRL.b.rd_merge_en = SMPCC_STMCTRL_RD_MERGE_EN_ENABLE;
1706 }

References SMPCC, and SMPCC_STMCTRL_RD_MERGE_EN_ENABLE.

◆ SMPCC_EnableStreamRead()

__STATIC_FORCEINLINE void SMPCC_EnableStreamRead ( void  )

Enable Stream Read.

This function enables stream read functionality.

See also

Definition at line 1631 of file core_feature_smpcc.h.

1632 {
1633  SMPCC->STM_CTRL.b.rd_stm_en = SMPCC_STMCTRL_RD_STM_EN_ENABLE;
1634 }

References SMPCC, and SMPCC_STMCTRL_RD_STM_EN_ENABLE.

◆ SMPCC_EnableStreamReadCross4K()

__STATIC_FORCEINLINE void SMPCC_EnableStreamReadCross4K ( void  )

Enable Stream Read Cross 4K Boundary.

This function enables read stream to cross 4K boundary.

See also

Definition at line 1727 of file core_feature_smpcc.h.

1728 {
1729  SMPCC->STM_CTRL.b.cross_en = SMPCC_STMCTRL_CROSS_EN_ENABLE;
1730 }

References SMPCC, and SMPCC_STMCTRL_CROSS_EN_ENABLE.

◆ SMPCC_EnableStreamTransAlloc()

__STATIC_FORCEINLINE void SMPCC_EnableStreamTransAlloc ( void  )

Enable Stream Translate Allocate.

This function enables translation of allocate attribute to non-alloc attribute.

See also

Definition at line 1679 of file core_feature_smpcc.h.

1680 {
1681  SMPCC->STM_CTRL.b.trans_alloc = SMPCC_STMCTRL_TRANS_ALLOC_ENABLE;
1682 }

References SMPCC, and SMPCC_STMCTRL_TRANS_ALLOC_ENABLE.

◆ SMPCC_EnableStreamWrite()

__STATIC_FORCEINLINE void SMPCC_EnableStreamWrite ( void  )

Enable Stream Write.

This function enables stream write functionality.

See also

Definition at line 1655 of file core_feature_smpcc.h.

1656 {
1657  SMPCC->STM_CTRL.b.wr_stm_en = SMPCC_STMCTRL_WR_STM_EN_ENABLE;
1658 }

References SMPCC, and SMPCC_STMCTRL_WR_STM_EN_ENABLE.

◆ SMPCC_EnableUModeCmd()

__STATIC_FORCEINLINE void SMPCC_EnableUModeCmd ( void  )

Enable User Mode Commands.

This function enables user mode to operate CC_uCMD and SMP_PMON_SEL registers.

See also

Definition at line 1251 of file core_feature_smpcc.h.

1252 {
1253  SMPCC->CC_CTRL.b.use_cmd_en = SMPCC_CTRL_USE_CMD_EN_ENABLE;
1254 }

References SMPCC, and SMPCC_CTRL_USE_CMD_EN_ENABLE.

◆ SMPCC_GetCCacheControl()

__STATIC_FORCEINLINE uint32_t SMPCC_GetCCacheControl ( void  )

Get Cluster Cache Control register value.

This function returns the current value of the Cluster Cache Control register.

Returns
Current value of the control register
See also

Definition at line 1058 of file core_feature_smpcc.h.

1059 {
1060  return SMPCC->CC_CTRL.w;
1061 }

References SMPCC.

◆ SMPCC_GetCCacheLineSize()

__STATIC_FORCEINLINE uint8_t SMPCC_GetCCacheLineSize ( void  )

Get the cache line size.

This function returns the cache line size in the cluster cache (2^(cc_lsize + 2)).

Returns
Cache line size in bytes

Definition at line 853 of file core_feature_smpcc.h.

854 {
855  return 1 << (SMPCC->CC_CFG.b.cc_lsize + 2);
856 }

References SMPCC.

◆ SMPCC_GetCCacheSetNum()

__STATIC_FORCEINLINE uint32_t SMPCC_GetCCacheSetNum ( void  )

Get the number of cache sets.

This function returns the number of cache sets in the cluster cache (2^cc_set).

Returns
Number of cache sets

Definition at line 831 of file core_feature_smpcc.h.

832 {
833  return 1U << SMPCC->CC_CFG.b.cc_set;
834 }

References SMPCC.

◆ SMPCC_GetCCacheWayNum()

__STATIC_FORCEINLINE uint32_t SMPCC_GetCCacheWayNum ( void  )

Get the number of cache ways.

This function returns the number of cache ways in the cluster cache (cc_way + 1).

Returns
Number of cache ways

Definition at line 842 of file core_feature_smpcc.h.

843 {
844  return SMPCC->CC_CFG.b.cc_way + 1;
845 }

References SMPCC.

◆ SMPCC_GetClientErrAddr()

__STATIC_FORCEINLINE uint64_t SMPCC_GetClientErrAddr ( uint8_t  client_id)

Get Client Error Address.

This function returns the error address for a specific client.

Parameters
[in]client_idID of the client to get error address for
Returns
Error address of the specified client

Definition at line 1861 of file core_feature_smpcc.h.

1862 {
1863  return SMPCC->CLIENT_ERR_ADDR[client_id];
1864 }

References SMPCC.

◆ SMPCC_GetClientErrStatus()

__STATIC_FORCEINLINE uint32_t SMPCC_GetClientErrStatus ( uint8_t  client_id)

Get Client Error Status.

This function returns the error status for a specific client.

Parameters
[in]client_idID of the client to get error status for
Returns
Error status of the specified client

Definition at line 1593 of file core_feature_smpcc.h.

1594 {
1595  return SMPCC->CLIENT_ERR_STATUS[client_id].w;
1596 }

References SMPCC.

◆ SMPCC_GetCoreNum()

__STATIC_FORCEINLINE uint8_t SMPCC_GetCoreNum ( void  )

Get the number of cores in the cluster.

This function returns the number of cores in the SMP cluster.

Returns
Number of cores in the cluster

Definition at line 798 of file core_feature_smpcc.h.

799 {
800  return SMPCC->SMP_CFG.b.smp_core_num + 1;
801 }

References SMPCC.

◆ SMPCC_GetFatalErrCntThreshold()

__STATIC_FORCEINLINE uint16_t SMPCC_GetFatalErrCntThreshold ( void  )

Get Fatal Error Count Threshold.

This function returns the current threshold value for fatal error count.

Returns
Current threshold value for fatal error count
See also

Definition at line 1581 of file core_feature_smpcc.h.

1582 {
1583  return SMPCC->CC_FATAL_THV.b.cnt;
1584 }

References SMPCC.

◆ SMPCC_GetFatalErrCount()

__STATIC_FORCEINLINE uint32_t SMPCC_GetFatalErrCount ( void  )

Get Fatal Error Count.

This function returns the current count of fatal errors.

Returns
Current count of fatal errors
See also

Definition at line 1517 of file core_feature_smpcc.h.

1518 {
1519  return SMPCC->CC_FATAL_CNT.b.cnt;
1520 }

References SMPCC.

◆ SMPCC_GetIOCPNum()

__STATIC_FORCEINLINE uint8_t SMPCC_GetIOCPNum ( void  )

Get the number of IO coherency ports.

This function returns the number of IO coherency ports in the cluster.

Returns
Number of IO coherency ports

Definition at line 809 of file core_feature_smpcc.h.

810 {
811  return SMPCC->SMP_CFG.b.iocp_num;
812 }

References SMPCC.

◆ SMPCC_GetPMONCount()

__STATIC_FORCEINLINE uint64_t SMPCC_GetPMONCount ( uint8_t  idx)

Get Performance Monitor Count.

This function returns the current count value of a performance monitor.

Parameters
[in]idxIndex of the performance monitor
Returns
Current count value of the performance monitor
See also

Definition at line 1834 of file core_feature_smpcc.h.

1835 {
1836  return SMPCC->SMP_PMON_CNT[idx];
1837 }

References SMPCC.

◆ SMPCC_GetPMONEventSelect()

__STATIC_FORCEINLINE uint32_t SMPCC_GetPMONEventSelect ( uint8_t  idx)

Get Performance Monitor Event Selection.

This function gets a performance monitor configuration value.

Parameters
[in]idxIndex of the performance monitor
Returns
The performance monitor configuration value.
See also

Definition at line 1818 of file core_feature_smpcc.h.

1819 {
1820  return SMPCC->SMP_PMON_SEL[idx].w;
1821 }

References SMPCC.

◆ SMPCC_GetPMONNum()

__STATIC_FORCEINLINE uint8_t SMPCC_GetPMONNum ( void  )

Get the number of performance monitors.

This function returns the number of performance monitors in the cluster.

Returns
Number of performance monitors

Definition at line 820 of file core_feature_smpcc.h.

821 {
822  return SMPCC->SMP_CFG.b.pmon_num;
823 }

References SMPCC.

◆ SMPCC_GetRecvErrCntThreshold()

__STATIC_FORCEINLINE uint16_t SMPCC_GetRecvErrCntThreshold ( void  )

Get Recoverable Error Count Threshold.

This function returns the current threshold value for recoverable error count.

Returns
Current threshold value for recoverable error count
See also

Definition at line 1555 of file core_feature_smpcc.h.

1556 {
1557  return SMPCC->CC_RECV_THV.b.cnt;
1558 }

References SMPCC.

◆ SMPCC_GetRecvErrCount()

__STATIC_FORCEINLINE uint32_t SMPCC_GetRecvErrCount ( void  )

Get Recoverable Error Count.

This function returns the current count of recoverable errors.

Returns
Current count of recoverable errors
See also

Definition at line 1492 of file core_feature_smpcc.h.

1493 {
1494  return SMPCC->CC_RECV_CNT.b.cnt;
1495 }

References SMPCC.

◆ SMPCC_GetSTMControl()

__STATIC_FORCEINLINE uint32_t SMPCC_GetSTMControl ( void  )

Get Stream Control Register Value.

This function returns the current value of the Stream Control register.

Returns
Current value of the stream control register
See also

Definition at line 1619 of file core_feature_smpcc.h.

1620 {
1621  return SMPCC->STM_CTRL.w;
1622 }

References SMPCC.

◆ SMPCC_GetVersion()

__STATIC_FORCEINLINE SMP_VER_Type SMPCC_GetVersion ( void  )

Get the SMP version number.

This function gets the hardware version information from SMP_VER register.

Returns
hardware version number in SMP_VER register.

Definition at line 776 of file core_feature_smpcc.h.

777 {
778  return SMPCC->SMP_VER;
779 }

References SMPCC.

◆ SMPCC_IsAnySnoopPending()

__STATIC_FORCEINLINE uint8_t SMPCC_IsAnySnoopPending ( uint32_t  client_msk)

Check if any client is being snooped.

This function checks if any client specified in the mask is currently being snooped.

Parameters
[in]client_mskClient mask to check
Returns
1 if any client is being snooped, 0 otherwise

Definition at line 939 of file core_feature_smpcc.h.

940 {
941  return (SMPCC->SNOOP_PENDING.b.snoop_pending & client_msk) != 0;
942 }

References SMPCC.

◆ SMPCC_IsAnyTransactionPending()

__STATIC_FORCEINLINE uint8_t SMPCC_IsAnyTransactionPending ( uint32_t  client_msk)

Check if any transaction is pending for clients.

This function checks if any transaction is pending for clients specified in the mask.

Parameters
[in]client_mskClient mask to check
Returns
1 if any transaction is pending, 0 otherwise

Definition at line 951 of file core_feature_smpcc.h.

952 {
953  return (SMPCC->TRANS_PENDING.b.trans_pending & client_msk) != 0;
954 }

References SMPCC.

◆ SMPCC_IsCCacheEnabled()

__STATIC_FORCEINLINE int32_t SMPCC_IsCCacheEnabled ( void  )

Get status of cluster cache.

This function returns the enable status of the cluster cache.

Returns
Return the status of cluster cache (1 - enabled, 0 - disabled)
See also

Definition at line 927 of file core_feature_smpcc.h.

928 {
929  return SMPCC->CC_CTRL.b.cc_en;
930 }

References SMPCC.

◆ SMPCC_IsCCachePresent()

__STATIC_FORCEINLINE uint8_t SMPCC_IsCCachePresent ( void  )

Check if cluster cache is present.

This function checks if the cluster cache is present in the system.

Returns
1 if cluster cache is present, 0 otherwise

Definition at line 787 of file core_feature_smpcc.h.

788 {
789  return SMPCC->SMP_CFG.b.cc_present;
790 }

References SMPCC.

◆ SMPCC_IsCCacheSupportECC()

__STATIC_FORCEINLINE uint8_t SMPCC_IsCCacheSupportECC ( void  )

Check if cluster cache supports ECC.

This function checks if the cluster cache supports ECC functionality.

Returns
1 if ECC is supported, 0 otherwise

Definition at line 864 of file core_feature_smpcc.h.

865 {
866  return SMPCC->CC_CFG.b.cc_ecc;
867 }

References SMPCC.

◆ SMPCC_IsXorErrorInjectMode()

__STATIC_FORCEINLINE int32_t SMPCC_IsXorErrorInjectMode ( void  )

Check if ECC error injection mode is XOR mode.

This function checks which ECC error injection mode is supported. Returns 1 if XOR mode is supported, 0 if direct write mode is supported.

Returns
1 if XOR mode is supported, 0 if direct write mode is supported

Definition at line 1884 of file core_feature_smpcc.h.

1885 {
1886  return SMPCC->CC_ERR_INJ.b.inj_mode;
1887 }

References SMPCC.

◆ SMPCC_LimitCCachePrefetchOutsNum()

__STATIC_FORCEINLINE void SMPCC_LimitCCachePrefetchOutsNum ( void  )

Limit Cluster Cache Prefetch Outstanding Number.

This function enables the limit of outstanding L2 prefetch to the number of L2 prefetch line-buffer.

See also

Definition at line 1419 of file core_feature_smpcc.h.

1420 {
1421  SMPCC->CC_CTRL.b.pf_biu_outs_en = SMPCC_CTRL_PF_BIU_OUTS_EN_ENABLE;
1422 }

References SMPCC, and SMPCC_CTRL_PF_BIU_OUTS_EN_ENABLE.

◆ SMPCC_LockECCConfig()

__STATIC_FORCEINLINE void SMPCC_LockECCConfig ( void  )

Lock ECC Configuration.

This function locks the ECC configuration to prevent further changes.

See also

Definition at line 1118 of file core_feature_smpcc.h.

1119 {
1120  SMPCC->CC_CTRL.b.lock_ecc_cfg = SMPCC_CTRL_LOCK_ECC_CFG_LOCK;
1121 }

References SMPCC, and SMPCC_CTRL_LOCK_ECC_CFG_LOCK.

◆ SMPCC_LockECCErrInjection()

__STATIC_FORCEINLINE void SMPCC_LockECCErrInjection ( void  )

Lock ECC Error Injection Register.

This function locks the ECC error injection register to prevent further changes.

See also

Definition at line 1130 of file core_feature_smpcc.h.

1131 {
1132  SMPCC->CC_CTRL.b.lock_ecc_err_inj = SMPCC_CTRL_LOCK_ECC_ERR_INJ_LOCK;
1133 }

References SMPCC, and SMPCC_CTRL_LOCK_ECC_ERR_INJ_LOCK.

◆ SMPCC_MaskClientCCacheWays()

__STATIC_FORCEINLINE void SMPCC_MaskClientCCacheWays ( uint8_t  client_id,
uint32_t  way_msk 
)

Mask Client Cluster Cache Ways.

This function masks specific ways in the cluster cache for a specific client.

Parameters
[in]client_idID of the client
[in]way_mskWay mask to apply

Definition at line 1873 of file core_feature_smpcc.h.

1874 {
1875  SMPCC->CLIENT_WAY_MASK[client_id].w = way_msk;
1876 }

References SMPCC.

◆ SMPCC_SetCCacheControl()

__STATIC_FORCEINLINE void SMPCC_SetCCacheControl ( uint32_t  val)

Set Cluster Cache Control register.

This function sets the value of the Cluster Cache Control register.

Parameters
[in]valValue to set in the control register
See also

Definition at line 1045 of file core_feature_smpcc.h.

1046 {
1047  SMPCC->CC_CTRL.w = val;
1048 }

References SMPCC.

◆ SMPCC_SetCLMAllWays()

__STATIC_FORCEINLINE void SMPCC_SetCLMAllWays ( uint64_t  addr)

Set Cluster Local Memory to use all ways.

This function configures the Cluster Local Memory to use all cache ways at the specified address.

Parameters
[in]addrBase address for Cluster Local Memory.
Remarks
  • Access to the CLM_ADDR_BASE register depends on the physical address (PA) size. If the PA size is not larger than 32 bits, only the low 32 bits of the address can be accessed.
  • Before changing the Cluster Cache to CLM mode, ensure that:
    • The Cluster Cache is disabled,
    • Its contents have been invalidated and flushed to memory.

Example usage:

See also

Definition at line 979 of file core_feature_smpcc.h.

980 {
981 #if (__CPU_PA_SIZE > 32)
982  SMPCC->CLM_ADDR_BASE.clm_base64 = addr;
983 #else
984  SMPCC->CLM_ADDR_BASE.clm32.clm_base32 = (uint32_t)addr;
985 #endif
986  SMPCC->CLM_WAY_EN = 0xFFFFU;
987 }

References SMPCC.

◆ SMPCC_SetCLMNoWay()

__STATIC_FORCEINLINE void SMPCC_SetCLMNoWay ( void  )

Configure Cluster Local Memory to use no ways.

This function configures the Cluster Local Memory to not use any cache ways.

See also

Definition at line 1032 of file core_feature_smpcc.h.

1033 {
1034  SMPCC->CLM_WAY_EN = 0x0000U;
1035 }

References SMPCC.

◆ SMPCC_SetCLMNWays()

__STATIC_FORCEINLINE void SMPCC_SetCLMNWays ( uint64_t  addr,
uint32_t  way_msk 
)

Set Cluster Local Memory to use specific ways.

This function configures the Cluster Local Memory to use specific cache ways at the specified address.

Parameters
[in]addrBase address for Cluster Local Memory
[in]way_mskWay mask to configure
Remarks
  • Access to the CLM_ADDR_BASE register depends on the physical address (PA) size. If the PA size is not larger than 32 bits, only the low 32 bits of the address can be accessed.
  • Before changing the Cluster Cache to CLM mode, ensure that:
    • The Cluster Cache is disabled,
    • Its contents have been invalidated and flushed to memory.

Example usage:

SMPCC_SetCLMNWays(addr, way_msk);
SMPCC_EnableCCache(); // Enable the remaining CCache
See also

Definition at line 1014 of file core_feature_smpcc.h.

1015 {
1016 #if (__CPU_PA_SIZE > 32)
1017  SMPCC->CLM_ADDR_BASE.clm_base64 = addr;
1018 #else
1019  SMPCC->CLM_ADDR_BASE.clm32.clm_base32 = (uint32_t)addr;
1020 #endif
1021  SMPCC->CLM_WAY_EN = way_msk;
1022 }

References SMPCC.

◆ SMPCC_SetECCCode()

__STATIC_FORCEINLINE void SMPCC_SetECCCode ( uint32_t  ecc_code)

Set ECC code for error injection.

This function sets the ECC code to be used for error injection.

Parameters
ecc_codeECC code to be set for error injection
Returns
None

Definition at line 1895 of file core_feature_smpcc.h.

1896 {
1897  SMPCC->CC_ERR_INJ.w = (SMPCC->CC_ERR_INJ.w & ~SMPCC_ERR_INJ_INJECCCODE_Msk) |
1898  _VAL2FLD(SMPCC_ERR_INJ_INJECCCODE, ecc_code);
1899 }

References _VAL2FLD, SMPCC, and SMPCC_ERR_INJ_INJECCCODE_Msk.

Referenced by SMPCC_CCacheDramErrInject(), SMPCC_CCacheTramErrInject(), and SMPCC_CLMErrInject().

◆ SMPCC_SetFatalErrCntThreshold()

__STATIC_FORCEINLINE void SMPCC_SetFatalErrCntThreshold ( uint16_t  threshold)

Set Fatal Error Count Threshold.

This function sets the threshold value for fatal error count.

Parameters
[in]thresholdThreshold value to set
See also

Definition at line 1568 of file core_feature_smpcc.h.

1569 {
1570  SMPCC->CC_FATAL_THV.b.cnt = threshold;
1571 }

References SMPCC.

◆ SMPCC_SetNSRegionNACL()

__STATIC_FORCEINLINE void SMPCC_SetNSRegionNACL ( uint8_t  region_id,
uint64_t  addr 
)

Set Non-Shareable Region to NACL.

This function configures a non-shareable region as NACL (NAPOT/CA with length) at the specified address.

Parameters
[in]region_idID of the region to configure
[in]addrAddress for the region
See also

Definition at line 1754 of file core_feature_smpcc.h.

1755 {
1756  SMPCC->NS_RG[region_id].dw = SMPCC_NS_RG_CFG_NACL | addr;
1757 }

References SMPCC, and SMPCC_NS_RG_CFG_NACL.

◆ SMPCC_SetNSRegionNAPOT()

__STATIC_FORCEINLINE void SMPCC_SetNSRegionNAPOT ( uint8_t  region_id,
uint64_t  addr 
)

Set Non-Shareable Region to NAPOT.

This function configures a non-shareable region as NAPOT (Naturally Aligned Power of Two) at the specified address.

Parameters
[in]region_idID of the region to configure
[in]addrAddress for the region
See also

Definition at line 1769 of file core_feature_smpcc.h.

1770 {
1771  SMPCC->NS_RG[region_id].dw = SMPCC_NS_RG_CFG_NAPOT | addr;
1772 }

References SMPCC, and SMPCC_NS_RG_CFG_NAPOT.

◆ SMPCC_SetPMONEventSelect()

__STATIC_FORCEINLINE void SMPCC_SetPMONEventSelect ( uint8_t  idx,
uint8_t  client_id,
uint8_t  event 
)

Set Performance Monitor Event Selection.

This function configures a performance monitor to select a specific event and client.

Parameters
[in]idxIndex of the performance monitor
[in]client_idID of the client to monitor
[in]eventEvent to monitor
See also

Definition at line 1801 of file core_feature_smpcc.h.

1802 {
1803  SMPCC->SMP_PMON_SEL[idx].w = SMPCC_PMON_EVENT(event, client_id);
1804 }

References SMPCC, and SMPCC_PMON_EVENT.

◆ SMPCC_SetRecvErrCntThreshold()

__STATIC_FORCEINLINE void SMPCC_SetRecvErrCntThreshold ( uint16_t  threshold)

Set Recoverable Error Count Threshold.

This function sets the threshold value for recoverable error count.

Parameters
[in]thresholdThreshold value to set
See also

Definition at line 1542 of file core_feature_smpcc.h.

1543 {
1544  SMPCC->CC_RECV_THV.b.cnt = threshold;
1545 }

References SMPCC.

◆ SMPCC_SetSTMControl()

__STATIC_FORCEINLINE void SMPCC_SetSTMControl ( uint32_t  val)

Set Stream Control Register.

This function sets the value of the Stream Control register.

Parameters
[in]valValue to set in the stream control register
See also

Definition at line 1606 of file core_feature_smpcc.h.

1607 {
1608  SMPCC->STM_CTRL.w = val;
1609 }

References SMPCC.

◆ SMPCC_UnlimitCCachePrefetchOutsNum()

__STATIC_FORCEINLINE void SMPCC_UnlimitCCachePrefetchOutsNum ( void  )

Unlimit Cluster Cache Prefetch Outstanding Number.

This function disables the limit of outstanding L2 prefetch to the number of L2 prefetch line-buffer.

See also

Definition at line 1431 of file core_feature_smpcc.h.

1432 {
1433  SMPCC->CC_CTRL.b.pf_biu_outs_en = SMPCC_CTRL_PF_BIU_OUTS_EN_DISABLE;
1434 }

References SMPCC, and SMPCC_CTRL_PF_BIU_OUTS_EN_DISABLE.

SMPCC_ERR_INJ_INJDATA_DISABLE
#define SMPCC_ERR_INJ_INJDATA_DISABLE
SMPCC CC_ERR_INJ INJDATA Disable.
Definition: core_feature_smpcc.h:288
SMPCC_CTRL_PF_NO_WB_DISABLE
#define SMPCC_CTRL_PF_NO_WB_DISABLE
SMPCC CC_CTRL PF_NO_WB Disable.
Definition: core_feature_smpcc.h:244
SMPCC_STMCTRL_TRANS_ALLOC_ENABLE
#define SMPCC_STMCTRL_TRANS_ALLOC_ENABLE
SMPCC TRANSLATE ALLOC ATTRIBUTE Enable.
Definition: core_feature_smpcc.h:481
MFlushInvalCCache
__STATIC_INLINE int32_t MFlushInvalCCache(void)
Flush and invalidate all Cluster Cache in M-Mode.
Definition: core_feature_cache.h:2497
SMPCC_PMON_EVENT
#define SMPCC_PMON_EVENT(event, client)
Definition: core_feature_smpcc.h:614
SMPCC_CTRL_SUP_CMD_EN_DISABLE
#define SMPCC_CTRL_SUP_CMD_EN_DISABLE
SMPCC CC_CTRL SUP_CMD_EN Disable.
Definition: core_feature_smpcc.h:188
SMPCC_CTRL_CC_EN_DISABLE
#define SMPCC_CTRL_CC_EN_DISABLE
SMPCC CC_CTRL CC_EN Disable.
Definition: core_feature_smpcc.h:147
SMPCC_NS_RG_CFG_NACL
#define SMPCC_NS_RG_CFG_NACL
SMPCC Non-Shareable Region CFG NACL.
Definition: core_feature_smpcc.h:581
SMPCC_CTRL_ECC_CHK_EN_ENABLE
#define SMPCC_CTRL_ECC_CHK_EN_ENABLE
SMPCC CC_CTRL ECC_CHK_EN Enable.
Definition: core_feature_smpcc.h:197
SMPCC_CTRL_PF_L2_EARLY_EN_DISABLE
#define SMPCC_CTRL_PF_L2_EARLY_EN_DISABLE
SMPCC CC_CTRL PF_L2_EARLY_EN Disable.
Definition: core_feature_smpcc.h:223
SMPCC_CTRL_CC_ECC_EN_ENABLE
#define SMPCC_CTRL_CC_ECC_EN_ENABLE
SMPCC CC_CTRL CC_ECC_EN Enable.
Definition: core_feature_smpcc.h:151
SMPCC_STMCTRL_CROSS_EN_ENABLE
#define SMPCC_STMCTRL_CROSS_EN_ENABLE
SMPCC READ STREAM CROSS 4K Enable.
Definition: core_feature_smpcc.h:491
MInvalICacheLine
__STATIC_INLINE void MInvalICacheLine(unsigned long addr)
Invalidate one I-Cache line specified by address in M-Mode.
Definition: core_feature_cache.h:651
SMPCC_STMCTRL_RD_MERGE_EN_DISABLE
#define SMPCC_STMCTRL_RD_MERGE_EN_DISABLE
SMPCC READ Merge Enable Disable.
Definition: core_feature_smpcc.h:487
SMPCC_ERR_INJ_INJECCCODE_Msk
#define SMPCC_ERR_INJ_INJECCCODE_Msk
SMPCC CC_ERR_INJ INJECCCODE Mask.
Definition: core_feature_smpcc.h:310
SMPCC_CTRL_BUS_ERR_IRQ_EN_ENABLE
#define SMPCC_CTRL_BUS_ERR_IRQ_EN_ENABLE
SMPCC CC_CTRL BUS_ERR_IRQ_EN Enable.
Definition: core_feature_smpcc.h:182
SMPCC_CTRL_CLM_EXCP_EN_ENABLE
#define SMPCC_CTRL_CLM_EXCP_EN_ENABLE
SMPCC CC_CTRL CLM_EXCP_EN Enable.
Definition: core_feature_smpcc.h:207
SMPCC_CTRL_CC_ECC_EXCP_EN_ENABLE
#define SMPCC_CTRL_CC_ECC_EXCP_EN_ENABLE
SMPCC CC_CTRL ECC_EXCP_EN Enable.
Definition: core_feature_smpcc.h:156
SMPCC_STMCTRL_RD_MERGE_EN_ENABLE
#define SMPCC_STMCTRL_RD_MERGE_EN_ENABLE
SMPCC READ Merge Enable Enable.
Definition: core_feature_smpcc.h:486
SMPCC_CTRL_ECC_CHK_EN_DISABLE
#define SMPCC_CTRL_ECC_CHK_EN_DISABLE
SMPCC CC_CTRL ECC_CHK_EN Disable.
Definition: core_feature_smpcc.h:198
SMPCC_CTRL_USE_CMD_EN_ENABLE
#define SMPCC_CTRL_USE_CMD_EN_ENABLE
SMPCC CC_CTRL USE_CMD_EN Enable.
Definition: core_feature_smpcc.h:192
SMPCC_CTRL_PF_SH_CL_EN_DISABLE
#define SMPCC_CTRL_PF_SH_CL_EN_DISABLE
SMPCC CC_CTRL PF_SH_CL_EN Disable.
Definition: core_feature_smpcc.h:218
SMPCC_CTRL_CC_EN_ENABLE
#define SMPCC_CTRL_CC_EN_ENABLE
SMPCC CC_CTRL CC_EN Enable.
Definition: core_feature_smpcc.h:146
SMPCC_CTRL_I_SNOOP_D_EN_ENABLE
#define SMPCC_CTRL_I_SNOOP_D_EN_ENABLE
SMPCC CC_CTRL I_SNOOP_D_EN Enable.
Definition: core_feature_smpcc.h:232
SMPCC_CTRL_PF_NO_WB_ENABLE
#define SMPCC_CTRL_PF_NO_WB_ENABLE
SMPCC CC_CTRL PF_NO_WB Enable.
Definition: core_feature_smpcc.h:243
SMPCC_STMCTRL_RD_STM_EN_DISABLE
#define SMPCC_STMCTRL_RD_STM_EN_DISABLE
SMPCC READ Stream Enable Disable.
Definition: core_feature_smpcc.h:472
SMPCC_STMCTRL_WR_STM_EN_DISABLE
#define SMPCC_STMCTRL_WR_STM_EN_DISABLE
SMPCC WRITE Stream Enable Disable.
Definition: core_feature_smpcc.h:477
SMPCC_CTRL_USE_CMD_EN_DISABLE
#define SMPCC_CTRL_USE_CMD_EN_DISABLE
SMPCC CC_CTRL USE_CMD_EN Disable.
Definition: core_feature_smpcc.h:193
SMPCC_EnableCCacheECCCheck
__STATIC_FORCEINLINE void SMPCC_EnableCCacheECCCheck(void)
Enable Cluster Cache ECC Check.
Definition: core_feature_smpcc.h:1275
SMPCC
#define SMPCC
SMPCC configuration struct.
Definition: core_feature_smpcc.h:758
SMPCC_CTRL_CC_ECC_EN_DISABLE
#define SMPCC_CTRL_CC_ECC_EN_DISABLE
SMPCC CC_CTRL CC_ECC_EN Disable.
Definition: core_feature_smpcc.h:152
SMPCC_CTRL_LOCK_ECC_ERR_INJ_LOCK
#define SMPCC_CTRL_LOCK_ECC_ERR_INJ_LOCK
SMPCC CC_CTRL LOCK_ECC_ERR_INJ Lock.
Definition: core_feature_smpcc.h:165
SMPCC_SetECCCode
__STATIC_FORCEINLINE void SMPCC_SetECCCode(uint32_t ecc_code)
Set ECC code for error injection.
Definition: core_feature_smpcc.h:1895
SMPCC_CTRL_RECV_ERR_IRQ_EN_DISABLE
#define SMPCC_CTRL_RECV_ERR_IRQ_EN_DISABLE
SMPCC CC_CTRL RECV_ERR_IRQ_EN Disable.
Definition: core_feature_smpcc.h:170
MLockCCacheLine
__STATIC_INLINE unsigned long MLockCCacheLine(unsigned long addr)
Lock one Cluster Cache line specified by address in M-Mode.
Definition: core_feature_cache.h:258
SMPCC_ERR_INJ_INJTAG_ENABLE
#define SMPCC_ERR_INJ_INJTAG_ENABLE
SMPCC CC_ERR_INJ INJTAG Enable.
Definition: core_feature_smpcc.h:292
SMPCC_ERR_INJ_INJDATA_ENABLE
#define SMPCC_ERR_INJ_INJDATA_ENABLE
SMPCC CC_ERR_INJ INJDATA Enable.
Definition: core_feature_smpcc.h:287
SMPCC_CTRL_LOCK_ECC_CFG_LOCK
#define SMPCC_CTRL_LOCK_ECC_CFG_LOCK
SMPCC CC_CTRL LOCK_ECC_CFG Lock.
Definition: core_feature_smpcc.h:161
MFlushInvalDCacheCCacheLine
#define MFlushInvalDCacheCCacheLine(addr)
Flush and invalidate one D-Cache and Cluster Cache line specified by address in M-Mode.
Definition: core_feature_cache.h:1946
SMPCC_ERR_INJ_CS_START
#define SMPCC_ERR_INJ_CS_START
SMPCC CC_ERR_INJ CS Start.
Definition: core_feature_smpcc.h:307
SMPCC_STMCTRL_WR_STM_EN_ENABLE
#define SMPCC_STMCTRL_WR_STM_EN_ENABLE
SMPCC WRITE Stream Enable Enable.
Definition: core_feature_smpcc.h:476
SMPCC_DisableCCacheECCCheck
__STATIC_FORCEINLINE void SMPCC_DisableCCacheECCCheck(void)
Disable Cluster Cache ECC Check.
Definition: core_feature_smpcc.h:1287
SMPCC_STMCTRL_CROSS_EN_DISABLE
#define SMPCC_STMCTRL_CROSS_EN_DISABLE
SMPCC READ STREAM CROSS 4K Disable.
Definition: core_feature_smpcc.h:492
SMPCC_DisableCCache
__STATIC_FORCEINLINE void SMPCC_DisableCCache(void)
Disable cluster cache.
Definition: core_feature_smpcc.h:914
SMPCC_CTRL_CLM_EXCP_EN_DISABLE
#define SMPCC_CTRL_CLM_EXCP_EN_DISABLE
SMPCC CC_CTRL CLM_EXCP_EN Disable.
Definition: core_feature_smpcc.h:208
SMPCC_NS_RG_CFG_NAPOT
#define SMPCC_NS_RG_CFG_NAPOT
SMPCC Non-Shareable Region CFG NAPOT.
Definition: core_feature_smpcc.h:582
SMPCC_EnableCCache
__STATIC_FORCEINLINE void SMPCC_EnableCCache(void)
Enable cluster cache.
Definition: core_feature_smpcc.h:902
SMPCC_CTRL_FATAL_ERR_IRQ_EN_ENABLE
#define SMPCC_CTRL_FATAL_ERR_IRQ_EN_ENABLE
SMPCC CC_CTRL FATAL_ERR_IRQ_EN Enable.
Definition: core_feature_smpcc.h:174
SMPCC_STMCTRL_RD_STM_EN_ENABLE
#define SMPCC_STMCTRL_RD_STM_EN_ENABLE
SMPCC READ Stream Enable Enable.
Definition: core_feature_smpcc.h:471
SMPCC_NS_RG_CFG_DISABLE
#define SMPCC_NS_RG_CFG_DISABLE
SMPCC Non-Shareable Region CFG DISABLE.
Definition: core_feature_smpcc.h:580
SMPCC_CTRL_PF_BIU_OUTS_EN_DISABLE
#define SMPCC_CTRL_PF_BIU_OUTS_EN_DISABLE
SMPCC CC_CTRL PF_BIU_OUTS_EN Disable.
Definition: core_feature_smpcc.h:228
SMPCC_CTRL_RECV_ERR_IRQ_EN_ENABLE
#define SMPCC_CTRL_RECV_ERR_IRQ_EN_ENABLE
SMPCC CC_CTRL RECV_ERR_IRQ_EN Enable.
Definition: core_feature_smpcc.h:169
SMPCC_CTRL_PF_BIU_OUTS_EN_ENABLE
#define SMPCC_CTRL_PF_BIU_OUTS_EN_ENABLE
SMPCC CC_CTRL PF_BIU_OUTS_EN Enable.
Definition: core_feature_smpcc.h:227
SMPCC_CTRL_CC_ECC_EXCP_EN_DISABLE
#define SMPCC_CTRL_CC_ECC_EXCP_EN_DISABLE
SMPCC CC_CTRL ECC_EXCP_EN Disable.
Definition: core_feature_smpcc.h:157
SMPCC_CTRL_FATAL_ERR_IRQ_EN_DISABLE
#define SMPCC_CTRL_FATAL_ERR_IRQ_EN_DISABLE
SMPCC CC_CTRL FATAL_ERR_IRQ_EN Disable.
Definition: core_feature_smpcc.h:175
SMPCC_SetCLMAllWays
__STATIC_FORCEINLINE void SMPCC_SetCLMAllWays(uint64_t addr)
Set Cluster Local Memory to use all ways.
Definition: core_feature_smpcc.h:979
SMPCC_SetCLMNWays
__STATIC_FORCEINLINE void SMPCC_SetCLMNWays(uint64_t addr, uint32_t way_msk)
Set Cluster Local Memory to use specific ways.
Definition: core_feature_smpcc.h:1014
SMPCC_CTRL_CLM_ECC_EN_ENABLE
#define SMPCC_CTRL_CLM_ECC_EN_ENABLE
SMPCC CC_CTRL CLM_ECC_EN Enable.
Definition: core_feature_smpcc.h:202
SMPCC_ERR_INJ_INJCLM_DISABLE
#define SMPCC_ERR_INJ_INJCLM_DISABLE
SMPCC CC_ERR_INJ INJCLM Disable.
Definition: core_feature_smpcc.h:298
SMPCC_CTRL_CLM_ECC_CHK_EN_ENABLE
#define SMPCC_CTRL_CLM_ECC_CHK_EN_ENABLE
SMPCC CC_CTRL CLM_ECC_CHK_EN Enable.
Definition: core_feature_smpcc.h:212
SMPCC_CTRL_BUS_ERR_IRQ_EN_DISABLE
#define SMPCC_CTRL_BUS_ERR_IRQ_EN_DISABLE
SMPCC CC_CTRL BUS_ERR_IRQ_EN Disable.
Definition: core_feature_smpcc.h:183
SMPCC_CTRL_CLM_ECC_EN_DISABLE
#define SMPCC_CTRL_CLM_ECC_EN_DISABLE
SMPCC CC_CTRL CLM_ECC_EN Disable.
Definition: core_feature_smpcc.h:203
SMPCC_CTRL_I_SNOOP_D_EN_DISABLE
#define SMPCC_CTRL_I_SNOOP_D_EN_DISABLE
SMPCC CC_CTRL I_SNOOP_D_EN Disable.
Definition: core_feature_smpcc.h:233
_VAL2FLD
#define _VAL2FLD(field, value)
Mask and shift a bit field value for use in a register bit range.
Definition: nmsis_compiler.h:84
SMPCC_CTRL_PF_SH_CL_EN_ENABLE
#define SMPCC_CTRL_PF_SH_CL_EN_ENABLE
SMPCC CC_CTRL PF_SH_CL_EN Enable.
Definition: core_feature_smpcc.h:217
SMPCC_CTRL_CLM_ECC_CHK_EN_DISABLE
#define SMPCC_CTRL_CLM_ECC_CHK_EN_DISABLE
SMPCC CC_CTRL CLM_ECC_CHK_EN Disable.
Definition: core_feature_smpcc.h:213
SMPCC_CTRL_PF_L2_EARLY_EN_ENABLE
#define SMPCC_CTRL_PF_L2_EARLY_EN_ENABLE
SMPCC CC_CTRL PF_L2_EARLY_EN Enable.
Definition: core_feature_smpcc.h:222
SMPCC_ERR_INJ_INJCLM_ENABLE
#define SMPCC_ERR_INJ_INJCLM_ENABLE
SMPCC CC_ERR_INJ INJCLM Enable.
Definition: core_feature_smpcc.h:297
SMPCC_CTRL_SUP_CMD_EN_ENABLE
#define SMPCC_CTRL_SUP_CMD_EN_ENABLE
SMPCC CC_CTRL SUP_CMD_EN Enable.
Definition: core_feature_smpcc.h:187
__RWMB
#define __RWMB()
Read & Write Memory barrier.
Definition: core_feature_base.h:850
SMPCC_STMCTRL_TRANS_ALLOC_DISABLE
#define SMPCC_STMCTRL_TRANS_ALLOC_DISABLE
SMPCC TRANSLATE ALLOC ATTRIBUTE Disable.
Definition: core_feature_smpcc.h:482
SMPCC_ERR_INJ_INJTAG_DISABLE
#define SMPCC_ERR_INJ_INJTAG_DISABLE
SMPCC CC_ERR_INJ INJTAG Disable.
Definition: core_feature_smpcc.h:293