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
> 

Reply via email to