Switch Milk-V Duo 256M to the upstream SG2002 devicetree by enabling CONFIG_OF_UPSTREAM and selecting sophgo/sg2002-milkv-duo256m.
The upstream devicetree keeps the Ethernet MAC disabled. Add a U-Boot override to preserve the existing networking support when the optional IO board is attached. Remove the local board devicetree and update the OpenSBI build instructions to use the upstream DTB. Signed-off-by: Zhuxu Ran <[email protected]> --- arch/riscv/dts/Makefile | 1 - arch/riscv/dts/sg2002-milkv-duo256m-u-boot.dtsi | 16 +++++++++ arch/riscv/dts/sg2002-milkv-duo256m.dts | 46 ------------------------- board/sophgo/milkv_duo_256m/MAINTAINERS | 1 + configs/milkv_duo_256m_defconfig | 3 +- doc/board/sophgo/milkv_duo_256m.rst | 2 +- 6 files changed, 20 insertions(+), 49 deletions(-) diff --git a/arch/riscv/dts/Makefile b/arch/riscv/dts/Makefile index 8ba75fdb9f5..71c5c13d221 100644 --- a/arch/riscv/dts/Makefile +++ b/arch/riscv/dts/Makefile @@ -5,7 +5,6 @@ dtb-$(CONFIG_TARGET_ANDES_VOYAGER) += qilai-voyager.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-u-boot.dtsi b/arch/riscv/dts/sg2002-milkv-duo256m-u-boot.dtsi new file mode 100644 index 00000000000..3872343636f --- /dev/null +++ b/arch/riscv/dts/sg2002-milkv-duo256m-u-boot.dtsi @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright (C) 2026 Zhuxu Ran <[email protected]> + */ + +/* + * The Ethernet signals are routed to the RJ45 connector on the optional + * IO Board. Keep Ethernet available in U-Boot when the IO Board is attached. + */ +&gmac0 { + status = "okay"; +}; + +&mdio { + status = "okay"; +}; diff --git a/arch/riscv/dts/sg2002-milkv-duo256m.dts b/arch/riscv/dts/sg2002-milkv-duo256m.dts deleted file mode 100644 index 4ad86ce39ec..00000000000 --- a/arch/riscv/dts/sg2002-milkv-duo256m.dts +++ /dev/null @@ -1,46 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0 OR MIT) -/* - * Copyright (C) 2026 Hiago De Franco <[email protected]> - */ - -/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/MAINTAINERS b/board/sophgo/milkv_duo_256m/MAINTAINERS index 929960e7251..3488db28145 100644 --- a/board/sophgo/milkv_duo_256m/MAINTAINERS +++ b/board/sophgo/milkv_duo_256m/MAINTAINERS @@ -1,5 +1,6 @@ Milk-V Duo 256M M: Hiago De Franco <[email protected]> S: Maintained +F: arch/riscv/dts/sg2002-milkv-duo256m-u-boot.dtsi F: board/sophgo/milkv_duo_256m/ F: configs/milkv_duo_256m_defconfig diff --git a/configs/milkv_duo_256m_defconfig b/configs/milkv_duo_256m_defconfig index 9d92eec6394..436bdb1549a 100644 --- a/configs/milkv_duo_256m_defconfig +++ b/configs/milkv_duo_256m_defconfig @@ -4,7 +4,7 @@ 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_DEFAULT_DEVICE_TREE="sophgo/sg2002-milkv-duo256m" CONFIG_SYS_LOAD_ADDR=0x80080000 CONFIG_IDENT_STRING="milkv_duo_256m" CONFIG_TARGET_MILKV_DUO_256M=y @@ -25,6 +25,7 @@ CONFIG_CMD_POWEROFF=y CONFIG_CMD_EXT4_WRITE=y # CONFIG_ISO_PARTITION is not set # CONFIG_EFI_PARTITION is not set +CONFIG_OF_UPSTREAM=y CONFIG_ENV_OVERWRITE=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_CLK_SOPHGO_CV1800B=y diff --git a/doc/board/sophgo/milkv_duo_256m.rst b/doc/board/sophgo/milkv_duo_256m.rst index 9e2cbddf4db..9562e6c48fd 100644 --- a/doc/board/sophgo/milkv_duo_256m.rst +++ b/doc/board/sophgo/milkv_duo_256m.rst @@ -46,7 +46,7 @@ To run u-boot.bin on top of FSBL, follow these steps: .. code-block:: console cd open-sbi - PLATFORM=generic FW_FDT_PATH=../u-boot/arch/riscv/dts/sg2002-milkv-duo256m.dtb make + PLATFORM=generic FW_FDT_PATH=../u-boot/dts/upstream/src/riscv/sophgo/sg2002-milkv-duo256m.dtb make This will generate build/platform/generic/firmware/fw_dynamic.bin. -- 2.55.0
