AM263x MCU+ SDK  09.02.00

Introduction

This module contains the APIs to program and use the CCM module.

Files

file  sdl_ip_ccm.h
 Header file contains enumerations, structure definitions and function declarations for SDL CCM interface.
 

Data Structures

struct  SDL_CCM_staticRegs
 CCM Static Register. More...
 
struct  SDL_CCM_ErrorStatus_t
 Structure for CCM error status. More...
 
struct  SDL_vimStaticRegs_GRP
 This structure defines the group registers identified for VIM static registers. More...
 
struct  SDL_vimStaticRegs
 This structure defines the static register groups identified for VIM. More...
 

Functions

int32_t SDL_CCM_init (SDL_CCM_Inst instance, uint32_t index)
 Initialization API for CCM module. More...
 
int32_t SDL_CCM_verifyConfig (SDL_CCM_Inst instance)
 Verifies the configuration done as part of SDL_CCM_init is as expected. More...
 
int32_t SDL_CCM_selfTest (SDL_CCM_Inst instance, SDL_CCM_MonitorType monitorType, SDL_CCM_SelfTestType testType, uint32_t polarityInversionMask, uint32_t timeoutCnt)
 Executes a self-test of the CCM module. The types of self-tests supported are described in detail in SDL_CCM_SelfTestType. More...
 
int32_t SDL_CCM_injectError (SDL_CCM_Inst instance, SDL_CCM_MonitorType monitorType)
 Forces an error to be generated for the selected monitor type. After injecting the error, an ESM error event is generated and the application will receive notification via ESM application callback. More...
 
int32_t SDL_CCM_getStaticRegisters (SDL_CCM_Inst instance, SDL_CCM_staticRegs *pStaticRegs)
 Retrieves the static register configuration. The values returned in staticRegs can be saved by the application and periodically checked for changes. Note: This API should not be called while running any self-test or during error injection, as this will change the values of the static registers temporarily. It should be called only when in normal operating mode. More...
 
int32_t SDL_CCM_getErrorType (SDL_CCM_Inst instance, uint32_t intSrc, SDL_CCM_MonitorType *monitorType)
 Gets the monitor type for which the CCM error was generated. Takes the ESM interrupt source as input. More...
 
int32_t SDL_CCM_clearError (SDL_CCM_Inst instance, SDL_CCM_MonitorType monitorType)
 Clears the compare error for the selected monitor type. More...
 
int32_t SDL_VIM_cfgIntr (SDL_vimRegs *pRegs, uint32_t intrNum, uint32_t pri, SDL_VimIntrMap intrMap, SDL_VimIntrType intrType, uint32_t vecAddr)
 Configure a source interrupt using VIM. More...
 
int32_t SDL_VIM_verifyCfgIntr (SDL_vimRegs *pRegs, uint32_t intrNum, uint32_t pri, SDL_VimIntrMap intrMap, SDL_VimIntrType intrType, uint32_t vecAddr)
 Read back Verify Configure a source interrupt. More...
 
int32_t SDL_VIM_getStaticRegs (SDL_vimRegs *pRegs, SDL_vimStaticRegs *pStaticRegs)
 Read back of static registers for VIM. More...
 

Typedefs

typedef uint32_t SDL_VimIntrMap
 This enumerator defines the possible output interrupt types. Each source interrupt can be configured to drive either the IRQ or FIQ output signal. More...
 
typedef uint32_t SDL_VimIntrType
 This enumerator defines the possible interrupt types. Each source interrupt is either an active high level or active high pulse. More...
 

Enumerations

enum  SDL_CCM_MonitorType {
  SDL_CCM_MONITOR_TYPE_NONE = 0, SDL_CCM_MONITOR_TYPE_OUTPUT_COMPARE_BLOCK = 1, SDL_CCM_MONITOR_TYPE_VIM = 2, SDL_CCM_MONITOR_TYPE_INACTIVITY_MONITOR = 3,
  SDL_CCM_MONITOR_TYPE_INVALID = 4
}
 This enumerator defines the type of CCM Monitor type. More...
 
enum  SDL_CCM_SelfTestType { SDL_CCM_SELFTEST_TYPE_NORMAL = 1, SDL_CCM_SELFTEST_TYPE_ERROR_FORCING = 2, SDL_CCM_SELFTEST_POLARITY_INVERSION = 3, SDL_CCM_SELFTEST_TYPE_INVALID = 4 }
 This enumerator defines the type of CCM Self-test type. More...
 

Macros

#define SDL_VIM_MAX_INTR_GROUPS   (32U)
 
#define SDL_VIM_NUM_INTRS_PER_GROUP   (32U)
 
#define SDL_VIM_INTR_MAP_IRQ   ((uint32_t)0U)
 
#define SDL_VIM_INTR_MAP_FIQ   ((uint32_t)1U)
 
