* [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
@ 2026-07-28 21:05 Aurelien Jarno
2026-07-28 21:05 ` [PATCH 1/3] " Aurelien Jarno
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Aurelien Jarno @ 2026-07-28 21:05 UTC (permalink / raw)
To: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Yixun Lan
Cc: Aurelien Jarno, open list:RISC-V ARCHITECTURE:Keyword:riscv,
open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit
This series adds cpu scaling support for the Milk-V Jupiter boards.
The first commit adds it to the existing "Milk-V Jupiter (K1)" board.
The two following commits add a "Milk-V Jupiter (M1)" board, by moving
the common part, i.e. everything but the model name and the operating
point tables, in a shared DTSI file. This file is then included for both
K1 and M1 variants.
CPU frequency scaling was verified up to 1.8 GHz on the M1 board.
Aurelien Jarno (3):
riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter
boards
riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
arch/riscv/boot/dts/spacemit/Makefile | 1 +
.../dts/spacemit/k1-milkv-jupiter-common.dtsi | 469 ++++++++++++++++++
.../boot/dts/spacemit/k1-milkv-jupiter.dts | 433 +---------------
.../boot/dts/spacemit/m1-milkv-jupiter.dts | 11 +
arch/riscv/boot/dts/spacemit/m1-opp.dtsi | 117 +++++
5 files changed, 601 insertions(+), 430 deletions(-)
create mode 100644 arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
create mode 100644 arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
create mode 100644 arch/riscv/boot/dts/spacemit/m1-opp.dtsi
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
@ 2026-07-28 21:05 ` Aurelien Jarno
[not found] ` <20260728211959.4174F1F000E9@smtp.kernel.org>
2026-07-28 21:05 ` [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards Aurelien Jarno
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Aurelien Jarno @ 2026-07-28 21:05 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
Yixun Lan
Cc: Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V SPACEMIT SoC Support,
open list:RISC-V SPACEMIT SoC Support
Enable CPU DVFS on Milk-V Jupiter by including the OPP tables and wiring the
CPU nodes to the CPU regulator supply.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
.../boot/dts/spacemit/k1-milkv-jupiter.dts | 35 ++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
index b61f5995ec771..3c16d0c20050e 100644
--- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
@@ -5,6 +5,7 @@
*/
#include "k1.dtsi"
+#include "k1-opp.dtsi"
#include "k1-pinctrl.dtsi"
/ {
@@ -107,6 +108,38 @@ &combo_phy {
status = "okay";
};
+&cpu_0 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_1 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_2 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_3 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_4 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_5 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_6 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_7 {
+ cpu-supply = <&buck1_0v9>;
+};
+
&emmc {
bus-width = <8>;
mmc-hs400-1_8v;
@@ -209,7 +242,7 @@ pmic@41 {
dldoin2-supply = <&buck5>;
regulators {
- buck1 {
+ buck1_0v9: buck1 {
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3450000>;
regulator-ramp-delay = <5000>;
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards
2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
2026-07-28 21:05 ` [PATCH 1/3] " Aurelien Jarno
@ 2026-07-28 21:05 ` Aurelien Jarno
[not found] ` <20260728212345.A0CFE1F000E9@smtp.kernel.org>
2026-07-28 21:05 ` [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1) Aurelien Jarno
2026-07-29 1:32 ` [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Yixun Lan
3 siblings, 1 reply; 11+ messages in thread
From: Aurelien Jarno @ 2026-07-28 21:05 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V ARCHITECTURE,
open list:RISC-V SPACEMIT SoC Support
Add a common board dtsi for use by Milk V-Jupiter board variants. It
excludes the CPU operating-points-v2 tables, which should be included in
the board file.
It will be used for the Milk-V Jupiter M1 board.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
.../dts/spacemit/k1-milkv-jupiter-common.dtsi | 469 ++++++++++++++++++
.../boot/dts/spacemit/k1-milkv-jupiter.dts | 464 +----------------
2 files changed, 471 insertions(+), 462 deletions(-)
create mode 100644 arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
new file mode 100644
index 0000000000000..b13d9c5e360be
--- /dev/null
+++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
@@ -0,0 +1,469 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ * Copyright (C) 2025 Javier Martinez Canillas <javierm@redhat.com>
+ */
+
+#include "k1.dtsi"
+#include "k1-pinctrl.dtsi"
+
+/ {
+ compatible = "milkv,jupiter", "spacemit,k1";
+
+ aliases {
+ ethernet0 = ð0;
+ ethernet1 = ð1;
+ i2c2 = &i2c2;
+ i2c8 = &i2c8;
+ mmc0 = &emmc;
+ mmc1 = &sdhci0;
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led1 {
+ label = "pwr-led";
+ gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ default-state = "on";
+ };
+
+ led2 {
+ label = "hdd-led";
+ gpios = <&gpio K1_GPIO(92) GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "disk-activity";
+ };
+ };
+
+ pcie_vcc_3v3: regulator-pcie-vcc3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "pcie_vcc3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ vin-supply = <®_dc_in>;
+ };
+
+ reg_dc_in: regulator-dc-in-12v {
+ compatible = "regulator-fixed";
+ regulator-name = "dc_in_12v";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_vcc_4v: regulator-vcc-4v {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc_4v";
+ regulator-min-microvolt = <4000000>;
+ regulator-max-microvolt = <4000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ vin-supply = <®_dc_in>;
+ };
+
+ reg_vcc_5v: regulator-vcc-5v {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc_5v";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ vin-supply = <®_dc_in>;
+ };
+
+ regulator-usb3-vbus-5v {
+ compatible = "regulator-fixed";
+ regulator-name = "USB30_VBUS";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ vin-supply = <®_vcc_5v>;
+ gpio = <&gpio K1_GPIO(97) GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ usb3_hub_5v: regulator-usb3-hub-5v {
+ compatible = "regulator-fixed";
+ regulator-name = "USB30_HUB";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <®_vcc_5v>;
+ gpio = <&gpio K1_GPIO(123) GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&combo_phy {
+ status = "okay";
+};
+
+&cpu_0 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_1 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_2 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_3 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_4 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_5 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_6 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_7 {
+ cpu-supply = <&buck1_0v9>;
+};
+
+&emmc {
+ bus-width = <8>;
+ mmc-hs400-1_8v;
+ mmc-hs400-enhanced-strobe;
+ non-removable;
+ no-sd;
+ no-sdio;
+ status = "okay";
+};
+
+ð0 {
+ phy-handle = <&rgmii0>;
+ phy-mode = "rgmii-id";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac0_cfg>, <&gmac0_clk_ref_cfg>;
+ rx-internal-delay-ps = <0>;
+ tx-internal-delay-ps = <0>;
+ status = "okay";
+
+ mdio-bus {
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+
+ reset-gpios = <&gpio K1_GPIO(110) GPIO_ACTIVE_LOW>;
+ reset-delay-us = <10000>;
+ reset-post-delay-us = <100000>;
+
+ rgmii0: phy@1 {
+ reg = <0x1>;
+ };
+ };
+};
+
+ð1 {
+ phy-handle = <&rgmii1>;
+ phy-mode = "rgmii-id";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac1_cfg>, <&gmac1_clk_ref_cfg>;
+ rx-internal-delay-ps = <0>;
+ tx-internal-delay-ps = <250>;
+ status = "okay";
+
+ mdio-bus {
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+
+ reset-gpios = <&gpio K1_GPIO(115) GPIO_ACTIVE_LOW>;
+ reset-delay-us = <10000>;
+ reset-post-delay-us = <100000>;
+
+ rgmii1: phy@1 {
+ reg = <0x1>;
+ };
+ };
+};
+
+&pdma {
+ status = "okay";
+};
+
+&i2c2 {
+ pinctrl-0 = <&i2c2_0_cfg>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ eeprom@50 {
+ compatible = "atmel,24c04";
+ reg = <0x50>;
+ vcc-supply = <&buck3_1v8>; /* EEPROM_VCC18 */
+ pagesize = <16>;
+ read-only;
+ size = <512>;
+
+ nvmem-layout {
+ compatible = "onie,tlv-layout";
+
+ product-name {
+ };
+ };
+ };
+};
+
+&i2c8 {
+ pinctrl-0 = <&i2c8_cfg>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ pmic@41 {
+ compatible = "spacemit,p1";
+ reg = <0x41>;
+ interrupts = <64>;
+ vin1-supply = <®_vcc_4v>;
+ vin2-supply = <®_vcc_4v>;
+ vin3-supply = <®_vcc_4v>;
+ vin4-supply = <®_vcc_4v>;
+ vin5-supply = <®_vcc_4v>;
+ vin6-supply = <®_vcc_4v>;
+ aldoin-supply = <®_vcc_4v>;
+ dldoin1-supply = <&buck5>;
+ dldoin2-supply = <&buck5>;
+
+ regulators {
+ buck1_0v9: buck1 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3450000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck2 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3450000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck3_1v8: buck3 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck4_3v3: buck4 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck5: buck5 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3450000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck6 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3450000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ aldo1: aldo1 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-boot-on;
+ };
+
+ aldo2 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ aldo3 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ aldo4 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ dldo1 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-boot-on;
+ };
+
+ dldo2 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ dldo3 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ dldo4 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-always-on;
+ };
+
+ dldo5 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ dldo6 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-always-on;
+ };
+
+ dldo7 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ };
+ };
+ };
+};
+
+&pcie1_phy {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie1_3_cfg>;
+ status = "okay";
+};
+
+&pcie1_port {
+ phys = <&pcie1_phy>;
+ vpcie3v3-supply = <&pcie_vcc_3v3>;
+};
+
+&pcie1 {
+ vpcie3v3-supply = <&pcie_vcc_3v3>;
+ status = "okay";
+};
+
+&pcie2_phy {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie2_4_cfg>;
+ status = "okay";
+};
+
+&pcie2_port {
+ phys = <&pcie2_phy>;
+ vpcie3v3-supply = <&pcie_vcc_3v3>;
+};
+
+&pcie2 {
+ vpcie3v3-supply = <&pcie_vcc_3v3>;
+ status = "okay";
+};
+
+&qspi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&qspi_cfg>;
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <26500000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
+ vcc-supply = <&buck4_3v3>; /* QSPI_VCC1833 */
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ bootinfo@0 {
+ reg = <0x0 0x10000>;
+ };
+ private@10000 {
+ reg = <0x10000 0x10000>;
+ };
+ fsbl@20000 {
+ reg = <0x20000 0x40000>;
+ };
+ env@60000 {
+ reg = <0x60000 0x10000>;
+ };
+ opensbi@70000 {
+ reg = <0x70000 0x30000>;
+ };
+ uboot@a0000 {
+ reg = <0xa0000 0x760000>;
+ };
+ };
+ };
+};
+
+&sdhci0 {
+ pinctrl-names = "default", "uhs";
+ pinctrl-0 = <&mmc1_cfg>;
+ pinctrl-1 = <&mmc1_uhs_cfg>;
+ bus-width = <4>;
+ cd-gpios = <&gpio K1_GPIO(80) (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
+ no-mmc;
+ no-sdio;
+ disable-wp;
+ cap-sd-highspeed;
+ vmmc-supply = <&buck4_3v3>;
+ vqmmc-supply = <&aldo1>;
+ sd-uhs-sdr25;
+ sd-uhs-sdr50;
+ sd-uhs-sdr104;
+ status = "okay";
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_2_cfg>;
+ status = "okay";
+};
+
+&usbphy2 {
+ status = "okay";
+};
+
+&usb_dwc3 {
+ dr_mode = "host";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ hub_2_0: hub@1 {
+ compatible = "usb2109,2817";
+ reg = <0x1>;
+ vdd-supply = <&usb3_hub_5v>;
+ peer-hub = <&hub_3_0>;
+ reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
+ };
+
+ hub_3_0: hub@2 {
+ compatible = "usb2109,817";
+ reg = <0x2>;
+ vdd-supply = <&usb3_hub_5v>;
+ peer-hub = <&hub_2_0>;
+ reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
+ };
+};
diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
index 3c16d0c20050e..9c4aa4f8a533c 100644
--- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
@@ -1,471 +1,11 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
- * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
- * Copyright (C) 2025 Javier Martinez Canillas <javierm@redhat.com>
+ * Copyright (C) 2026 Aurelien Jarno <aurelien@aurel32.net>
*/
-#include "k1.dtsi"
+#include "k1-milkv-jupiter-common.dtsi"
#include "k1-opp.dtsi"
-#include "k1-pinctrl.dtsi"
/ {
model = "Milk-V Jupiter (K1)";
- compatible = "milkv,jupiter", "spacemit,k1";
-
- aliases {
- ethernet0 = ð0;
- ethernet1 = ð1;
- i2c2 = &i2c2;
- i2c8 = &i2c8;
- mmc0 = &emmc;
- mmc1 = &sdhci0;
- serial0 = &uart0;
- };
-
- chosen {
- stdout-path = "serial0:115200n8";
- };
-
- leds {
- compatible = "gpio-leds";
-
- led1 {
- label = "pwr-led";
- gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "default-on";
- default-state = "on";
- };
-
- led2 {
- label = "hdd-led";
- gpios = <&gpio K1_GPIO(92) GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "disk-activity";
- };
- };
-
- pcie_vcc_3v3: regulator-pcie-vcc3v3 {
- compatible = "regulator-fixed";
- regulator-name = "pcie_vcc3v3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-boot-on;
- regulator-always-on;
- vin-supply = <®_dc_in>;
- };
-
- reg_dc_in: regulator-dc-in-12v {
- compatible = "regulator-fixed";
- regulator-name = "dc_in_12v";
- regulator-min-microvolt = <12000000>;
- regulator-max-microvolt = <12000000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- reg_vcc_4v: regulator-vcc-4v {
- compatible = "regulator-fixed";
- regulator-name = "vcc_4v";
- regulator-min-microvolt = <4000000>;
- regulator-max-microvolt = <4000000>;
- regulator-boot-on;
- regulator-always-on;
- vin-supply = <®_dc_in>;
- };
-
- reg_vcc_5v: regulator-vcc-5v {
- compatible = "regulator-fixed";
- regulator-name = "vcc_5v";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- regulator-boot-on;
- regulator-always-on;
- vin-supply = <®_dc_in>;
- };
-
- regulator-usb3-vbus-5v {
- compatible = "regulator-fixed";
- regulator-name = "USB30_VBUS";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- regulator-always-on;
- vin-supply = <®_vcc_5v>;
- gpio = <&gpio K1_GPIO(97) GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- usb3_hub_5v: regulator-usb3-hub-5v {
- compatible = "regulator-fixed";
- regulator-name = "USB30_HUB";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- vin-supply = <®_vcc_5v>;
- gpio = <&gpio K1_GPIO(123) GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-};
-
-&combo_phy {
- status = "okay";
-};
-
-&cpu_0 {
- cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_1 {
- cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_2 {
- cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_3 {
- cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_4 {
- cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_5 {
- cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_6 {
- cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_7 {
- cpu-supply = <&buck1_0v9>;
-};
-
-&emmc {
- bus-width = <8>;
- mmc-hs400-1_8v;
- mmc-hs400-enhanced-strobe;
- non-removable;
- no-sd;
- no-sdio;
- status = "okay";
-};
-
-ð0 {
- phy-handle = <&rgmii0>;
- phy-mode = "rgmii-id";
- pinctrl-names = "default";
- pinctrl-0 = <&gmac0_cfg>, <&gmac0_clk_ref_cfg>;
- rx-internal-delay-ps = <0>;
- tx-internal-delay-ps = <0>;
- status = "okay";
-
- mdio-bus {
- #address-cells = <0x1>;
- #size-cells = <0x0>;
-
- reset-gpios = <&gpio K1_GPIO(110) GPIO_ACTIVE_LOW>;
- reset-delay-us = <10000>;
- reset-post-delay-us = <100000>;
-
- rgmii0: phy@1 {
- reg = <0x1>;
- };
- };
-};
-
-ð1 {
- phy-handle = <&rgmii1>;
- phy-mode = "rgmii-id";
- pinctrl-names = "default";
- pinctrl-0 = <&gmac1_cfg>, <&gmac1_clk_ref_cfg>;
- rx-internal-delay-ps = <0>;
- tx-internal-delay-ps = <250>;
- status = "okay";
-
- mdio-bus {
- #address-cells = <0x1>;
- #size-cells = <0x0>;
-
- reset-gpios = <&gpio K1_GPIO(115) GPIO_ACTIVE_LOW>;
- reset-delay-us = <10000>;
- reset-post-delay-us = <100000>;
-
- rgmii1: phy@1 {
- reg = <0x1>;
- };
- };
-};
-
-&pdma {
- status = "okay";
-};
-
-&i2c2 {
- pinctrl-0 = <&i2c2_0_cfg>;
- pinctrl-names = "default";
- status = "okay";
-
- eeprom@50 {
- compatible = "atmel,24c04";
- reg = <0x50>;
- vcc-supply = <&buck3_1v8>; /* EEPROM_VCC18 */
- pagesize = <16>;
- read-only;
- size = <512>;
-
- nvmem-layout {
- compatible = "onie,tlv-layout";
-
- product-name {
- };
- };
- };
-};
-
-&i2c8 {
- pinctrl-0 = <&i2c8_cfg>;
- pinctrl-names = "default";
- status = "okay";
-
- pmic@41 {
- compatible = "spacemit,p1";
- reg = <0x41>;
- interrupts = <64>;
- vin1-supply = <®_vcc_4v>;
- vin2-supply = <®_vcc_4v>;
- vin3-supply = <®_vcc_4v>;
- vin4-supply = <®_vcc_4v>;
- vin5-supply = <®_vcc_4v>;
- vin6-supply = <®_vcc_4v>;
- aldoin-supply = <®_vcc_4v>;
- dldoin1-supply = <&buck5>;
- dldoin2-supply = <&buck5>;
-
- regulators {
- buck1_0v9: buck1 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3450000>;
- regulator-ramp-delay = <5000>;
- regulator-always-on;
- };
-
- buck2 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3450000>;
- regulator-ramp-delay = <5000>;
- regulator-always-on;
- };
-
- buck3_1v8: buck3 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <1800000>;
- regulator-ramp-delay = <5000>;
- regulator-always-on;
- };
-
- buck4_3v3: buck4 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3300000>;
- regulator-ramp-delay = <5000>;
- regulator-always-on;
- };
-
- buck5: buck5 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3450000>;
- regulator-ramp-delay = <5000>;
- regulator-always-on;
- };
-
- buck6 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3450000>;
- regulator-ramp-delay = <5000>;
- regulator-always-on;
- };
-
- aldo1: aldo1 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- regulator-boot-on;
- };
-
- aldo2 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- };
-
- aldo3 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- };
-
- aldo4 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- };
-
- dldo1 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- regulator-boot-on;
- };
-
- dldo2 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- };
-
- dldo3 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- };
-
- dldo4 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- regulator-always-on;
- };
-
- dldo5 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- };
-
- dldo6 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- regulator-always-on;
- };
-
- dldo7 {
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <3400000>;
- };
- };
- };
-};
-
-&pcie1_phy {
- pinctrl-names = "default";
- pinctrl-0 = <&pcie1_3_cfg>;
- status = "okay";
-};
-
-&pcie1_port {
- phys = <&pcie1_phy>;
- vpcie3v3-supply = <&pcie_vcc_3v3>;
-};
-
-&pcie1 {
- vpcie3v3-supply = <&pcie_vcc_3v3>;
- status = "okay";
-};
-
-&pcie2_phy {
- pinctrl-names = "default";
- pinctrl-0 = <&pcie2_4_cfg>;
- status = "okay";
-};
-
-&pcie2_port {
- phys = <&pcie2_phy>;
- vpcie3v3-supply = <&pcie_vcc_3v3>;
-};
-
-&pcie2 {
- vpcie3v3-supply = <&pcie_vcc_3v3>;
- status = "okay";
-};
-
-&qspi {
- pinctrl-names = "default";
- pinctrl-0 = <&qspi_cfg>;
- status = "okay";
-
- flash@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- spi-max-frequency = <26500000>;
- spi-rx-bus-width = <4>;
- spi-tx-bus-width = <4>;
- vcc-supply = <&buck4_3v3>; /* QSPI_VCC1833 */
- m25p,fast-read;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- bootinfo@0 {
- reg = <0x0 0x10000>;
- };
- private@10000 {
- reg = <0x10000 0x10000>;
- };
- fsbl@20000 {
- reg = <0x20000 0x40000>;
- };
- env@60000 {
- reg = <0x60000 0x10000>;
- };
- opensbi@70000 {
- reg = <0x70000 0x30000>;
- };
- uboot@a0000 {
- reg = <0xa0000 0x760000>;
- };
- };
- };
-};
-
-&sdhci0 {
- pinctrl-names = "default", "uhs";
- pinctrl-0 = <&mmc1_cfg>;
- pinctrl-1 = <&mmc1_uhs_cfg>;
- bus-width = <4>;
- cd-gpios = <&gpio K1_GPIO(80) (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
- no-mmc;
- no-sdio;
- disable-wp;
- cap-sd-highspeed;
- vmmc-supply = <&buck4_3v3>;
- vqmmc-supply = <&aldo1>;
- sd-uhs-sdr25;
- sd-uhs-sdr50;
- sd-uhs-sdr104;
- status = "okay";
-};
-
-&uart0 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart0_2_cfg>;
- status = "okay";
-};
-
-&usbphy2 {
- status = "okay";
-};
-
-&usb_dwc3 {
- dr_mode = "host";
- #address-cells = <1>;
- #size-cells = <0>;
- status = "okay";
-
- hub_2_0: hub@1 {
- compatible = "usb2109,2817";
- reg = <0x1>;
- vdd-supply = <&usb3_hub_5v>;
- peer-hub = <&hub_3_0>;
- reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
- };
-
- hub_3_0: hub@2 {
- compatible = "usb2109,817";
- reg = <0x2>;
- vdd-supply = <&usb3_hub_5v>;
- peer-hub = <&hub_2_0>;
- reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
- };
};
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
2026-07-28 21:05 ` [PATCH 1/3] " Aurelien Jarno
2026-07-28 21:05 ` [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards Aurelien Jarno
@ 2026-07-28 21:05 ` Aurelien Jarno
[not found] ` <20260728212841.4C3E41F000E9@smtp.kernel.org>
2026-07-29 1:32 ` [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Yixun Lan
3 siblings, 1 reply; 11+ messages in thread
From: Aurelien Jarno @ 2026-07-28 21:05 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V ARCHITECTURE,
open list:RISC-V SPACEMIT SoC Support
Add support for the Milk-V Jupiter board with the M1 CPU. The M1 differs
from the K1 only by its package, which provides improved cooling
performance and allows it to run at up to 1.8 GHz instead of 1.6 GHz.
Add m1-opp.dtsi to define the 1.8 GHz operating point and the
corresponding core voltage, based on the upstream kernel. Include it
from m1-milkv-jupiter.dts.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
arch/riscv/boot/dts/spacemit/Makefile | 1 +
.../boot/dts/spacemit/m1-milkv-jupiter.dts | 11 ++
arch/riscv/boot/dts/spacemit/m1-opp.dtsi | 117 ++++++++++++++++++
3 files changed, 129 insertions(+)
create mode 100644 arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
create mode 100644 arch/riscv/boot/dts/spacemit/m1-opp.dtsi
diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
index 851b701e5da48..c5c38c17b6ced 100644
--- a/arch/riscv/boot/dts/spacemit/Makefile
+++ b/arch/riscv/boot/dts/spacemit/Makefile
@@ -8,3 +8,4 @@ dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
dtb-$(CONFIG_ARCH_SPACEMIT) += k3-com260-ifx.dtb
dtb-$(CONFIG_ARCH_SPACEMIT) += k3-deepcomputing-fml13v05.dtb
dtb-$(CONFIG_ARCH_SPACEMIT) += k3-pico-itx.dtb
+dtb-$(CONFIG_ARCH_SPACEMIT) += m1-milkv-jupiter.dtb
diff --git a/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
new file mode 100644
index 0000000000000..32e1468385ca0
--- /dev/null
+++ b/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2026 Aurelien Jarno <aurelien@aurel32.net>
+ */
+
+#include "k1-milkv-jupiter-common.dtsi"
+#include "m1-opp.dtsi"
+
+/ {
+ model = "Milk-V Jupiter (M1)";
+};
diff --git a/arch/riscv/boot/dts/spacemit/m1-opp.dtsi b/arch/riscv/boot/dts/spacemit/m1-opp.dtsi
new file mode 100644
index 0000000000000..38e0ce7765a2b
--- /dev/null
+++ b/arch/riscv/boot/dts/spacemit/m1-opp.dtsi
@@ -0,0 +1,117 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/ {
+ cluster0_opp_table: opp-table-cluster0 {
+ compatible = "operating-points-v2";
+ opp-shared;
+
+ opp-614400000 {
+ opp-hz = /bits/ 64 <614400000>;
+ opp-microvolt = <950000 950000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-819000000 {
+ opp-hz = /bits/ 64 <819000000>;
+ opp-microvolt = <950000 950000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-1000000000 {
+ opp-hz = /bits/ 64 <1000000000>;
+ opp-microvolt = <950000 950000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-1228800000 {
+ opp-hz = /bits/ 64 <1228800000>;
+ opp-microvolt = <950000 950000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-1600000000 {
+ opp-hz = /bits/ 64 <1600000000>;
+ opp-microvolt = <1050000 1050000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-1800000000 {
+ opp-hz = /bits/ 64 <1800000000>;
+ opp-microvolt = <1160000 1160000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+ };
+
+ cluster1_opp_table: opp-table-cluster1 {
+ compatible = "operating-points-v2";
+ opp-shared;
+
+ opp-614400000 {
+ opp-hz = /bits/ 64 <614400000>;
+ opp-microvolt = <950000 950000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-819000000 {
+ opp-hz = /bits/ 64 <819000000>;
+ opp-microvolt = <950000 950000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-1000000000 {
+ opp-hz = /bits/ 64 <1000000000>;
+ opp-microvolt = <950000 950000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-1228800000 {
+ opp-hz = /bits/ 64 <1228800000>;
+ opp-microvolt = <950000 950000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-1600000000 {
+ opp-hz = /bits/ 64 <1600000000>;
+ opp-microvolt = <1050000 1050000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+
+ opp-1800000000 {
+ opp-hz = /bits/ 64 <1800000000>;
+ opp-microvolt = <1160000 1160000 1160000>;
+ clock-latency-ns = <200000>;
+ };
+ };
+};
+
+&cpu_0 {
+ operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_1 {
+ operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_2 {
+ operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_3 {
+ operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_4 {
+ operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_5 {
+ operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_6 {
+ operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_7 {
+ operating-points-v2 = <&cluster1_opp_table>;
+};
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
` (2 preceding siblings ...)
2026-07-28 21:05 ` [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1) Aurelien Jarno
@ 2026-07-29 1:32 ` Yixun Lan
2026-07-29 9:34 ` Aurelien Jarno
3 siblings, 1 reply; 11+ messages in thread
From: Yixun Lan @ 2026-07-29 1:32 UTC (permalink / raw)
To: Aurelien Jarno
Cc: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, open list:RISC-V ARCHITECTURE:Keyword:riscv,
open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit
Hi Aurelien,
On 23:05 Tue 28 Jul , Aurelien Jarno wrote:
> This series adds cpu scaling support for the Milk-V Jupiter boards.
>
> The first commit adds it to the existing "Milk-V Jupiter (K1)" board.
>
> The two following commits add a "Milk-V Jupiter (M1)" board, by moving
> the common part, i.e. everything but the model name and the operating
> point tables, in a shared DTSI file. This file is then included for both
> K1 and M1 variants.
>
> CPU frequency scaling was verified up to 1.8 GHz on the M1 board.
>
Looks good to me, will queue for v7.3, thanks
Reviewed-by: Yixun Lan <dlan@kernel.org>
> Aurelien Jarno (3):
> riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
> riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter
> boards
> riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
>
> arch/riscv/boot/dts/spacemit/Makefile | 1 +
> .../dts/spacemit/k1-milkv-jupiter-common.dtsi | 469 ++++++++++++++++++
> .../boot/dts/spacemit/k1-milkv-jupiter.dts | 433 +---------------
> .../boot/dts/spacemit/m1-milkv-jupiter.dts | 11 +
> arch/riscv/boot/dts/spacemit/m1-opp.dtsi | 117 +++++
> 5 files changed, 601 insertions(+), 430 deletions(-)
> create mode 100644 arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
> create mode 100644 arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
> create mode 100644 arch/riscv/boot/dts/spacemit/m1-opp.dtsi
>
> --
> 2.53.0
>
--
Yixun Lan (dlan)
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
2026-07-29 1:32 ` [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Yixun Lan
@ 2026-07-29 9:34 ` Aurelien Jarno
2026-07-29 9:43 ` Yixun Lan
0 siblings, 1 reply; 11+ messages in thread
From: Aurelien Jarno @ 2026-07-29 9:34 UTC (permalink / raw)
To: Yixun Lan
Cc: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, open list:RISC-V ARCHITECTURE:Keyword:riscv,
open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit
Hi Yixun,
On 2026-07-29 01:32, Yixun Lan wrote:
> Hi Aurelien,
>
> On 23:05 Tue 28 Jul , Aurelien Jarno wrote:
> > This series adds cpu scaling support for the Milk-V Jupiter boards.
> >
> > The first commit adds it to the existing "Milk-V Jupiter (K1)" board.
> >
> > The two following commits add a "Milk-V Jupiter (M1)" board, by moving
> > the common part, i.e. everything but the model name and the operating
> > point tables, in a shared DTSI file. This file is then included for both
> > K1 and M1 variants.
> >
> > CPU frequency scaling was verified up to 1.8 GHz on the M1 board.
> >
> Looks good to me, will queue for v7.3, thanks
>
> Reviewed-by: Yixun Lan <dlan@kernel.org>
Thanks for the review. Unfortunately Sashiko pointed out issues in those
patch series, including preexisting high severity issue that also affect
the BPI-F3. I'll reply to the individual patches.
Regards
Aurelien
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://aurel32.net
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
[not found] ` <20260728211959.4174F1F000E9@smtp.kernel.org>
@ 2026-07-29 9:36 ` Aurelien Jarno
2026-07-29 9:54 ` Yixun Lan
0 siblings, 1 reply; 11+ messages in thread
From: Aurelien Jarno @ 2026-07-29 9:36 UTC (permalink / raw)
To: sashiko-reviews, linux-kernel, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Yixun Lan, Shuwei Wu
Cc: Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V SPACEMIT SoC Support,
open list:RISC-V SPACEMIT SoC Support
Hi,
On 2026-07-28 21:19, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
>
> Pre-existing issues:
> - [High] This problem wasn't introduced by this patch, but wiring it up to cpufreq makes it a serious hardware safety risk: the CPU supply regulator (`buck1_0v9`) has an overly permissive maximum voltage constraint of 3.45V, which could physically damage the CPU.
> --
>
> --- Patch [1]: [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter ---
> commit 4e25fb96470d1ad37415e03a27de699ef1f0da26
> Author: Aurelien Jarno <aurelien@aurel32.net>
>
> riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
>
> This commit enables CPU DVFS on the Milk-V Jupiter board by including the OPP
> tables and wiring the CPU nodes to the CPU regulator supply.
>
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > index b61f5995ec771..3c16d0c20050e 100644
> > --- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> [ ... ]
> > @@ -107,6 +108,38 @@ &combo_phy {
> > status = "okay";
> > };
> >
> > +&cpu_0 {
> > + cpu-supply = <&buck1_0v9>;
> > +};
> [ ... ]
> > @@ -209,7 +242,7 @@ pmic@41 {
> > dldoin2-supply = <&buck5>;
> >
> > regulators {
> > - buck1 {
> > + buck1_0v9: buck1 {
> > regulator-min-microvolt = <500000>;
> > regulator-max-microvolt = <3450000>;
>
> [Severity: High]
> This is a pre-existing issue, but by wiring up the CPU supply for cpufreq in
> this patch, does it introduce a severe hardware safety risk?
>
> The buck1_0v9 regulator retains a very permissive maximum voltage constraint
> of 3.45V. Because the safe physical limit for the CPU is 1.05V (as defined in
> k1-opp.dtsi), could this permanently damage the hardware if a kernel bug, opp
> misconfiguration, or privileged userspace requests a higher voltage up to the
> board-defined maximum?
>
> Should the board-level constraint be clamped to the safe physical limits of
> the CPU (e.g., 1050000 microvolts) to prevent the regulator from supplying a
> destructive voltage?
This looks like a valid point. Yixun, I believe the commit a5d7000e1a17
("riscv: dts: spacemit: Add cpu scaling for K1 SoC") should be drop from
your tree until this is fixed, or at least it should not be pushed to
v7.3 if the regulator issue is not fixed.
I'll try to submit a patchset fixing that.
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://aurel32.net
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards
[not found] ` <20260728212345.A0CFE1F000E9@smtp.kernel.org>
@ 2026-07-29 9:37 ` Aurelien Jarno
0 siblings, 0 replies; 11+ messages in thread
From: Aurelien Jarno @ 2026-07-29 9:37 UTC (permalink / raw)
To: sashiko-reviews, linux-kernel, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Yixun Lan
Cc: Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V SPACEMIT SoC Support,
open list:RISC-V SPACEMIT SoC Support
On 2026-07-28 21:23, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Low] The patch incorrectly removes the original authors' copyright headers from k1-milkv-jupiter.dts and replaces them with a single copyright claim by the patch author.
> --
>
> --- Patch [2]: [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards ---
> commit 97e4c73a96036da2bf4f3762abb7b076f18d6748
> Author: Aurelien Jarno <aurelien@aurel32.net>
>
> riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards
>
> This commit adds a common board dtsi file for the Milk-V Jupiter board
> variants. It factors out common configurations into the new dtsi while
> excluding CPU operating points, which are left for the specific board files.
>
> [ ... ]
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > index 3c16d0c20050e..9c4aa4f8a533c 100644
> > --- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > @@ -1,471 +1,11 @@
> > // SPDX-License-Identifier: GPL-2.0 OR MIT
> > /*
> > - * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
> > - * Copyright (C) 2025 Javier Martinez Canillas <javierm@redhat.com>
> > + * Copyright (C) 2026 Aurelien Jarno <aurelien@aurel32.net>
> > */
>
> [Severity: Low]
> This isn't a bug, but should the original authors' copyright headers be
> retained here?
>
> While the original copyright headers were correctly preserved in the newly
> created k1-milkv-jupiter-common.dtsi file where the bulk of the code was
> moved, standard practice is to retain the original attribution in the
> existing file as well, alongside any new copyright claims.
Thanks for the hint, I'll fix that in the next version.
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://aurel32.net
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
[not found] ` <20260728212841.4C3E41F000E9@smtp.kernel.org>
@ 2026-07-29 9:40 ` Aurelien Jarno
0 siblings, 0 replies; 11+ messages in thread
From: Aurelien Jarno @ 2026-07-29 9:40 UTC (permalink / raw)
To: sashiko-reviews, linux-kernel, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Yixun Lan
Cc: Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V SPACEMIT SoC Support,
open list:RISC-V SPACEMIT SoC Support
On 2026-07-28 21:28, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] Missing unique board-specific `compatible` string for the M1 Jupiter board variant, which inherits the identical compatible string as the K1 variant and breaks DTB matching.
> --
>
> --- Patch [3]: [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1) ---
> commit 2d54397a3a4baaa8a2eee569d6fe3f912a3c7661
> Author: Aurelien Jarno <aurelien@aurel32.net>
>
> riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
>
> This commit adds support for the Milk-V Jupiter board with the M1 CPU.
> The M1 is similar to the K1 but allows running at up to 1.8 GHz, adding
> a new device tree and an OPP table for this higher frequency.
>
> > diff --git a/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
> > new file mode 100644
> > index 0000000000000..32e1468385ca0
> > --- /dev/null
> > +++ b/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
> > @@ -0,0 +1,11 @@
> > +// SPDX-License-Identifier: GPL-2.0 OR MIT
> > +/*
> > + * Copyright (C) 2026 Aurelien Jarno <aurelien@aurel32.net>
> > + */
> > +
> > +#include "k1-milkv-jupiter-common.dtsi"
> > +#include "m1-opp.dtsi"
> > +
> > +/ {
> > + model = "Milk-V Jupiter (M1)";
>
> [Severity: Medium]
> Since m1-milkv-jupiter.dts includes k1-milkv-jupiter-common.dtsi, does this
> board inherit the identical root compatible string as the K1 variant?
>
> If a bootloader like U-Boot uses a FIT image containing both DTBs, it relies
> on the root compatible string to select the correct one. If they are
> identical, could the bootloader mistakenly apply this M1 DTB to a K1 board?
>
> If that happens, would the K1 board be allowed to run at the 1.8 GHz
> operating point defined here, potentially causing instability or hardware
> damage since it is only rated for 1.6 GHz?
>
> Should a unique board-specific compatible string be added to this root node
> to uniquely identify the M1 board hardware?
>
> > +};
That's a valid point, I'll fix that in the next version. I believe we
want to keep the spacemit,k1 compatible even with the m1, as the
difference is rather a property of the board and not the SoC.
What could be the compatible for the board? "milkv,jupiter-m1"? Maybe
the existing board should have been called "milkv,jupiter-k1"...
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://aurel32.net
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
2026-07-29 9:34 ` Aurelien Jarno
@ 2026-07-29 9:43 ` Yixun Lan
0 siblings, 0 replies; 11+ messages in thread
From: Yixun Lan @ 2026-07-29 9:43 UTC (permalink / raw)
To: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, open list:RISC-V ARCHITECTURE:Keyword:riscv,
open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit
Hi Aurelien,
On 11:34 Wed 29 Jul , Aurelien Jarno wrote:
> Hi Yixun,
>
> On 2026-07-29 01:32, Yixun Lan wrote:
> > Hi Aurelien,
> >
> > On 23:05 Tue 28 Jul , Aurelien Jarno wrote:
> > > This series adds cpu scaling support for the Milk-V Jupiter boards.
> > >
> > > The first commit adds it to the existing "Milk-V Jupiter (K1)" board.
> > >
> > > The two following commits add a "Milk-V Jupiter (M1)" board, by moving
> > > the common part, i.e. everything but the model name and the operating
> > > point tables, in a shared DTSI file. This file is then included for both
> > > K1 and M1 variants.
> > >
> > > CPU frequency scaling was verified up to 1.8 GHz on the M1 board.
> > >
> > Looks good to me, will queue for v7.3, thanks
> >
> > Reviewed-by: Yixun Lan <dlan@kernel.org>
>
> Thanks for the review. Unfortunately Sashiko pointed out issues in those
> patch series, including preexisting high severity issue that also affect
> the BPI-F3. I'll reply to the individual patches.
>
No problem, I can wait for your v2 series, but may postpone to next merge
window due to time constraints..
--
Yixun Lan (dlan)
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
2026-07-29 9:36 ` Aurelien Jarno
@ 2026-07-29 9:54 ` Yixun Lan
0 siblings, 0 replies; 11+ messages in thread
From: Yixun Lan @ 2026-07-29 9:54 UTC (permalink / raw)
To: sashiko-reviews, linux-kernel, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Shuwei Wu,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V SPACEMIT SoC Support,
open list:RISC-V SPACEMIT SoC Support
Hi Aurelien,
On 11:36 Wed 29 Jul , Aurelien Jarno wrote:
> Hi,
>
> On 2026-07-28 21:19, sashiko-bot@kernel.org wrote:
> > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> >
> > Pre-existing issues:
> > - [High] This problem wasn't introduced by this patch, but wiring it up to cpufreq makes it a serious hardware safety risk: the CPU supply regulator (`buck1_0v9`) has an overly permissive maximum voltage constraint of 3.45V, which could physically damage the CPU.
> > --
> >
> > --- Patch [1]: [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter ---
> > commit 4e25fb96470d1ad37415e03a27de699ef1f0da26
> > Author: Aurelien Jarno <aurelien@aurel32.net>
> >
> > riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
> >
> > This commit enables CPU DVFS on the Milk-V Jupiter board by including the OPP
> > tables and wiring the CPU nodes to the CPU regulator supply.
> >
> > > diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > > index b61f5995ec771..3c16d0c20050e 100644
> > > --- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > > +++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > [ ... ]
> > > @@ -107,6 +108,38 @@ &combo_phy {
> > > status = "okay";
> > > };
> > >
> > > +&cpu_0 {
> > > + cpu-supply = <&buck1_0v9>;
> > > +};
> > [ ... ]
> > > @@ -209,7 +242,7 @@ pmic@41 {
> > > dldoin2-supply = <&buck5>;
> > >
> > > regulators {
> > > - buck1 {
> > > + buck1_0v9: buck1 {
> > > regulator-min-microvolt = <500000>;
> > > regulator-max-microvolt = <3450000>;
> >
> > [Severity: High]
> > This is a pre-existing issue, but by wiring up the CPU supply for cpufreq in
> > this patch, does it introduce a severe hardware safety risk?
> >
> > The buck1_0v9 regulator retains a very permissive maximum voltage constraint
> > of 3.45V. Because the safe physical limit for the CPU is 1.05V (as defined in
> > k1-opp.dtsi), could this permanently damage the hardware if a kernel bug, opp
> > misconfiguration, or privileged userspace requests a higher voltage up to the
> > board-defined maximum?
> >
> > Should the board-level constraint be clamped to the safe physical limits of
> > the CPU (e.g., 1050000 microvolts) to prevent the regulator from supplying a
> > destructive voltage?
>
> This looks like a valid point. Yixun, I believe the commit a5d7000e1a17
> ("riscv: dts: spacemit: Add cpu scaling for K1 SoC") should be drop from
> your tree until this is fixed, or at least it should not be pushed to
> v7.3 if the regulator issue is not fixed.
>
Instead of dropping this patch, I'd like to get it fixed in tree, I don't want
to hold on this patch, it's generally tested
> I'll try to submit a patchset fixing that.
>
Yes, please, I think we still have time to get it in for v7.3
--
Yixun Lan (dlan)
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-07-29 9:54 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
2026-07-28 21:05 ` [PATCH 1/3] " Aurelien Jarno
[not found] ` <20260728211959.4174F1F000E9@smtp.kernel.org>
2026-07-29 9:36 ` Aurelien Jarno
2026-07-29 9:54 ` Yixun Lan
2026-07-28 21:05 ` [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards Aurelien Jarno
[not found] ` <20260728212345.A0CFE1F000E9@smtp.kernel.org>
2026-07-29 9:37 ` Aurelien Jarno
2026-07-28 21:05 ` [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1) Aurelien Jarno
[not found] ` <20260728212841.4C3E41F000E9@smtp.kernel.org>
2026-07-29 9:40 ` Aurelien Jarno
2026-07-29 1:32 ` [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Yixun Lan
2026-07-29 9:34 ` Aurelien Jarno
2026-07-29 9:43 ` Yixun Lan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox