3.1.4 Peripheral Library Interface

The ICM peripheral library provides the following interfaces:

Table 3-1. ICM Functions
NameDescription
ICM_InitializeInitializes the ICM peripheral
ICM_ResetResets the ICM peripheral
ICM_GetStatusGet if ICM status
ICM_EnableEnables ICM
ICM_DisableDisables ICM
ICM_GetConfigurationGets the current configuration of the ICM
ICM_SetConfigurationSets a new configuration of the ICM
ICM_SetMonitorModeSet Monitor mode
ICM_EnableRegionMonitorEnables a memory region of ICM
ICM_DisableRegionMonitorDisables a memory region of ICM
ICM_GetRegionDescriptorGets the region descriptor of a memory region
ICM_SetRegionDescriptorSets the region descriptor of a memory region
ICM_SetRegionDescriptorDataSets data configuration of a memory region
ICM_GetTransferSizeGets the transfer size to configure data of a memory region
ICM_SetHashAreaAddressSets the Hash area start address
ICM_SetUserInitialHashValueSets the user initial hash value
ICM_EnableInterruptEnables interrupt flags
ICM_DisableInterruptDisables interrupt flags
ICM_GetIStatusGets the interrupt flags status
ICM_CallbackRegisterSets a callback function that is called when interrupt is raised
Table 3-2. ICM Types
NameTypeDescription
ICM_REGION_IDEnumIdentifies the memory region
ICM_INTERRUPT_SOURCEEnumIdentifies the interrupt source
ICM_ALGOEnumIdentifies the SHA algorithm
ICM_ACCESSEnumIdentifies the memory access type
ICM_SECONDARY_LISTStructDescribes secondary list used in ICM descriptors
ICM_REGION_BITFIELDStructDescribes detailed configuration of a memory region descriptor
ICM_REGION_DESCRIPTORStructDescribes the configuration of a memory region descriptor
ICM_CONFIGStructDescribes the global configuration of ICM peripheral