U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Bring up secondary cores on Lichee Pi 4A
@ 2025-06-06  4:27 Yao Zi
  2025-06-06  4:28 ` [PATCH 1/5] riscv: aclint_ipi: Support T-Head C900 CLINT Yao Zi
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Yao Zi @ 2025-06-06  4:27 UTC (permalink / raw)
  To: Rick Chen, Leo, Wei Fu, Yixun Lan, Yao Zi, Maksim Kiselev
  Cc: u-boot, Han Gao, Han Gao

TH1520 ships four Xuantie C910 cores, but only one of them is
automatically brought up by hardware on coldboot. This series adds IPI
support with T-Head C900 CLINT, setup CPU features to prepare for SMP
operation, and finally bring the rest three cores up.

Booted with the series, Linux kernel correctly shows and makes use of
four available cores,

	[    0.042371] smp: Bringing up secondary CPUs ...
	[    0.052448] smp: Brought up 1 node, 4 CPUs

This depends on v1 of series "Convert Lichee Pi 4A to use S-Mode proper
U-Boot"[1] to function correctly.

[1]: https://lore.kernel.org/all/20250530094851.57198-1-ziyao@disroot.org/

Yao Zi (5):
  riscv: aclint_ipi: Support T-Head C900 CLINT
  riscv: cpu: th1520: Setup CPU feature CSRs in harts_early_init
  riscv: cpu: th1520: Add a routine to bring up secondary cores
  riscv: dts: th1520: Preserve CLINT node for SPL
  board: thead: licheepi4a: Bring up secondary cores in SPL

 arch/riscv/cpu/th1520/cpu.c              | 29 ++++++++-
 arch/riscv/cpu/th1520/spl.c              | 83 ++++++++++++++++++++++++
 arch/riscv/dts/th1520.dtsi               |  1 +
 arch/riscv/include/asm/arch-th1520/cpu.h |  1 +
 arch/riscv/lib/aclint_ipi.c              |  5 ++
 board/thead/th1520_lpi4a/spl.c           |  3 +
 6 files changed, 121 insertions(+), 1 deletion(-)

-- 
2.49.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/5] riscv: aclint_ipi: Support T-Head C900 CLINT
  2025-06-06  4:27 [PATCH 0/5] Bring up secondary cores on Lichee Pi 4A Yao Zi
@ 2025-06-06  4:28 ` Yao Zi
  2025-07-03  7:46   ` Leo Liang
  2025-06-06  4:28 ` [PATCH 2/5] riscv: cpu: th1520: Setup CPU feature CSRs in harts_early_init Yao Zi
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Yao Zi @ 2025-06-06  4:28 UTC (permalink / raw)
  To: Rick Chen, Leo, Wei Fu, Yixun Lan, Yao Zi, Maksim Kiselev
  Cc: u-boot, Han Gao, Han Gao

Although timer component of the CLINT isn't fully compatible with the
generic RISC-V ACLINT, the IPI component behaves the same.

As the CLINT doesn't have corresponding riscv_aclint_timer driver
available, let's try looking for a compatible SYSCON device directly
when no riscv_aclint_timer device could be found on IPI initialization.

Signed-off-by: Yao Zi <ziyao@disroot.org>
---
 arch/riscv/lib/aclint_ipi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/riscv/lib/aclint_ipi.c b/arch/riscv/lib/aclint_ipi.c
index dcd7e5e6b34..1c9a2d70301 100644
--- a/arch/riscv/lib/aclint_ipi.c
+++ b/arch/riscv/lib/aclint_ipi.c
@@ -29,6 +29,10 @@ int riscv_init_ipi(void)
 
 	ret = uclass_get_device_by_driver(UCLASS_TIMER,
 					  DM_DRIVER_GET(riscv_aclint_timer), &dev);
+	if (ret == -ENODEV)
+		ret = uclass_get_device_by_driver(UCLASS_SYSCON,
+						  DM_DRIVER_GET(riscv_aclint_swi), &dev);
+
 	if (ret)
 		return ret;
 
