BCM1250/BCM1125/BCM1125H
User Manual
10/21/02
B r o a d c o m C o r p o r a t i o n
Page
70
Section 4: System Control and Debug Unit
Document
1250_1125-UM100CB-R
T
RACE
U
NIT
The trace unit allows ZBbus activity to be non-intrusively traced. There is a 12KB buffer into which a trace of
the address or data activity on the bus can be written. The trace may be read out either by a CPU or through
the JTAG interface. Triggers and filters allow control of the activity that is traced.
The trace buffer contains 256 entries, each of 384 bits. Each entry can hold either three address/control
bundles (each 128 bits) or one full bundle containing address/control information (128 bits) and a databus
snapshot (256 bits). When a full bundle is captured it will always start a new buffer entry, marking any unused
address/control slots in the previous entry empty.
The trace buffer is reset either by software or using the JTAG interface. A trigger is used to start collection of
a trace. Once collection is enabled, filters are applied to every bus cycle which select not sampling, taking an
address sample or taking a complete sample that cycle (the filter can also select that every cycle is recorded).
The buffer pointer will advance modulo 256, thus the trace RAM is used as a circular buffer leaving the latest
256 entries available. A trigger can stop collection, the trace buffer pointer maintains its value and will continue
filling the buffer when a start trigger is again encountered. A trigger can also freeze collection. Following this,
collection cannot be restarted until the trace buffer is reset. An option can be set to freeze collection the first
time the buffer fills, this turns the circular buffer into a linear buffer.
The same mechanism is used to construct both triggers and filters, they only differ in the flags that are set in
the control register. There are two components: events and sequences. A trigger event is signalled when the
cycle on the ZBbus (or some other system state) matches a condition. Up to four events are concatenated to
make a sequence. The sequence also includes an action, which is one of the trace buffer commands (start,
stop or freeze) and an indication if the trace buffer should record information from the ZBbus cycle that is in
progress as the sequence completes. When all the events in the sequence have been signalled sequentially
the sequence is complete and the action associated with the sequence will take place.
T
RIGGER
E
VENTS
A trigger event is specified as a conditional match on the ZBbus address phase signals, or a match on ZBbus
data phase signals, or the external debug pin being asserted, or a CPU interrupt being raised. There are eight
trigger events (event0 - event7), all identical.
The address phase match consists of three parts, all of which must be true for the trigger to happen:
1
True if
the req_id_match bit is set and the transaction id source on the bus matches the req_id field.
Always true if the req_id_match bit is clear.
2
True if
the addr_match0 bit is set and the address on the bus matches the address trap0 range,
or the addr_match1 bit is set and the address on the bus matches the address trap1 range,
or the addr_match2 bit is set and the address on the bus matches the address trap2 range,
or the addr_match3 bit is set and the address on the bus matches the address trap3 range.
Always true if none of the addr_match bits are set.
The complex (source and cache attribute) address trap match is used to determine a hit, but the trigger does
not use the count in the address trap.
3
True if
the read bit is set and the bus command is READ_SHD or READ_EXC,
or the write bit is set and the command is WRITE, WRITE and INVALIDATE, or INVALIDATE.
Note that having both read and write bits clear disables the address section of the trigger.