SAM Integrity Check Monitor (ICM).
Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
Data Structures | |
struct | icm_config |
Basic configuration for ICM. More... | |
struct | icm_region_descriptor_main_list |
ICM region descriptor in main list. More... | |
struct | icm_region_descriptor_sec_list |
ICM region descriptor in secondary list. More... | |
struct | icm_region_descriptor_main_list::rcfg |
The configuration value of the region. More... | |
Typedefs | |
typedef void(* | icm_callback_t )(uint8_t) |
Interrupt event callback function type. More... | |
Enumerations | |
enum | icm_algo { ICM_SHA_1 = 0, ICM_SHA_224 = 4, ICM_SHA_256 = 1 } |
The SHA Algorithm definition. More... | |
enum | icm_interrupt_source { ICM_INTERRUPT_RHC = 0, ICM_INTERRUPT_RDM, ICM_INTERRUPT_RBE, ICM_INTERRUPT_RWC, ICM_INTERRUPT_REC, ICM_INTERRUPT_RSU, ICM_INTERRUPT_URAD, _ICM_NUM_OF_INTERRUPT_SOURCE, ICM_INTERRUPT_ALL = 0x1FFFFFFF } |
ICM interrupt source type. More... | |
enum | icm_region_num { ICM_REGION_NUM_0 = 0, ICM_REGION_NUM_1, ICM_REGION_NUM_2, ICM_REGION_NUM_3, _ICM_NUM_OF_REGION } |
The region number definition. More... | |
Functions | |
void | icm_disable (Icm *p_icm) |
Disable ICM. More... | |
static void | icm_disable_interrupt (Icm *p_icm, uint32_t ul_sources) |
ICM disable interrupt. More... | |
void | icm_enable (Icm *p_icm) |
Enable ICM. More... | |
static void | icm_enable_interrupt (Icm *p_icm, uint32_t ul_sources) |
ICM enable interrupt. More... | |
static uint32_t | icm_get_interrupt_mask (Icm *p_icm) |
Get ICM interrupt mask. More... | |
static uint32_t | icm_get_interrupt_status (Icm *p_icm) |
Get ICM interrupt status. More... | |
static uint32_t | icm_get_status (Icm *p_icm) |
Get the ICM status. More... | |
static uint32_t | icm_get_urat (Icm *p_icm) |
Get ICM Undefined Register Access Trace. More... | |
void | icm_init (Icm *p_icm, struct icm_config *icm_cfg) |
Initialize ICM with specified configuration. More... | |
static void | icm_region_disable_monitor (Icm *p_icm, enum icm_region_num reg_num) |
Disable Region Monitoring. More... | |
static void | icm_region_enable_monitor (Icm *p_icm, enum icm_region_num reg_num) |
Enable Region Monitoring. More... | |
status_code_t | icm_region_recompute_hash (Icm *p_icm, enum icm_region_num reg_num) |
Recompute internal hash. More... | |
static void | icm_reset (Icm *p_icm) |
Reset ICM. More... | |
void | icm_set_algo (Icm *p_icm, enum icm_algo algo) |
Set hash algorithm. More... | |
void | icm_set_callback (Icm *p_icm, icm_callback_t callback, enum icm_region_num reg_num, enum icm_interrupt_source interrupt_source, uint8_t irq_level) |
ICM interrupt callback function. More... | |
static void | icm_set_hash_area_addr (Icm *p_icm, uint32_t addr) |
Set Hash Area Start Address. More... | |
void | icm_set_hash_value (Icm *p_icm, uint32_t *p_value) |
Set Initial Hash Value. More... | |
static void | icm_set_reg_des_addr (Icm *p_icm, uint32_t addr) |
Set Descriptor Area Start Address. More... | |