Re: [RFC PATCH] coresight: dynamic-replicator: Fix handling of multiple connections

From: Sai Prakash Ranjan
Date: Tue Apr 07 2020 - 05:46:38 EST


Hi Mike,

Thanks for taking a look.

On 2020-04-06 16:25, Mike Leach wrote:
Hi,

The programmable replicator hardware by design enables trace through
both ports on reset. (see 1, section 4.4, 9.11) The replicator driver
overrides this functionality to disable output, until the Coresight
infrastructure chooses a path from source to sink.
Now given that the hardware design is such that we must be able to
allow trace to be sent to both ports, a generic patch to prevent this
does not seem appropriate here.

I think this needs further investigation - to determine why this
appears to be failing in this particular instance.


Yes, this probably needs further investigation, but CPU hardlock stack
trace doesnt help much. I could always trigger this hard lockup without
this patch on SC7180 SoC and this is only seen when ETR is used as the sink.

The only difference I could see between non working case (on SC7180 [1]) and
the working case (on SDM845 [2]) is the path from source to sink.

SC7180 source to sink path(Not working):
----------------------------------------

etm0_out
|
apss_funnel_in0
|
apss_merge_funnel_in
|
funnel1_in4
|
merge_funnel_in1
|
swao_funnel_in
|
etf_in
|
swao_replicator_in
|
replicator_in
|
etr_in


SDM845 source to sink path(Working):
------------------------------------

etm0_out
|
apss_funnel_in0
|
apss_merge_funnel_in
|
funnel2_in5
|
merge_funnel_in2
|
etf_in
|
replicator_in
|
etr_in


[1] - https://lore.kernel.org/patchwork/patch/1212946/
[2] - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/sdm845.dtsi?h=v5.6#n1910


Thanks,
Sai

--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation