4.5. HTM trace data output rules

The trace output data consists of different packets. A transfer is typically indicated by three packets, an address packet followed by an auxiliary and then a data packet or data packets. All three packets can be enabled or disabled.

Only active transfers, non-sequential and sequential, are traced. Idle and busy cycles are not traced.

For burst transfers, the address packet is output for the first transfer. Only data packets are output for the rest of the burst. This is because the address can be calculated and the other AMBA control signals do not change.

If there is an excluded address in the burst, as specified by the EXCLUDE field in the HTMCTRL2 Register or the RANGE_EXC field in the HTMTRACCTRL Register, the address packet is sent when the trace resumes. The auxiliary packet is output only when the information is changed except in profiling modes (auxiliary packet enabled, but address packed and data packet disabled). In profiling mode the auxiliary packet is output for every traced transfer with a minimum of 1 byte.

If address packet generation is enabled and data packet is disabled, sequential transfers in the burst are indicated by sequential address packets.

If both address and data packets are disabled and auxiliary packet generation is enabled, an auxiliary packet is output for every traced AHB transfer even if the control information is the same as in previous transfer. This is particularly useful with the bus profiling function (auxiliary packet enabled, but address packed and data packet disabled). Data compression is still used to reduce the bandwidth by shortening auxiliary packets if possible.

When the TraceOn/Off resource is used, a TraceOff address match generates a TraceOff packet. In addition, when the PROG bit is asserted and when the global enable, GLBEN, is HIGH, the TraceOff packet is output.

During generation of data or auxiliary packets, if the remaining space in the FIFO is less than the specified data suppress trigger level, the data suppression packet is sent. If this happens during a burst transfer, the remaining burst data is not sent.

During generation of address packets or cycle count packets, if the remaining space in the FIFO is less than the required size for the packet, the data overflow packet is sent.

When a data suppressed packet is output, it does not have to be sent again during the next AHB transfer. The status remains valid until another auxiliary packet or data packet is sent.

When a FIFO overflow packet is sent, it does not have to be sent again during the next AHB transfer. The status remains valid until another packet (of any kind) is sent.

A data suppressed packet does not have to be sent if the overflow status is valid.

A trigger packet is sent at the rising edge of the triggering event. If an address comparator is used for trigger generation and multiple triggers are allowed, the address comparator must not operate in sticky mode because two successive transfers might be handled as one trigger event.

Data suppression can only be caused by generation of data packets and auxiliary packets. Data suppression status only suppresses data and auxiliary packets.

Copyright © 2004-2008 ARM Limited. All rights reserved.ARM DDI 0328E
Non-Confidential