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.