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

From: Conor Dooley

Date: Thu Oct 29 2026 - 15:07:28 EST


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@xxxxxxxxx>
> ---
> 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@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@50000000 {
> + device_type = "memory";
> + reg = <0x50000000 0x04000000>;
> + };
> +
> + cpus {
> + timebase-frequency = <842105>;
> + };
> +};
> +
> +&xtal {
> + clock-frequency = <40000000>;
> +};
>
> --
> 2.47.3
>

Attachment: signature.asc
Description: PGP signature