Trace Funnel
The Trace Funnel combines messages/packets from multiple sources into a single trace stream. It is implementation dependent how many incoming messages/packets are accepted before it is switching to another input source and in what order. But a continuous stream of messages/packets at one input cannot cause other inputs to not be handled. Suggested implementation would be to process just a single message/packet from each input in a round-robin fashion.
| Bit | Field | Description | RW | Reset |
|---|---|---|---|---|
0 |
trFunnelActive |
Primary activate/reset bit for trace funnel. When 0, the Trace Funnel may have clocks gated off or be powered down, and other register locations may be inaccessible. Hardware may take an arbitrarily long time to process power-up and power-down and will indicate completion when the read value of this bit matches what was written. See Reset and Discovery chapter for more details. |
RW |
0 |
1 |
trFunnelEnable |
1: Trace Funnel enabled. Setting |
RW |
0 |
2 |
— |
Reserved |
— |
0 |
3 |
trFunnelEmpty |
Reads 1 when Trace Funnel internal buffers are empty |
RO |
1 |
31:4 |
— |
Reserved |
— |
0 |
| Bit | Field | Description | RW | Reset |
|---|---|---|---|---|
3:0 |
trFunnelVerMajor |
Trace Funnel Component Major Version. Value 1 means the component is compliant with this document. |
RO |
1 |
7:4 |
trFunnelVerMinor |
Trace Funnel Component Minor Version. Value 0 means the component is compliant with this document. |
RO |
0 |
11:8 |
trFunnelCompType |
Trace Funnel Component Type (Trace Funnel) |
RO |
0x8 |
23:12 |
— |
Reserved for future versions of this standard |
— |
0 |
31:24 |
— |
Reserved for vendor specific implementation details |
— |
| Bit | Field | Description | RW | Reset |
|---|---|---|---|---|
15:0 |
trFunnelDisInput |
1: Funnel input #n (bit position in register) is disabled. Incoming messages are read from diabled input but discarded. |
WARL |
|
31:16 |
— |
Reserved |
— |
0 |
trFunnelDisInput register is optional. When not implemented (or never set) it will read as 0, which means that all inputs are always enabled. When implemented, it can be set to 0xFFFF to detect which inputs may be disabled in that trace funnel. Disabling inputs is needed when a single trace encoder may provide output to more than one possible active destination/sink. This register can be also used by trace tools to easily configure a trace in complex systems. Without the ability to disable individual funnel inputs, the trace tool must assure all trace sources which should not be traced are disabled.
|