#define SDL_VIM_INTR_MAP_ALL   ((uint32_t)2U)
 
#define SDL_VIM_INTR_TYPE_LEVEL   ((uint32_t)0U)
 
#define SDL_VIM_INTR_TYPE_PULSE   ((uint32_t)1U)
 

Macro Definition Documentation

◆ SDL_VIM_MAX_INTR_GROUPS

#define SDL_VIM_MAX_INTR_GROUPS   (32U)

This enumerator defines the maximum interrupt groups in VIM.

◆ SDL_VIM_NUM_INTRS_PER_GROUP

#define SDL_VIM_NUM_INTRS_PER_GROUP   (32U)

This enumerator defines the number of interrupts per group in VIM.

◆ SDL_VIM_INTR_MAP_IRQ

#define SDL_VIM_INTR_MAP_IRQ   ((uint32_t)0U)

Output interrupt is mapped to IRQ

◆ SDL_VIM_INTR_MAP_FIQ

#define SDL_VIM_INTR_MAP_FIQ   ((uint32_t)1U)

Output interrupt is mapped to FIQ

◆ SDL_VIM_INTR_MAP_ALL

#define SDL_VIM_INTR_MAP_ALL   ((uint32_t)2U)

Output interrupt is mapped to IRQ or FIQ

◆ SDL_VIM_INTR_TYPE_LEVEL

#define SDL_VIM_INTR_TYPE_LEVEL   ((uint32_t)0U)

Interrupt source is a level interrupt type

◆ SDL_VIM_INTR_TYPE_PULSE

#define SDL_VIM_INTR_TYPE_PULSE   ((uint32_t)1U)

Interrupt source is a pulse interrupt type

Typedef Documentation

◆ SDL_VimIntrMap

typedef uint32_t SDL_VimIntrMap

This enumerator defines the possible output interrupt types. Each source interrupt can be configured to drive either the IRQ or FIQ output signal.

◆ SDL_VimIntrType

typedef uint32_t SDL_VimIntrType

This enumerator defines the possible interrupt types. Each source interrupt is either an active high level or active high pulse.

Enumeration Type Documentation

◆ SDL_CCM_MonitorType

This enumerator defines the type of CCM Monitor type.

Enumerator
SDL_CCM_MONITOR_TYPE_NONE 

CCM Monitor None

SDL_CCM_MONITOR_TYPE_OUTPUT_COMPARE_BLOCK 

CCM output compare block monitor type

SDL_CCM_MONITOR_TYPE_VIM 

CCM VIM block monitor type

SDL_CCM_MONITOR_TYPE_INACTIVITY_MONITOR 

CCM inacitivty monitor type

SDL_CCM_MONITOR_TYPE_INVALID 

CCM invalid type

◆ SDL_CCM_SelfTestType

This enumerator defines the type of CCM Self-test type.

Enumerator
SDL_CCM_SELFTEST_TYPE_NORMAL 

Self-test for a particular monitor type

SDL_CCM_SELFTEST_TYPE_ERROR_FORCING 

Error-forcing self-test for a particular monitor type

SDL_CCM_SELFTEST_POLARITY_INVERSION 

Polarity inversion self-test for a particular monitor type

SDL_CCM_SELFTEST_TYPE_INVALID 

CCM invalid type

Function Documentation

◆ SDL_CCM_init()

int32_t SDL_CCM_init ( SDL_CCM_Inst  instance,
uint32_t  index 
)

Initialization API for CCM module.

Parameters
instance[IN] CCM Instance
index[IN] bit map array index value
Returns
The SDL error code for the API SDL_PASS : Success; SDL_EFAIL : if error happened during initialization

◆ SDL_CCM_verifyConfig()

int32_t SDL_CCM_verifyConfig ( SDL_CCM_Inst  instance)

Verifies the configuration done as part of SDL_CCM_init is as expected.

Parameters
instance[IN] CCM Instance
Returns
The SDL error code for the API SDL_PASS : Success; SDL_EFAIL : Verification failed

◆ SDL_CCM_selfTest()

int32_t SDL_CCM_selfTest ( SDL_CCM_Inst  instance,
SDL_CCM_MonitorType  monitorType,
SDL_CCM_SelfTestType  testType,
uint32_t  polarityInversionMask,
uint32_t  timeoutCnt 
)

Executes a self-test of the CCM module. The types of self-tests supported are described in detail in SDL_CCM_SelfTestType.

Parameters
instance[IN] CCM Instance
monitorType[IN] Monitor type for which to run the self-test
testType[IN] Test type to run for the selected monitor type.
polarityInversionMask[IN] Mask used to invert polarity of selected signals. For meaning of signals, refer to hardware manuals. This parameter is used only for the polarity inversion self-test type
timeoutCnt[IN] Number of times to check for self-test completion in a loop before timing out
Returns
The SDL error code for the API SDL_PASS : Self-test passed SDL_EBADARGS : Returned if input paramter is invalid SDL_EFAIL : Self-test failed

