* [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV
@ 2026-01-20 15:53 E Shattow
2026-01-20 15:53 ` [PATCH v3 1/5] dt-bindings: riscv: starfive: add xunlong,orangepi-rv E Shattow
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: E Shattow @ 2026-01-20 15:53 UTC (permalink / raw)
To: Minda Chen, Hal Feng, Leo Liang, Heinrich Schuchardt; +Cc: u-boot, E Shattow
Xunlong Orange Pi RV patches are now in the Linux v6.19 release candidate,
so let's introduce support for this board.
Note: The content of EEPROM is known to not be unique on this board, and
an (optional) invented "XOPIRV" identifier is implemented with this
series. Without, there are reports that the board is detected in U-Boot as
StarFive VisionFive 2 1.3b, and is then functional enough to load the
devicetree prior to booting Linux.
Changes since v2:
- Collect tags (no code changes)
- Adjust missing S-o-by tag to first of tags list order for patch 4
"configs: starfive: Add Orange Pi RV to visionfive2".
Changes since RFC v1:
- Cherrypick from devicetree-rebasing instead of importing upstream dts
as -u-boot.dtsi overrides.
- Add basic documentation
- Mention invented "XOPIRV" identifier in commit messages
- Rebase on origin/next
E Shattow (3):
board: starfive: visionfive2: Add Orange Pi RV selection by product_id
configs: starfive: Add Orange Pi RV to visionfive2
doc: board: starfive: Add Xunlong OrangePi RV
Icenowy Zheng (2):
dt-bindings: riscv: starfive: add xunlong,orangepi-rv
riscv: dts: starfive: add Orange Pi RV
board/starfive/visionfive2/spl.c | 3 +
.../visionfive2/starfive_visionfive2.c | 2 +
configs/starfive_visionfive2_defconfig | 2 +-
doc/board/starfive/index.rst | 1 +
doc/board/starfive/orangepi_rv.rst | 35 +++++++++
dts/upstream/Bindings/riscv/starfive.yaml | 1 +
.../src/riscv/starfive/jh7110-orangepi-rv.dts | 76 +++++++++++++++++++
7 files changed, 119 insertions(+), 1 deletion(-)
create mode 100644 doc/board/starfive/orangepi_rv.rst
create mode 100644 dts/upstream/src/riscv/starfive/jh7110-orangepi-rv.dts
base-commit: 55ca2110d74f8e5a594aecc11ce4103dc73e9e02
--
2.50.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 1/5] dt-bindings: riscv: starfive: add xunlong,orangepi-rv
2026-01-20 15:53 [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV E Shattow
@ 2026-01-20 15:53 ` E Shattow
2026-01-20 15:53 ` [PATCH v3 2/5] riscv: dts: starfive: add Orange Pi RV E Shattow
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: E Shattow @ 2026-01-20 15:53 UTC (permalink / raw)
To: Minda Chen, Hal Feng, Leo Liang, Heinrich Schuchardt, Sumit Garg,
Tom Rini, Michael Zhu, Drew Fustini
Cc: u-boot, E Shattow, Icenowy Zheng, Conor Dooley, Rob Herring (Arm),
Sumit Garg
From: Icenowy Zheng <uwu@icenowy.me>
Add "xunlong,orangepi-rv" as a StarFive JH7110 SoC-based board.
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Signed-off-by: E Shattow <e@freeshell.de>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
[ upstream commit: d94ebab404b0ce6498770888e25102e32b2b13da ]
(cherry picked from commit 19644ea3243c8749d1c08d4397b4522965a9bf8e)
Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
---
dts/upstream/Bindings/riscv/starfive.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/dts/upstream/Bindings/riscv/starfive.yaml b/dts/upstream/Bindings/riscv/starfive.yaml
index 04510341a71..3fdeab9d8f0 100644
--- a/dts/upstream/Bindings/riscv/starfive.yaml
+++ b/dts/upstream/Bindings/riscv/starfive.yaml
@@ -33,6 +33,7 @@ properties:
- pine64,star64
- starfive,visionfive-2-v1.2a
- starfive,visionfive-2-v1.3b
+ - xunlong,orangepi-rv
- const: starfive,jh7110
additionalProperties: true
--
2.50.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 2/5] riscv: dts: starfive: add Orange Pi RV
2026-01-20 15:53 [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV E Shattow
2026-01-20 15:53 ` [PATCH v3 1/5] dt-bindings: riscv: starfive: add xunlong,orangepi-rv E Shattow
@ 2026-01-20 15:53 ` E Shattow
2026-01-20 15:53 ` [PATCH v3 3/5] board: starfive: visionfive2: Add Orange Pi RV selection by product_id E Shattow
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: E Shattow @ 2026-01-20 15:53 UTC (permalink / raw)
To: Minda Chen, Hal Feng, Leo Liang, Heinrich Schuchardt, Tom Rini,
Sumit Garg
Cc: u-boot, E Shattow, Icenowy Zheng, Conor Dooley, Sumit Garg
From: Icenowy Zheng <uwu@icenowy.me>
Orange Pi RV is a SBC based on the StarFive VisionFive 2 board.
Orange Pi RV features:
- StarFive JH7110 SoC
- GbE port connected to JH7110 GMAC0 via YT8531 PHY
- 4x USB ports via VL805 PCIe USB controller connected to JH7110 pcie0
- M.2 M-key slot connected to JH7110 pcie1
- HDMI video output
- 3.5mm audio output
- Ampak AP6256 SDIO Wi-Fi/Bluetooth module on mmc0
- microSD slot on mmc1
- SPI NOR flash memory
- 24c02 EEPROM (read only by default)
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Signed-off-by: E Shattow <e@freeshell.de>
[conor: amend comment to say what's missing]
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
[ upstream commit: 5b70764e10190d57e6cd3287d3a3b06f8c89f69c ]
(cherry picked from commit ca39a8e36acbe7d258cadee4ae703fbaac60e18b)
Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
---
.../src/riscv/starfive/jh7110-orangepi-rv.dts | 76 +++++++++++++++++++
1 file changed, 76 insertions(+)
create mode 100644 dts/upstream/src/riscv/starfive/jh7110-orangepi-rv.dts
diff --git a/dts/upstream/src/riscv/starfive/jh7110-orangepi-rv.dts b/dts/upstream/src/riscv/starfive/jh7110-orangepi-rv.dts
new file mode 100644
index 00000000000..053c35992ec
--- /dev/null
+++ b/dts/upstream/src/riscv/starfive/jh7110-orangepi-rv.dts
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2025 Icenowy Zheng <uwu@icenowy.me>
+ */
+
+/dts-v1/;
+#include "jh7110-common.dtsi"
+
+/ {
+ model = "Xunlong Orange Pi RV";
+ compatible = "xunlong,orangepi-rv", "starfive,jh7110";
+
+ /* This regulator is always on by hardware */
+ reg_vcc3v3_pcie: regulator-vcc3v3-pcie {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3-pcie";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ wifi_pwrseq: wifi-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ reset-gpios = <&sysgpio 62 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&gmac0 {
+ assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>;
+ assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
+ starfive,tx-use-rgmii-clk;
+ status = "okay";
+};
+
+&mmc0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ cap-sd-highspeed;
+ mmc-pwrseq = <&wifi_pwrseq>;
+ vmmc-supply = <®_vcc3v3_pcie>;
+ vqmmc-supply = <&vcc_3v3>;
+ status = "okay";
+
+ ap6256: wifi@1 {
+ compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
+ reg = <1>;
+ /* TODO: out-of-band IRQ on GPIO21, lacking pinctrl support */
+ };
+};
+
+&mmc1 {
+ cd-gpios = <&sysgpio 41 GPIO_ACTIVE_HIGH>;
+};
+
+&pcie0 {
+ status = "okay";
+};
+
+&pcie1 {
+ status = "okay";
+};
+
+&phy0 {
+ rx-internal-delay-ps = <1500>;
+ tx-internal-delay-ps = <1500>;
+ motorcomm,rx-clk-drv-microamp = <3970>;
+ motorcomm,rx-data-drv-microamp = <2910>;
+ motorcomm,tx-clk-adj-enabled;
+ motorcomm,tx-clk-10-inverted;
+ motorcomm,tx-clk-100-inverted;
+ motorcomm,tx-clk-1000-inverted;
+};
+
+&pwmdac {
+ status = "okay";
+};
--
2.50.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 3/5] board: starfive: visionfive2: Add Orange Pi RV selection by product_id
2026-01-20 15:53 [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV E Shattow
2026-01-20 15:53 ` [PATCH v3 1/5] dt-bindings: riscv: starfive: add xunlong,orangepi-rv E Shattow
2026-01-20 15:53 ` [PATCH v3 2/5] riscv: dts: starfive: add Orange Pi RV E Shattow
@ 2026-01-20 15:53 ` E Shattow
2026-01-20 15:53 ` [PATCH v3 4/5] configs: starfive: Add Orange Pi RV to visionfive2 E Shattow
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: E Shattow @ 2026-01-20 15:53 UTC (permalink / raw)
To: Minda Chen, Hal Feng, Leo Liang, Heinrich Schuchardt, Tom Rini
Cc: u-boot, E Shattow
Add XOPIRV identifier for Orange Pi RV to dts selection callback in SPL,
and to fdtfile environment variable default value selection in payload.
Signed-off-by: E Shattow <e@freeshell.de>
Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
---
board/starfive/visionfive2/spl.c | 3 +++
board/starfive/visionfive2/starfive_visionfive2.c | 2 ++
2 files changed, 5 insertions(+)
diff --git a/board/starfive/visionfive2/spl.c b/board/starfive/visionfive2/spl.c
index 2d9431d2976..684605278c0 100644
--- a/board/starfive/visionfive2/spl.c
+++ b/board/starfive/visionfive2/spl.c
@@ -131,6 +131,9 @@ int board_fit_config_name_match(const char *name)
!strncmp(get_product_id_from_eeprom(), "MARC", 4) &&
!get_mmc_size_from_eeprom()) {
return 0;
+ } else if (!strcmp(name, "starfive/jh7110-orangepi-rv") &&
+ !strncmp(get_product_id_from_eeprom(), "XOPIRV", 6)) {
+ return 0;
} else if (!strcmp(name, "starfive/jh7110-pine64-star64") &&
!strncmp(get_product_id_from_eeprom(), "STAR64", 6)) {
return 0;
diff --git a/board/starfive/visionfive2/starfive_visionfive2.c b/board/starfive/visionfive2/starfive_visionfive2.c
index 6c39fd4af35..d59622f6b64 100644
--- a/board/starfive/visionfive2/starfive_visionfive2.c
+++ b/board/starfive/visionfive2/starfive_visionfive2.c
@@ -63,6 +63,8 @@ static void set_fdtfile(void)
} else {
fdtfile = "starfive/jh7110-milkv-marscm-lite.dtb";
}
+ } else if (!strncmp(get_product_id_from_eeprom(), "XOPIRV", 6)) {
+ fdtfile = "starfive/jh7110-orangepi-rv.dtb";
} else if (!strncmp(get_product_id_from_eeprom(), "STAR64", 6)) {
fdtfile = "starfive/jh7110-pine64-star64.dtb";
} else if (!strncmp(get_product_id_from_eeprom(), "VF7110A", 7)) {
--
2.50.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 4/5] configs: starfive: Add Orange Pi RV to visionfive2
2026-01-20 15:53 [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV E Shattow
` (2 preceding siblings ...)
2026-01-20 15:53 ` [PATCH v3 3/5] board: starfive: visionfive2: Add Orange Pi RV selection by product_id E Shattow
@ 2026-01-20 15:53 ` E Shattow
2026-01-20 15:53 ` [PATCH v3 5/5] doc: board: starfive: Add Xunlong OrangePi RV E Shattow
2026-02-09 11:18 ` [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV Leo Liang
5 siblings, 0 replies; 7+ messages in thread
From: E Shattow @ 2026-01-20 15:53 UTC (permalink / raw)
To: Minda Chen, Hal Feng, Leo Liang, Heinrich Schuchardt, Tom Rini
Cc: u-boot, E Shattow
Add Orange Pi RV to visionfive2 CONFIG_OF_LIST
Signed-off-by: E Shattow <e@freeshell.de>
Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
---
configs/starfive_visionfive2_defconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configs/starfive_visionfive2_defconfig b/configs/starfive_visionfive2_defconfig
index a754134a313..7c957cc0ea1 100644
--- a/configs/starfive_visionfive2_defconfig
+++ b/configs/starfive_visionfive2_defconfig
@@ -80,7 +80,7 @@ CONFIG_WGET_HTTPS=y
CONFIG_CMD_BOOTSTAGE=y
CONFIG_OF_BOARD=y
CONFIG_DEVICE_TREE_INCLUDES="starfive-visionfive2-u-boot.dtsi"
-CONFIG_OF_LIST="starfive/jh7110-deepcomputing-fml13v01 starfive/jh7110-milkv-mars starfive/jh7110-milkv-marscm-emmc starfive/jh7110-milkv-marscm-lite starfive/jh7110-pine64-star64 starfive/jh7110-starfive-visionfive-2-v1.2a starfive/jh7110-starfive-visionfive-2-v1.3b"
+CONFIG_OF_LIST="starfive/jh7110-deepcomputing-fml13v01 starfive/jh7110-milkv-mars starfive/jh7110-milkv-marscm-emmc starfive/jh7110-milkv-marscm-lite starfive/jh7110-orangepi-rv starfive/jh7110-pine64-star64 starfive/jh7110-starfive-visionfive-2-v1.2a starfive/jh7110-starfive-visionfive-2-v1.3b"
CONFIG_MULTI_DTB_FIT=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
--
2.50.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 5/5] doc: board: starfive: Add Xunlong OrangePi RV
2026-01-20 15:53 [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV E Shattow
` (3 preceding siblings ...)
2026-01-20 15:53 ` [PATCH v3 4/5] configs: starfive: Add Orange Pi RV to visionfive2 E Shattow
@ 2026-01-20 15:53 ` E Shattow
2026-02-09 11:18 ` [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV Leo Liang
5 siblings, 0 replies; 7+ messages in thread
From: E Shattow @ 2026-01-20 15:53 UTC (permalink / raw)
To: Minda Chen, Hal Feng, Leo Liang, Heinrich Schuchardt, Tom Rini
Cc: u-boot, E Shattow
OrangePi RV is a board that uses the same EEPROM product serial identifier
as the StarFive VisionFive 2 1.3b.
In fact it is not completely compatible with the StarFive VisionFive 2
1.3b for use with Linux Kernel however it is good enough for use with
U-Boot SPL and U-Boot Main. Describe how to set the devicetree search path
and, for advanced users, suggest that it is possible to update the EEPROM
data with an invented "XOPIRV" identifier for automatic board detection.
Signed-off-by: E Shattow <e@freeshell.de>
---
doc/board/starfive/index.rst | 1 +
doc/board/starfive/orangepi_rv.rst | 35 ++++++++++++++++++++++++++++++
2 files changed, 36 insertions(+)
create mode 100644 doc/board/starfive/orangepi_rv.rst
diff --git a/doc/board/starfive/index.rst b/doc/board/starfive/index.rst
index f85d7376b44..0996e0a68aa 100644
--- a/doc/board/starfive/index.rst
+++ b/doc/board/starfive/index.rst
@@ -10,5 +10,6 @@ StarFive
milk-v_mars
milkv_marscm_emmc
milkv_marscm_lite
+ orangepi_rv
pine64_star64
visionfive2
diff --git a/doc/board/starfive/orangepi_rv.rst b/doc/board/starfive/orangepi_rv.rst
new file mode 100644
index 00000000000..29cc58a1e2b
--- /dev/null
+++ b/doc/board/starfive/orangepi_rv.rst
@@ -0,0 +1,35 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Xunlong OrangePi RV
+===================
+
+U-Boot for the OrangePi RV uses the same U-Boot binaries as the VisionFive 2
+board. In U-Boot SPL the actual board is detected as a VisionFive2 1.3b due to
+a manufacturer problem and having the same EEPROM data as VisionFive2 1.3b.
+
+Device-tree selection
+---------------------
+
+U-Boot will set variable $fdtfile to starfive/jh7110-starfive-visionfive-2-v1.3b.dtb
+
+This is sufficient for U-Boot however fails to work correctly with the Linux Kernel.
+
+To overrule this selection the variable can be set manually and saved in the
+environment
+
+::
+
+ env set fdtfile starfive/jh7110-orangepi-rv.dtb
+ env save
+
+EEPROM modification
+-------------------
+
+For advanced users and developers an EEPROM identifier product serial number
+beginning with "XOPIRV" will match the OrangePi RV and automatically set the
+correct device-tree at U-Boot SPL phase. The procedure for writing EEPROM data
+is not detailed here however is similar to that of the Pine64 Star64 and Milk-V
+Mars CM. The write-protect disable pads on the Orange Pi RV circuit board
+bottom are labeled WP and GND near the M.2 connector.
+
+.. include:: jh7110_common.rst
--
2.50.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV
2026-01-20 15:53 [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV E Shattow
` (4 preceding siblings ...)
2026-01-20 15:53 ` [PATCH v3 5/5] doc: board: starfive: Add Xunlong OrangePi RV E Shattow
@ 2026-02-09 11:18 ` Leo Liang
5 siblings, 0 replies; 7+ messages in thread
From: Leo Liang @ 2026-02-09 11:18 UTC (permalink / raw)
To: E Shattow; +Cc: Minda Chen, Hal Feng, Heinrich Schuchardt, u-boot
On Tue, Jan 20, 2026 at 07:53:33AM -0800, E Shattow wrote:
> Xunlong Orange Pi RV patches are now in the Linux v6.19 release candidate,
> so let's introduce support for this board.
>
> Note: The content of EEPROM is known to not be unique on this board, and
> an (optional) invented "XOPIRV" identifier is implemented with this
> series. Without, there are reports that the board is detected in U-Boot as
> StarFive VisionFive 2 1.3b, and is then functional enough to load the
> devicetree prior to booting Linux.
>
> Changes since v2:
> - Collect tags (no code changes)
> - Adjust missing S-o-by tag to first of tags list order for patch 4
> "configs: starfive: Add Orange Pi RV to visionfive2".
>
> Changes since RFC v1:
> - Cherrypick from devicetree-rebasing instead of importing upstream dts
> as -u-boot.dtsi overrides.
> - Add basic documentation
> - Mention invented "XOPIRV" identifier in commit messages
> - Rebase on origin/next
>
> E Shattow (3):
> board: starfive: visionfive2: Add Orange Pi RV selection by product_id
> configs: starfive: Add Orange Pi RV to visionfive2
> doc: board: starfive: Add Xunlong OrangePi RV
>
> Icenowy Zheng (2):
> dt-bindings: riscv: starfive: add xunlong,orangepi-rv
> riscv: dts: starfive: add Orange Pi RV
>
> board/starfive/visionfive2/spl.c | 3 +
> .../visionfive2/starfive_visionfive2.c | 2 +
> configs/starfive_visionfive2_defconfig | 2 +-
> doc/board/starfive/index.rst | 1 +
> doc/board/starfive/orangepi_rv.rst | 35 +++++++++
> dts/upstream/Bindings/riscv/starfive.yaml | 1 +
> .../src/riscv/starfive/jh7110-orangepi-rv.dts | 76 +++++++++++++++++++
> 7 files changed, 119 insertions(+), 1 deletion(-)
> create mode 100644 doc/board/starfive/orangepi_rv.rst
> create mode 100644 dts/upstream/src/riscv/starfive/jh7110-orangepi-rv.dts
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-02-09 11:18 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-20 15:53 [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV E Shattow
2026-01-20 15:53 ` [PATCH v3 1/5] dt-bindings: riscv: starfive: add xunlong,orangepi-rv E Shattow
2026-01-20 15:53 ` [PATCH v3 2/5] riscv: dts: starfive: add Orange Pi RV E Shattow
2026-01-20 15:53 ` [PATCH v3 3/5] board: starfive: visionfive2: Add Orange Pi RV selection by product_id E Shattow
2026-01-20 15:53 ` [PATCH v3 4/5] configs: starfive: Add Orange Pi RV to visionfive2 E Shattow
2026-01-20 15:53 ` [PATCH v3 5/5] doc: board: starfive: Add Xunlong OrangePi RV E Shattow
2026-02-09 11:18 ` [PATCH v3 0/5] Add upstream board Xunlong Orange Pi RV Leo Liang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox