![Logo](ti_logo.svg) |
AM263x MCU+ SDK
08.05.00
|
|
Go to the documentation of this file.
69 #include "sdl_mcrc_hw.h"
70 #include <sdl/mcrc/v0/soc/sdl_mcrc_soc.h>
83 #define SDL_MCRC_CHANNEL_IRQSTATUS_RAW_MAIN_ALL \
84 (uint32_t) ((uint32_t)SDL_MCRC_INTS_CH1_CCITENS_MASK | \
85 (uint32_t)SDL_MCRC_INTR_CH1_FAILENR_MASK | \
86 (uint32_t)SDL_MCRC_INTR_CH1_OVERENR_MASK | \
87 (uint32_t)SDL_MCRC_INTR_CH1_UNDERENR_MASK | \
88 (uint32_t)SDL_MCRC_INTR_CH1_TIME_OUT_ENR_MASK)
93 #define SDL_MCRC_PATTERN_COUNT_MAX (0x000FFFFFU)
98 #define SDL_MCRC_SECTOR_COUNT_MAX (0x0000FFFFU)
104 #define SDL_MCRC_BCTOPLD_MAX (0x00FFFFFFU)
109 #define SDL_MCRC_WDTOPLD_MAX (0x00FFFFFFU)
114 #define SDL_MCRC_MAX_NUM_OF_CHANNELS (4U)
128 #define SDL_MCRC_OPERATION_MODE_DATA (SDL_MCRC_CTRL2_CH1_MODE_DATA)
130 #define SDL_MCRC_OPERATION_MODE_AUTO (SDL_MCRC_CTRL2_CH1_MODE_AUTO)
132 #define SDL_MCRC_OPERATION_MODE_SEMICPU (SDL_MCRC_CTRL2_CH1_MODE_SEMICPU)
134 #define SDL_MCRC_OPERATION_MODE_FULLCPU (SDL_MCRC_CTRL2_CH1_MODE_FULLCPU)
148 #define SDL_MCRC_CHANNEL_1 (0x1U)
150 #define SDL_MCRC_CHANNEL_2 (0x2U)
152 #define SDL_MCRC_CHANNEL_3 (0x3U)
154 #define SDL_MCRC_CHANNEL_4 (0x4U)
178 typedef struct SDL_MCRC_Signature
189 typedef struct SDL_MCRC_SigantureRegAddr
228 typedef struct SDL_MCRC_DataConfig
265 uint32_t watchdogPreload,
266 uint32_t blockPreload);
290 uint32_t watchdogPreload,
291 uint32_t blockPreload);
312 uint32_t patternCount,
313 uint32_t sectorCount,
337 uint32_t patternCount,
338 uint32_t sectorCount,
409 uint32_t *pIntrStatus);
485 uint32_t *pBusyFlag);
506 uint32_t *pCurSecNum);
uint32_t regL
Definition: mcrc/v0/sdl_mcrc.h:191
volatile uint32_t CTRL1
Definition: mcrc/v0/sdl_mcrc.h:219
int32_t SDL_MCRC_channelReset(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel)
This API is used to reset the MCRC channel.
int32_t SDL_MCRC_config(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t patternCount, uint32_t sectorCount, SDL_MCRC_ModeType mode)
This API will configure MCRC mode, pattern and sector count for given channel.
volatile uint32_t CTRL0
Definition: mcrc/v0/sdl_mcrc.h:217
int32_t SDL_MCRC_enableIntr(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t intrMask)
This API is used to enable interrupts for given Channel.
volatile uint32_t BUS_SEL
Definition: mcrc/v0/sdl_mcrc.h:221
int32_t SDL_MCRC_isBusy(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t *pBusyFlag)
This API is used to check if MCRC is busy for given Channel.
int32_t SDL_MCRC_getPSASigRegAddr(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, SDL_MCRC_SignatureRegAddr_t *pMCRCregAddr)
This API is used to get the PSA register address for given Channel.
uint32_t SDL_MCRC_Channel_t
MCRC channel supported.
Definition: mcrc/v0/sdl_mcrc.h:147
int32_t SDL_MCRC_getPSASectorSig(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, SDL_MCRC_Signature_t *pSecSign)
This API is used to get sector signature Value/ MCRC value for given channel.
SDL_MCRC_InstType
MCRC Instance supported.
Definition: sdl_mcrc_soc.h:61
MCRC static registers list.
Definition: mcrc/v0/sdl_mcrc.h:214
SDL_MCRC_DataBitSize
This enumerator defines the Data size for input MCRC DATA.
Definition: mcrc/v0/sdl_mcrc.h:162
#define SDL_MCRC_MAX_NUM_OF_CHANNELS
Max number of channels supported in MCRC.
Definition: mcrc/v0/sdl_mcrc.h:114
@ SDL_MCRC_DATA_32_BIT
Definition: mcrc/v0/sdl_mcrc.h:167
@ SDL_MCRC_DATA_8_BIT
Definition: mcrc/v0/sdl_mcrc.h:163
uint32_t regH
Definition: mcrc/v0/sdl_mcrc.h:193
int32_t SDL_MCRC_clearIntr(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t intrMask)
This API is used to clear interrupts for given Channel.
int32_t SDL_MCRC_getIntrStatus(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t *pIntrStatus)
This API is used to get the pending interrupts for given Channel.
MCRC channel static registers list.
Definition: mcrc/v0/sdl_mcrc.h:200
int32_t SDL_MCRC_init(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t watchdogPreload, uint32_t blockPreload)
Initialize MCRC channel and will configure watchdog and block preload value for given channel.
uint32_t regH
Definition: mcrc/v0/sdl_mcrc.h:182
volatile uint32_t WDTOPLD
Definition: mcrc/v0/sdl_mcrc.h:205
volatile uint32_t SCOUNT
Definition: mcrc/v0/sdl_mcrc.h:203
int32_t SDL_MCRC_getCurPSASig(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, SDL_MCRC_Signature_t *pCurPSASig)
This API is used to get current known good signature value/ MCRC value for given channel.
Structure for MCRC CPU inputs data.
Definition: mcrc/v0/sdl_mcrc.h:229
SDL_MCRC_DataBitSize dataBitSize
Definition: mcrc/v0/sdl_mcrc.h:234
uint32_t size
Definition: mcrc/v0/sdl_mcrc.h:232
int32_t SDL_MCRC_setPSASeedSig(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, const SDL_MCRC_Signature_t *pSeedSign)
This API is used to set the PSA seed value without compression for given Channel.
uint32_t SDL_MCRC_ModeType
MCRC operation mode supported. MCRC can either operate in Semi-CPU, Full-CPU or Auto mode.
Definition: mcrc/v0/sdl_mcrc.h:126
int32_t SDL_MCRC_getCurSecNum(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t *pCurSecNum)
This API is used to get the current sector number of which the signature verification fails in AUTO m...
volatile uint32_t BCTOPLD
Definition: mcrc/v0/sdl_mcrc.h:207
int32_t SDL_MCRC_verifyInit(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t watchdogPreload, uint32_t blockPreload)
Verify the MCRC watchdog and block preload value initialized for given channel.
int32_t SDL_MCRC_disableIntr(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t intrMask)
This API is used to disable interrupts for given Channel.
volatile uint32_t PCOUNT
Definition: mcrc/v0/sdl_mcrc.h:201
int32_t SDL_MCRC_computeSignCPUmode(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, const SDL_MCRC_DataConfig_t *pDataConfig, SDL_MCRC_Signature_t *sectSignVal)
This API is used to compute the signature for CPU-only mode and it check if the generated MCRC signat...
uint32_t * pMCRCData
Definition: mcrc/v0/sdl_mcrc.h:230
Structure for accessing MCRC register data which are 64 bit wide.
Definition: mcrc/v0/sdl_mcrc.h:179
int32_t SDL_MCRC_readStaticReg(SDL_MCRC_InstType instance, SDL_MCRC_StaticRegs_t *pStaticRegs)
This API is used to read static registers of MCRC module. This API needs to be called after the initi...
Structure for accessing MCRC registers address which are 64 bit wide.
Definition: mcrc/v0/sdl_mcrc.h:190
@ SDL_MCRC_DATA_16_BIT
Definition: mcrc/v0/sdl_mcrc.h:165
int32_t SDL_MCRC_getPSASig(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, SDL_MCRC_Signature_t *pPSAsig)
This API is used to get current known good signature value/ MCRC value for given channel.
int32_t SDL_MCRC_verifyConfig(SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, uint32_t patternCount, uint32_t sectorCount, SDL_MCRC_ModeType mode)
This API will verify the configure of MCRC mode, pattern and sector count for given channel.
uint32_t regL
Definition: mcrc/v0/sdl_mcrc.h:180