* [PATCH 1/2] riscv: andes_plicsw: Fix IPI during OpenSBI invocation
@ 2023-07-04 11:13 Yu Chien Peter Lin
2023-07-04 11:13 ` [PATCH 2/2] board: ae350: Add missing env variables for booti Yu Chien Peter Lin
2023-07-05 2:09 ` [PATCH 1/2] riscv: andes_plicsw: Fix IPI during OpenSBI invocation Leo Liang
0 siblings, 2 replies; 4+ messages in thread
From: Yu Chien Peter Lin @ 2023-07-04 11:13 UTC (permalink / raw)
To: u-boot; +Cc: ycliang, Yu Chien Peter Lin
On some AE350 boards, we need to explicitly initialize the priority
registers to a non-zero value so the boot hart can instruct secondary
harts to jump to OpenSBI.
This patch also updates the information about PLICSW.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
---
arch/riscv/lib/andes_plicsw.c | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/arch/riscv/lib/andes_plicsw.c b/arch/riscv/lib/andes_plicsw.c
index 324eb445aaa..75184080890 100644
--- a/arch/riscv/lib/andes_plicsw.c
+++ b/arch/riscv/lib/andes_plicsw.c
@@ -2,9 +2,10 @@
/*
* Copyright (C) 2019, Rick Chen <rick@andestech.com>
*
- * U-Boot syscon driver for Andes's Platform Level Interrupt Controller (PLIC).
- * The PLIC block holds memory-mapped claim and pending registers
- * associated with software interrupt.
+ * U-Boot syscon driver for Andes' PLICSW
+ * The PLICSW block is an Andes-specific design for software interrupts,
+ * contains memory-mapped priority, enable, claim and pending registers
+ * similar to RISC-V PLIC.
*/
#include <common.h>
@@ -26,9 +27,13 @@
#define ENABLE_REG(base, hart) ((ulong)(base) + 0x2000 + (hart) * 0x80)
/* claim register */
#define CLAIM_REG(base, hart) ((ulong)(base) + 0x200004 + (hart) * 0x1000)
+/* priority register */
+#define PRIORITY_REG(base) ((ulong)(base) + PLICSW_PRIORITY_BASE)
#define ENABLE_HART_IPI (0x01010101)
#define SEND_IPI_TO_HART(hart) (0x1 << (hart))
+#define PLICSW_PRIORITY_BASE 0x4
+#define PLICSW_INTERRUPT_PER_HART 0x8
DECLARE_GLOBAL_DATA_PTR;
@@ -43,9 +48,21 @@ static int enable_ipi(int hart)
return 0;
}
+static void init_priority_ipi(int hart_num)
+{
+ uint32_t *priority = (void *)PRIORITY_REG(gd->arch.plicsw);
+
+ for (int i = 0; i < hart_num * PLICSW_INTERRUPT_PER_HART; i++) {
+ writel(1, &priority[i]);
+ }
+
+ return;
+}
+
int riscv_init_ipi(void)
{
int ret;
+ int hart_num = 0;
long *base = syscon_get_first_range(RISCV_SYSCON_PLICSW);
ofnode node;
struct udevice *dev;
@@ -79,8 +96,10 @@ int riscv_init_ipi(void)
ret = ofnode_read_u32(node, "reg", ®);
if (ret == 0)
enable_ipi(reg);
+ hart_num++;
}
+ init_priority_ipi(hart_num);
return 0;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 2/2] board: ae350: Add missing env variables for booti
2023-07-04 11:13 [PATCH 1/2] riscv: andes_plicsw: Fix IPI during OpenSBI invocation Yu Chien Peter Lin
@ 2023-07-04 11:13 ` Yu Chien Peter Lin
2023-07-05 2:10 ` Leo Liang
2023-07-05 2:09 ` [PATCH 1/2] riscv: andes_plicsw: Fix IPI during OpenSBI invocation Leo Liang
1 sibling, 1 reply; 4+ messages in thread
From: Yu Chien Peter Lin @ 2023-07-04 11:13 UTC (permalink / raw)
To: u-boot; +Cc: ycliang, Yu Chien Peter Lin
The 'booti' command is unable to boot Image.gz due to the absence
of required environment variables 'kernel_comp_addr_r' and
'kernel_comp_size'.
This commit adds these variables and reorganizes the memory layout
to prevent any overlap between binaries and files.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
---
include/configs/ae350.h | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/include/configs/ae350.h b/include/configs/ae350.h
index b566ecf296f..23e4801379d 100644
--- a/include/configs/ae350.h
+++ b/include/configs/ae350.h
@@ -83,11 +83,15 @@
#include <config_distro_bootcmd.h>
#define CFG_EXTRA_ENV_SETTINGS \
- "kernel_addr_r=0x00080000\0" \
- "pxefile_addr_r=0x01f00000\0" \
- "scriptaddr=0x01f00000\0" \
- "fdt_addr_r=0x02000000\0" \
- "ramdisk_addr_r=0x02800000\0" \
+ "fdt_high=0xffffffffffffffff\0" \
+ "initrd_high=0xffffffffffffffff\0" \
+ "kernel_addr_r=0x00600000\0" \
+ "kernel_comp_addr_r=0x04600000\0" \
+ "kernel_comp_size=0x04000000\0" \
+ "pxefile_addr_r=0x08600000\0" \
+ "scriptaddr=0x08700000\0" \
+ "fdt_addr_r=0x08800000\0" \
+ "ramdisk_addr_r=0x08900000\0" \
BOOTENV
#endif /* __CONFIG_H */
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] board: ae350: Add missing env variables for booti
2023-07-04 11:13 ` [PATCH 2/2] board: ae350: Add missing env variables for booti Yu Chien Peter Lin
@ 2023-07-05 2:10 ` Leo Liang
0 siblings, 0 replies; 4+ messages in thread
From: Leo Liang @ 2023-07-05 2:10 UTC (permalink / raw)
To: Yu Chien Peter Lin; +Cc: u-boot
On Tue, Jul 04, 2023 at 07:13:21PM +0800, Yu Chien Peter Lin wrote:
> The 'booti' command is unable to boot Image.gz due to the absence
> of required environment variables 'kernel_comp_addr_r' and
> 'kernel_comp_size'.
>
> This commit adds these variables and reorganizes the memory layout
> to prevent any overlap between binaries and files.
>
> Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> ---
> include/configs/ae350.h | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] riscv: andes_plicsw: Fix IPI during OpenSBI invocation
2023-07-04 11:13 [PATCH 1/2] riscv: andes_plicsw: Fix IPI during OpenSBI invocation Yu Chien Peter Lin
2023-07-04 11:13 ` [PATCH 2/2] board: ae350: Add missing env variables for booti Yu Chien Peter Lin
@ 2023-07-05 2:09 ` Leo Liang
1 sibling, 0 replies; 4+ messages in thread
From: Leo Liang @ 2023-07-05 2:09 UTC (permalink / raw)
To: Yu Chien Peter Lin; +Cc: u-boot
On Tue, Jul 04, 2023 at 07:13:20PM +0800, Yu Chien Peter Lin wrote:
> On some AE350 boards, we need to explicitly initialize the priority
> registers to a non-zero value so the boot hart can instruct secondary
> harts to jump to OpenSBI.
>
> This patch also updates the information about PLICSW.
>
> Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> ---
> arch/riscv/lib/andes_plicsw.c | 25 ++++++++++++++++++++++---
> 1 file changed, 22 insertions(+), 3 deletions(-)
>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-07-05 2:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-04 11:13 [PATCH 1/2] riscv: andes_plicsw: Fix IPI during OpenSBI invocation Yu Chien Peter Lin
2023-07-04 11:13 ` [PATCH 2/2] board: ae350: Add missing env variables for booti Yu Chien Peter Lin
2023-07-05 2:10 ` Leo Liang
2023-07-05 2:09 ` [PATCH 1/2] riscv: andes_plicsw: Fix IPI during OpenSBI invocation Leo Liang
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.