* [PATCH v2 0/3] riscv: dts: starfive: jh7110: More U-Boot downstream changes for JH7110
@ 2025-08-15 7:37 E Shattow
2025-08-15 7:37 ` [PATCH v2 1/3] dt-bindings: memory-controllers: add StarFive JH7110 SoC DMC E Shattow
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: E Shattow @ 2025-08-15 7:37 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-kernel, Hal Feng, Minda Chen, E Shattow,
linux-riscv
Bring in additional downstream U-Boot boot loader changes for StarFive
VisionFive2 board target (and related JH7110 common boards). Create a
basic dt-binding (and not any Linux driver) in support of the
memory-controller dts node used in mainline U-Boot. Also add
bootph-pre-ram hinting to jh7110.dtsi needed at SPL boot phase.
Changes since v1:
- patch 1/3 "add StarFive JH7110 SoC DMC": Rephrase commit message and
description, drop min/max items and list with description instead, drop
legacy clock-frequency property.
- patch 2/3 "add memory controller node": Rephrase commit message and
drop clock-frequency property.
E Shattow (3):
dt-bindings: memory-controllers: add StarFive JH7110 SoC DMC
riscv: dts: starfive: jh7110: add DMC memory controller
riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot
loader
.../starfive,jh7110-dmc.yaml | 73 +++++++++++++++++++
arch/riscv/boot/dts/starfive/jh7110.dtsi | 21 ++++++
2 files changed, 94 insertions(+)
create mode 100644 Documentation/devicetree/bindings/memory-controllers/starfive,jh7110-dmc.yaml
base-commit: cb69daf085b5974fef2df9789f8c1b35e78e7913
--
2.50.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/3] dt-bindings: memory-controllers: add StarFive JH7110 SoC DMC
2025-08-15 7:37 [PATCH v2 0/3] riscv: dts: starfive: jh7110: More U-Boot downstream changes for JH7110 E Shattow
@ 2025-08-15 7:37 ` E Shattow
2025-08-19 8:59 ` Krzysztof Kozlowski
2025-08-15 7:37 ` [PATCH v2 2/3] riscv: dts: starfive: jh7110: add DMC memory controller E Shattow
2025-08-15 7:37 ` [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader E Shattow
2 siblings, 1 reply; 10+ messages in thread
From: E Shattow @ 2025-08-15 7:37 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, E Shattow
Cc: devicetree, linux-kernel, Hal Feng, Minda Chen
Describe JH7110 SoC DDR external memory interface.
Signed-off-by: E Shattow <e@freeshell.de>
---
.../starfive,jh7110-dmc.yaml | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 Documentation/devicetree/bindings/memory-controllers/starfive,jh7110-dmc.yaml
diff --git a/Documentation/devicetree/bindings/memory-controllers/starfive,jh7110-dmc.yaml b/Documentation/devicetree/bindings/memory-controllers/starfive,jh7110-dmc.yaml
new file mode 100644
index 000000000000..be31d76f01ca
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/starfive,jh7110-dmc.yaml
@@ -0,0 +1,73 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/memory-controllers/starfive,jh7110-dmc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: StarFive JH7110 DMC
+
+maintainers:
+ - E Shattow <e@freeshell.de>
+
+description:
+ JH7110 DDR external memory interface LPDDR4/DDR4/DDR3/LPDDR3 32-bit at 2133Mbps (up to 2800Mbps).
+
+properties:
+ compatible:
+ items:
+ - const: starfive,jh7110-dmc
+
+ reg:
+ items:
+ - description: controller registers
+ - description: phy registers
+
+ clocks:
+ maxItems: 1
+
+ clock-names:
+ items:
+ - const: pll1_out
+
+ resets:
+ items:
+ - description: axi
+ - description: osc
+ - description: apb
+
+ reset-names:
+ items:
+ - const: axi
+ - const: osc
+ - const: apb
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - resets
+ - reset-names
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/starfive,jh7110-crg.h>
+ #include <dt-bindings/reset/starfive,jh7110-crg.h>
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ memory-controller@15700000 {
+ compatible = "starfive,jh7110-dmc";
+ reg = <0x0 0x15700000 0x0 0x10000>,
+ <0x0 0x13000000 0x0 0x10000>;
+ clocks = <&syscrg JH7110_PLLCLK_PLL1_OUT>;
+ clock-names = "pll1_out";
+ resets = <&syscrg JH7110_SYSRST_DDR_AXI>,
+ <&syscrg JH7110_SYSRST_DDR_OSC>,
+ <&syscrg JH7110_SYSRST_DDR_APB>;
+ reset-names = "axi", "osc", "apb";
+ };
+ };
--
2.50.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/3] riscv: dts: starfive: jh7110: add DMC memory controller
2025-08-15 7:37 [PATCH v2 0/3] riscv: dts: starfive: jh7110: More U-Boot downstream changes for JH7110 E Shattow
2025-08-15 7:37 ` [PATCH v2 1/3] dt-bindings: memory-controllers: add StarFive JH7110 SoC DMC E Shattow
@ 2025-08-15 7:37 ` E Shattow
2025-08-18 6:23 ` Hal Feng
2025-08-15 7:37 ` [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader E Shattow
2 siblings, 1 reply; 10+ messages in thread
From: E Shattow @ 2025-08-15 7:37 UTC (permalink / raw)
To: Conor Dooley, Emil Renner Berthing, Rob Herring,
Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: devicetree, linux-kernel, Hal Feng, Minda Chen, E Shattow,
linux-riscv
Add JH7110 SoC DDR external memory controller.
Signed-off-by: E Shattow <e@freeshell.de>
---
arch/riscv/boot/dts/starfive/jh7110.dtsi | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi
index 0ba74ef04679..14df3d062a45 100644
--- a/arch/riscv/boot/dts/starfive/jh7110.dtsi
+++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi
@@ -372,6 +372,18 @@ ccache: cache-controller@2010000 {
cache-unified;
};
+ memory-controller@15700000 {
+ compatible = "starfive,jh7110-dmc";
+ reg = <0x0 0x15700000 0x0 0x10000>,
+ <0x0 0x13000000 0x0 0x10000>;
+ clocks = <&syscrg JH7110_PLLCLK_PLL1_OUT>;
+ clock-names = "pll1_out";
+ resets = <&syscrg JH7110_SYSRST_DDR_AXI>,
+ <&syscrg JH7110_SYSRST_DDR_OSC>,
+ <&syscrg JH7110_SYSRST_DDR_APB>;
+ reset-names = "axi", "osc", "apb";
+ };
+
plic: interrupt-controller@c000000 {
compatible = "starfive,jh7110-plic", "sifive,plic-1.0.0";
reg = <0x0 0xc000000 0x0 0x4000000>;
--
2.50.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader
2025-08-15 7:37 [PATCH v2 0/3] riscv: dts: starfive: jh7110: More U-Boot downstream changes for JH7110 E Shattow
2025-08-15 7:37 ` [PATCH v2 1/3] dt-bindings: memory-controllers: add StarFive JH7110 SoC DMC E Shattow
2025-08-15 7:37 ` [PATCH v2 2/3] riscv: dts: starfive: jh7110: add DMC memory controller E Shattow
@ 2025-08-15 7:37 ` E Shattow
2025-08-18 6:05 ` Hal Feng
2 siblings, 1 reply; 10+ messages in thread
From: E Shattow @ 2025-08-15 7:37 UTC (permalink / raw)
To: Conor Dooley, Emil Renner Berthing, Rob Herring,
Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: devicetree, linux-kernel, Hal Feng, Minda Chen, E Shattow,
linux-riscv
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@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@0 {
cpu0_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
+ bootph-pre-ram;
interrupt-controller;
#interrupt-cells = <1>;
};
@@ -68,6 +69,7 @@ U74_1: cpu@1 {
cpu1_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
+ bootph-pre-ram;
interrupt-controller;
#interrupt-cells = <1>;
};
@@ -101,6 +103,7 @@ U74_2: cpu@2 {
cpu2_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
+ bootph-pre-ram;
interrupt-controller;
#interrupt-cells = <1>;
};
@@ -134,6 +137,7 @@ U74_3: cpu@3 {
cpu3_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
+ bootph-pre-ram;
interrupt-controller;
#interrupt-cells = <1>;
};
@@ -167,6 +171,7 @@ U74_4: cpu@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@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@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@13010000 {
syscrg: clock-controller@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>,
--
2.50.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* RE: [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader
2025-08-15 7:37 ` [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader E Shattow
@ 2025-08-18 6:05 ` Hal Feng
2025-08-20 3:49 ` E Shattow
0 siblings, 1 reply; 10+ messages in thread
From: Hal Feng @ 2025-08-18 6:05 UTC (permalink / raw)
To: E Shattow, Conor Dooley, Emil Renner Berthing, Rob Herring,
Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-riscv@lists.infradead.org
> 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@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@0 {
>
> cpu0_intc: interrupt-controller {
> compatible = "riscv,cpu-intc";
> + bootph-pre-ram;
> interrupt-controller;
> #interrupt-cells = <1>;
> };
> @@ -68,6 +69,7 @@ U74_1: cpu@1 {
>
> cpu1_intc: interrupt-controller {
> compatible = "riscv,cpu-intc";
> + bootph-pre-ram;
> interrupt-controller;
> #interrupt-cells = <1>;
> };
> @@ -101,6 +103,7 @@ U74_2: cpu@2 {
>
> cpu2_intc: interrupt-controller {
> compatible = "riscv,cpu-intc";
> + bootph-pre-ram;
> interrupt-controller;
> #interrupt-cells = <1>;
> };
> @@ -134,6 +137,7 @@ U74_3: cpu@3 {
>
> cpu3_intc: interrupt-controller {
> compatible = "riscv,cpu-intc";
> + bootph-pre-ram;
> interrupt-controller;
> #interrupt-cells = <1>;
> };
> @@ -167,6 +171,7 @@ U74_4: cpu@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@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@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@13010000 {
> syscrg: clock-controller@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
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH v2 2/3] riscv: dts: starfive: jh7110: add DMC memory controller
2025-08-15 7:37 ` [PATCH v2 2/3] riscv: dts: starfive: jh7110: add DMC memory controller E Shattow
@ 2025-08-18 6:23 ` Hal Feng
0 siblings, 0 replies; 10+ messages in thread
From: Hal Feng @ 2025-08-18 6:23 UTC (permalink / raw)
To: E Shattow, Conor Dooley, Emil Renner Berthing, Rob Herring,
Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Minda Chen, linux-riscv@lists.infradead.org
> On 15.08.25 15:37, E Shattow wrote:
> Add JH7110 SoC DDR external memory controller.
>
> Signed-off-by: E Shattow <e@freeshell.de>
> ---
> arch/riscv/boot/dts/starfive/jh7110.dtsi | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi
> b/arch/riscv/boot/dts/starfive/jh7110.dtsi
> index 0ba74ef04679..14df3d062a45 100644
> --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi
> +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi
> @@ -372,6 +372,18 @@ ccache: cache-controller@2010000 {
> cache-unified;
> };
>
> + memory-controller@15700000 {
> + compatible = "starfive,jh7110-dmc";
> + reg = <0x0 0x15700000 0x0 0x10000>,
> + <0x0 0x13000000 0x0 0x10000>;
> + clocks = <&syscrg JH7110_PLLCLK_PLL1_OUT>;
> + clock-names = "pll1_out";
> + resets = <&syscrg JH7110_SYSRST_DDR_AXI>,
> + <&syscrg JH7110_SYSRST_DDR_OSC>,
> + <&syscrg JH7110_SYSRST_DDR_APB>;
> + reset-names = "axi", "osc", "apb";
> + };
> +
> plic: interrupt-controller@c000000 {
> compatible = "starfive,jh7110-plic", "sifive,plic-1.0.0";
> reg = <0x0 0xc000000 0x0 0x4000000>;
Nodes are sorted by reg address. So please place memory-controller@15700000
between watchdog@13070000 and crypto@16000000. Thanks.
Best regards,
Hal
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: memory-controllers: add StarFive JH7110 SoC DMC
2025-08-15 7:37 ` [PATCH v2 1/3] dt-bindings: memory-controllers: add StarFive JH7110 SoC DMC E Shattow
@ 2025-08-19 8:59 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-19 8:59 UTC (permalink / raw)
To: E Shattow
Cc: Rob Herring, Conor Dooley, devicetree, linux-kernel, Hal Feng,
Minda Chen
On Fri, Aug 15, 2025 at 12:37:21AM -0700, E Shattow wrote:
> +
> +title: StarFive JH7110 DMC
> +
> +maintainers:
> + - E Shattow <e@freeshell.de>
> +
> +description:
> + JH7110 DDR external memory interface LPDDR4/DDR4/DDR3/LPDDR3 32-bit at 2133Mbps (up to 2800Mbps).
Please wrap at 80 (see Linux Coding style)
> +
> +properties:
> + compatible:
> + items:
> + - const: starfive,jh7110-dmc
> +
> + reg:
> + items:
> + - description: controller registers
> + - description: phy registers
> +
> + clocks:
> + maxItems: 1
> +
> + clock-names:
> + items:
> + - const: pll1_out
pll
(this is name of input, not name of clock)
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader
2025-08-18 6:05 ` Hal Feng
@ 2025-08-20 3:49 ` E Shattow
2025-08-22 9:27 ` Hal Feng
0 siblings, 1 reply; 10+ messages in thread
From: E Shattow @ 2025-08-20 3:49 UTC (permalink / raw)
To: Hal Feng, Conor Dooley, Emil Renner Berthing, Rob Herring,
Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-riscv@lists.infradead.org
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@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@0 {
>>
>> cpu0_intc: interrupt-controller {
>> compatible = "riscv,cpu-intc";
>> + bootph-pre-ram;
>> interrupt-controller;
>> #interrupt-cells = <1>;
>> };
>> @@ -68,6 +69,7 @@ U74_1: cpu@1 {
>>
>> cpu1_intc: interrupt-controller {
>> compatible = "riscv,cpu-intc";
>> + bootph-pre-ram;
>> interrupt-controller;
>> #interrupt-cells = <1>;
>> };
>> @@ -101,6 +103,7 @@ U74_2: cpu@2 {
>>
>> cpu2_intc: interrupt-controller {
>> compatible = "riscv,cpu-intc";
>> + bootph-pre-ram;
>> interrupt-controller;
>> #interrupt-cells = <1>;
>> };
>> @@ -134,6 +137,7 @@ U74_3: cpu@3 {
>>
>> cpu3_intc: interrupt-controller {
>> compatible = "riscv,cpu-intc";
>> + bootph-pre-ram;
>> interrupt-controller;
>> #interrupt-cells = <1>;
>> };
>> @@ -167,6 +171,7 @@ U74_4: cpu@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@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@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@13010000 {
>> syscrg: clock-controller@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'.
Thanks,
-E
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader
2025-08-20 3:49 ` E Shattow
@ 2025-08-22 9:27 ` Hal Feng
2025-08-23 8:10 ` E Shattow
0 siblings, 1 reply; 10+ messages in thread
From: Hal Feng @ 2025-08-22 9:27 UTC (permalink / raw)
To: E Shattow, Conor Dooley, Emil Renner Berthing, Rob Herring,
Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-riscv@lists.infradead.org
> -----Original Message-----
> From: E Shattow <e@freeshell.de>
> Sent: 2025年8月20日 11:49
> To: Hal Feng <hal.feng@starfivetech.com>; Conor Dooley <conor@kernel.org>;
> Emil Renner Berthing <kernel@esmil.dk>; Rob Herring <robh@kernel.org>;
> Krzysztof Kozlowski <krzk+dt@kernel.org>; Paul Walmsley
> <paul.walmsley@sifive.com>; Palmer Dabbelt <palmer@dabbelt.com>; Albert
> Ou <aou@eecs.berkeley.edu>; Alexandre Ghiti <alex@ghiti.fr>
> Cc: devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
> riscv@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@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@0 {
> >>
> >> cpu0_intc: interrupt-controller {
> >> compatible = "riscv,cpu-intc";
> >> + bootph-pre-ram;
> >> interrupt-controller;
> >> #interrupt-cells = <1>;
> >> };
> >> @@ -68,6 +69,7 @@ U74_1: cpu@1 {
> >>
> >> cpu1_intc: interrupt-controller {
> >> compatible = "riscv,cpu-intc";
> >> + bootph-pre-ram;
> >> interrupt-controller;
> >> #interrupt-cells = <1>;
> >> };
> >> @@ -101,6 +103,7 @@ U74_2: cpu@2 {
> >>
> >> cpu2_intc: interrupt-controller {
> >> compatible = "riscv,cpu-intc";
> >> + bootph-pre-ram;
> >> interrupt-controller;
> >> #interrupt-cells = <1>;
> >> };
> >> @@ -134,6 +137,7 @@ U74_3: cpu@3 {
> >>
> >> cpu3_intc: interrupt-controller {
> >> compatible = "riscv,cpu-intc";
> >> + bootph-pre-ram;
> >> interrupt-controller;
> >> #interrupt-cells = <1>;
> >> };
> >> @@ -167,6 +171,7 @@ U74_4: cpu@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@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@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@13010000 {
> >> syscrg: clock-controller@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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader
2025-08-22 9:27 ` Hal Feng
@ 2025-08-23 8:10 ` E Shattow
0 siblings, 0 replies; 10+ messages in thread
From: E Shattow @ 2025-08-23 8:10 UTC (permalink / raw)
To: Hal Feng, Conor Dooley, Emil Renner Berthing, Rob Herring,
Krzysztof Kozlowski, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-riscv@lists.infradead.org
On 8/22/25 02:27, Hal Feng wrote:
>
>
>> -----Original Message-----
>> From: E Shattow <e@freeshell.de>
>> Sent: 2025年8月20日 11:49
>> To: Hal Feng <hal.feng@starfivetech.com>; Conor Dooley <conor@kernel.org>;
>> Emil Renner Berthing <kernel@esmil.dk>; Rob Herring <robh@kernel.org>;
>> Krzysztof Kozlowski <krzk+dt@kernel.org>; Paul Walmsley
>> <paul.walmsley@sifive.com>; Palmer Dabbelt <palmer@dabbelt.com>; Albert
>> Ou <aou@eecs.berkeley.edu>; Alexandre Ghiti <alex@ghiti.fr>
>> Cc: devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
>> riscv@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@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@0 {
>>>>
>>>> cpu0_intc: interrupt-controller {
>>>> compatible = "riscv,cpu-intc";
>>>> + bootph-pre-ram;
>>>> interrupt-controller;
>>>> #interrupt-cells = <1>;
>>>> };
>>>> @@ -68,6 +69,7 @@ U74_1: cpu@1 {
>>>>
>>>> cpu1_intc: interrupt-controller {
>>>> compatible = "riscv,cpu-intc";
>>>> + bootph-pre-ram;
>>>> interrupt-controller;
>>>> #interrupt-cells = <1>;
>>>> };
>>>> @@ -101,6 +103,7 @@ U74_2: cpu@2 {
>>>>
>>>> cpu2_intc: interrupt-controller {
>>>> compatible = "riscv,cpu-intc";
>>>> + bootph-pre-ram;
>>>> interrupt-controller;
>>>> #interrupt-cells = <1>;
>>>> };
>>>> @@ -134,6 +137,7 @@ U74_3: cpu@3 {
>>>>
>>>> cpu3_intc: interrupt-controller {
>>>> compatible = "riscv,cpu-intc";
>>>> + bootph-pre-ram;
>>>> interrupt-controller;
>>>> #interrupt-cells = <1>;
>>>> };
>>>> @@ -167,6 +171,7 @@ U74_4: cpu@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@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@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@13010000 {
>>>> syscrg: clock-controller@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/
Yes, there was some mistake in how I am testing U-Boot SPL. Given that
(U-Boot code base) jh7110-u-boot.dtsi override is replaced with contents:
/ {
soc {
memory-controller@15700000 {
clock-frequency = <2133>; /* starfive_ddr.c
driver needs update to use common clocks */
};
};
};
&syscrg {
assigned-clock-rates = <0>; /* cpufreq not implemented, use
defaults */
};
I am now able to reproduce this boot failure in U-Boot SPL on Star64.
Additionally, U-Boot SPL fails to boot if 'gmac1_rgmii_rxin' or
'gmac1_rmii_refin' are missing bootph-pre-ram hint, as a dependency of
syscrg. It is okay to omit hints for 'gmac0_rgmii_rxin' and
'gmac0_rmii_refin' as the dependency of aoncrg not used at U-Boot SPL.
In the next version of this series will be added bootph-pre-ram hints
for syscrg dependencies: 'pllclk', 'gmac1_rgmii_rxin', and
'gmac1_rmii_refin'
Thank you, Hal.
-E
>
> Best regards,
> Hal
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-08-23 8:10 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-15 7:37 [PATCH v2 0/3] riscv: dts: starfive: jh7110: More U-Boot downstream changes for JH7110 E Shattow
2025-08-15 7:37 ` [PATCH v2 1/3] dt-bindings: memory-controllers: add StarFive JH7110 SoC DMC E Shattow
2025-08-19 8:59 ` Krzysztof Kozlowski
2025-08-15 7:37 ` [PATCH v2 2/3] riscv: dts: starfive: jh7110: add DMC memory controller E Shattow
2025-08-18 6:23 ` Hal Feng
2025-08-15 7:37 ` [PATCH v2 3/3] riscv: dts: starfive: jh7110: bootph-pre-ram hinting needed by boot loader E Shattow
2025-08-18 6:05 ` Hal Feng
2025-08-20 3:49 ` E Shattow
2025-08-22 9:27 ` Hal Feng
2025-08-23 8:10 ` E Shattow
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).