From: E Shattow <e@freeshell.de>
To: Yixun Lan <dlan@kernel.org>, u-boot@lists.u-boot-project.org
Cc: Yao Zi <me@ziyao.cc>, Tim Ouyang <tim609@andestech.com>,
Leo Liang <leo.liang@sifive.com>, Tom Rini <trini@konsulko.com>,
Michal Simek <michal.simek@amd.com>,
Raymond Mao <raymond.mao@riscstar.com>,
Hiago De Franco <hfranco@baylibre.com>,
Junhui Liu <junhui.liu@pigmoral.tech>
Subject: Re: [PATCH v3 1/4] board: spacemit: add SpacemiT K3 Pico-ITX
Date: Sat, 3 Oct 2026 03:02:15 -0700 [thread overview]
Message-ID: <b8a9bb83-7839-4833-8750-1ca55e318f03@freeshell.de> (raw)
In-Reply-To: <20261003-00-basic-spacemit-k3-v3-1-dea68cd1bd7d@kernel.org>
Hi Yixun,
On 10/2/26 17:34, 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.
>
> Signed-off-by: Yixun Lan <dlan@kernel.org>
> ---
> 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 <dlan@kernel.org>
> +
> +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 <dlan@kernel.org>
> +
> +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 <dlan@kernel.org>
> + */
> +
> +#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 <dlan@kernel.org>
> +
> +if TARGET_SPACEMIT_K3
> +
> +config SYS_BOARD
> + default "k3"
Let's arbitrarily change user-facing SYS_BOARD to "spacemit_k3" stem of
u-boot config filename "spacemit_k3_defconfig":
+config SYS_BOARD
- default "k3"
+ default "spacemit_k3"
The use of SYS_BOARD is compiled-in as various runtime outputs e.g.
SMBIOS data structure. I think "spacemit_k3" is not a very interesting
or descriptive name to communicate all the boards that may be supported,
but it is better for a user to see this defconfig filename stem than
simply "k3" as the board name. I do not have any better suggestion
because it is a compile-time substitution and board selection is likely
to be at runtime.
> +
> +config SYS_VENDOR
> + default "spacemit"
> +
> +config SYS_CPU
> + default "k3"
> +
> +config SYS_CONFIG_NAME
> + default "spacemit-k3"
> +
Looks good, thanks for picking up that rename.
> +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 <dlan@kernel.org>
> +S: Maintained
> +F: arch/riscv/cpu/k3/
> +F: board/spacemit/k3/
> +F: configs/spacemit_k3_defconfig
> +F: include/configs/k3.h
> +F: arch/riscv/dts/k3-u-boot.dtsi
> 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 <dlan@kernel.org>
> + */
> +
> +#ifndef __SPACEMIT_K3_H
> +#define __SPACEMIT_K3_H
> +
> +#define CFG_SYS_NS16550_IER 0x40
> +
> +#define RISCV_SMODE_TIMER_FREQ 24000000
> +
> +#endif /* __SPACEMIT_K3_H */
>
With that, looks good to me.
Reviewed-by: E Shattow <e@freeshell.de>
next prev parent reply other threads:[~2026-10-03 10:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-03 0:34 [PATCH v3 0/4] riscv: spacemit: Add support for K3 Pico-ITX board Yixun Lan
2026-10-03 0:34 ` [PATCH v3 1/4] board: spacemit: add SpacemiT K3 Pico-ITX Yixun Lan
2026-10-03 10:02 ` E Shattow [this message]
2026-10-03 11:08 ` Yixun Lan
2026-10-03 11:18 ` E Shattow
2026-10-03 0:34 ` [PATCH v3 2/4] riscv: dts: spacemit: k3: add binman node Yixun Lan
2026-10-03 7:49 ` E Shattow
2026-10-03 10:14 ` Yixun Lan
2026-10-03 0:34 ` [PATCH v3 3/4] configs: spacemit: Add K3 default configuration Yixun Lan
2026-10-03 8:04 ` E Shattow
2026-10-03 0:34 ` [PATCH v3 4/4] doc: spacemit: k3: Add Pico-ITX board Yixun Lan
2026-10-03 12:43 ` E Shattow
2026-10-04 1:39 ` Yixun Lan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b8a9bb83-7839-4833-8750-1ca55e318f03@freeshell.de \
--to=e@freeshell.de \
--cc=dlan@kernel.org \
--cc=hfranco@baylibre.com \
--cc=junhui.liu@pigmoral.tech \
--cc=leo.liang@sifive.com \
--cc=me@ziyao.cc \
--cc=michal.simek@amd.com \
--cc=raymond.mao@riscstar.com \
--cc=tim609@andestech.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.u-boot-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.