AM261x MCU+ SDK: sdl_mcrc.h File Reference

| AM261x MCU+ SDK 26.00.00 |

Data Structures | Macros | Enumerations | Functions
mcrc/v0/sdl_mcrc.h File Reference
APIs for SDL Module » APIs for SDL MCRC » MCRC API

## Introduction

This file contains the prototypes of the APIs present in the device abstraction layer file of MCRC. This also contains some related macros.

Go to the source code of this file.

## MCRC Operation Mode
#define | SDL_MCRC_OPERATION_MODE_DATA (SDL_MCRC_CTRL2_CH1_MODE_DATA)
#define | SDL_MCRC_OPERATION_MODE_AUTO (SDL_MCRC_CTRL2_CH1_MODE_AUTO)
#define | SDL_MCRC_OPERATION_MODE_SEMICPU (SDL_MCRC_CTRL2_CH1_MODE_SEMICPU)
#define | SDL_MCRC_OPERATION_MODE_FULLCPU (SDL_MCRC_CTRL2_CH1_MODE_FULLCPU)
typedef uint32_t | SDL_MCRC_ModeType
| MCRC operation mode supported. MCRC can either operate in Semi-CPU, Full-CPU or Auto mode. More...

## MCRC channel
#define | SDL_MCRC_CHANNEL_1 (0x1U)
#define | SDL_MCRC_CHANNEL_2 (0x2U)
#define | SDL_MCRC_CHANNEL_3 (0x3U)
#define | SDL_MCRC_CHANNEL_4 (0x4U)
typedef uint32_t | SDL_MCRC_Channel_t
| MCRC channel supported. More...

## CRC Type
#define | SDL_MCRC_TYPE_16BIT (SDL_MCRC_CTRL0_CH1_CRC_SEL_16BIT)
#define | SDL_MCRC_TYPE_32BIT (SDL_MCRC_CTRL0_CH1_CRC_SEL_32BIT)
#define | SDL_MCRC_TYPE_64BIT (SDL_MCRC_CTRL0_CH1_CRC_SEL_64BIT)
#define | SDL_MCRC_TYPE_E2EPROFILE (SDL_MCRC_CTRL0_CH1_CRC_SEL_E2EPROFILE4)
#define | SDL_MCRC_TYPE_VDA_CAN_SAEJ1850 (SDL_MCRC_CTRL0_CH1_CRC_SEL_VDA_CAN_SAEJ1850)
#define | SDL_MCRC_TYPE_H2F_AUTOSAR4 (SDL_MCRC_CTRL0_CH1_CRC_SEL_H2F_AUTOSAR4)
#define | SDL_MCRC_TYPE_CASTAGNOLI_ISCSI (SDL_MCRC_CTRL0_CH1_CRC_SEL_CASTAGNOLI_ISCSI)
typedef uint32_t | SDL_MCRC_Type_t
| CRC Type supported. More...

## CRC Data Length
#define | SDL_MCRC_DATALENGTH_16BIT (SDL_MCRC_CTRL0_CH1_DW_SEL_16BIT)
#define | SDL_MCRC_DATALENGTH_32BIT (SDL_MCRC_CTRL0_CH1_DW_SEL_32BIT)
#define | SDL_MCRC_DATALENGTH_64BIT (SDL_MCRC_CTRL0_CH1_DW_SEL_64BIT)
typedef uint32_t | SDL_MCRC_DataLength_t
| CRC Data Length supported. More...

## CRC Bit Swap
#define | SDL_MCRC_BITSWAP_MSB (SDL_MCRC_CTRL0_CH1_BIT_SWAP_MSB)
#define | SDL_MCRC_BITSWAP_LSB (SDL_MCRC_CTRL0_CH1_BIT_SWAP_LSB)
typedef uint32_t | SDL_MCRC_BitSwap_t
| CRC Bit Swap supported. More...

## CRC Byte Swap
#define | SDL_MCRC_BYTESWAP_DISABLE (SDL_MCRC_CTRL0_CH1_BTYE_SWAP_DISABLE)
#define | SDL_MCRC_BYTESWAP_ENABLE (SDL_MCRC_CTRL0_CH1_BTYE_SWAP_ENABLE)
typedef uint32_t | SDL_MCRC_ByteSwap_t
| CRC Byte Swap supported. More...

## Data Structures
struct | SDL_MCRC_Config_t
| CRC Configuration. More...
struct | SDL_MCRC_Signature_t
| Structure for accessing MCRC register data which are 64 bit wide. More...
struct | SDL_MCRC_SignatureRegAddr_t
| Structure for accessing MCRC registers address which are 64 bit wide. More...
struct | SDL_MCRC_ChannelStaticRegs
| MCRC channel static registers list. More...
struct | SDL_MCRC_StaticRegs_t
| MCRC static registers list. More...
struct | SDL_MCRC_DataConfig_t
| Structure for MCRC CPU inputs data. More...

## Macros
#define | SDL_MCRC_CHANNEL_IRQSTATUS_RAW_MAIN_ALL
| Macro defines mask for all the interrupts for a channel. More...
#define | SDL_MCRC_PATTERN_COUNT_MAX (0x000FFFFFU)
| Macro defines maximum value of MCRC Pattern Count. More...
#define | SDL_MCRC_SECTOR_COUNT_MAX (0x0000FFFFU)
| Macro defines maximum value of MCRC Sector Count. More...
#define | SDL_MCRC_BCTOPLD_MAX (0x00FFFFFFU)
| Macro defines maximum value of MCRC Block Complete Timeout Counter Preload. More...
#define | SDL_MCRC_WDTOPLD_MAX (0x00FFFFFFU)
| Macro defines maximum value of MCRC Watchdog Timeout Counter Preload. More...
#define | SDL_MCRC_DATAWIDTH_SEL_64BIT (0x00000000U)
| Macro defines value of MCRC Control Register. More...
#define | SDL_MCRC_DATAWIDTH_SEL_16BIT (0x00000001U)
#define | SDL_MCRC_DATAWIDTH_SEL_32BIT (0x00000002U)
#define | SDL_MCRC_MAX_NUM_OF_CHANNELS (4U)
| Max number of channels supported in MCRC. More...

## Enumerations
enum | SDL_MCRC_DataBitSize { SDL_MCRC_DATA_8_BIT = 1, SDL_MCRC_DATA_16_BIT = 2, SDL_MCRC_DATA_32_BIT = 3 }
| This enumerator defines the Data size for input MCRC DATA. More...

## Functions
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. More...
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. More...
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. More...
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. More...
int32_t | SDL_MCRC_channelReset (SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel)
| This API is used to reset the MCRC channel. More...
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. More...
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. More...
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. More...
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. More...
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. More...
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. More...
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. More...
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 mode for given channel. More...
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. More...
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 initial configuration is done and hence mutliple read between static registers do not change the values. More...
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. More...
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. More...
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 signature value matches with the reference signature value. More...
int32_t | SDL_MCRC_getCRCRegAddr (SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel, SDL_MCRC_SignatureRegAddr_t *pMCRCregAddr)
| This API is used to get the MCRC register address for given Channel. More...
int32_t | SDL_MCRC_configCRCType (SDL_MCRC_InstType instance, SDL_MCRC_Channel_t channel)
| This API is used to configure the MCRC type for given Channel. Legacy API for devices other than AM273X and AWR294X. More...