[PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader

Hal Feng hal.feng at starfivetech.com
Fri Aug 22 02:27:05 PDT 2025



> -----Original Message-----
> From: E Shattow <e at freeshell.de>
> Sent: 2025年8月20日 11:49
> To: Hal Feng <hal.feng at starfivetech.com>; Conor Dooley <conor at kernel.org>;
> Emil Renner Berthing <kernel at esmil.dk>; Rob Herring <robh at kernel.org>;
> Krzysztof Kozlowski <krzk+dt at kernel.org>; Paul Walmsley
> <paul.walmsley at sifive.com>; Palmer Dabbelt <palmer at dabbelt.com>; Albert
> Ou <aou at eecs.berkeley.edu>; Alexandre Ghiti <alex at ghiti.fr>
> Cc: devicetree at vger.kernel.org; linux-kernel at vger.kernel.org; linux-
> riscv at lists.infradead.org
> Subject: Re: [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram
> hinting needed by boot loader
> 
> 
> 
> On 8/17/25 23:05, Hal Feng wrote:
> >> On 15.08.25 15:37, E Shattow wrote:
> >> Add bootph-pre-ram hinting to jh7110.dtsi:
> >>   - CPU interrupt controller(s)
> >>   - core local interrupt timer
> >>   - DDR memory controller
> >>   - oscillator
> >>   - syscrg clock-controller
> >>
> >> Signed-off-by: E Shattow <e at freeshell.de>
> >> ---
> >>  arch/riscv/boot/dts/starfive/jh7110.dtsi | 9 +++++++++
> >>  1 file changed, 9 insertions(+)
> >>
> >> diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi
> >> b/arch/riscv/boot/dts/starfive/jh7110.dtsi
> >> index 14df3d062a45..884a3526cb0f 100644
> >> --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi
> >> +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi
> >> @@ -35,6 +35,7 @@ S7_0: cpu at 0 {
> >>
> >>  			cpu0_intc: interrupt-controller {
> >>  				compatible = "riscv,cpu-intc";
> >> +				bootph-pre-ram;
> >>  				interrupt-controller;
> >>  				#interrupt-cells = <1>;
> >>  			};
> >> @@ -68,6 +69,7 @@ U74_1: cpu at 1 {
> >>
> >>  			cpu1_intc: interrupt-controller {
> >>  				compatible = "riscv,cpu-intc";
> >> +				bootph-pre-ram;
> >>  				interrupt-controller;
> >>  				#interrupt-cells = <1>;
> >>  			};
> >> @@ -101,6 +103,7 @@ U74_2: cpu at 2 {
> >>
> >>  			cpu2_intc: interrupt-controller {
> >>  				compatible = "riscv,cpu-intc";
> >> +				bootph-pre-ram;
> >>  				interrupt-controller;
> >>  				#interrupt-cells = <1>;
> >>  			};
> >> @@ -134,6 +137,7 @@ U74_3: cpu at 3 {
> >>
> >>  			cpu3_intc: interrupt-controller {
> >>  				compatible = "riscv,cpu-intc";
> >> +				bootph-pre-ram;
> >>  				interrupt-controller;
> >>  				#interrupt-cells = <1>;
> >>  			};
> >> @@ -167,6 +171,7 @@ U74_4: cpu at 4 {
> >>
> >>  			cpu4_intc: interrupt-controller {
> >>  				compatible = "riscv,cpu-intc";
> >> +				bootph-pre-ram;
> >>  				interrupt-controller;
> >>  				#interrupt-cells = <1>;
> >>  			};
> >> @@ -321,6 +326,7 @@ mclk_ext: mclk-ext-clock {
> >>
> >>  	osc: oscillator {
> >>  		compatible = "fixed-clock";
> >> +		bootph-pre-ram;
> >>  		clock-output-names = "osc";
> >>  		#clock-cells = <0>;
> >>  	};
> >> @@ -354,6 +360,7 @@ soc {
> >>  		clint: timer at 2000000 {
> >>  			compatible = "starfive,jh7110-clint", "sifive,clint0";
> >>  			reg = <0x0 0x2000000 0x0 0x10000>;
> >> +			bootph-pre-ram;
> >>  			interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc
> >> 7>,
> >>  					      <&cpu1_intc 3>, <&cpu1_intc 7>,
> >>  					      <&cpu2_intc 3>, <&cpu2_intc 7>,
> @@ -376,6 +383,7 @@
> >> memory-controller at 15700000 {
> >>  			compatible = "starfive,jh7110-dmc";
> >>  			reg = <0x0 0x15700000 0x0 0x10000>,
> >>  			      <0x0 0x13000000 0x0 0x10000>;
> >> +			bootph-pre-ram;
> >>  			clocks = <&syscrg JH7110_PLLCLK_PLL1_OUT>;
> >>  			clock-names = "pll1_out";
> >>  			resets = <&syscrg JH7110_SYSRST_DDR_AXI>, @@ -
> >> 892,6 +900,7 @@ qspi: spi at 13010000 {
> >>  		syscrg: clock-controller at 13020000 {
> >>  			compatible = "starfive,jh7110-syscrg";
> >>  			reg = <0x0 0x13020000 0x0 0x10000>;
> >> +			bootph-pre-ram;
> >>  			clocks = <&osc>, <&gmac1_rmii_refin>,
> >>  				 <&gmac1_rgmii_rxin>,
> >>  				 <&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
> >
> > pllclk also needs to add bootph-pre-ram. Because it is the dependency of
> syscrg.
> >
> > 		pllclk: clock-controller {
> > 			compatible = "starfive,jh7110-pll";
> > +			bootph-pre-ram;
> > 			clocks = <&osc>;
> > 			#clock-cells = <1>;
> > 		};
> >
> > Best regards,
> > Hal
> 
> What users are there for 'pllclk' at U-Boot SPL phase? There does not seem to
> be any difference in testing U-Boot and Linux with or without this hint for
> 'pllclk'.

I see commit 8b3f2eb7d8912204bda2d914b8a9a1ce1c31bb5c adding this line to
solve some problems.

https://lore.kernel.org/all/20250330162421.238483-1-heinrich.schuchardt@canonical.com/

Best regards,
Hal


More information about the linux-riscv mailing list