3.10.2 BP141_TZMA

PrimeCell Infrastructure AMBA 3 AXI TrustZone Memory Adapter. This model is written in LISA+.

BP141_TZMA contains the following CADI targets:

  • BP141_TZMA
  • PVBusMapper
  • PVBusRange
  • TZSwitch

BP141_TZMA contains the following MTI components:

BP141_TZMA - about

BP141_TZMA permits a single physical memory cell of up to 2MB to be shared between a secure and non-secure storage area. The partitioning between these areas is flexible.

This component routes transactions according to the following:

  • The memory region that they are attempting to access.
  • The security mode of the transaction.

The BP141_TZMA fixes the base address of the secure region to the base address of the decode space. It uses the R0SIZE[9:0] input to configure the size of the secure region in 4KB increments up to a maximum of 2MB.

TZMEMSIZE is the maximum addressing range of the memory as defined by that parameter. By default, TZMEMSIZE is set to 2MB. AxADDR is the offset address that the transactions want to access.

Table 3-287 BP141_TZMA security control

AxADDR Memory Region Non-secure Transfer Secure Transfer
AxADDR < R0Size Secure, R0 Illegal Legal
R0SIZE <= AxADDR and AxADDR < TZMEMSIZE Non-secure, R1 Legal Legal
AxADDR => TZMEMSIZE No access Illegal Illegal

Table 3-288 Ports

Name Protocol Type Description
R0Size 2.7.4 Value protocol Slave A software interface that is driven from the TrustZone Protection Controller (TZPC), setting the secure region size by bits[9:0].
pv_output PVBus Master Routed PVBus output
pvbus PVBus Slave Bus slave interface.

Table 3-289 Parameters for PVBusMapper

Name Type Default value Description
pvbusmodifier.handling_of_dvm_messages_from_downstream string "forward" What to do with DVM (Distributed Virtual Memory) messages received from downstream. The options are to 'forward' them upstream unaltered, to 'terminate' them, or to 'handle' them locally and get called through handleDownstreamDVMMessage()
pvbusmodifier.handling_of_dvm_messages_from_upstream string "forward" What to do with DVM (Distributed Virtual Memory) messages received from upstream. The options are to 'forward' them downstream unaltered, to 'terminate' them, or to 'handle' them locally and get called through handleUpstreamDVMMessage()
pvbusmodifier.handling_of_upstream_snoop_requests string "forward" What to do with snoop requests from downstream. The options are to 'forward', 'terminate' or 'handle'. NOTE that currently the snoop request addresses are _not_ translated and so if your device alters the address translation then you will almost certainly want to 'terminate'.

Table 3-290 Parameters for PVBusRange

Name Type Default value Description
pvbusrange_0.range int 0x0 Addressable range routed to pvbus_port_a

Table 3-291 Parameters for TZSwitch

Name Type Default value Description
normal int 0x2 Normal Port
secure int 0x1 Secure Port

Table 3-292 Parameters for BP141_TZMA

Name Type Default value Description
TZMEMSIZE int 0x200000 Addressable range of device
TZSECROMSIZE int 0x200 Default secure size
TZSEGSIZE int 0x1000 Segment size
Non-ConfidentialPDF file icon PDF version100964_1161_00_en
Copyright © 2014–2019 Arm Limited or its affiliates. All rights reserved.