[PATCH RFC 10/12] riscv: dts: bouffalolab: Add Sipeed M1s Dock

Conor Dooley conor at kernel.org
Thu Oct 29 12:07:00 PDT 2026


On Thu, Oct 29, 2026 at 01:05:51AM -0400, Kwanghoon Son wrote:
> Add the M1s SoM memory and 40 MHz crystal, and enable UART3 on the Dock
> with a direct stdout path and 115200 8N1 settings.
> 
> Boot firmware initializes PSRAM, UART pads and shared PLLs. The tested
> firmware configures D0 TIME at 320 MHz / 380, represented as 842105 Hz.
> Firmware using another timer configuration must fix up timebase-
> frequency. The declared 64 MiB PSRAM range must retain firmware
> reservations or be narrowed by firmware when memory is assigned to
> another core.
> 
> The stdout path selects the native polling printk console; userspace TTY
> I/O is deferred.
> 
> Signed-off-by: Kwanghoon Son <asdfkwang at gmail.com>
> ---
>  arch/riscv/boot/dts/Makefile                          |  1 +
>  arch/riscv/boot/dts/bouffalolab/Makefile              |  2 ++
>  .../boot/dts/bouffalolab/bl808-sipeed-m1s-dock.dts    | 18 ++++++++++++++++++
>  arch/riscv/boot/dts/bouffalolab/bl808-sipeed-m1s.dtsi | 19 +++++++++++++++++++
>  4 files changed, 40 insertions(+)
> 
> diff --git a/arch/riscv/boot/dts/Makefile b/arch/riscv/boot/dts/Makefile
> index 69d8751fb17c803f0efb8003e111ee24144c222b..294f9c119f8f1d608c878ca1f95891843301f07e 100644
> --- a/arch/riscv/boot/dts/Makefile
> +++ b/arch/riscv/boot/dts/Makefile
> @@ -2,6 +2,7 @@
>  subdir-y += allwinner
>  subdir-y += andes
>  subdir-y += anlogic
> +subdir-y += bouffalolab
>  subdir-y += canaan
>  subdir-y += eswin
>  subdir-y += microchip
> diff --git a/arch/riscv/boot/dts/bouffalolab/Makefile b/arch/riscv/boot/dts/bouffalolab/Makefile
> new file mode 100644
> index 0000000000000000000000000000000000000000..4d63365edc095fbe9df31c4b12e29c4b624cbd1f
> --- /dev/null
> +++ b/arch/riscv/boot/dts/bouffalolab/Makefile
> @@ -0,0 +1,2 @@
> +# SPDX-License-Identifier: GPL-2.0
> +dtb-$(CONFIG_ARCH_BOUFFALOLAB) += bl808-sipeed-m1s-dock.dtb
> diff --git a/arch/riscv/boot/dts/bouffalolab/bl808-sipeed-m1s-dock.dts b/arch/riscv/boot/dts/bouffalolab/bl808-sipeed-m1s-dock.dts
> new file mode 100644
> index 0000000000000000000000000000000000000000..c719a53c6e2de45f3718b48ba2116e99c70e559b
> --- /dev/null
> +++ b/arch/riscv/boot/dts/bouffalolab/bl808-sipeed-m1s-dock.dts
> @@ -0,0 +1,18 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +/dts-v1/;
> +
> +#include "bl808-sipeed-m1s.dtsi"
> +
> +/ {
> +	model = "Sipeed M1s Dock";
> +	compatible = "sipeed,m1s-dock", "sipeed,m1s", "bflb,bl808";
> +
> +	chosen {
> +		stdout-path = "/soc/serial at 30002000:115200n8";

You should be able to do this normally, with an alias. Why are you not
just using what Jisheng did?

> +	};
> +};
> +
> +&uart3 {
> +	status = "okay";
> +};
> diff --git a/arch/riscv/boot/dts/bouffalolab/bl808-sipeed-m1s.dtsi b/arch/riscv/boot/dts/bouffalolab/bl808-sipeed-m1s.dtsi
> new file mode 100644
> index 0000000000000000000000000000000000000000..ae54e6e301ed2c5a1448d52c530c5074515ee38c
> --- /dev/null
> +++ b/arch/riscv/boot/dts/bouffalolab/bl808-sipeed-m1s.dtsi
> @@ -0,0 +1,19 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +#include "bl808.dtsi"
> +
> +/ {
> +	compatible = "sipeed,m1s", "bflb,bl808";
> +	memory at 50000000 {
> +		device_type = "memory";
> +		reg = <0x50000000 0x04000000>;
> +	};
> +
> +	cpus {
> +		timebase-frequency = <842105>;
> +	};
> +};
> +
> +&xtal {
> +	clock-frequency = <40000000>;
> +};
> 
> -- 
> 2.47.3
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-riscv/attachments/20261029/eb1b2c33/attachment.sig>


More information about the linux-riscv mailing list