[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250825155557.v2.2.Idebf1d8bd8ff507462fef9dc1ff47e84c01e9b60@changeid>
Date: Mon, 25 Aug 2025 15:55:57 -0700
From: Brian Norris <briannorris@...omium.org>
To: Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Georgi Djakov <djakov@...nel.org>,
Odelu Kukatla <quic_okukatla@...cinc.com>
Cc: cros-qcom-dts-watchers@...omium.org,
Conor Dooley <conor+dt@...nel.org>,
linux-kernel@...r.kernel.org,
linux-arm-msm@...r.kernel.org,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Rob Herring <robh@...nel.org>,
Douglas Anderson <dianders@...omium.org>,
devicetree@...r.kernel.org,
Brian Norris <briannorris@...omium.org>
Subject: [PATCH v2 2/2] arm64: dts: qcom: sc7280: Drop aggre{1,2}_noc QOS clocks on Herobrine
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:
[ 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.
We suspect that the TZ firmware on these devices does not expose QoS
regions to Linux. The right solution here might involve deleting both
'clocks' and 'reg', but 'reg' would cause more problems. Linux is
already OK with a missing 'clocks', since pre-2b5004956aff DTBs need to
be supported, so we go with an easier solution.
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>
---
Changes in v2:
* Update notes about TZ firmware
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..6237fc7a13ca 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 */
+/* TZ firmware on these devices seems to not expose QoS regions to the OS. */
+&aggre1_noc {
+ /delete-property/ clocks;
+};
+
+/* TZ firmware on these devices seems to not expose QoS regions to the OS. */
+&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.261.g7ce5a0a67e-goog
Powered by blists - more mailing lists