Re: [PATCH v5 RESEND 5/5] riscv64: dts: sophgo: add initial Milk-V Duo S board support
"Shuwei Wu" <[email protected]> Fri, 05 Jun 2026 17:09:56 +0800
| Newsgroups | dev.linux.lists.sophgo,org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Hi Joshua, On Sun May 31, 2026 at 1:33 AM CST, Joshua Milas wrote: > This adds initial riscv support for the Milk-V Duo S board > [1] making it possible to boot Linux to the command line. > > Link: https://milkv.io/duo-s [1] > > Signed-off-by: Joshua Milas <[email protected]> > --- > arch/riscv/boot/dts/sophgo/Makefile | 1 + > .../boot/dts/sophgo/sg2000-milkv-duo-s.dts | 85 +++++++++++++++++++ > 2 files changed, 86 insertions(+) > create mode 100644 arch/riscv/boot/dts/sophgo/sg2000-milkv-duo-s.dts > > diff --git a/arch/riscv/boot/dts/sophgo/Makefile b/arch/riscv/boot/dts/sophgo/Makefile > index 6f65526d4193b..58cc6b70d8de4 100644 > --- a/arch/riscv/boot/dts/sophgo/Makefile > +++ b/arch/riscv/boot/dts/sophgo/Makefile > @@ -1,6 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0 > dtb-$(CONFIG_ARCH_SOPHGO) += cv1800b-milkv-duo.dtb > dtb-$(CONFIG_ARCH_SOPHGO) += cv1812h-huashan-pi.dtb > +dtb-$(CONFIG_ARCH_SOPHGO) += sg2000-milkv-duo-s.dtb > dtb-$(CONFIG_ARCH_SOPHGO) += sg2002-licheerv-nano-b.dtb > dtb-$(CONFIG_ARCH_SOPHGO) += sg2042-milkv-pioneer.dtb > dtb-$(CONFIG_ARCH_SOPHGO) += sg2042-evb-v1.dtb > diff --git a/arch/riscv/boot/dts/sophgo/sg2000-milkv-duo-s.dts b/arch/riscv/boot/dts/sophgo/sg2000-milkv-duo-s.dts > new file mode 100644 > index 0000000000000..8632470f43ab0 > --- /dev/null > +++ b/arch/riscv/boot/dts/sophgo/sg2000-milkv-duo-s.dts > @@ -0,0 +1,85 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > + > +/dts-v1/; > + > +#include "sg2000.dtsi" > + > +/ { > + model = "Milk-V Duo S"; > + compatible = "milkv,duo-s", "sophgo,sg2000"; > + > + aliases { > + i2c4 = &i2c4; > + mmc0 = &sdhci0; > + serial0 = &uart0; > + spi3 = &spi3; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > +}; > + > +&osc { > + clock-frequency = <25000000>; > +}; > + > +&dmac { > + status = "okay"; > +}; > + > +&emmc { > + bus-width = <4>; > + no-1-8-v; > + cap-mmc-hw-reset; > + no-sd; > + no-sdio; > + non-removable; > + status = "okay"; > +}; > + > +&gmac0 { > + status = "okay"; > +}; > + > +&i2c4 { > + status = "okay"; > +}; > + > +&mdio { > + status = "okay"; > +}; > + > +&saradc { > + status = "okay"; > +}; > + > +&sdhci0 { > + bus-width = <4>; > + no-1-8-v; > + disable-wp; > + status = "okay"; > +}; > + > +&sdhci1 { > + bus-width = <4>; > + cap-sdio-irq; > + no-mmc; > + no-sd; > + non-removable; > + status = "okay"; > +}; > + > +&spi3 { > + status = "okay"; > +}; > + > +&uart0 { > + status = "okay"; > +}; > + > +&usb { > + dr_mode = "host"; > + status = "okay"; > +}; > + I tested this series on a Milk-V Duo S board with a RISC-V mainline kernel. The board boots successfully with sg2000-milkv-duo-s.dtb. UART works, the SD card is detected and readable, Ethernet works after enabling the MDIO mux options, and the DMA, USB host, I2C4, SPI3 and SARADC nodes all probe successfully. One thing I noticed is that the Wi-Fi SDIO device is not enumerated with the mainline DT. The sdhci1 host itself probes: mmc1: SDHCI controller on 4320000.mmc [4320000.mmc] using ADMA 64-bit mmc1: Failed to initialize a non-removable card and /sys/bus/sdio/devices remains empty. With the vendor image on the same board, the Wi-Fi SDIO device is detected on the corresponding controller: mmc1: SDHCI controller on 4320000.wifi-sd [4320000.wifi-sd] using ADMA 64-bit sdio vendor ID: 0xc8a1 sdio device ID: 0x0082 aicwf_sdio_chipmatch USE AIC8800D80 sdio ready So it looks like the SDHCI host comes up, but the SDIO device behind it is not discovered. I may still be missing some config option. Have you seen this issue on your side? If not, could you please share the relevant kernel config used for your testing? -- Best regards, Shuwei Wu