◆ SDL_CCM_injectError()

int32_t SDL_CCM_injectError ( SDL_CCM_Inst  instance,
SDL_CCM_MonitorType  monitorType 
)

Forces an error to be generated for the selected monitor type. After injecting the error, an ESM error event is generated and the application will receive notification via ESM application callback.

Parameters
instance[IN] CCM Instance
monitorType[IN] Monitor type for which to inject the error
Returns
The SDL error code for the API SDL_PASS : Error injection passed SDL_EBADARGS : Returned if input paramter is invalid SDL_EFAIL : Error injection failed

◆ SDL_CCM_getStaticRegisters()

int32_t SDL_CCM_getStaticRegisters ( SDL_CCM_Inst  instance,
SDL_CCM_staticRegs pStaticRegs 
)

Retrieves the static register configuration. The values returned in staticRegs can be saved by the application and periodically checked for changes. Note: This API should not be called while running any self-test or during error injection, as this will change the values of the static registers temporarily. It should be called only when in normal operating mode.

Parameters
instance[IN] CCM Instance
pStaticRegs[OUT] Pointer to the variable to store the static register information
Returns
The SDL error code for the API SDL_PASS : Static registers successfully read SDL_EBADARGS : Invalid pointer passed

◆ SDL_CCM_getErrorType()

int32_t SDL_CCM_getErrorType ( SDL_CCM_Inst  instance,
uint32_t  intSrc,
SDL_CCM_MonitorType monitorType 
)

Gets the monitor type for which the CCM error was generated. Takes the ESM interrupt source as input.

Parameters
instance[IN] CCM Instance
intSrc[IN] ESM interrupt source used to check for monitorType that generated the error
monitorType[OUT] Monitor type which generated the error
Returns
The SDL error code for the API SDL_PASS : Monitor type retrieved SDL_EBADARGS : Invalid parameter

◆ SDL_CCM_clearError()

int32_t SDL_CCM_clearError ( SDL_CCM_Inst  instance,
SDL_CCM_MonitorType  monitorType 
)

Clears the compare error for the selected monitor type.

Parameters
instance[IN] CCM Instance
monitorType[IN] Monitor type for which to clear the error
Returns
The SDL error code for the API SDL_PASS : Event cleared SDL_EBADARGS : Invalid parameter SDL_EFAIL : Failed to clear the error

◆ SDL_VIM_cfgIntr()

int32_t SDL_VIM_cfgIntr ( SDL_vimRegs *  pRegs,
uint32_t  intrNum,
uint32_t  pri,
SDL_VimIntrMap  intrMap,
SDL_VimIntrType  intrType,
uint32_t  vecAddr 
)

Configure a source interrupt using VIM.

This function configures the specified source interrupt per the provided parameters.

Parameters
pRegs[IN] Pointer to the SDL_vimRegs register structure
intrNum[IN] Interrupt number
pri[IN] Interrupt priority (0(highest)..15(lowest))
intrMap[IN] Interrupt mapping
intrType[IN] Interrupt type
vecAddr[IN] 32-bit vector address (forced to 32-bit alignment)
Returns
0 = success -1 = intrNum or pri parameters are out of range

◆ SDL_VIM_verifyCfgIntr()

int32_t SDL_VIM_verifyCfgIntr ( SDL_vimRegs *  pRegs,
uint32_t  intrNum,
uint32_t  pri,
SDL_VimIntrMap  intrMap,
SDL_VimIntrType  intrType,
uint32_t  vecAddr 
)

Read back Verify Configure a source interrupt.

This function verifies the writetn configuration of interrupt for the specified source interrupt per the provided parameters.

Parameters
pRegs[IN] Pointer to the SDL_vimRegs register structure
intrNum[IN] Interrupt number
pri[IN] Interrupt priority (0(highest)..15(lowest))
intrMap[IN] Interrupt mapping
intrType[IN] Interrupt type
vecAddr[IN] 32-bit vector address (forced to 32-bit alignment)
Returns
0 = success (matches to expected values) -1 = VIM register configuration is not matching expected value

◆ SDL_VIM_getStaticRegs()

int32_t SDL_VIM_getStaticRegs ( SDL_vimRegs *  pRegs,
SDL_vimStaticRegs pStaticRegs 
)

Read back of static registers for VIM.

The function is used to acknowlege that the specified interrupt type has been serviced. The VIM will then re-evaluate the new highest priority interrupt.

Parameters
pRegs[IN] Pointer to the SDL_vimRegs register structure
pStaticRegs[IN] Pointer to the SDL_vimStaticRegs structure to hold the static register values The static register set is defined to be the list of registers that hardware does not update by itself
Returns
0 = success -1 = failure (could not read back the static registers)