[SRU][N:raspi][PATCH 2/7] DTS: bcm2712: defer SDIO1 CQE selection to the board dtb

Juerg Haefliger juerg.haefliger at canonical.com
Wed Mar 19 09:58:26 UTC 2025


From: Jonathan Bell <jonathan at raspberrypi.com>

BugLink: https://bugs.launchpad.net/bugs/2089555

Command Queueing on Linux with SD cards is new, with the potential to cause
filesystem corruption due to bugs in software or card firmware(s).

Default to disabled unless a) we know the interface connects to an eMMC
device or b) we want it switched on.

Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
(cherry picked from commit da768cf7bf3044699762389f62c759f940f21801 rpi-6.8.y)
Signed-off-by: Juerg Haefliger <juerg.haefliger at canonical.com>
---
 arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts  | 1 +
 arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi | 1 +
 arch/arm/boot/dts/broadcom/bcm2712.dtsi         | 1 -
 arch/arm/boot/dts/overlays/README               | 4 ++++
 4 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
index adcc95340803..89a6426b7ac2 100644
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -819,6 +819,7 @@ __overrides__ {
 		random = <&random>, "status";
 		rtc = <&rpi_rtc>, "status";
 		rtc_bbat_vchg = <&rpi_rtc>, "trickle-charge-microvolt:0";
+		sd_cqe = <&sdio1>, "supports-cqe?";
 		spi = <&spi0>, "status";
 		suspend = <&pwr_key>, "linux,code:0=205";
 		uart0 = <&uart0>, "status";
diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi b/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
index 16ef2446c88f..70a5e63ea31d 100644
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
@@ -355,6 +355,7 @@ &sdio1 {
 	mmc-hs200-1_8v;
 	mmc-hs400-1_8v;
 	broken-cd;
+	supports-cqe;
 	status = "okay";
 };
 
diff --git a/arch/arm/boot/dts/broadcom/bcm2712.dtsi b/arch/arm/boot/dts/broadcom/bcm2712.dtsi
index d48b2a823a6a..32cb1fc4b894 100644
--- a/arch/arm/boot/dts/broadcom/bcm2712.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2712.dtsi
@@ -1121,7 +1121,6 @@ sdio1: mmc at fff000 {
 			clocks = <&clk_emmc2>;
 			sdhci-caps-mask = <0x0000C000 0x0>;
 			sdhci-caps = <0x0 0x0>;
-			supports-cqe;
 			mmc-ddr-3_3v;
 		};
 
diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
index 650c66ae6338..7d45421bff63 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -348,6 +348,10 @@ Params:
                                 non-lite SKU of CM4).
                                 (default "on")
 
+        sd_cqe                  Use to enable Command Queueing on the SD
+                                interface for faster Class A2 card performance
+                                (Pi 5 only, default "off")
+
         sd_overclock            Clock (in MHz) to use when the MMC framework
                                 requests 50MHz
 
-- 
2.43.0




More information about the kernel-team mailing list