* [PATCH v4 1/3] board: starfive: visionfive2: Add Orange Pi RV selection by product_id
2026-03-05 16:43 [PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
@ 2026-03-05 16:43 ` E Shattow
2026-03-09 11:58 ` Heinrich Schuchardt
2026-03-05 16:43 ` [PATCH v4 2/3] configs: starfive: Add Orange Pi RV to visionfive2 E Shattow
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: E Shattow @ 2026-03-05 16:43 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] 8+ messages in thread* Re: [PATCH v4 1/3] board: starfive: visionfive2: Add Orange Pi RV selection by product_id
2026-03-05 16:43 ` [PATCH v4 1/3] board: starfive: visionfive2: Add Orange Pi RV selection by product_id E Shattow
@ 2026-03-09 11:58 ` Heinrich Schuchardt
0 siblings, 0 replies; 8+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 11:58 UTC (permalink / raw)
To: E Shattow; +Cc: u-boot, Minda Chen, Hal Feng, Leo Liang, Tom Rini
On 3/5/26 17:43, E Shattow wrote:
> Add XOPIRV identifier for Orange Pi RV to dts selection callback in SPL,
> and to fdtfile environment variable default value selection in payload.
Did Shenzhen Xunlong Software Co., Ltd ever respond to the suggested
EEPROM change?
>
> 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") &&
This matches the name of the device-tree in upstream Linux.
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> + !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)) {
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v4 2/3] configs: starfive: Add Orange Pi RV to visionfive2
2026-03-05 16:43 [PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
2026-03-05 16:43 ` [PATCH v4 1/3] board: starfive: visionfive2: Add Orange Pi RV selection by product_id E Shattow
@ 2026-03-05 16:43 ` E Shattow
2026-03-09 12:00 ` Heinrich Schuchardt
2026-03-05 16:43 ` [PATCH v4 3/3] doc: board: starfive: Add Xunlong OrangePi RV E Shattow
2026-03-05 16:49 ` [PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
3 siblings, 1 reply; 8+ messages in thread
From: E Shattow @ 2026-03-05 16:43 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] 8+ messages in thread
* Re: [PATCH v4 2/3] configs: starfive: Add Orange Pi RV to visionfive2
2026-03-05 16:43 ` [PATCH v4 2/3] configs: starfive: Add Orange Pi RV to visionfive2 E Shattow
@ 2026-03-09 12:00 ` Heinrich Schuchardt
0 siblings, 0 replies; 8+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 12:00 UTC (permalink / raw)
To: E Shattow; +Cc: u-boot, Minda Chen, Hal Feng, Leo Liang, Tom Rini
On 3/5/26 17:43, E Shattow wrote:
> 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: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
> 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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v4 3/3] doc: board: starfive: Add Xunlong OrangePi RV
2026-03-05 16:43 [PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
2026-03-05 16:43 ` [PATCH v4 1/3] board: starfive: visionfive2: Add Orange Pi RV selection by product_id E Shattow
2026-03-05 16:43 ` [PATCH v4 2/3] configs: starfive: Add Orange Pi RV to visionfive2 E Shattow
@ 2026-03-05 16:43 ` E Shattow
2026-03-09 11:53 ` Heinrich Schuchardt
2026-03-05 16:49 ` [PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
3 siblings, 1 reply; 8+ messages in thread
From: E Shattow @ 2026-03-05 16:43 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] 8+ messages in thread* Re: [PATCH v4 3/3] doc: board: starfive: Add Xunlong OrangePi RV
2026-03-05 16:43 ` [PATCH v4 3/3] doc: board: starfive: Add Xunlong OrangePi RV E Shattow
@ 2026-03-09 11:53 ` Heinrich Schuchardt
0 siblings, 0 replies; 8+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 11:53 UTC (permalink / raw)
To: E Shattow, Minda Chen, Hal Feng, Leo Liang, Tom Rini; +Cc: u-boot
On 3/5/26 17:43, E Shattow wrote:
> 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: Heinrich Schuchardt <xypron.glpk@gmx.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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV
2026-03-05 16:43 [PATCH v4 0/3] Add upstream board Xunlong Orange Pi RV E Shattow
` (2 preceding siblings ...)
2026-03-05 16:43 ` [PATCH v4 3/3] doc: board: starfive: Add Xunlong OrangePi RV E Shattow
@ 2026-03-05 16:49 ` E Shattow
3 siblings, 0 replies; 8+ messages in thread
From: E Shattow @ 2026-03-05 16:49 UTC (permalink / raw)
To: Minda Chen, Hal Feng, Leo Liang, Heinrich Schuchardt; +Cc: u-boot
On 3/5/26 08:43, 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.
>
> Changes since v3:
> - Collect tags (no code changes)
> - 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
Well that's embarrassing as I thought I'd collected the tags but it
doesn't show up in what I sent to the list. Re-sending shortly,
disregard this thread and sorry for the noise. -E
^ permalink raw reply [flat|nested] 8+ messages in thread