|
| 1 | +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| 2 | +From: SuperKali <hello@superkali.me> |
| 3 | +Date: Mon, 18 May 2026 19:30:00 +0000 |
| 4 | +Subject: arm: dts: rockchip: rock-5-itx: drop pcie3 refclk from u-boot dtsi |
| 5 | + |
| 6 | +The rk3588-rock-5-itx.dts wires the PI6C 100MHz oscillator into the |
| 7 | +pcie3x4 and pcie3x2 clocks list as pcie30_port{0,1}_refclk, with |
| 8 | +compatible "gated-fixed-clock". U-Boot v2026.04 does not implement |
| 9 | +that compatible, so clk_get_by_index() returns -ENODEV (-19) on those |
| 10 | +phandles and clk_get_bulk() in pcie_dw_rockchip aborts: |
| 11 | + |
| 12 | + pcie_dw_rockchip pcie@fe150000: Can't get clock: -19 |
| 13 | + pcie_dw_rockchip pcie@fe160000: Can't get clock: -19 |
| 14 | + |
| 15 | +NVMe and SATA boot from SPI are therefore unreachable. |
| 16 | + |
| 17 | +Override &pcie3x4 and &pcie3x2 in the U-Boot dtsi to keep only the |
| 18 | +CRU-provided clocks. vcc3v3_mkey is already pinned regulator-always-on |
| 19 | +in this file and is the same regulator node as vcc3v3_pi6c_05, so the |
| 20 | +PI6C oscillator stays powered and the "ref" input ticks regardless of |
| 21 | +U-Boot's clock setup. The kernel keeps the full clocks list from its |
| 22 | +own DTB and is unaffected. |
| 23 | + |
| 24 | +Signed-off-by: SuperKali <hello@superkali.me> |
| 25 | +--- |
| 26 | + arch/arm/dts/rk3588-rock-5-itx-u-boot.dtsi | 20 ++++++++++ |
| 27 | + 1 file changed, 20 insertions(+) |
| 28 | + |
| 29 | +diff --git a/arch/arm/dts/rk3588-rock-5-itx-u-boot.dtsi b/arch/arm/dts/rk3588-rock-5-itx-u-boot.dtsi |
| 30 | +index 111111111111..222222222222 100644 |
| 31 | +--- a/arch/arm/dts/rk3588-rock-5-itx-u-boot.dtsi |
| 32 | ++++ b/arch/arm/dts/rk3588-rock-5-itx-u-boot.dtsi |
| 33 | +@@ -4,6 +4,7 @@ |
| 34 | + */ |
| 35 | + |
| 36 | + #include "rk3588-u-boot.dtsi" |
| 37 | ++#include <dt-bindings/clock/rockchip,rk3588-cru.h> |
| 38 | + |
| 39 | + &fspim2_pins { |
| 40 | + bootph-pre-ram; |
| 41 | +@@ -20,3 +21,22 @@ |
| 42 | + &vcc3v3_mkey { |
| 43 | + regulator-always-on; |
| 44 | + }; |
| 45 | ++ |
| 46 | ++/* Drop pcie30_port{0,1}_refclk: U-Boot has no gated-fixed-clock driver. */ |
| 47 | ++&pcie3x4 { |
| 48 | ++ clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>, |
| 49 | ++ <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>, |
| 50 | ++ <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>; |
| 51 | ++ clock-names = "aclk_mst", "aclk_slv", |
| 52 | ++ "aclk_dbi", "pclk", |
| 53 | ++ "aux", "pipe"; |
| 54 | ++}; |
| 55 | ++ |
| 56 | ++&pcie3x2 { |
| 57 | ++ clocks = <&cru ACLK_PCIE_2L_MSTR>, <&cru ACLK_PCIE_2L_SLV>, |
| 58 | ++ <&cru ACLK_PCIE_2L_DBI>, <&cru PCLK_PCIE_2L>, |
| 59 | ++ <&cru CLK_PCIE_AUX1>, <&cru CLK_PCIE2L_PIPE>; |
| 60 | ++ clock-names = "aclk_mst", "aclk_slv", |
| 61 | ++ "aclk_dbi", "pclk", |
| 62 | ++ "aux", "pipe"; |
| 63 | ++}; |
| 64 | +-- |
| 65 | +Armbian |
| 66 | + |
0 commit comments