|ARM Technical Support Knowledge Articles|
Applies to: Funnel
The CoreSight Trace Funnel (CSTF) does not switch the currently selected slave port immediately when a different slave port enable bit in the Funnel Control Register is set. The selection will not change until ATVALIDSn for the slave port matching the Funnel Control Register enable bits is asserted.
The implication of this is that if you assert ATVALIDM from a master, and then read each Funnel slave port ATVALIDS[n] in turn, the currently selected slave port will not change until you find the ATVALIDS[n] that is asserted. If you then read ATVALIDS[n+1], you will read back that this signal is asserted, when in fact you are still reading ATVALIDS[n]. You therefore need to stop iterating through slave ports as soon as you find one ATVALIDS[n] that is asserted.
At the end of the topology detection sequence for each master, ATVALIDM and ATREADYSn are set back to 0, so the sequence for the next master will be carried out as for the previous master. The fact that iterating through slave ports reading ATVALIDS[n] for the next master will, until finding a slave port that does have ATVALIDS[n] asserted, continue to read from the slave port that had its ATVALIDS[n] set when performing the sequence for the previous master is not an issue.
You must perform the Topology Detection sequence immediately after resetting the CoreSight subsystem so that all ATVALID and ATREADY will be low. The end of the topology detection sequence for each master stipulates setting ATVALIDM and ATREADYSn back to 0, so all signals should be back to their reset state.
Did you find this article helpful? Yes No
How can we improve this article?