7.4.10. Data-only mode, ETMv3.1 and later

Bit [20] of the ETMCR, register 0x000, enables instruction trace to be disabled while continuing to output data trace. This is useful if you want to trace updates to a particular data value or a selection of values, but do not have to trace the instruction that caused the update.

For example, if tracing the value of a single word, only 5 bytes are required (the header must be traced, to enable synchronization). The actual requirement is I-sync, a P-header and the data itself, a total of 12 bytes. Therefore, the size of the data traced is over twice what it is expected to be. This proportion is even bigger if the values are suitable for compression-byte values are 2 bytes instead of 9 bytes.

When data-only trace is enabled, only the following header types are produced:

It is implementation defined whether Value not traced packets are produced in data-only mode, see Tracing LSM instructions in data-only mode.

All other packet types, including branches, P-headers, and Data suppressed, are suppressed. D-sync (periodic trace of a full data address) continues as normal.

From ETMv3.3, data-only mode is only implemented on macrocells that provide a full data tracing implementation. See Data tracing options, ETMv3.3 and later for more information.

Tracing LSM instructions in data-only mode

When an ETM implementation supports data-only mode, it is implementation defined how LDM and STM instructions are traced in data-only mode when Viewdata is not active for all of the data transfers generated by the instruction. However, one of the following trace sequences must be implemented:

  • A Value not traced packet is generated for any word of the transfer for which ViewData is not active. See Value not traced packet.

  • An address packet is output for each traced data transfer for which the data address is not sequential to the previous traced data transfer.

See Load/Store Multiple (LSM) instructions for a list of the LSM instructions.

Possible wrong interpretation of CPRT trace in data-only mode

When you are tracing in data-only mode with data address tracing enabled and CPRT tracing enabled, no addresses are output with any CPRT transfer. This means that, if a CPRT transfer follows immediately after one or more LSM transfers in the trace stream there is nothing in the trace to distinguish the CPRT transfer from the LSM transfers. Therefore, a trace decompression tool might incorrectly associate a CPRT transfer with the address of an earlier LSM transfer.

Copyright © 1999-2002, 2004-2009, 2011 ARM Limited. All rights reserved.ARM IHI 0014Q