|
AM62x MCU+ SDK
10.00.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)
180 typedef struct SDL_MCRC_Signature
191 typedef struct SDL_MCRC_SigantureRegAddr
230 typedef struct SDL_MCRC_DataConfig
267 uint32_t watchdogPreload,
268 uint32_t blockPreload);
292 uint32_t watchdogPreload,
293 uint32_t blockPreload);
314 uint32_t patternCount,
315 uint32_t sectorCount,
339 uint32_t patternCount,
340 uint32_t sectorCount,
411 uint32_t *pIntrStatus);
487 uint32_t *pBusyFlag);
508 uint32_t *pCurSecNum);
uint32_t regL
Definition: mcrc/v0/sdl_mcrc.h:193
volatile uint32_t CTRL1
Definition: mcrc/v0/sdl_mcrc.h:221
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:219
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:223
uint8_t mode
Definition: tisci_lpm.h:1
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
@ SDL_MCRC_DATA_64_BIT
Definition: mcrc/v0/sdl_mcrc.h:169
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:60
MCRC static registers list.
Definition: mcrc/v0/sdl_mcrc.h:216
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:195
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:202
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:184
volatile uint32_t WDTOPLD
Definition: mcrc/v0/sdl_mcrc.h:207
volatile uint32_t SCOUNT
Definition: mcrc/v0/sdl_mcrc.h:205
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:231
SDL_MCRC_DataBitSize dataBitSize
Definition: mcrc/v0/sdl_mcrc.h:236
uint32_t size
Definition: mcrc/v0/sdl_mcrc.h:234
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:209
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:203
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:232
Structure for accessing MCRC register data which are 64 bit wide.
Definition: mcrc/v0/sdl_mcrc.h:181
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:192
@ 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:182