Hi Yixun, we should refresh MAINTAINERS such as file rename and added changes requested are now settled. Keep R-by tag from me on the refresh if there's no v5 before merge, thanks!
On 10/6/26 22:11, Yixun Lan wrote: > Add initial support for K3 Pico-ITX board, in this version, the DRAM > information is parsed from DTS "/memory" node. And with UART enabled, > the U-Boot serial console works fine now. > > Reviewed-by: E Shattow <[email protected]> > Signed-off-by: Yixun Lan <[email protected]> > --- > arch/riscv/Kconfig | 5 +++++ > arch/riscv/cpu/k3/Kconfig | 18 ++++++++++++++++++ > arch/riscv/cpu/k3/Makefile | 5 +++++ > arch/riscv/cpu/k3/dram.c | 21 +++++++++++++++++++++ > board/spacemit/k3/Kconfig | 30 ++++++++++++++++++++++++++++++ > board/spacemit/k3/MAINTAINERS | 8 ++++++++ > include/configs/spacemit-k3.h | 13 +++++++++++++ > 7 files changed, 100 insertions(+) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index c1b2890f1f3..386241efd4a 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -53,6 +53,9 @@ config TARGET_SIPEED_MAIX > config TARGET_SPACEMIT_K1 > bool "Support Spacemit K1 SoC" > > +config TARGET_SPACEMIT_K3 > + bool "Support SpacemiT K3 SoC" > + > config TARGET_STARFIVE_VISIONFIVE2 > bool "Support StarFive VisionFive2 Board" > select BOARD_LATE_INIT > @@ -124,6 +127,7 @@ source "board/sophgo/milkv_duo/Kconfig" > source "board/sophgo/milkv_duo_256m/Kconfig" > source "board/sophgo/licheerv_nano/Kconfig" > source "board/spacemit/k1/Kconfig" > +source "board/spacemit/k3/Kconfig" > source "board/starfive/visionfive2/Kconfig" > source "board/thead/th1520_lpi4a/Kconfig" > source "board/xilinx/mbv/Kconfig" > @@ -138,6 +142,7 @@ source "arch/riscv/cpu/mpfs/Kconfig" > source "arch/riscv/cpu/generic/Kconfig" > source "arch/riscv/cpu/jh7110/Kconfig" > source "arch/riscv/cpu/k1/Kconfig" > +source "arch/riscv/cpu/k3/Kconfig" > source "arch/riscv/cpu/k230/Kconfig" > source "arch/riscv/cpu/th1520/Kconfig" > > diff --git a/arch/riscv/cpu/k3/Kconfig b/arch/riscv/cpu/k3/Kconfig > new file mode 100644 > index 00000000000..5474ac11243 > --- /dev/null > +++ b/arch/riscv/cpu/k3/Kconfig > @@ -0,0 +1,18 @@ > +# SPDX-License-Identifier: GPL-2.0-or-later > +# > +# Copyright (C) 2026 Yixun Lan <[email protected]> > + > +if TARGET_SPACEMIT_K3 > + > +config SPACEMIT_K3 > + bool > + select BINMAN > + select ARCH_EARLY_INIT_R > + select SYS_CACHE_SHIFT_6 > + imply CPU > + imply CPU_RISCV > + imply RISCV_TIMER if RISCV_SMODE > + imply CMD_CPU > + imply OF_UPSTREAM > + > +endif > diff --git a/arch/riscv/cpu/k3/Makefile b/arch/riscv/cpu/k3/Makefile > new file mode 100644 > index 00000000000..fba4e4b0a3f > --- /dev/null > +++ b/arch/riscv/cpu/k3/Makefile > @@ -0,0 +1,5 @@ > +# SPDX-License-Identifier: GPL-2.0-or-later > +# > +# Copyright (C) 2026 Yixun Lan <[email protected]> > + > +obj-y += dram.o > diff --git a/arch/riscv/cpu/k3/dram.c b/arch/riscv/cpu/k3/dram.c > new file mode 100644 > index 00000000000..e20d35dc1bf > --- /dev/null > +++ b/arch/riscv/cpu/k3/dram.c > @@ -0,0 +1,21 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +/* > + * Copyright (C) 2026 Yixun Lan <[email protected]> > + */ > + > +#include <fdtdec.h> > +#include <init.h> > +#include <linux/sizes.h> > +#include <asm/global_data.h> > + > +DECLARE_GLOBAL_DATA_PTR; > + > +int dram_init(void) > +{ > + return fdtdec_setup_mem_size_base(); > +} > + > +int dram_init_banksize(void) > +{ > + return fdtdec_setup_memory_banksize(); > +} > diff --git a/board/spacemit/k3/Kconfig b/board/spacemit/k3/Kconfig > new file mode 100644 > index 00000000000..1a63c73b6bb > --- /dev/null > +++ b/board/spacemit/k3/Kconfig > @@ -0,0 +1,30 @@ > +# SPDX-License-Identifier: GPL-2.0-or-later > +# > +# Copyright (C) 2026 Yixun Lan <[email protected]> > + > +if TARGET_SPACEMIT_K3 > + > +config SYS_BOARD > + default "k3" > + > +config SYS_VENDOR > + default "spacemit" > + > +config SYS_CPU > + default "k3" > + > +config SYS_CONFIG_NAME > + default "spacemit-k3" > + > +config TEXT_BASE > + default 0x102000000 > + > +config SPL_OPENSBI_LOAD_ADDR > + hex > + default 0x100000000 > + > +config BOARD_SPECIFIC_OPTIONS > + def_bool y > + select SPACEMIT_K3 > + > +endif > diff --git a/board/spacemit/k3/MAINTAINERS b/board/spacemit/k3/MAINTAINERS > new file mode 100644 > index 00000000000..34cf1ed4453 > --- /dev/null > +++ b/board/spacemit/k3/MAINTAINERS > @@ -0,0 +1,8 @@ > +SPACEMIT K3 > +M: Yixun Lan <[email protected]> > +S: Maintained > +F: arch/riscv/cpu/k3/ > +F: board/spacemit/k3/ > +F: configs/spacemit_k3_defconfig > +F: include/configs/k3.h -F: include/configs/k3.h +F: include/configs/spacemit-k3.h > +F: arch/riscv/dts/k3-u-boot.dtsi -F: arch/riscv/dts/k3-u-boot.dtsi +F: arch/riscv/dts/spacemit-k3-binman.dtsi +F: arch/riscv/dts/spacemit-k3-u-boot.dtsi Note aside that K1 dtsi are listed in source tree root MAINTAINERS, which is probably needing to be changed separately and follow the example of per-board like you are doing here for K3. We are missing something in per-board MAINTAINERS here for doc/board/spacemit/spacemit-pico-itx.rst and it could be added here or not, it is matching anyways by the source tree root MAINTAINERS on 'spacemit' search. Other modified files (with required dependency patches applied) for our reference: not applicable arch/riscv/Kconfig drivers/clk/spacemit/Kconfig drivers/clk/spacemit/Makefile drivers/clk/spacemit/clk-k3.c drivers/clk/spacemit/clk_common.h drivers/clk/spacemit/clk_mix.c drivers/clk/spacemit/clk_mix.h drivers/clk/spacemit/clk_pll.c drivers/clk/spacemit/clk_pll.h drivers/gpio/Kconfig drivers/gpio/spacemit_gpio.c not applicable drivers/reset/Kconfig not applicable drivers/reset/Makefile drivers/reset/spacemit/Kconfig drivers/reset/spacemit/Makefile drivers/reset/spacemit/reset-spacemit-common.c drivers/reset/spacemit/reset-spacemit-common.h drivers/reset/spacemit/reset-spacemit-k1.c drivers/reset/spacemit/reset-spacemit-k3.c include/soc/spacemit/k3-reset.h include/soc/spacemit/k3-syscon.h With the expectation that those drivers' patches are to be merged in-order before this K3 Pico-ITX series, I think this all makes good sense, and all dependency series will be covered by source tree root MAINTAINERS on 'spacemit' search. > diff --git a/include/configs/spacemit-k3.h b/include/configs/spacemit-k3.h > new file mode 100644 > index 00000000000..9dd545e2a3b > --- /dev/null > +++ b/include/configs/spacemit-k3.h > @@ -0,0 +1,13 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later */ > +/* > + * Copyright (C) 2026 Yixun Lan <[email protected]> > + */ > + > +#ifndef __SPACEMIT_K3_H > +#define __SPACEMIT_K3_H > + > +#define CFG_SYS_NS16550_IER 0x40 > + > +#define RISCV_SMODE_TIMER_FREQ 24000000 > + > +#endif /* __SPACEMIT_K3_H */ > Reviewed-by: E Shattow <[email protected]>
