74 #include <src/sdl/mcrc/sdl_mcrc_hw.h> 76 #if defined (SOC_J721E) 77 #include <include/soc/j721e/sdlr_soc_baseaddress.h> 117 #define SDL_MCRC_CHANNEL_IRQSTATUS_RAW_MAIN_ALL \ 118 (uint32_t) ((uint32_t)SDL_MCRC_INTS_CH1_CCITENS_MASK | \ 119 (uint32_t)SDL_MCRC_INTR_CH1_FAILENR_MASK | \ 120 (uint32_t)SDL_MCRC_INTR_CH1_OVERENR_MASK | \ 121 (uint32_t)SDL_MCRC_INTR_CH1_UNDERENR_MASK | \ 122 (uint32_t)SDL_MCRC_INTR_CH1_TIME_OUT_ENR_MASK) 127 #define SDL_MCRC_PATTERN_COUNT_MAX (0x000FFFFFU) 132 #define SDL_MCRC_SECTOR_COUNT_MAX (0x0000FFFFU) 138 #define SDL_MCRC_BCTOPLD_MAX (0x00FFFFFFU) 143 #define SDL_MCRC_WDTOPLD_MAX (0x00FFFFFFU) 148 #define SDL_MCRC_MAX_NUM_OF_CHANNELS (4U) 170 #define SDL_MCRC_OPERATION_MODE_DATA (SDL_MCRC_CTRL2_CH1_MODE_DATA) 172 #define SDL_MCRC_OPERATION_MODE_AUTO (SDL_MCRC_CTRL2_CH1_MODE_AUTO) 174 #define SDL_MCRC_OPERATION_MODE_SEMICPU (SDL_MCRC_CTRL2_CH1_MODE_SEMICPU) 176 #define SDL_MCRC_OPERATION_MODE_FULLCPU (SDL_MCRC_CTRL2_CH1_MODE_FULLCPU) 190 #define SDL_MCRC_CHANNEL_1 (0x1U) 192 #define SDL_MCRC_CHANNEL_2 (0x2U) 194 #define SDL_MCRC_CHANNEL_3 (0x3U) 196 #define SDL_MCRC_CHANNEL_4 (0x4U) 241 typedef struct SDL_MCRC_Signature
252 typedef struct SDL_MCRC_SigantureRegAddr
291 typedef struct SDL_MCRC_dataConfig
335 uint32_t watchdogPreload,
336 uint32_t blockPreload);
360 uint32_t watchdogPreload,
361 uint32_t blockPreload);
382 uint32_t patternCount,
383 uint32_t sectorCount,
407 uint32_t patternCount,
408 uint32_t sectorCount,
479 uint32_t *pIntrStatus);
555 uint32_t *pBusyFlag);
576 uint32_t *pCurSecNum);
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.
int32_t SDL_MCRC_intrStatus(SDL_MCRC_InstType instance, SDL_MCRC_channel_t channel, uint32_t *pIntrStatus)
This API is used to get the pending interrupts for given Channel.
uint32_t SDL_MCRC_channel_t
MCRC channel supported.
Definition: sdl_mcrc.h:189
volatile uint32_t WDTOPLD
Definition: sdl_mcrc.h:268
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.
uint32_t SDL_MCRC_ModeType
MCRC operation mode supported. MCRC can either operate in Semi-CPU, Full-CPU or Auto mode.
Definition: sdl_mcrc.h:168
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.
uint32_t regH
Definition: sdl_mcrc.h:245
Definition: sdl_mcrc.h:209
MCRC static registers list.
Definition: sdl_mcrc.h:277
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.
volatile uint32_t BUS_SEL
Definition: sdl_mcrc.h:284
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.
#define SDL_MCRC_MAX_NUM_OF_CHANNELS
Max number of channels supported in MCRC.
Definition: sdl_mcrc.h:148
volatile uint32_t PCOUNT
Definition: sdl_mcrc.h:264
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.
Definition: sdl_mcrc.h:222
Structure for accessing MCRC register data which are 64 bit wide.
Definition: sdl_mcrc.h:241
SDL_MCRC_dataBitSize dataBitSize
Definition: sdl_mcrc.h:297
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...
SDL_MCRC_InstType
MCRC Instance supported.
Definition: sdl_mcrc.h:204
SDL_MCRC_dataBitSize
This enumerator defines the Data size for input MCRC DATA.
Definition: sdl_mcrc.h:217
volatile uint32_t BCTOPLD
Definition: sdl_mcrc.h:270
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...
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.
Definition: sdl_mcrc.h:205
uint32_t size
Definition: sdl_mcrc.h:295
volatile uint32_t SCOUNT
Definition: sdl_mcrc.h:266
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.
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.
Definition: sdl_mcrc.h:207
Structure for MCRC CPU inputs data.
Definition: sdl_mcrc.h:291
Structure for accessing MCRC registers address which are 64 bit wide.
Definition: sdl_mcrc.h:252
volatile uint32_t CTRL0
Definition: sdl_mcrc.h:280
volatile uint32_t CTRL1
Definition: sdl_mcrc.h:282
Definition: sdl_mcrc.h:220
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 regH
Definition: sdl_mcrc.h:256
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.
uint32_t regL
Definition: sdl_mcrc.h:243
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.
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.
MCRC channel static registers list.
Definition: sdl_mcrc.h:263
Definition: sdl_mcrc.h:218
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...
uint32_t regL
Definition: sdl_mcrc.h:254
uint32_t * pMCRCData
Definition: sdl_mcrc.h:293