From: Yixun Lan <dlan@kernel.org>
To: 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>,
Yixun Lan <dlan@kernel.org>
Subject: [PATCH v2 1/4] board: spacemit: add SpacemiT K3 Pico-ITX
Date: Fri, 02 Oct 2026 01:03:11 +0000 [thread overview]
Message-ID: <20261002-00-basic-spacemit-k3-v2-1-fd6779a0317c@kernel.org> (raw)
In-Reply-To: <20261002-00-basic-spacemit-k3-v2-0-fd6779a0317c@kernel.org>
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/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..b0e423d829c
--- /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"
+
+config SYS_VENDOR
+ default "spacemit"
+
+config SYS_CPU
+ default "k3"
+
+config SYS_CONFIG_NAME
+ default "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 <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/k3.h b/include/configs/k3.h
new file mode 100644
index 00000000000..83e4945d2b3
--- /dev/null
+++ b/include/configs/k3.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (C) 2026 Yixun Lan <dlan@kernel.org>
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#define CFG_SYS_NS16550_IER 0x40
+
+#define RISCV_SMODE_TIMER_FREQ 24000000
+
+#endif /* __CONFIG_H */
--
2.56.0
next prev parent reply other threads:[~2026-10-02 1:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-02 1:03 [PATCH v2 0/4] riscv: spacemit: Add support for K3 Pico-ITX board Yixun Lan
2026-10-02 1:03 ` Yixun Lan [this message]
2026-10-02 7:02 ` [PATCH v2 1/4] board: spacemit: add SpacemiT K3 Pico-ITX E Shattow
2026-10-02 11:43 ` Yixun Lan
2026-10-02 1:03 ` [PATCH v2 2/4] riscv: dts: spacemit: k3: add binman node Yixun Lan
2026-10-02 3:20 ` E Shattow
2026-10-02 1:03 ` [PATCH v2 3/4] configs: spacemit: Add K3 default configuration Yixun Lan
2026-10-02 1:03 ` [PATCH v2 4/4] doc: spacemit: k3: Add Pico-ITX board 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=20261002-00-basic-spacemit-k3-v2-1-fd6779a0317c@kernel.org \
--to=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.