5.2.6. TZSwitch component

The TZSwitch component permits you to control transaction routing based on the TrustZone security state of the transaction. The routing decisions can be changed dynamically. Transactions received on the pvbus_input port can be routed to either output port, or can generate an abort or be ignored.

The default behavior is to forward secure transactions to pvbus_port_a, and normal transactions to pvbus_port_b.

You must only use TZSwitches if the routing decisions change infrequently, for example as part of a memory remap.

Figure 5.6 shows a view of the component in System Canvas.

Figure 5.6. TZSwitch in System Canvas

TZSwitch in System Canvas

The TZSwitch component is written in C++.

Ports

Table 5.7 provides a brief description of the TZSwitch component ports.

Table 5.7. TZSwitch ports

NamePort protocolTypeDescription

pvbus_input

PVBus

Slave

Slave port for connection to PVBus master/decoder.

pvbus_port_a

PVBus

Master

Output port a.

pvbus_port_b

PVBus

Master

Output port b.

control

TZSwitchControl

Slave

Controls routing of transactions.


TZSwitchControl

The TZSwitch component has one additional protocol.

routeAccesses (TZSwitch_InputFilter input, TZSwitch_RouteOption destination) : void

Controls the routing of transactions on a TZSwitch component. Select the type of signals for reconfiguring by setting the value of input and destination. The possible values of input are:

TZINPUT_SECURE

changes the routing for secure transactions

TZINPUT_NORMAL

changes the routing for normal transactions

TZINPUT_ANY

changes the routing for all transactions.

The possible values of destination are:

TZROUTE_ABORT

causes transactions to generate an abort

TZROUTE_IGNORE

causes transactions to be ignored, and reads return 0

TZROUTE_TO_PORT_A

routes transactions to pvbus_port_a

TZROUTE_TO_PORT_B

routes transactions to pvbus_port_b.

Parameters

Table 5.8 lists the configuration parameters of the TZSwitch component.

Table 5.8. TZSwitch configuration parameters

Parameter nameDescriptionTypeAllowed valueDefault value
secureDefault routing for secure transactions.Integer0, 1, 2, 31
normalDefault routing for normal transactions.Integer0, 1, 2, 32

Note

The secure and normal parameter values control the initial state of the TZSwitch component. Possible values for these parameters are:

0

ignore these transactions

1

forward the transactions to pvbus_port_a

2

forward the transactions to pvbus_port_b

3

generate an abort for these transactions.

The numbers used for initial configuration are not the same as the enumeration constants used to control routing at runtime.

Registers

The TZSwitch component has no registers.

Debug features

The TZSwitch component has no debug features.

Verification and testing

The TZSwitch component has been tested as part of the VE example system using VE test suites and by booting operating systems.

Performance

The TZSwitch component is optimized to have negligible impact on transaction performance.

Note

When memory remap settings are changed when there might be a significant effect on performance.

Library dependencies

The TZSwitch component has no dependencies on external libraries.

Copyright © 2008-2013 ARM. All rights reserved.ARM DUI 0423O
Non-ConfidentialID060613