@@ -66,6 +70,7 @@ int riscv_get_ipi(int hart, int *pending)
 
 static const struct udevice_id riscv_aclint_swi_ids[] = {
 	{ .compatible = "riscv,aclint-mswi", .data = RISCV_SYSCON_ACLINT },
+	{ .compatible = "thead,c900-clint", .data = RISCV_SYSCON_ACLINT },
 	{ }
 };
 
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/5] riscv: cpu: th1520: Setup CPU feature CSRs in harts_early_init
  2025-06-06  4:27 [PATCH 0/5] Bring up secondary cores on Lichee Pi 4A Yao Zi
  2025-06-06  4:28 ` [PATCH 1/5] riscv: aclint_ipi: Support T-Head C900 CLINT Yao Zi
@ 2025-06-06  4:28 ` Yao Zi
  2025-07-03  8:01   ` Leo Liang
  2025-06-06  4:28 ` [PATCH 3/5] riscv: cpu: th1520: Add a routine to bring up secondary cores Yao Zi
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Yao Zi @ 2025-06-06  4:28 UTC (permalink / raw)
  To: Rick Chen, Leo, Wei Fu, Yixun Lan, Yao Zi, Maksim Kiselev
  Cc: u-boot, Han Gao, Han Gao

C910 cores integrated in TH1520 SoC provide various customized CSRs for
configuring core behavior, including cache coherency and timing, branch
predication, and clock gating for internal components.

This patch sets them up for efficient operation and satisfying
requirements of an SMP system.

Signed-off-by: Yao Zi <ziyao@disroot.org>
---
 arch/riscv/cpu/th1520/spl.c | 83 +++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/arch/riscv/cpu/th1520/spl.c b/arch/riscv/cpu/th1520/spl.c
index 362fe895f86..b95470485f6 100644
--- a/arch/riscv/cpu/th1520/spl.c
+++ b/arch/riscv/cpu/th1520/spl.c
@@ -4,6 +4,7 @@
  */
 #include <asm/arch/iopmp.h>
 #include <asm/io.h>
+#include <cpu_func.h>
 #include <dm.h>
 #include <linux/sizes.h>
 #include <log.h>
@@ -21,6 +22,52 @@ DECLARE_GLOBAL_DATA_PTR;
 #define  TH1520_SUBSYS_RST_VI_N		BIT(1)
 #define  TH1520_SUBSYS_RST_DSP_N	BIT(0)
 
