[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3i7pdzata6gxsc3svb3eygubfdfmnetlekxdd25bb4ljkdrlh7@bvufiwmdusqz>
Date: Mon, 25 Aug 2025 12:22:03 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
To: Brian Norris <briannorris@...omium.org>
Cc: Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Georgi Djakov <djakov@...nel.org>,
Odelu Kukatla <quic_okukatla@...cinc.com>,
Douglas Anderson <dianders@...omium.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Konrad Dybcio <konrad.dybcio@...aro.org>,
linux-arm-msm@...r.kernel.org, linux-kernel@...r.kernel.org,
devicetree@...r.kernel.org, Conor Dooley <conor+dt@...nel.org>,
Rob Herring <robh@...nel.org>, cros-qcom-dts-watchers@...omium.org
Subject: Re: [RFC PATCH] arm64: dts: qcom: sc7280: Drop aggre{1,2}_noc QOS
clocks on Herobrine
On Sat, Aug 23, 2025 at 12:37:18PM -0700, Brian Norris wrote:
> Ever since these two commits
>
> fbd908bb8bc0 ("interconnect: qcom: sc7280: enable QoS configuration")
> 2b5004956aff ("arm64: dts: qcom: sc7280: Add clocks for QOS configuration")
>
> Herobrine systems fail to boot due to crashes like the following:
Nice to see somebody using these boards!
>
> [ 0.243171] Kernel panic - not syncing: Asynchronous SError Interrupt
> [ 0.243173] CPU: 7 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.11.0 #1 c5464041cff584ced692726af2c4400fa2bde1db
> [ 0.243178] Hardware name: Qualcomm Technologies, Inc. sc7280 CRD platform (rev5+) (DT)
> [ 0.243180] Call trace:
> [ 0.243182] dump_backtrace+0x104/0x128
> [ 0.243194] show_stack+0x24/0x38
> [ 0.243202] __dump_stack+0x28/0x38
> [ 0.243208] dump_stack_lvl+0x28/0xb8
> [ 0.243211] dump_stack+0x18/0x30
> [ 0.243215] panic+0x134/0x340
> [ 0.243219] nmi_panic+0x48/0x98
> [ 0.243227] arm64_serror_panic+0x6c/0x80
> [ 0.243245] arm64_is_fatal_ras_serror+0xd8/0xe0
> [ 0.243261] do_serror+0x5c/0xa8
> [ 0.243265] el1h_64_error_handler+0x34/0x48
> [ 0.243272] el1h_64_error+0x7c/0x80
> [ 0.243285] regmap_mmio_read+0x5c/0xc0
> [ 0.243289] _regmap_bus_reg_read+0x78/0xf8
> [ 0.243296] regmap_update_bits_base+0xec/0x3a8
> [ 0.243300] qcom_icc_rpmh_probe+0x2d4/0x490
> [ 0.243308] platform_probe+0xb4/0xe0
> [...]
>
> Specifically, they fail in qcom_icc_set_qos() when trying to write the
> QoS settings for qhm_qup1. Several of the previous nodes (qhm_qspi,
> qhm_qup0, ...) seem to configure without crashing.
>
> I don't really know what's unique about Herobrine systems vs other
> sc7280 systems that presumably work fine. I'd guess there's some
> conflict with something configured by the boot firmware.
I think it well might be that Herobrine's TZ doesn't export QoS regions
to Linux.
>
> I'm submitting as an RFC just to get thoughts from people who hopefully
> know better than me what might be going wrong here.
>
> Fixes: fbd908bb8bc0 ("interconnect: qcom: sc7280: enable QoS configuration")
> Fixes: 2b5004956aff ("arm64: dts: qcom: sc7280: Add clocks for QOS configuration")
> Signed-off-by: Brian Norris <briannorris@...omium.org>
> ---
>
> arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
> index 2ba4ea60cb14..59203ce58c61 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
> @@ -394,6 +394,16 @@ &vreg_l2c_1p8 {
>
> /* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
>
> +/* QoS seems to have conflicts with boot firmware on these devices. */
> +&aggre1_noc {
> + /delete-property/ clocks;
While it might be enough for Linux to make it skip the QoS, I think a
more correct fix would be to remove the 'reg' instead / in addition.
On the other hand, having those boards used by only a few people it
might be easier to just pick up the simple fix rather than implementing
a 'proper' one.
Nevertheless, this would require changing the schema too, see
Documentation/devicetree/bindings/interconnect/qcom,sc7280-rpmh.yaml
> +};
> +
> +/* QoS seems to have conflicts with boot firmware on these devices. */
> +&aggre2_noc {
> + /delete-property/ clocks;
> +};
> +
> &edp_panel {
> /* Our board provides power to the qcard for the eDP panel. */
> power-supply = <&vreg_edp_3p3>;
> --
> 2.51.0.rc2.233.g662b1ed5c5-goog
>
--
With best wishes
Dmitry
Powered by blists - more mailing lists