973
SAM4CP [DATASHEET]
43051E–ATPL–08/14
42.
Integrity Check Monitor (ICM)
42.1
Description
The Integrity Check Monitor (ICM) is a DMA controller that performs hash calculation over multiple memory regions
through the use of transfer descriptors located in memory (ICM Descriptor Area). The Hash function is based on the
Secure Hash Algorithm (SHA). The ICM controller integrates two modes of operation. The first one is used to hash a list
of memory regions and save the digests to memory (ICM Hash Area). The second operation mode is an active
monitoring of the memory. In that mode, the hash function is evaluated and compared to the digest located at a
predefined memory address (ICM Hash Area). If a mismatch occurs, an interrupt is raised. See
Figure 42-1
for an
example of four-region monitoring. Hash and Descriptor areas are located in Memory instance i2, and the four regions
are split in memory instances i0 and i1.
The ICM SHA engine is compliant with the American
FIPS (Federal Information Processing Standard) Publication 180-2
specification.
The following terms are concise definitions of the ICM concepts used throughout this document:
Region: A partition of instruction or data memory space.
Region Descriptor: A data structure stored in memory, defining region attributes.
Region Attributes: Region start address, region size, region SHA engine processing mode, Write Back or Compare
function mode.
Context Registers: A set of ICM non-memory-mapped, internal registers which are automatically loaded,
containing the attributes of the region being processed.
Main List: A list of region descriptors. Each element associates the start address of a region with a set of attributes.
Secondary List: A linked list defined on a per region basis that describes the memory layout of the region (when
the region is non contiguous).
Hash Area: predefined memory space where the region hash results (digest) are stored.
Figure 42-1.
Four-Region Monitoring Example
Memory
Region 0
Memory
Region 1
Memory
Region 2
Memory
Region 3
ICM
Processor
Interrupt
Controller
ICM
Descriptor
Area
ICM
Hash
Area
Memory i0
Memory i1
Memory i2
System Interconnect