Embedded Cross Trigger
Embedded Cross Trigger (ECT) is the mechanism that is used by an external debugger in an Armv8-A system to generate debug events. ECT also routes events from one agent to another agent within the system.
The external debugger uses ECT to generate a debug request trigger or a restart request trigger. These triggers route events between PEs. For example, these triggers can route a cross halt event from one PE to other PEs, so that all PEs in a system halt whenever one PE in the system halts.
The ECT in an Armv8-A implementation supports:
- Cross Trigger Interface (CTI)
- Input and output triggers
- Cross Trigger Matrix (CTM)
The CTI provides the ability to route trigger events across various components of the Armv8-A system. Examples include routing trigger events to the interrupt controller across, for example, trace units, or across PEs in the system.
If there are multiple CTI blocks in the system, we can use the CTM to pass events between the CTI blocks. The CTM uses the following IO channels to pass events between CTM blocks:
- Input triggers – Trigger event inputs from the PE to the CTI.
- Output triggers – Trigger event outputs from the CTI to the PE.
- Input channels – Channel event inputs from the CTM to the CTI. These are directly accessible by the registers CTIAPPPULSE, CTIAPPSET, and CTIAPPCLEAR, which are present in the ECT programmers model.
- Output channels – Channel event outputs from the CTI to the CTM.
A few of the CTI output triggers that are present in the ECT of an Armv8-A PE have fixed meanings:
- Output trigger event 0 – Debug request trigger event. This is an output trigger event from the CTI and an input trigger event to the processor, asserted by the CTI to force the processor into Debug state. The trigger event is asserted until acknowledged by the debugger. If the processor is already in Debug state, the processor ignores the trigger event, but the CTI continues to assert it until it is removed by the debugger.
- Output trigger event 1 – Restart request trigger event. This is an output trigger event from the CTI to force the PE to exit Debug state.
- Input trigger event 0 – Cross-halt Request trigger event. This is an input trigger from the PE to the CTI. This event can be routed to other agents in the system. For example, it can be routed as a debug request event to another PE.