[RFC PATCH v1 12/14] arm: dts: rk3576: add DMC reg spaces and DDR GRF syscon node

Johan Axelsson johan.axelsson at proton.me
Mon May 25 03:29:47 CEST 2026


Two additions needed for BLOB-free TPL DRAM init:

1. DMC reg/reg-names (W13): add the four MMIO regions that the DRAM
   driver maps at probe time:
     - ddrctl0  0x28000000 / 16 MB  (uMCTL2 ch0, TRM Part 1)
     - ddrctl1  0x29000000 / 16 MB  (uMCTL2 ch1)
     - ddrphy0  0x2a020000 / 64 KB  (combo PHY ch0)
     - ddrphy1  0x2a030000 / 64 KB  (combo PHY ch1)

2. DDR GRF syscon node (W14): the DDR Global Register File at
   0x26012000 is not present in the upstream kernel DTS (it is an
   RK3576-specific block controlling PHY clock gating, LPDDR5 CS
   toggle and the dfi_init_complete mux).  Add it as a u-boot-only
   syscon node with bootph-all so it is available in TPL.

Signed-off-by: Johan Axelsson <johan.axelsson at proton.me>
---
 arch/arm/dts/rk3576-u-boot.dtsi | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/arch/arm/dts/rk3576-u-boot.dtsi b/arch/arm/dts/rk3576-u-boot.dtsi
index 018c9cc8d69..881a594ce5c 100644
--- a/arch/arm/dts/rk3576-u-boot.dtsi
+++ b/arch/arm/dts/rk3576-u-boot.dtsi
@@ -15,9 +15,22 @@
 		u-boot,spl-boot-order = "same-as-spl", &sdmmc, &sdhci;
 	};
 
-	dmc {
+	/* DDR Global Register File — TRM Part 1, Table 1-1; no upstream node */
+	ddr_grf: syscon at 26012000 {
+		compatible = "rockchip,rk3576-ddr-grf", "syscon";
+		reg = <0x0 0x26012000 0x0 0x2000>;
+		bootph-all;
+	};
+
+	dmc: dmc {
 		compatible = "rockchip,rk3576-dmc";
 		bootph-all;
+		/* TRM Part 1, Table 1-1 */
+		reg = <0x0 0x28000000 0x0 0x1000000>,	/* DDRCTL0 (uMCTL2 ch0) */
+		      <0x0 0x29000000 0x0 0x1000000>,	/* DDRCTL1 (uMCTL2 ch1) */
+		      <0x0 0x2a020000 0x0 0x10000>,	/* DDRPHY0 */
+		      <0x0 0x2a030000 0x0 0x10000>;	/* DDRPHY1 */
+		reg-names = "ddrctl0", "ddrctl1", "ddrphy0", "ddrphy1";
 	};
 };
 
-- 
2.45.1.windows.1




More information about the U-Boot mailing list