* [RESEND PATCH v4 1/3] board: starfive: visionfive2: Add Orange Pi RV selection by product_id
2026-03-05 17:00 [RESEND PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
@ 2026-03-05 17:00 ` E Shattow
2026-03-05 17:00 ` [RESEND PATCH v4 2/3] configs: starfive: Add Orange Pi RV to visionfive2 E Shattow
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: E Shattow @ 2026-03-05 17:00 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>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.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] 5+ messages in thread* [RESEND PATCH v4 2/3] configs: starfive: Add Orange Pi RV to visionfive2
2026-03-05 17:00 [RESEND PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
2026-03-05 17:00 ` [RESEND PATCH v4 1/3] board: starfive: visionfive2: Add Orange Pi RV selection by product_id E Shattow
@ 2026-03-05 17:00 ` E Shattow
2026-03-05 17:00 ` [RESEND PATCH v4 3/3] doc: board: starfive: Add Xunlong OrangePi RV E Shattow
2026-03-12 8:19 ` [RESEND PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
3 siblings, 0 replies; 5+ messages in thread
From: E Shattow @ 2026-03-05 17:00 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>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.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] 5+ messages in thread
* [RESEND PATCH v4 3/3] doc: board: starfive: Add Xunlong OrangePi RV
2026-03-05 17:00 [RESEND PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
2026-03-05 17:00 ` [RESEND PATCH v4 1/3] board: starfive: visionfive2: Add Orange Pi RV selection by product_id E Shattow
2026-03-05 17:00 ` [RESEND PATCH v4 2/3] configs: starfive: Add Orange Pi RV to visionfive2 E Shattow
@ 2026-03-05 17:00 ` E Shattow
2026-03-12 8:19 ` [RESEND PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
3 siblings, 0 replies; 5+ messages in thread
From: E Shattow @ 2026-03-05 17:00 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>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
---
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] 5+ messages in thread* Re: [RESEND PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV
2026-03-05 17:00 [RESEND PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
` (2 preceding siblings ...)
2026-03-05 17:00 ` [RESEND PATCH v4 3/3] doc: board: starfive: Add Xunlong OrangePi RV E Shattow
@ 2026-03-12 8:19 ` E Shattow
3 siblings, 0 replies; 5+ messages in thread
From: E Shattow @ 2026-03-12 8:19 UTC (permalink / raw)
To: Minda Chen, Hal Feng, Leo Liang, Heinrich Schuchardt; +Cc: u-boot
Replying a question from Heinrich review on the non-RESEND of this
series v4, "Did Shenzhen Xunlong Software Co., Ltd ever respond to the
suggested EEPROM change?"
On 3/5/26 09:00, E Shattow wrote:
> Xunlong Orange Pi RV patches are now in the Linux v6.19 release, 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.
>
> RESEND v4: has collected tags that were missing from v4 as sent to list
>
> Changes since v3:
> - Collect tags (no code changes) [n.b. this failed, see RESEND v4 instead]
> - Cherry-picked dts subtree patches dropped as redundant:
> Drop patch 1/5 "dt-bindings: riscv: starfive: add xunlong,orangepi-rv"
> Drop patch 2/5 "riscv: dts: starfive: add Orange Pi RV"
>
> 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
>
> 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 +++++++++++++++++++
> 5 files changed, 42 insertions(+), 1 deletion(-)
> create mode 100644 doc/board/starfive/orangepi_rv.rst
>
>
> base-commit: c0ca147ac6228949a6d6497531c9f2f4a0dc6c67
Heinrich, no I did not get a response beyond what their sales
representative would say, that they do not give samples and there is
documentation at their website only. Likely this question I asked went
nowhere and was read by person(s) who could not engage with me on the
topic. Anyone with a contact at that company is welcome (in my opinion)
to push this issue further and get an answer from someone with agency in
the matter. -E
^ permalink raw reply [flat|nested] 5+ messages in thread