You copied the Doc URL to your clipboard.

IDAU component

An Implementation Defined Attribution Unit (IDAU) is a device that provides a security attribute relating to an address passed to it. For each memory access (data and instructions), the CPU checks the IDAU and sets the security of its transactions based on it.

The IDAU model uses the pv::IDAUSignal struct to return the security attributes for the address that is passed to it. Unlike the hardware, the CPU Fast Model does not query the IDAU for each access. Communication is at a higher abstraction level to maintain simulation speed.

The fields of the pv::IDAUSignal struct map to the hardware signals as follows:

Table 4-101 Mappings between pv::IDAUSignal fields and hardware signals

Hardware signal pv::IDAUSignal field Description
IDAUNS bool ns Non-secure region response.
IDAUNSC bool nsc Non-secure-callable region response.
IDAUID uint8_t region Region number.
IDAUIDV bool valid Region number valid.
IDAUNCHK bool exempt Region exempt from attribution check.

Table 4-102 IDAU Ports

Name Protocol Type Description
invalidate_region Value_64 Master This port is used as a call back to inform masters that the IDAU has updated its region information.
pvbus_s PVBus Slave PVBus memory based slave port. Master can read/write to this port:
Read
Read returns IDAU region's pv::IdauRegion struct (32 byte), containing information about the IDAU region for the requested address. pv::IdauRegion contains the start address, end address, pv::IDAUSignal and 8 bytes of padding to make it 32-byte aligned.
Write
This port only supports 32-byte write operations to pass in a pv::IdauRegion struct for updating an internal IDAU region.
DMI
This port adds support for DMI requests and provides a pointer to a pv::IdauRegion for the requested address. An invalid DMI call back occurs if the IDAU updates its regions.

Table 4-103 IDAU Parameters

Name Type Allowed values Default value Description
NUM_IDAU_REGION int - 0 Number of IDAU regions.
IDAU_REGIONn.ENABLE bool true, false false 0 - IDAU region n is S (absent if LADDR=0), 1 - NS or NSC or exempt. 0 ≤ n ≤ 255.
IDAU_REGIONn.NSC bool true, false false Set NSC for IDAU region n, where 0 ≤ n ≤ 255.
IDAU_REGIONn.EXEMPT bool true, false false Mark IDAU region n as exempt, where 0 ≤ n ≤ 255.
IDAU_REGIONn.BADDR int - 0 Base address of IDAU region n, where 0 ≤ n ≤ 255.
IDAU_REGIONn.LADDR int - 0 Limit address of IDAU region n, where 0 ≤ n ≤ 255.
Was this page helpful? Yes No