| |||
| Home > ETMv2 Signal Protocol > Trace packet types > Trace packet headers | |||
The trace packet header indicates the type of trace packet being output on the TRACEPKT pins, and specifies how to interpret the subsequent bytes of the packet. Trace packet header encodings are shown in Table 6.2.
Table 6.2. Trace packet header encodings
| Value | Description |
|---|---|
| bC0A0SS10 | Normal data address expected. See Normal Data packets. |
| bX0X1XX00 | Reserved. |
| bX0X1XX10 | Reserved. |
| bX10XXX10 | Reserved. |
| bX1100X10 | Reserved. |
| bC1101010 | Value Not Traced. See Value Not Traced packets. |
| bC1101110 | Context ID. See Context ID tracing. |
| bX111XX10 | Reserved. |
| bC1A1TT00 | Load Miss occurred. See Load Miss packets. |
| bCTT0SS00 | Load Miss data. See Load Miss packets. |
Branch addresses are encoded cXXXXXX1,
where c is the address continue bit. Branch addresses
are always output last in a cycle and are not preceded by a header.
See Branch Address trace packets for more
information.
Certain bits in the trace packet header encodings shown in Table 6.2 have specific functions, as follows:
CInforms the decompression tool how many packets
are placed on the FIFO in a single cycle. The C bit
is set to 1 in every packet except the last packet placed in the
FIFO in a cycle. This enables the decompressor to correctly associate
packets with cycles (and therefore with instructions).
All headers other than Branch Address have a C bit.
A Branch Address packet is always the last packet to be placed in
the FIFO in a cycle, and does not require a C bit.
XIndicates that the value is undefined.
ASpecifies
that this is the first data packet for a particular instruction,
and that a data address is expected (if address tracing is enabled).
This information enables the decompressor to maintain synchronization
when tracing through sections of code that cannot be decompressed
(any region for which a binary is not available). The A bit
is not asserted on Coprocessor Register Transfer (CPRT) packets.
TTUsed as a tag to identify each load miss. For more details, see Load Miss packets.
SSUsed
for data value compression. The SS bits specify
the size of the data value transferred. Leading zeros are removed
from the value as a simple form of data compression. Typically this
compression technique is enough to offset the additional bandwidth
cost of the header byte. The encodings for the SS bits
are given in Table 6.3.
Table 6.3. SS bit encodings
| Encoding | Description |
|---|---|
b00 | Value = 0, no data bytes follow |
b01 | Value < 256, one data byte follows |
b10 | Value < 65536, two data bytes follow |
b11 | No compression done, four data bytes follow |