Data Structures | |
| struct | ICM_REGION_CONFIG_T |
| ICM region configuration structure. More... | |
| struct | ICM_REGION_DESCRIPTOR_T |
| ICM Region Descriptor structure in system memory. More... | |
| struct | ICM_ERROR_STATUS_T |
| ICM error status structure. More... | |
Macros | |
| #define | ICM_RCFG_ALGO_Pos _UINT32_(12) |
| #define | ICM_RCFG_ALGO_Msk (_UINT32_(0x7) << ICM_RCFG_ALGO_Pos) |
| #define | ICM_RCFG_ALGO(value) (ICM_RCFG_ALGO_Msk & (_UINT32_(value) << ICM_RCFG_ALGO_Pos)) |
| #define | ICM_RCFG_ALGO_SHA1_Val _UINT32_(0x0) |
| #define | ICM_RCFG_ALGO_SHA256_Val _UINT32_(0x1) |
| #define | ICM_RCFG_PROCDLY_Pos _UINT32_(10) |
| #define | ICM_RCFG_PROCDLY_Msk (_UINT32_(0x1) << ICM_RCFG_PROCDLY_Pos) |
| #define | ICM_RCFG_SUIEN_Pos _UINT32_(9) |
| #define | ICM_RCFG_SUIEN_Msk (_UINT32_(0x1) << ICM_RCFG_SUIEN_Pos) |
| #define | ICM_RCFG_ECIEN_Pos _UINT32_(8) |
| #define | ICM_RCFG_ECIEN_Msk (_UINT32_(0x1) << ICM_RCFG_ECIEN_Pos) |
| #define | ICM_RCFG_WCIEN_Pos _UINT32_(7) |
| #define | ICM_RCFG_WCIEN_Msk (_UINT32_(0x1) << ICM_RCFG_WCIEN_Pos) |
| #define | ICM_RCFG_BEIEN_Pos _UINT32_(6) |
| #define | ICM_RCFG_BEIEN_Msk (_UINT32_(0x1) << ICM_RCFG_BEIEN_Pos) |
| #define | ICM_RCFG_DMIEN_Pos _UINT32_(5) |
| #define | ICM_RCFG_DMIEN_Msk (_UINT32_(0x1) << ICM_RCFG_DMIEN_Pos) |
| #define | ICM_RCFG_RHIEN_Pos _UINT32_(4) |
| #define | ICM_RCFG_RHIEN_Msk (_UINT32_(0x1) << ICM_RCFG_RHIEN_Pos) |
| #define | ICM_RCFG_EOM_Pos _UINT32_(2) |
| #define | ICM_RCFG_EOM_Msk (_UINT32_(0x1) << ICM_RCFG_EOM_Pos) |
| #define | ICM_RCFG_WRAP_Pos _UINT32_(1) |
| #define | ICM_RCFG_WRAP_Msk (_UINT32_(0x1) << ICM_RCFG_WRAP_Pos) |
| #define | ICM_RCFG_CDWBN_Pos _UINT32_(0) |
| #define | ICM_RCFG_CDWBN_Msk (_UINT32_(0x1) << ICM_RCFG_CDWBN_Pos) |
| #define | ICM_RCTRL_TRSIZE_Pos _UINT32_(0) |
| #define | ICM_RCTRL_TRSIZE_Msk (_UINT32_(0xFFFF) << ICM_RCTRL_TRSIZE_Pos) |
| #define | ICM_RCTRL_TRSIZE(value) (ICM_RCTRL_TRSIZE_Msk & (_UINT32_(value) << ICM_RCTRL_TRSIZE_Pos)) |
| #define | ICM_INTERRUPT_URAD (0U) |
| ICM interrupt source definitions. | |
| #define | ICM_INTERRUPT_RSU (1U) |
| #define | ICM_INTERRUPT_REC (2U) |
| #define | ICM_INTERRUPT_RWC (3U) |
| #define | ICM_INTERRUPT_RBE (4U) |
| #define | ICM_INTERRUPT_RDM (5U) |
| #define | ICM_INTERRUPT_RHC (6U) |
| #define | ICM_REGIONS_NUM (4U) |
| Maximum number of memory regions supported by ICM peripheral. | |
Typedefs | |
| typedef void(* | IcmCallback_t) (uint32_t status, const void *context) |
| ICM callback function type. | |
Functions | |
| void | ICM_SetGlobalConfig (uint32_t cfgBits) |
| Write the ICM global configuration register (ICM_CFG). | |
| uint32_t | ICM_GetGlobalConfig (void) |
| Read the ICM global configuration register (ICM_CFG). | |
| bool | ICM_SetDescriptorAddress (uint32_t address) |
| Set the region descriptor area base address (ICM_DSCR). | |
| uint32_t | ICM_GetDescriptorAddress (void) |
| Get the region descriptor area base address (ICM_DSCR). | |
| bool | ICM_SetHashAddress (uint32_t address) |
| Set the hash area base address (ICM_HASH). | |
| uint32_t | ICM_GetHashAddress (void) |
| Get the hash area base address (ICM_HASH). | |
| void | ICM_Enable (void) |
| Enable the ICM peripheral. | |
| void | ICM_Disable (void) |
| Disable the ICM peripheral. | |
| void | ICM_ResetSoftware (void) |
| Perform a software reset of the ICM peripheral. | |
| bool | ICM_ConfigureRegion (uint8_t regionIndex, const ICM_REGION_CONFIG_T *regionConfig) |
| Configure a region descriptor for monitoring. | |
| bool | ICM_EnableRegionMonitoring (uint8_t regionIndex) |
| Enable monitoring for a specified region. | |
| bool | ICM_DisableRegionMonitoring (uint8_t regionIndex) |
| Disable monitoring for a specified region. | |
| bool | ICM_RehashRegion (uint8_t regionIndex) |
| Recompute the internal hash for a region. | |
| void | ICM_SetCallbackHandler (IcmCallback_t callback, const void *context) |
| Register a callback function for ICM events. | |
| void | ICM_EnableInterrupt (uint8_t source, uint8_t regionIndex) |
| Enable a specified ICM interrupt source. | |
| void | ICM_DisableInterrupt (uint8_t source, uint8_t regionIndex) |
| Disable a specified ICM interrupt source. | |
| ICM_ERROR_STATUS_T | ICM_GetErrorStatus (uint8_t regionIndex) |
| Get error and event status for a region. | |
| void | ICM_Shutdown (void) |
| Disable and reset the ICM peripheral. | |
| void | ICM_Handler (void) |
| ICM peripheral interrupt handler. | |
| #define ICM_INTERRUPT_RBE (4U) |
Region Bus Error
| #define ICM_INTERRUPT_RDM (5U) |
Region Digest Mismatch
| #define ICM_INTERRUPT_REC (2U) |
Region End Bit Condition
| #define ICM_INTERRUPT_RHC (6U) |
Region Hash Completed
| #define ICM_INTERRUPT_RSU (1U) |
Region Status Updated
| #define ICM_INTERRUPT_RWC (3U) |
Region Wrap Condition
| #define ICM_INTERRUPT_URAD (0U) |
ICM interrupt source definitions.
Undefined Register Access
| #define ICM_RCFG_ALGO | ( | value | ) | (ICM_RCFG_ALGO_Msk & (_UINT32_(value) << ICM_RCFG_ALGO_Pos)) |
Assignment of value for ALGO in the ICM_RCFG descriptor word
| #define ICM_RCFG_ALGO_Msk (_UINT32_(0x7) << ICM_RCFG_ALGO_Pos) |
(ICM_RCFG) SHA Algorithm Mask
| #define ICM_RCFG_ALGO_Pos _UINT32_(12) |
(ICM_RCFG) SHA Algorithm Position
| #define ICM_RCFG_ALGO_SHA1_Val _UINT32_(0x0) |
(ICM_RCFG) SHA1 algorithm processed
| #define ICM_RCFG_ALGO_SHA256_Val _UINT32_(0x1) |
(ICM_RCFG) SHA256 algorithm processed
| #define ICM_RCFG_BEIEN_Msk (_UINT32_(0x1) << ICM_RCFG_BEIEN_Pos) |
(ICM_RCFG) Bus Error Interrupt Disable Mask
| #define ICM_RCFG_BEIEN_Pos _UINT32_(6) |
(ICM_RCFG) Bus Error Interrupt Disable Position
| #define ICM_RCFG_CDWBN_Msk (_UINT32_(0x1) << ICM_RCFG_CDWBN_Pos) |
(ICM_RCFG) Compare Digest or Write Back Digest Mask
| #define ICM_RCFG_CDWBN_Pos _UINT32_(0) |
(ICM_RCFG) Compare Digest or Write Back Digest Position
| #define ICM_RCFG_DMIEN_Msk (_UINT32_(0x1) << ICM_RCFG_DMIEN_Pos) |
(ICM_RCFG) Digest Mismatch Interrupt Disable Mask
| #define ICM_RCFG_DMIEN_Pos _UINT32_(5) |
(ICM_RCFG) Digest Mismatch Interrupt Disable Position
| #define ICM_RCFG_ECIEN_Msk (_UINT32_(0x1) << ICM_RCFG_ECIEN_Pos) |
(ICM_RCFG) End Bit Condition Interrupt Disable Mask
| #define ICM_RCFG_ECIEN_Pos _UINT32_(8) |
(ICM_RCFG) End Bit Condition Interrupt Disable Position
| #define ICM_RCFG_EOM_Msk (_UINT32_(0x1) << ICM_RCFG_EOM_Pos) |
(ICM_RCFG) End Of Monitoring Mask
| #define ICM_RCFG_EOM_Pos _UINT32_(2) |
(ICM_RCFG) End Of Monitoring Position
| #define ICM_RCFG_PROCDLY_Msk (_UINT32_(0x1) << ICM_RCFG_PROCDLY_Pos) |
(ICM_RCFG) Processing Delay Mask
| #define ICM_RCFG_PROCDLY_Pos _UINT32_(10) |
(ICM_RCFG) Processing Delay Position
| #define ICM_RCFG_RHIEN_Msk (_UINT32_(0x1) << ICM_RCFG_RHIEN_Pos) |
(ICM_RCFG) Region Hash Completed Interrupt Disable Mask
| #define ICM_RCFG_RHIEN_Pos _UINT32_(4) |
(ICM_RCFG) Region Hash Completed Interrupt Disable Position
| #define ICM_RCFG_SUIEN_Msk (_UINT32_(0x1) << ICM_RCFG_SUIEN_Pos) |
(ICM_RCFG) Status Updated Interrupt Disable Mask
| #define ICM_RCFG_SUIEN_Pos _UINT32_(9) |
(ICM_RCFG) Status Updated Interrupt Disable Position
| #define ICM_RCFG_WCIEN_Msk (_UINT32_(0x1) << ICM_RCFG_WCIEN_Pos) |
(ICM_RCFG) Wrap Condition Interrupt Disable Mask
| #define ICM_RCFG_WCIEN_Pos _UINT32_(7) |
(ICM_RCFG) Wrap Condition Interrupt Disable Position
| #define ICM_RCFG_WRAP_Msk (_UINT32_(0x1) << ICM_RCFG_WRAP_Pos) |
(ICM_RCFG) Wrap Command Mask
| #define ICM_RCFG_WRAP_Pos _UINT32_(1) |
(ICM_RCFG) Wrap Command Position
| #define ICM_RCTRL_TRSIZE | ( | value | ) | (ICM_RCTRL_TRSIZE_Msk & (_UINT32_(value) << ICM_RCTRL_TRSIZE_Pos)) |
Assignment of value for TRSIZE in the ICM_RCTRL descriptor word
| #define ICM_RCTRL_TRSIZE_Msk (_UINT32_(0xFFFF) << ICM_RCTRL_TRSIZE_Pos) |
(ICM_RCTRL) Transfer Size Mask
| #define ICM_RCTRL_TRSIZE_Pos _UINT32_(0) |
(ICM_RCTRL) Transfer Size Position
| #define ICM_REGIONS_NUM (4U) |
Maximum number of memory regions supported by ICM peripheral.
The ICM can monitor up to 4 non-contiguous memory regions simultaneously. Valid region indices: 0 to 3.
| typedef void(* IcmCallback_t) (uint32_t status, const void *context) |
ICM callback function type.
| status | Event status flags (ICM_ISR value) |
| context | User context pointer |
| bool ICM_ConfigureRegion | ( | uint8_t | regionIndex, |
| const ICM_REGION_CONFIG_T * | regionConfig ) |
Configure a region descriptor for monitoring.
| regionIndex | Region number (0..N-1) |
| regionConfig | Pointer to region configuration structure |
| void ICM_Disable | ( | void | ) |
Disable the ICM peripheral.
| void ICM_DisableInterrupt | ( | uint8_t | source, |
| uint8_t | regionIndex ) |
Disable a specified ICM interrupt source.
| source | One of ICM_INTERRUPT_URAD/RSU/REC/RWC/RBE/RDM/RHC |
| regionIndex | Region number (0..N-1, if applicable) |
| bool ICM_DisableRegionMonitoring | ( | uint8_t | regionIndex | ) |
Disable monitoring for a specified region.
| regionIndex | Region number (0..N-1) |
| void ICM_Enable | ( | void | ) |
Enable the ICM peripheral.
| void ICM_EnableInterrupt | ( | uint8_t | source, |
| uint8_t | regionIndex ) |
Enable a specified ICM interrupt source.
| source | One of ICM_INTERRUPT_URAD/RSU/REC/RWC/RBE/RDM/RHC |
| regionIndex | Region number (0..N-1, if applicable) |
| bool ICM_EnableRegionMonitoring | ( | uint8_t | regionIndex | ) |
Enable monitoring for a specified region.
| regionIndex | Region number (0..N-1) |
| uint32_t ICM_GetDescriptorAddress | ( | void | ) |
Get the region descriptor area base address (ICM_DSCR).
| ICM_ERROR_STATUS_T ICM_GetErrorStatus | ( | uint8_t | regionIndex | ) |
Get error and event status for a region.
| regionIndex | Region number (0..N-1) |
| uint32_t ICM_GetGlobalConfig | ( | void | ) |
Read the ICM global configuration register (ICM_CFG).
| uint32_t ICM_GetHashAddress | ( | void | ) |
Get the hash area base address (ICM_HASH).
| void ICM_Handler | ( | void | ) |
ICM peripheral interrupt handler.
| bool ICM_RehashRegion | ( | uint8_t | regionIndex | ) |
Recompute the internal hash for a region.
| regionIndex | Region number (0..N-1) |
| void ICM_ResetSoftware | ( | void | ) |
Perform a software reset of the ICM peripheral.
| void ICM_SetCallbackHandler | ( | IcmCallback_t | callback, |
| const void * | context ) |
Register a callback function for ICM events.
| callback | User callback function pointer |
| context | User context pointer |
| bool ICM_SetDescriptorAddress | ( | uint32_t | address | ) |
Set the region descriptor area base address (ICM_DSCR).
| address | Descriptor area base address; must be 64-byte aligned. |
| void ICM_SetGlobalConfig | ( | uint32_t | cfgBits | ) |
Write the ICM global configuration register (ICM_CFG).
| cfgBits | Pre-combined ICM_CFG_*_Msk/ICM_CFG_*() bits. |
| bool ICM_SetHashAddress | ( | uint32_t | address | ) |
Set the hash area base address (ICM_HASH).
| address | Hash area base address; must be 128-byte aligned. |
| void ICM_Shutdown | ( | void | ) |
Disable and reset the ICM peripheral.