Hi Yixun, On 10/8/26 23:26, Yixun Lan wrote: > Hi E Shattow, > > On 03:51 Wed 07 Oct , E Shattow wrote: >> 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! >> > Ok, I will no send a new version, since it's really minor changes > >> 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. >> > Ok, I will do some adjustment for the file name, maybe only keep > the K3 specific files.. > > But, I'd rather not bother to add all the files which already covered by > 'spacemit' keyword imply with the top MAINTAINERS file, it would simplify > the file list a bit.. >
Acknowledged, I agree, and thanks. -E >>> 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]> > Thanks for the review >