+#define CSR_MXSTATUS			0x7c0
+#define  CSR_MXSTATUS_THEADISAEE	BIT(22)
+#define  CSR_MXSTATUS_MAEE		BIT(21)
+#define  CSR_MXSTATUS_CLINTEE		BIT(17)
+#define  CSR_MXSTATUS_UCME		BIT(16)
+#define  CSR_MXSTATUS_MM		BIT(15)
+#define CSR_MHCR			0x7c1
+#define  CSR_MHCR_WBR			BIT(8)
+#define  CSR_MHCR_BTB			BIT(6)
+#define  CSR_MHCR_BPE			BIT(5)
+#define  CSR_MHCR_RS			BIT(4)
+#define  CSR_MHCR_WB			BIT(3)
+#define  CSR_MHCR_WA			BIT(2)
+#define  CSR_MHCR_DE			BIT(1)
+#define  CSR_MHCR_IE			BIT(0)
+#define CSR_MCOR			0x7c2
+#define  CSR_MCOR_IBP_INV		BIT(18)
+#define  CSR_MCOR_BTB_INV		BIT(17)
+#define  CSR_MCOR_BHT_INV		BIT(16)
+#define  CSR_MCOR_CACHE_INV		BIT(4)
+#define CSR_MCCR2			0x7c3
+#define  CSR_MCCR2_TPRF			BIT(31)
+#define  CSR_MCCR2_IPRF(n)		((n) << 29)
+#define  CSR_MCCR2_TSETUP		BIT(25)
+#define  CSR_MCCR2_TLNTCY(n)		((n) << 22)
+#define  CSR_MCCR2_DSETUP		BIT(19)
+#define  CSR_MCCR2_DLNTCY(n)		((n) << 16)
+#define  CSR_MCCR2_L2EN			BIT(3)
+#define  CSR_MCCR2_RFE			BIT(0)
+#define CSR_MHINT			0x7c5
+#define  CSR_MHINT_FENCERW_BROAD_DIS	BIT(22)
+#define  CSR_MHINT_TLB_BRAOD_DIS	BIT(21)
+#define  CSR_MHINT_NSFE			BIT(18)
+#define  CSR_MHINT_L2_PREF_DIST(n)	((n) << 16)
+#define  CSR_MHINT_L2PLD		BIT(15)
+#define  CSR_MHINT_DCACHE_PREF_DIST(n)	((n) << 13)
+#define  CSR_MHINT_LPE			BIT(9)
+#define  CSR_MHINT_ICACHE_PREF		BIT(8)
+#define  CSR_MHINT_AMR			BIT(3)
+#define  CSR_MHINT_DCACHE_PREF		BIT(2)
+#define CSR_MHINT2			0x7cc
+#define  CSR_MHINT2_LOCAL_ICG_EN(n)	BIT((n) + 14)
+#define CSR_MHINT4			0x7ce
+#define CSR_MSMPR			0x7f3
+#define  CSR_MSMPR_SMPEN		BIT(0)
+
 int spl_dram_init(void)
 {
 	int ret;
@@ -77,6 +124,42 @@ void harts_early_init(void)
 {
 	int i;
 
+	/* Invalidate cache and buffer entries */
+	csr_write(CSR_MCOR, CSR_MCOR_IBP_INV | CSR_MCOR_BTB_INV |
+			    CSR_MCOR_BHT_INV | CSR_MCOR_CACHE_INV | 0x3);
+
+	/* Enable cache snooping */
+	csr_write(CSR_MSMPR, CSR_MSMPR_SMPEN);
+
+	/*
+	 * Configure and enable L2 cache,
+	 *	Enable tag/data RAM prefetch, both cost 2 cycles
+	 *	Prefetch 3 cache lines of instructions
+	 *	Enable read allocation
+	 */
+	csr_write(CSR_MCCR2, CSR_MCCR2_TPRF   | CSR_MCCR2_IPRF(3)	|
+			     CSR_MCCR2_TSETUP | CSR_MCCR2_TLNTCY(1)	|
+			     CSR_MCCR2_DSETUP | CSR_MCCR2_DLNTCY(1)	|
+			     CSR_MCCR2_L2EN   | CSR_MCCR2_RFE);
+	csr_write(CSR_MXSTATUS, CSR_MXSTATUS_THEADISAEE | CSR_MXSTATUS_MAEE |
+				CSR_MXSTATUS_CLINTEE    | CSR_MXSTATUS_UCME |
+				CSR_MXSTATUS_MM);
+	csr_write(CSR_MHINT, CSR_MHINT_FENCERW_BROAD_DIS	|
+			     CSR_MHINT_TLB_BRAOD_DIS		|
+			     CSR_MHINT_NSFE			|
+			     CSR_MHINT_L2_PREF_DIST(2)		|
+			     CSR_MHINT_L2PLD			|
+			     CSR_MHINT_DCACHE_PREF_DIST(3)	|
+			     CSR_MHINT_LPE			|
+			     CSR_MHINT_ICACHE_PREF		|
+			     CSR_MHINT_AMR			|
+			     CSR_MHINT_DCACHE_PREF);
+	csr_write(CSR_MHCR, CSR_MHCR_WBR | CSR_MHCR_BTB | CSR_MHCR_BPE |
+			    CSR_MHCR_RS  | CSR_MHCR_WB  | CSR_MHCR_WA | 0x3);
+	csr_write(CSR_MHINT2, CSR_MHINT2_LOCAL_ICG_EN(8)	|
+			      CSR_MHINT2_LOCAL_ICG_EN(3));
+	csr_write(CSR_MHINT4, 0x410);
+
 	/*
 	 * Set IOPMPs to the default attribute, allowing the application
 	 * processor to access various peripherals. Subsystem clocks should be
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 3/5] riscv: cpu: th1520: Add a routine to bring up secondary cores
  2025-06-06  4:27 [PATCH 0/5] Bring up secondary cores on Lichee Pi 4A Yao Zi
  2025-06-06  4:28 ` [PATCH 1/5] riscv: aclint_ipi: Support T-Head C900 CLINT Yao Zi
  2025-06-06  4:28 ` [PATCH 2/5] riscv: cpu: th1520: Setup CPU feature CSRs in harts_early_init Yao Zi
@ 2025-06-06  4:28 ` Yao Zi
  2025-07-03  8:06   ` Leo Liang
  2025-06-06  4:28 ` [PATCH 4/5] riscv: dts: th1520: Preserve CLINT node for SPL Yao Zi
  2025-06-06  4:28 ` [PATCH 5/5] board: thead: licheepi4a: Bring up secondary cores in SPL Yao Zi
  4 siblings, 1 reply; 11+ messages in thread
From: Yao Zi @ 2025-06-06  4:28 UTC (permalink / raw)
  To: Rick Chen, Leo, Wei Fu, Yixun Lan, Yao Zi, Maksim Kiselev
  Cc: u-boot, Han Gao, Han Gao

On coldboot, only HART 0 among the four HARTs of TH1520 is brought up by
hardware, and the remaining HARTs are in reset states, requiring manual
setup of reset address and deassertion to function normal. Introduce a
routine to do the work.

Signed-off-by: Yao Zi <ziyao@disroot.org>
---
 arch/riscv/cpu/th1520/cpu.c              | 29 +++++++++++++++++++++++-
 arch/riscv/include/asm/arch-th1520/cpu.h |  1 +
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/arch/riscv/cpu/th1520/cpu.c b/arch/riscv/cpu/th1520/cpu.c
index b83f1272c67..f60446fd772 100644
--- a/arch/riscv/cpu/th1520/cpu.c
+++ b/arch/riscv/cpu/th1520/cpu.c
@@ -9,8 +9,35 @@
 
 #include <asm/io.h>
 #include <cpu_func.h>
+#include <linux/bitops.h>
 
-#define TH1520_PMP_BASE		(void *)0xffdc020000
+#define TH1520_C910_RST			(void __iomem *)(0xffef014000 + 0x004)
+#define  TH1520_C910_CORE_RST_N(n)	BIT((n) + 1)
+#define TH1520_SYSCFG_AP_BASE		(void __iomem *)(0xffef018000)
+#define TH1520_SYSCFG_CORE_START_L(n)	(TH1520_SYSCFG_AP_BASE + 0x50 + 8 * (n))
+#define TH1520_SYSCFG_CORE_START_H(n)	(TH1520_SYSCFG_AP_BASE + 0x54 + 8 * (n))
+#define TH1520_PMP_BASE			(void *)0xffdc020000
+
+void th1520_kick_secondary_cores(void)
+{
+	int i;
+
+	/*
+	 * On coldboot, only HART 0 is brought up by hardware, and resets for
+	 * secondary cores are asserted. Set reset address of secondary cores
+	 * to the entry of SPL, then deassert the resets to bring them up.
+	 */
+	for (i = 1; i < 4; i++) {
+		writel(CONFIG_SPL_TEXT_BASE & 0xffffffff,
+		       TH1520_SYSCFG_CORE_START_L(i));
+		writel(CONFIG_SPL_TEXT_BASE >> 32,
+		       TH1520_SYSCFG_CORE_START_H(i));
+	}
+
+	setbits_le32(TH1520_C910_RST, TH1520_C910_CORE_RST_N(1) |
+				      TH1520_C910_CORE_RST_N(2) |
+				      TH1520_C910_CORE_RST_N(3));
+}
 
 void th1520_invalidate_pmp(void)
 {
diff --git a/arch/riscv/include/asm/arch-th1520/cpu.h b/arch/riscv/include/asm/arch-th1520/cpu.h
index 837f0b8d06b..e164e9ab979 100644
--- a/arch/riscv/include/asm/arch-th1520/cpu.h
+++ b/arch/riscv/include/asm/arch-th1520/cpu.h
@@ -5,5 +5,6 @@
 
 #ifndef _ASM_TH1520_CPU_H_
 #define _ASM_TH1520_CPU_H_
+void th1520_kick_secondary_cores(void);
 void th1520_invalidate_pmp(void);
 #endif /* _ASM_TH1520_CPU_H_ */
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 4/5] riscv: dts: th1520: Preserve CLINT node for SPL
  2025-06-06  4:27 [PATCH 0/5] Bring up secondary cores on Lichee Pi 4A Yao Zi
                   ` (2 preceding siblings ...)
  2025-06-06  4:28 ` [PATCH 3/5] riscv: cpu: th1520: Add a routine to bring up secondary cores Yao Zi
@ 2025-06-06  4:28 ` Yao Zi
  2025-07-03  8:09   ` Leo Liang
  2025-06-06  4:28 ` [PATCH 5/5] board: thead: licheepi4a: Bring up secondary cores in SPL Yao Zi
  4 siblings, 1 reply; 11+ messages in thread
From: Yao Zi @ 2025-06-06  4:28 UTC (permalink / raw)
  To: Rick Chen, Leo, Wei Fu, Yixun Lan, Yao Zi, Maksim Kiselev
  Cc: u-boot, Han Gao, Han Gao

Preserve CLINT node for SPL, whose IPI functionality is essential for
operation of a multi-core system.

Signed-off-by: Yao Zi <ziyao@disroot.org>
---
 arch/riscv/dts/th1520.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/riscv/dts/th1520.dtsi b/arch/riscv/dts/th1520.dtsi
index 28107a9f354..e773d2e6a80 100644
--- a/arch/riscv/dts/th1520.dtsi
+++ b/arch/riscv/dts/th1520.dtsi
@@ -151,6 +151,7 @@
 		clint: timer@ffdc000000 {
 			compatible = "thead,th1520-clint", "thead,c900-clint";
 			reg = <0xff 0xdc000000 0x0 0x00010000>;
+			bootph-pre-ram;
 			interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
 					      <&cpu1_intc 3>, <&cpu1_intc 7>,
 					      <&cpu2_intc 3>, <&cpu2_intc 7>,
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 5/5] board: thead: licheepi4a: Bring up secondary cores in SPL
  2025-06-06  4:27 [PATCH 0/5] Bring up secondary cores on Lichee Pi 4A Yao Zi
                   ` (3 preceding siblings ...)
  2025-06-06  4:28 ` [PATCH 4/5] riscv: dts: th1520: Preserve CLINT node for SPL Yao Zi
@ 2025-06-06  4:28 ` Yao Zi
  2025-07-03  8:11   ` Leo Liang
  4 siblings, 1 reply; 11+ messages in thread
From: Yao Zi @ 2025-06-06  4:28 UTC (permalink / raw)
  To: Rick Chen, Leo, Wei Fu, Yixun Lan, Yao Zi, Maksim Kiselev
  Cc: u-boot, Han Gao, Han Gao

Setup core information and bring secondary HARTs up for a functional
multi-core system.

Signed-off-by: Yao Zi <ziyao@disroot.org>
---
 board/thead/th1520_lpi4a/spl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/board/thead/th1520_lpi4a/spl.c b/board/thead/th1520_lpi4a/spl.c
index 25dfa387c36..d75fa6f3eff 100644
--- a/board/thead/th1520_lpi4a/spl.c
+++ b/board/thead/th1520_lpi4a/spl.c
@@ -39,6 +39,9 @@ void board_init_f(ulong dummy)
 	if (ret)
 		panic("failed to bind CPU: %d\n", ret);
 
+	riscv_cpu_setup();
+	th1520_kick_secondary_cores();
+
 	spl_dram_init();
 
 	icache_enable();
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/5] riscv: aclint_ipi: Support T-Head C900 CLINT
  2025-06-06  4:28 ` [PATCH 1/5] riscv: aclint_ipi: Support T-Head C900 CLINT Yao Zi
@ 2025-07-03  7:46   ` Leo Liang
  0 siblings, 0 replies; 11+ messages in thread
From: Leo Liang @ 2025-07-03  7:46 UTC (permalink / raw)
  To: Yao Zi
  Cc: Rick Chen, Wei Fu, Yixun Lan, Maksim Kiselev, u-boot, Han Gao,
	Han Gao

On Fri, Jun 06, 2025 at 04:28:00AM +0000, Yao Zi wrote:
> Although timer component of the CLINT isn't fully compatible with the
> generic RISC-V ACLINT, the IPI component behaves the same.
> 
> As the CLINT doesn't have corresponding riscv_aclint_timer driver
> available, let's try looking for a compatible SYSCON device directly
> when no riscv_aclint_timer device could be found on IPI initialization.
> 
> Signed-off-by: Yao Zi <ziyao@disroot.org>
> ---
>  arch/riscv/lib/aclint_ipi.c | 5 +++++
>  1 file changed, 5 insertions(+)

Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/5] riscv: cpu: th1520: Setup CPU feature CSRs in harts_early_init
  2025-06-06  4:28 ` [PATCH 2/5] riscv: cpu: th1520: Setup CPU feature CSRs in harts_early_init Yao Zi
@ 2025-07-03  8:01   ` Leo Liang
  0 siblings, 0 replies; 11+ messages in thread
From: Leo Liang @ 2025-07-03  8:01 UTC (permalink / raw)
  To: Yao Zi
  Cc: Rick Chen, Wei Fu, Yixun Lan, Maksim Kiselev, u-boot, Han Gao,
	Han Gao

On Fri, Jun 06, 2025 at 04:28:01AM +0000, Yao Zi wrote:
> C910 cores integrated in TH1520 SoC provide various customized CSRs for
> configuring core behavior, including cache coherency and timing, branch
> predication, and clock gating for internal components.
> 
> This patch sets them up for efficient operation and satisfying
> requirements of an SMP system.
> 
> Signed-off-by: Yao Zi <ziyao@disroot.org>
> ---
>  arch/riscv/cpu/th1520/spl.c | 83 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 83 insertions(+)

Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/5] riscv: cpu: th1520: Add a routine to bring up secondary cores
  2025-06-06  4:28 ` [PATCH 3/5] riscv: cpu: th1520: Add a routine to bring up secondary cores Yao Zi
@ 2025-07-03  8:06   ` Leo Liang
  0 siblings, 0 replies; 11+ messages in thread
From: Leo Liang @ 2025-07-03  8:06 UTC (permalink / raw)
  To: Yao Zi
  Cc: Rick Chen, Wei Fu, Yixun Lan, Maksim Kiselev, u-boot, Han Gao,
	Han Gao

On Fri, Jun 06, 2025 at 04:28:02AM +0000, Yao Zi wrote:
> On coldboot, only HART 0 among the four HARTs of TH1520 is brought up by
> hardware, and the remaining HARTs are in reset states, requiring manual
> setup of reset address and deassertion to function normal. Introduce a
> routine to do the work.
> 
> Signed-off-by: Yao Zi <ziyao@disroot.org>
> ---
>  arch/riscv/cpu/th1520/cpu.c              | 29 +++++++++++++++++++++++-
>  arch/riscv/include/asm/arch-th1520/cpu.h |  1 +
>  2 files changed, 29 insertions(+), 1 deletion(-)

Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 4/5] riscv: dts: th1520: Preserve CLINT node for SPL
  2025-06-06  4:28 ` [PATCH 4/5] riscv: dts: th1520: Preserve CLINT node for SPL Yao Zi
@ 2025-07-03  8:09   ` Leo Liang
  0 siblings, 0 replies; 11+ messages in thread
From: Leo Liang @ 2025-07-03  8:09 UTC (permalink / raw)
  To: Yao Zi
  Cc: Rick Chen, Wei Fu, Yixun Lan, Maksim Kiselev, u-boot, Han Gao,
	Han Gao

On Fri, Jun 06, 2025 at 04:28:03AM +0000, Yao Zi wrote:
> Preserve CLINT node for SPL, whose IPI functionality is essential for
> operation of a multi-core system.
> 
> Signed-off-by: Yao Zi <ziyao@disroot.org>
> ---
>  arch/riscv/dts/th1520.dtsi | 1 +
>  1 file changed, 1 insertion(+)

Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 5/5] board: thead: licheepi4a: Bring up secondary cores in SPL
  2025-06-06  4:28 ` [PATCH 5/5] board: thead: licheepi4a: Bring up secondary cores in SPL Yao Zi
@ 2025-07-03  8:11   ` Leo Liang
  0 siblings, 0 replies; 11+ messages in thread
From: Leo Liang @ 2025-07-03  8:11 UTC (permalink / raw)
  To: Yao Zi
  Cc: Rick Chen, Wei Fu, Yixun Lan, Maksim Kiselev, u-boot, Han Gao,
	Han Gao

On Fri, Jun 06, 2025 at 04:28:04AM +0000, Yao Zi wrote:
> Setup core information and bring secondary HARTs up for a functional
> multi-core system.
> 
> Signed-off-by: Yao Zi <ziyao@disroot.org>
> ---
>  board/thead/th1520_lpi4a/spl.c | 3 +++
>  1 file changed, 3 insertions(+)

Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-07-03  8:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-06  4:27 [PATCH 0/5] Bring up secondary cores on Lichee Pi 4A Yao Zi
2025-06-06  4:28 ` [PATCH 1/5] riscv: aclint_ipi: Support T-Head C900 CLINT Yao Zi
2025-07-03  7:46   ` Leo Liang
2025-06-06  4:28 ` [PATCH 2/5] riscv: cpu: th1520: Setup CPU feature CSRs in harts_early_init Yao Zi
2025-07-03  8:01   ` Leo Liang
2025-06-06  4:28 ` [PATCH 3/5] riscv: cpu: th1520: Add a routine to bring up secondary cores Yao Zi
2025-07-03  8:06   ` Leo Liang
2025-06-06  4:28 ` [PATCH 4/5] riscv: dts: th1520: Preserve CLINT node for SPL Yao Zi
2025-07-03  8:09   ` Leo Liang
2025-06-06  4:28 ` [PATCH 5/5] board: thead: licheepi4a: Bring up secondary cores in SPL Yao Zi
2025-07-03  8:11   ` Leo Liang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox