* [PATCH 0/2] board: sophgo: add support for Milk-V Duo 256M
@ 2026-07-10 16:33 Hiago De Franco
2026-07-10 16:33 ` [PATCH 1/2] board: sophgo: move ethernet driver to common directory Hiago De Franco
2026-07-10 16:33 ` [PATCH 2/2] board: sophgo: add support for Milk-V Duo 256M Hiago De Franco
0 siblings, 2 replies; 4+ messages in thread
From: Hiago De Franco @ 2026-07-10 16:33 UTC (permalink / raw)
To: u-boot
Cc: Kongyang Liu, Tom Rini, Quentin Schulz, Ilias Apalodimas,
Peter Robinson, Rick Chen, Leo, Jamie Gibbons, Yao Zi,
Conor Dooley, Randolph Sheng-Kai Lin, Michal Simek,
Andreas Schwab, Sam Protsenko, Martin Herren, Chen-Yu Yeh,
Peng Fan
Milk-V Duo 256M is a small development board based on the Sophgo SG2002
SoC.
U-Boot runs as the S-mode payload on top of the vendor FSBL and OpenSBI,
packaged together into a FIP image on the SD card.
The vendor FIP tool prepends a 32-byte loader header to u-boot.bin and
loads the result at 0x80200000, so TEXT_BASE is set to 0x80200020 to
match the address the U-Boot code actually runs.
The following peripherals are supported:
- ns16550 serial console (UART0)
- SD/MMC
- Ethernet with the SoC internal PHY
This patch was tested on Milk-V Duo 256MB using an SD card and the Duo
USB & Ethernet IOB (base board) [0].
This series uses the CV1800B SYS_CPU target since SG2002 shares common
IPs with CV1800B. Other SG2002 as LicheeRV Nano does the same.
Note: Linux device tree is not yet merged [1], therefore I am adding a
device tree here and it can be later changed to use the kernel upstream
one.
[0] https://milkv.io/docs/duo/io-board/usb-ethernet-iob
[1] https://lore.kernel.org/lkml/20260710075917.159969-1-chenyou910331@gmail.com/
Link: https://milkv.io/docs/duo/getting-started/duo256m
Signed-off-by: Hiago De Franco <hfranco@baylibre.com>
---
Hiago De Franco (2):
board: sophgo: move ethernet driver to common directory
board: sophgo: add support for Milk-V Duo 256M
arch/riscv/Kconfig | 4 ++
arch/riscv/dts/Makefile | 1 +
arch/riscv/dts/sg2002-milkv-duo256m.dts | 46 +++++++++++++++
board/sophgo/{milkv_duo => common}/ethernet.c | 0
board/sophgo/{milkv_duo => common}/ethernet.h | 0
board/sophgo/milkv_duo/MAINTAINERS | 1 +
board/sophgo/milkv_duo/Makefile | 2 +-
board/sophgo/milkv_duo/board.c | 2 +-
board/sophgo/milkv_duo_256m/Kconfig | 30 ++++++++++
board/sophgo/milkv_duo_256m/MAINTAINERS | 5 ++
board/sophgo/milkv_duo_256m/Makefile | 6 ++
board/sophgo/milkv_duo_256m/board.c | 19 ++++++
board/sophgo/milkv_duo_256m/milkv_duo_256m.env | 8 +++
configs/milkv_duo_256m_defconfig | 42 +++++++++++++
doc/board/sophgo/index.rst | 1 +
doc/board/sophgo/milkv_duo_256m.rst | 82 ++++++++++++++++++++++++++
include/configs/milkv_duo_256m.h | 12 ++++
17 files changed, 259 insertions(+), 2 deletions(-)
---
base-commit: ece349ade2973e220f524ce59e59711cc919263f
change-id: 20260710-add-milkv-duo256m-1662c5cafb35
Best regards,
--
Hiago De Franco <hfranco@baylibre.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] board: sophgo: move ethernet driver to common directory
2026-07-10 16:33 [PATCH 0/2] board: sophgo: add support for Milk-V Duo 256M Hiago De Franco
@ 2026-07-10 16:33 ` Hiago De Franco
2026-07-10 16:33 ` [PATCH 2/2] board: sophgo: add support for Milk-V Duo 256M Hiago De Franco
1 sibling, 0 replies; 4+ messages in thread
From: Hiago De Franco @ 2026-07-10 16:33 UTC (permalink / raw)
To: u-boot
Cc: Kongyang Liu, Tom Rini, Quentin Schulz, Ilias Apalodimas,
Peter Robinson, Rick Chen, Leo, Jamie Gibbons, Yao Zi,
Conor Dooley, Randolph Sheng-Kai Lin, Michal Simek,
Andreas Schwab, Sam Protsenko, Martin Herren, Chen-Yu Yeh,
Peng Fan
This will make easier for future boards to reuse the same driver (e.g.
Milk-V Duo 256MB).
Signed-off-by: Hiago De Franco <hfranco@baylibre.com>
---
board/sophgo/{milkv_duo => common}/ethernet.c | 0
board/sophgo/{milkv_duo => common}/ethernet.h | 0
board/sophgo/milkv_duo/MAINTAINERS | 1 +
board/sophgo/milkv_duo/Makefile | 2 +-
board/sophgo/milkv_duo/board.c | 2 +-
5 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/board/sophgo/milkv_duo/ethernet.c b/board/sophgo/common/ethernet.c
similarity index 100%
rename from board/sophgo/milkv_duo/ethernet.c
rename to board/sophgo/common/ethernet.c
diff --git a/board/sophgo/milkv_duo/ethernet.h b/board/sophgo/common/ethernet.h
similarity index 100%
rename from board/sophgo/milkv_duo/ethernet.h
rename to board/sophgo/common/ethernet.h
diff --git a/board/sophgo/milkv_duo/MAINTAINERS b/board/sophgo/milkv_duo/MAINTAINERS
index 651a0592f7a..6941dc5b376 100644
--- a/board/sophgo/milkv_duo/MAINTAINERS
+++ b/board/sophgo/milkv_duo/MAINTAINERS
@@ -2,5 +2,6 @@ Milk-V Duo
M: Kongyang Liu <seashell11234455@gmail.com>
S: Maintained
F: board/sophgo/milkv_duo/
+F: board/sophgo/common/
F: configs/milkv_duo_defconfig
F: doc/board/sophgo/milkv_duo.rst
diff --git a/board/sophgo/milkv_duo/Makefile b/board/sophgo/milkv_duo/Makefile
index 18ada7d72ff..aa321d15687 100644
--- a/board/sophgo/milkv_duo/Makefile
+++ b/board/sophgo/milkv_duo/Makefile
@@ -3,4 +3,4 @@
# Copyright (c) 2024, Kongyang Liu <seashell11234455@gmail.com>
obj-y += board.o
-obj-$(CONFIG_NET_LEGACY) += ethernet.o
+obj-$(CONFIG_NET_LEGACY) += ../common/ethernet.o
diff --git a/board/sophgo/milkv_duo/board.c b/board/sophgo/milkv_duo/board.c
index f0944859b58..34339c42925 100644
--- a/board/sophgo/milkv_duo/board.c
+++ b/board/sophgo/milkv_duo/board.c
@@ -5,7 +5,7 @@
#include <dm/lists.h>
-#include "ethernet.h"
+#include "../common/ethernet.h"
int board_init(void)
{
--
2.54.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] board: sophgo: add support for Milk-V Duo 256M
2026-07-10 16:33 [PATCH 0/2] board: sophgo: add support for Milk-V Duo 256M Hiago De Franco
2026-07-10 16:33 ` [PATCH 1/2] board: sophgo: move ethernet driver to common directory Hiago De Franco
@ 2026-07-10 16:33 ` Hiago De Franco
2026-07-19 16:47 ` Yao Zi
1 sibling, 1 reply; 4+ messages in thread
From: Hiago De Franco @ 2026-07-10 16:33 UTC (permalink / raw)
To: u-boot
Cc: Kongyang Liu, Tom Rini, Quentin Schulz, Ilias Apalodimas,
Peter Robinson, Rick Chen, Leo, Jamie Gibbons, Yao Zi,
Conor Dooley, Randolph Sheng-Kai Lin, Michal Simek,
Andreas Schwab, Sam Protsenko, Martin Herren, Chen-Yu Yeh,
Peng Fan
Add U-Boot support for Milk-V Duo 256M.
This board has a different SoC compared to the Milk-V Duo 64M, it uses
the Sophgo SG2002 instead of the Sophgo CV1800B. Both SoCs share many
common IP blocks, so this board reuses the existing cv1800b CPU support.
Link: https://milkv.io/docs/duo/getting-started/duo256m
Signed-off-by: Hiago De Franco <hfranco@baylibre.com>
---
arch/riscv/Kconfig | 4 ++
arch/riscv/dts/Makefile | 1 +
arch/riscv/dts/sg2002-milkv-duo256m.dts | 46 +++++++++++++++
board/sophgo/milkv_duo_256m/Kconfig | 30 ++++++++++
board/sophgo/milkv_duo_256m/MAINTAINERS | 5 ++
board/sophgo/milkv_duo_256m/Makefile | 6 ++
board/sophgo/milkv_duo_256m/board.c | 19 ++++++
board/sophgo/milkv_duo_256m/milkv_duo_256m.env | 8 +++
configs/milkv_duo_256m_defconfig | 42 +++++++++++++
doc/board/sophgo/index.rst | 1 +
doc/board/sophgo/milkv_duo_256m.rst | 82 ++++++++++++++++++++++++++
include/configs/milkv_duo_256m.h | 12 ++++
12 files changed, 256 insertions(+)
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index ad7589123c6..8a285c32072 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -32,6 +32,9 @@ config TARGET_MICROCHIP_GENERIC
config TARGET_MILKV_DUO
bool "Support Milk-v Duo Board"
+config TARGET_MILKV_DUO_256M
+ bool "Support Milk-V Duo 256M Board"
+
config TARGET_OPENPITON_RISCV64
bool "Support RISC-V cores on OpenPiton SoC"
@@ -118,6 +121,7 @@ source "board/sifive/unleashed/Kconfig"
source "board/sifive/unmatched/Kconfig"
source "board/sipeed/maix/Kconfig"
source "board/sophgo/milkv_duo/Kconfig"
+source "board/sophgo/milkv_duo_256m/Kconfig"
source "board/sophgo/licheerv_nano/Kconfig"
source "board/spacemit/bananapi-f3/Kconfig"
source "board/starfive/visionfive2/Kconfig"
diff --git a/arch/riscv/dts/Makefile b/arch/riscv/dts/Makefile
index 8e591cb7aa9..c20b980b3af 100644
--- a/arch/riscv/dts/Makefile
+++ b/arch/riscv/dts/Makefile
@@ -6,6 +6,7 @@ dtb-$(CONFIG_TARGET_BANANAPI_F3) += k1-bananapi-f3.dtb
dtb-$(CONFIG_TARGET_K230_CANMV) += k230-canmv.dtb
dtb-$(CONFIG_TARGET_MICROCHIP_ICICLE) += mpfs-icicle-kit.dtb
dtb-$(CONFIG_TARGET_MILKV_DUO) += cv1800b-milkv-duo.dtb
+dtb-$(CONFIG_TARGET_MILKV_DUO_256M) += sg2002-milkv-duo256m.dtb
dtb-$(CONFIG_TARGET_LICHEERV_NANO) += sg2002-licheerv-nano-b.dtb
dtb-$(CONFIG_TARGET_QEMU_VIRT) += qemu-virt32.dtb qemu-virt64.dtb
dtb-$(CONFIG_TARGET_OPENPITON_RISCV64) += openpiton-riscv64.dtb
diff --git a/arch/riscv/dts/sg2002-milkv-duo256m.dts b/arch/riscv/dts/sg2002-milkv-duo256m.dts
new file mode 100644
index 00000000000..4ad86ce39ec
--- /dev/null
+++ b/arch/riscv/dts/sg2002-milkv-duo256m.dts
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2026 Hiago De Franco <hfranco@baylibre.com>
+ */
+
+/dts-v1/;
+
+#include "sg2002.dtsi"
+
+/ {
+ model = "Milk-V Duo 256M";
+ compatible = "milkv,duo256m", "sophgo,sg2002";
+
+ aliases {
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ serial4 = &uart4;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+};
+
+ðernet0 {
+ status = "okay";
+ phy-mode = "rmii";
+};
+
+&osc {
+ clock-frequency = <25000000>;
+};
+
+&sdhci0 {
+ status = "okay";
+ bus-width = <4>;
+ no-1-8-v;
+ no-mmc;
+ no-sdio;
+};
+
+&uart0 {
+ status = "okay";
+};
diff --git a/board/sophgo/milkv_duo_256m/Kconfig b/board/sophgo/milkv_duo_256m/Kconfig
new file mode 100644
index 00000000000..a443207f65e
--- /dev/null
+++ b/board/sophgo/milkv_duo_256m/Kconfig
@@ -0,0 +1,30 @@
+if TARGET_MILKV_DUO_256M
+
+config SYS_BOARD
+ default "milkv_duo_256m"
+
+config SYS_VENDOR
+ default "sophgo"
+
+config SYS_CPU
+ default "cv1800b"
+
+config SYS_CONFIG_NAME
+ default "milkv_duo_256m"
+
+# The vendor FIP tool prepends a 32-byte loader header to u-boot.bin and loads
+# the result at 0x80200000, so the U-Boot code runs 0x20 bytes above that.
+config TEXT_BASE
+ default 0x80200020
+
+config ENV_SIZE
+ default 0x20000
+
+config ENV_SECT_SIZE
+ default 0x40000
+
+config BOARD_SPECIFIC_OPTIONS
+ def_bool y
+ select SOPHGO_CV1800B
+
+endif
diff --git a/board/sophgo/milkv_duo_256m/MAINTAINERS b/board/sophgo/milkv_duo_256m/MAINTAINERS
new file mode 100644
index 00000000000..929960e7251
--- /dev/null
+++ b/board/sophgo/milkv_duo_256m/MAINTAINERS
@@ -0,0 +1,5 @@
+Milk-V Duo 256M
+M: Hiago De Franco <hfranco@baylibre.com>
+S: Maintained
+F: board/sophgo/milkv_duo_256m/
+F: configs/milkv_duo_256m_defconfig
diff --git a/board/sophgo/milkv_duo_256m/Makefile b/board/sophgo/milkv_duo_256m/Makefile
new file mode 100644
index 00000000000..2b3c84fe594
--- /dev/null
+++ b/board/sophgo/milkv_duo_256m/Makefile
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (c) 2026, Hiago De Franco <hfranco@baylibre.com>
+
+obj-y += board.o
+obj-$(CONFIG_NET_LEGACY) += ../common/ethernet.o
diff --git a/board/sophgo/milkv_duo_256m/board.c b/board/sophgo/milkv_duo_256m/board.c
new file mode 100644
index 00000000000..b8454e0a1e9
--- /dev/null
+++ b/board/sophgo/milkv_duo_256m/board.c
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2026, Hiago De Franco <hfranco@baylibre.com>
+ */
+
+#include <dm/lists.h>
+
+#include "../common/ethernet.h"
+
+int board_init(void)
+{
+ if (IS_ENABLED(CONFIG_SYSRESET_CV1800B))
+ device_bind_driver(gd->dm_root, "cv1800b_sysreset", "sysreset", NULL);
+
+ if (IS_ENABLED(CONFIG_NET_LEGACY))
+ cv1800b_ephy_init();
+
+ return 0;
+}
diff --git a/board/sophgo/milkv_duo_256m/milkv_duo_256m.env b/board/sophgo/milkv_duo_256m/milkv_duo_256m.env
new file mode 100644
index 00000000000..4c1e17b53ca
--- /dev/null
+++ b/board/sophgo/milkv_duo_256m/milkv_duo_256m.env
@@ -0,0 +1,8 @@
+fdt_addr_r=0x84000000
+fdtfile=CONFIG_DEFAULT_DEVICE_TREE.dtb
+kernel_addr_r=0x80200000
+kernel_comp_addr_r=0x88000000
+kernel_comp_size=0x4000000
+pxefile_addr_r=0x84300000
+ramdisk_addr_r=0x84400000
+scriptaddr=0x84200000
diff --git a/configs/milkv_duo_256m_defconfig b/configs/milkv_duo_256m_defconfig
new file mode 100644
index 00000000000..9d92eec6394
--- /dev/null
+++ b/configs/milkv_duo_256m_defconfig
@@ -0,0 +1,42 @@
+CONFIG_RISCV=y
+CONFIG_SYS_MALLOC_LEN=0x820000
+CONFIG_SYS_MALLOC_F_LEN=0x8000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x82300000
+CONFIG_DEFAULT_DEVICE_TREE="sg2002-milkv-duo256m"
+CONFIG_SYS_LOAD_ADDR=0x80080000
+CONFIG_IDENT_STRING="milkv_duo_256m"
+CONFIG_TARGET_MILKV_DUO_256M=y
+CONFIG_ARCH_RV64I=y
+CONFIG_RISCV_SMODE=y
+CONFIG_FIT=y
+CONFIG_BOOTSTD_FULL=y
+# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
+CONFIG_SD_BOOT=y
+CONFIG_SYS_CBSIZE=512
+CONFIG_SYS_PBSIZE=544
+CONFIG_SYS_PROMPT="milkv_duo_256m# "
+# CONFIG_CMD_BOOTDEV is not set
+CONFIG_CMD_MBR=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_POWEROFF=y
+# CONFIG_CMD_MII is not set
+CONFIG_CMD_EXT4_WRITE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_ENV_OVERWRITE=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_CLK_SOPHGO_CV1800B=y
+CONFIG_MMC=y
+CONFIG_MMC_IO_VOLTAGE=y
+CONFIG_MMC_UHS_SUPPORT=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_ADMA=y
+CONFIG_MMC_SDHCI_CV1800B=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_SYS_NS16550=y
+CONFIG_SYS_NS16550_MEM32=y
+CONFIG_SPI=y
+CONFIG_SYSRESET=y
+CONFIG_SYSRESET_CV1800B=y
diff --git a/doc/board/sophgo/index.rst b/doc/board/sophgo/index.rst
index 26dba4a4851..19c9a19b1d4 100644
--- a/doc/board/sophgo/index.rst
+++ b/doc/board/sophgo/index.rst
@@ -6,4 +6,5 @@ Sophgo
:maxdepth: 1
milkv_duo
+ milkv_duo_256m
licheerv_nano
diff --git a/doc/board/sophgo/milkv_duo_256m.rst b/doc/board/sophgo/milkv_duo_256m.rst
new file mode 100644
index 00000000000..671f3a0b964
--- /dev/null
+++ b/doc/board/sophgo/milkv_duo_256m.rst
@@ -0,0 +1,82 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Milk-V Duo 256M
+===============
+
+SG2002 RISC-V SoC
+------------------
+The SG2002 is a high-performance, low-power 64-bit RISC-V/ARM SoC from Sophgo.
+
+Mainline support
+----------------
+The support for following drivers are already enabled:
+1. ns16550 UART Driver.
+2. Synopsys Designware MSHC Driver
+
+Building
+~~~~~~~~
+1. Add the RISC-V toolchain to your PATH.
+2. Setup ARCH & cross compilation environment variable:
+
+.. code-block:: console
+
+ export CROSS_COMPILE=<riscv64 toolchain prefix>
+ cd <U-Boot-dir>
+ make milkv_duo_256m_defconfig
+ make
+
+This will generate u-boot.bin
+
+Booting
+~~~~~~~
+Currently, we rely on vendor FSBL (First Stage Boot Loader) to initialize the
+clock and load OpenSBI and the u-boot image, then bootup from it.
+
+To run u-boot.bin on top of FSBL, follow these steps:
+
+1. Generate a compatible u-boot.bin using U-Boot with the Milk-V Duo 256M
+ default configuration.
+
+2. Use mainline OpenSBI with a newer version than 1.5 to generate fw_dynamic.
+ Use FDT_FW_PATH to point to sg2002-milkv-duo256m.dtb device tree file while
+ compiling fw_dynamic. Example:
+
+.. code-block:: console
+
+ cd open-sbi
+ PLATFORM=generic FW_FDT_PATH=../u-boot/arch/riscv/dts/sg2002-milkv-duo256m.dtb make
+
+This will generate build/platform/generic/firmware/fw_dynamic.bin.
+
+3. Use the vendor-provided tool [1] to create a unified fip.bin file containing
+ FSBL, OpenSBI, and U-Boot.
+ Note that you will have to use the file cv181x.bin as the FSBL.
+
+4. Place the generated fip.bin file into the FAT partition of the SD card.
+
+5. Insert the SD card into the board and power it on.
+
+The board will automatically execute the FSBL from the fip.bin file.
+Subsequently, it will transition to OpenSBI, and finally, OpenSBI will invoke
+U-Boot.
+
+[1]: https://github.com/sophgo/fiptool
+
+Sample boot log from Milk-V 256M Duo board
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. code-block:: none
+
+ U-Boot 2026.07-00002-g0b690770386f-dirty (Jul 07 2026 - 13:33:36 -0300)milkv_duo_256m
+
+ DRAM: 256 MiB
+ Core: 20 devices, 13 uclasses, devicetree: separate
+ MMC: mmc@4310000: 0
+ Loading Environment from nowhere... OK
+ In: serial@4140000
+ Out: serial@4140000
+ Err: serial@4140000
+ Net:
+ Warning: ethernet@4070000 (eth0) using random MAC address - 0a:f3:23:40:7e:55
+ eth0: ethernet@4070000
+ Hit any key to stop autoboot: 0
+ milkv_duo_256m#
diff --git a/include/configs/milkv_duo_256m.h b/include/configs/milkv_duo_256m.h
new file mode 100644
index 00000000000..4d6678b9c84
--- /dev/null
+++ b/include/configs/milkv_duo_256m.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (c) 2026, Hiago De Franco <hfranco@baylibre.com>
+ *
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#define CFG_SYS_SDRAM_BASE 0x80000000
+
+#endif /* __CONFIG_H */
--
2.54.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] board: sophgo: add support for Milk-V Duo 256M
2026-07-10 16:33 ` [PATCH 2/2] board: sophgo: add support for Milk-V Duo 256M Hiago De Franco
@ 2026-07-19 16:47 ` Yao Zi
0 siblings, 0 replies; 4+ messages in thread
From: Yao Zi @ 2026-07-19 16:47 UTC (permalink / raw)
To: Hiago De Franco, u-boot
Cc: Kongyang Liu, Tom Rini, Quentin Schulz, Ilias Apalodimas,
Peter Robinson, Rick Chen, Leo, Jamie Gibbons, Yao Zi,
Conor Dooley, Randolph Sheng-Kai Lin, Michal Simek,
Andreas Schwab, Sam Protsenko, Martin Herren, Chen-Yu Yeh,
Peng Fan
On Fri, Jul 10, 2026 at 01:33:56PM -0300, Hiago De Franco wrote:
> Add U-Boot support for Milk-V Duo 256M.
>
> This board has a different SoC compared to the Milk-V Duo 64M, it uses
> the Sophgo SG2002 instead of the Sophgo CV1800B. Both SoCs share many
> common IP blocks, so this board reuses the existing cv1800b CPU support.
>
> Link: https://milkv.io/docs/duo/getting-started/duo256m
> Signed-off-by: Hiago De Franco <hfranco@baylibre.com>
> ---
> arch/riscv/Kconfig | 4 ++
> arch/riscv/dts/Makefile | 1 +
> arch/riscv/dts/sg2002-milkv-duo256m.dts | 46 +++++++++++++++
> board/sophgo/milkv_duo_256m/Kconfig | 30 ++++++++++
> board/sophgo/milkv_duo_256m/MAINTAINERS | 5 ++
> board/sophgo/milkv_duo_256m/Makefile | 6 ++
> board/sophgo/milkv_duo_256m/board.c | 19 ++++++
> board/sophgo/milkv_duo_256m/milkv_duo_256m.env | 8 +++
> configs/milkv_duo_256m_defconfig | 42 +++++++++++++
> doc/board/sophgo/index.rst | 1 +
> doc/board/sophgo/milkv_duo_256m.rst | 82 ++++++++++++++++++++++++++
> include/configs/milkv_duo_256m.h | 12 ++++
> 12 files changed, 256 insertions(+)
...
> diff --git a/board/sophgo/milkv_duo_256m/board.c b/board/sophgo/milkv_duo_256m/board.c
> new file mode 100644
> index 00000000000..b8454e0a1e9
> --- /dev/null
> +++ b/board/sophgo/milkv_duo_256m/board.c
> @@ -0,0 +1,19 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (c) 2026, Hiago De Franco <hfranco@baylibre.com>
> + */
> +
> +#include <dm/lists.h>
> +
> +#include "../common/ethernet.h"
> +
> +int board_init(void)
> +{
> + if (IS_ENABLED(CONFIG_SYSRESET_CV1800B))
> + device_bind_driver(gd->dm_root, "cv1800b_sysreset", "sysreset", NULL);
> +
> + if (IS_ENABLED(CONFIG_NET_LEGACY))
> + cv1800b_ephy_init();
> +
> + return 0;
> +}
This looks identical to milkv_duo/board.c, could we re-use it instead of
introducing a copy at least for now?
...
> diff --git a/doc/board/sophgo/milkv_duo_256m.rst b/doc/board/sophgo/milkv_duo_256m.rst
> new file mode 100644
> index 00000000000..671f3a0b964
> --- /dev/null
> +++ b/doc/board/sophgo/milkv_duo_256m.rst
> @@ -0,0 +1,82 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +Milk-V Duo 256M
> +===============
> +
> +SG2002 RISC-V SoC
> +------------------
> +The SG2002 is a high-performance, low-power 64-bit RISC-V/ARM SoC from Sophgo.
> +
> +Mainline support
> +----------------
> +The support for following drivers are already enabled:
> +1. ns16550 UART Driver.
> +2. Synopsys Designware MSHC Driver
At least this part is not accurate, according to the log below,
...
> +Sample boot log from Milk-V 256M Duo board
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +.. code-block:: none
> +
> + U-Boot 2026.07-00002-g0b690770386f-dirty (Jul 07 2026 - 13:33:36 -0300)milkv_duo_256m
> +
> + DRAM: 256 MiB
> + Core: 20 devices, 13 uclasses, devicetree: separate
> + MMC: mmc@4310000: 0
> + Loading Environment from nowhere... OK
> + In: serial@4140000
> + Out: serial@4140000
> + Err: serial@4140000
> + Net:
> + Warning: ethernet@4070000 (eth0) using random MAC address - 0a:f3:23:40:7e:55
Ethernet is enabled, too. Please update the documentation to reflect the
support status.
Best regards,
Yao Zi
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-19 16:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-10 16:33 [PATCH 0/2] board: sophgo: add support for Milk-V Duo 256M Hiago De Franco
2026-07-10 16:33 ` [PATCH 1/2] board: sophgo: move ethernet driver to common directory Hiago De Franco
2026-07-10 16:33 ` [PATCH 2/2] board: sophgo: add support for Milk-V Duo 256M Hiago De Franco
2026-07-19 16:47 ` Yao Zi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.