[PATCH] board: spacemit: Add SpacemiT MUSE Pi Pro

Yao Zi ziyao at disroot.org
Mon Jul 28 11:58:51 CEST 2025


On Mon, Jul 28, 2025 at 04:25:47PM +0800, Niu Zhihong wrote:
> MUSE Pi Pro uses spacemit K1,
> a new generation of octa-core 64-bit RISC-V processor,
> which includes octa-core X60.
> 
> Features tested on a MUSE Pi Pro 16GB:
> - SD-card boot
> - eMMC boot

I don't think either SD or eMMC is supported in mainline U-Boot for
SpacemiT K1. Does this mean "boot from SD/eMMC" is working? If so maybe
it's better to make the words more clear.

> Signed-off-by: Niu Zhihong <zhihong at nzhnb.com>
> ---
>  arch/riscv/Kconfig                     |  4 ++
>  arch/riscv/dts/Makefile                |  1 +
>  arch/riscv/dts/k1-muse-pi-pro.dts      | 27 ++++++++
>  board/spacemit/muse-pi-pro/Kconfig     | 37 +++++++++++
>  board/spacemit/muse-pi-pro/MAINTAINERS |  6 ++
>  board/spacemit/muse-pi-pro/Makefile    |  3 +
>  board/spacemit/muse-pi-pro/board.c     |  8 +++
>  configs/muse-pi-pro_defconfig          |  6 ++
>  doc/board/spacemit/index.rst           |  1 +
>  doc/board/spacemit/muse-pi-pro.rst     | 85 ++++++++++++++++++++++++++
>  include/configs/muse-pi-pro.h          | 11 ++++
>  11 files changed, 189 insertions(+)
>  create mode 100644 arch/riscv/dts/k1-muse-pi-pro.dts
>  create mode 100644 board/spacemit/muse-pi-pro/Kconfig
>  create mode 100644 board/spacemit/muse-pi-pro/MAINTAINERS
>  create mode 100644 board/spacemit/muse-pi-pro/Makefile
>  create mode 100644 board/spacemit/muse-pi-pro/board.c
>  create mode 100644 configs/muse-pi-pro_defconfig
>  create mode 100644 doc/board/spacemit/muse-pi-pro.rst
>  create mode 100644 include/configs/muse-pi-pro.h

...

> diff --git a/arch/riscv/dts/Makefile b/arch/riscv/dts/Makefile
> index 2b10c2d6c01..f959f174f21 100644
> --- a/arch/riscv/dts/Makefile
> +++ b/arch/riscv/dts/Makefile
> @@ -2,6 +2,7 @@
>  
>  dtb-$(CONFIG_TARGET_ANDES_AE350) += ae350_32.dtb ae350_64.dtb
>  dtb-$(CONFIG_TARGET_BANANAPI_F3) += k1-bananapi-f3.dtb
> +dtb-$(CONFIG_TARGET_MUSE_PI_PRO) += k1-muse-pi-pro.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
> diff --git a/arch/riscv/dts/k1-muse-pi-pro.dts b/arch/riscv/dts/k1-muse-pi-pro.dts
> new file mode 100644
> index 00000000000..5e32d696b63
> --- /dev/null
> +++ b/arch/riscv/dts/k1-muse-pi-pro.dts
> @@ -0,0 +1,27 @@
> +/*
> + * Copyright The U-Boot Contributors
> + */
> +
> +#include "k1.dtsi"
> +#include "binman.dtsi"
> +#include "k1-pinctrl.dtsi"
> +
> +/ {
> +	model = "MUSE Pi Pro";
> +	compatible = "muse-pi-pro", "spacemit,k1";

Compatible strings usually come in form of "<manufacturer>,<model>", as
states in devicetree specification,

> The recommended format is "manufacturer,model", where manufacturer is
> a string describing the name of the manufacturer (such as a stock
> ticker symbol), and model specifies the model number

Do you have any information about the board's manufacturer?

> diff --git a/board/spacemit/muse-pi-pro/board.c b/board/spacemit/muse-pi-pro/board.c
> new file mode 100644
> index 00000000000..599e20117e3
> --- /dev/null
> +++ b/board/spacemit/muse-pi-pro/board.c
> @@ -0,0 +1,8 @@
> +/*
> + * Copyright The U-Boot Contributors
> + */
> +
> +int board_init(void)
> +{
> +	return 0;
> +}

Empty board_init() function could just be omitted, as long as you set
CONFIG_BOARD_INIT to n. Please refer to this patch[1] for more
information.

...

> diff --git a/doc/board/spacemit/muse-pi-pro.rst b/doc/board/spacemit/muse-pi-pro.rst
> new file mode 100644
> index 00000000000..4aa2eab5917
> --- /dev/null
> +++ b/doc/board/spacemit/muse-pi-pro.rst
> @@ -0,0 +1,85 @@

...

> +   U-Boot 2025.07-00902-gf2f451d9d6d3-dirty (Jul 28 2025 - 14:38:51 +0800)
> +
> +   DRAM:  16 GiB
> +   Core:  21 devices, 9 uclasses, devicetree: separate
> +   Loading Environment from nowhere... OK
> +   In:    serial at d4017000
> +   Out:   serial at d4017000
> +   Err:   serial at d4017000
> +   Net:   No ethernet found.
> +   => cpu list
> +   0: cpu at 0      spacemit,x60
> +   1: cpu at 1      spacemit,x60
> +   2: cpu at 2      spacemit,x60
> +   3: cpu at 3      spacemit,x60
> +   4: cpu at 4      spacemit,x60
> +   5: cpu at 5      spacemit,x60
> +   6: cpu at 6      spacemit,x60
> +   7: cpu at 7      spacemit,x60
> +   => 
> \ No newline at end of file

Please restore the EOL :)

Regards,
Yao Zi

[1]: https://lore.kernel.org/u-boot/20250717024426.26953-1-semen.protsenko@linaro.org/


More information about the U-Boot mailing list