diff --git a/platform/kendryte/k210/config.mk b/platform/kendryte/k210/config.mk index f800a41f..512fc2ab 100644 --- a/platform/kendryte/k210/config.mk +++ b/platform/kendryte/k210/config.mk @@ -7,11 +7,8 @@ # SPDX-License-Identifier: BSD-2-Clause # -# Essential defines required by SBI platform -platform-cppflags-y+= -DPLAT_HART_COUNT=2 -platform-cppflags-y+= -DPLAT_HART_STACK_SIZE=4096 - # Compiler flags +platform-cppflags-y = platform-cflags-y =-mabi=lp64 -march=rv64imafdc -mcmodel=medany platform-asflags-y =-mabi=lp64 -march=rv64imafdc -mcmodel=medany platform-ldflags-y = diff --git a/platform/kendryte/k210/platform.c b/platform/kendryte/k210/platform.c index 4ef1a249..226cb775 100644 --- a/platform/kendryte/k210/platform.c +++ b/platform/kendryte/k210/platform.c @@ -38,7 +38,7 @@ static char k210_console_getc(void) static int k210_cold_irqchip_init(void) { return plic_cold_irqchip_init(PLIC_BASE_ADDR, PLIC_NUM_SOURCES, - PLAT_HART_COUNT); + K210_HART_COUNT); } static int k210_warm_irqchip_init(u32 core_id) @@ -50,12 +50,12 @@ static int k210_warm_irqchip_init(u32 core_id) static int k210_cold_ipi_init(void) { - return clint_cold_ipi_init(CLINT_BASE_ADDR, PLAT_HART_COUNT); + return clint_cold_ipi_init(CLINT_BASE_ADDR, K210_HART_COUNT); } static int k210_cold_timer_init(void) { - return clint_cold_timer_init(CLINT_BASE_ADDR, PLAT_HART_COUNT); + return clint_cold_timer_init(CLINT_BASE_ADDR, K210_HART_COUNT); } static int k210_system_reboot(u32 type) @@ -79,8 +79,8 @@ struct sbi_platform platform = { .name = "Kendryte K210", .features = SBI_PLATFORM_HAS_MMIO_TIMER_VALUE, - .hart_count = PLAT_HART_COUNT, - .hart_stack_size = PLAT_HART_STACK_SIZE, + .hart_count = K210_HART_COUNT, + .hart_stack_size = K210_HART_STACK_SIZE, .disabled_hart_mask = 0, .console_init = k210_console_init, diff --git a/platform/kendryte/k210/platform.h b/platform/kendryte/k210/platform.h index 6b520cf7..ddfdf15b 100644 --- a/platform/kendryte/k210/platform.h +++ b/platform/kendryte/k210/platform.h @@ -18,12 +18,15 @@ #include +#define K210_HART_COUNT 2 +#define K210_HART_STACK_SIZE 4096 + /* Register base address */ /* Under Coreplex */ #define CLINT_BASE_ADDR (0x02000000U) #define PLIC_BASE_ADDR (0x0C000000U) -#define PLIC_NUM_CORES (PLAT_HART_COUNT) +#define PLIC_NUM_CORES (K210_HART_COUNT) /* Under TileLink */ #define GPIOHS_BASE_ADDR (0x38001000U) diff --git a/platform/qemu/sifive_u/config.mk b/platform/qemu/sifive_u/config.mk index c2668a8f..630098e5 100644 --- a/platform/qemu/sifive_u/config.mk +++ b/platform/qemu/sifive_u/config.mk @@ -7,11 +7,8 @@ # SPDX-License-Identifier: BSD-2-Clause # -# Essential defines required by SBI platform -platform-cppflags-y+= -DPLAT_HART_COUNT=1 -platform-cppflags-y+= -DPLAT_HART_STACK_SIZE=8192 - # Compiler flags +platform-cppflags-y = platform-cflags-y =-mabi=lp64 -march=rv64imafdc -mcmodel=medany platform-asflags-y =-mabi=lp64 -march=rv64imafdc -mcmodel=medany platform-ldflags-y = diff --git a/platform/qemu/sifive_u/platform.c b/platform/qemu/sifive_u/platform.c index c2dcafc8..f593323a 100644 --- a/platform/qemu/sifive_u/platform.c +++ b/platform/qemu/sifive_u/platform.c @@ -14,6 +14,9 @@ #include #include +#define SIFIVE_U_HART_COUNT 1 +#define SIFIVE_U_HART_STACK_SIZE 8192 + #define SIFIVE_U_SYS_CLK 1000000000 #define SIFIVE_U_PERIPH_CLK (SIFIVE_U_SYS_CLK / 2) @@ -31,7 +34,7 @@ static int sifive_u_cold_final_init(void) u32 i; void *fdt = sbi_scratch_thishart_arg1_ptr(); - for (i = 0; i < PLAT_HART_COUNT; i++) + for (i = 0; i < SIFIVE_U_HART_COUNT; i++) plic_fdt_fixup(fdt, "riscv,plic0", 2 * i); return 0; @@ -71,7 +74,7 @@ static int sifive_u_cold_irqchip_init(void) { return plic_cold_irqchip_init(SIFIVE_U_PLIC_ADDR, SIFIVE_U_PLIC_NUM_SOURCES, - PLAT_HART_COUNT); + SIFIVE_U_HART_COUNT); } static int sifive_u_warm_irqchip_init(u32 target_hart) @@ -84,13 +87,13 @@ static int sifive_u_warm_irqchip_init(u32 target_hart) static int sifive_u_cold_ipi_init(void) { return clint_cold_ipi_init(SIFIVE_U_CLINT_ADDR, - PLAT_HART_COUNT); + SIFIVE_U_HART_COUNT); } static int sifive_u_cold_timer_init(void) { return clint_cold_timer_init(SIFIVE_U_CLINT_ADDR, - PLAT_HART_COUNT); + SIFIVE_U_HART_COUNT); } static int sifive_u_system_down(u32 type) @@ -102,8 +105,8 @@ static int sifive_u_system_down(u32 type) struct sbi_platform platform = { .name = "QEMU SiFive Unleashed", .features = SBI_PLATFORM_DEFAULT_FEATURES, - .hart_count = PLAT_HART_COUNT, - .hart_stack_size = PLAT_HART_STACK_SIZE, + .hart_count = SIFIVE_U_HART_COUNT, + .hart_stack_size = SIFIVE_U_HART_STACK_SIZE, .disabled_hart_mask = 0, .pmp_region_count = sifive_u_pmp_region_count, .pmp_region_info = sifive_u_pmp_region_info, diff --git a/platform/qemu/virt/config.mk b/platform/qemu/virt/config.mk index 467b0576..927422c1 100644 --- a/platform/qemu/virt/config.mk +++ b/platform/qemu/virt/config.mk @@ -7,11 +7,8 @@ # SPDX-License-Identifier: BSD-2-Clause # -# Essential defines required by SBI platform -platform-cppflags-y+= -DPLAT_HART_COUNT=8 -platform-cppflags-y+= -DPLAT_HART_STACK_SIZE=8192 - # Compiler flags +platform-cppflags-y = platform-cflags-y =-mabi=lp64 -march=rv64imafdc -mcmodel=medany platform-asflags-y =-mabi=lp64 -march=rv64imafdc -mcmodel=medany platform-ldflags-y = diff --git a/platform/qemu/virt/platform.c b/platform/qemu/virt/platform.c index 7b82e4e2..98357cfc 100644 --- a/platform/qemu/virt/platform.c +++ b/platform/qemu/virt/platform.c @@ -14,6 +14,9 @@ #include #include +#define VIRT_HART_COUNT 8 +#define VIRT_HART_STACK_SIZE 8192 + #define VIRT_TEST_ADDR 0x100000 #define VIRT_CLINT_ADDR 0x2000000 @@ -31,7 +34,7 @@ static int virt_cold_final_init(void) u32 i; void *fdt = sbi_scratch_thishart_arg1_ptr(); - for (i = 0; i < PLAT_HART_COUNT; i++) + for (i = 0; i < VIRT_HART_COUNT; i++) plic_fdt_fixup(fdt, "riscv,plic0", 2 * i); return 0; @@ -72,7 +75,7 @@ static int virt_cold_irqchip_init(void) { return plic_cold_irqchip_init(VIRT_PLIC_ADDR, VIRT_PLIC_NUM_SOURCES, - PLAT_HART_COUNT); + VIRT_HART_COUNT); } static int virt_warm_irqchip_init(u32 target_hart) @@ -85,13 +88,13 @@ static int virt_warm_irqchip_init(u32 target_hart) static int virt_cold_ipi_init(void) { return clint_cold_ipi_init(VIRT_CLINT_ADDR, - PLAT_HART_COUNT); + VIRT_HART_COUNT); } static int virt_cold_timer_init(void) { return clint_cold_timer_init(VIRT_CLINT_ADDR, - PLAT_HART_COUNT); + VIRT_HART_COUNT); } static int virt_system_down(u32 type) @@ -103,8 +106,8 @@ static int virt_system_down(u32 type) struct sbi_platform platform = { .name = "QEMU Virt Machine", .features = SBI_PLATFORM_DEFAULT_FEATURES, - .hart_count = PLAT_HART_COUNT, - .hart_stack_size = PLAT_HART_STACK_SIZE, + .hart_count = VIRT_HART_COUNT, + .hart_stack_size = VIRT_HART_STACK_SIZE, .disabled_hart_mask = 0, .pmp_region_count = virt_pmp_region_count, .pmp_region_info = virt_pmp_region_info, diff --git a/platform/sifive/hifive_u540/config.mk b/platform/sifive/hifive_u540/config.mk index ecbf88c3..630098e5 100644 --- a/platform/sifive/hifive_u540/config.mk +++ b/platform/sifive/hifive_u540/config.mk @@ -7,11 +7,8 @@ # SPDX-License-Identifier: BSD-2-Clause # -# Essential defines required by SBI platform -platform-cppflags-y+= -DPLAT_HART_COUNT=5 -platform-cppflags-y+= -DPLAT_HART_STACK_SIZE=8192 - # Compiler flags +platform-cppflags-y = platform-cflags-y =-mabi=lp64 -march=rv64imafdc -mcmodel=medany platform-asflags-y =-mabi=lp64 -march=rv64imafdc -mcmodel=medany platform-ldflags-y = diff --git a/platform/sifive/hifive_u540/platform.c b/platform/sifive/hifive_u540/platform.c index 395ad4ed..1e600a3e 100644 --- a/platform/sifive/hifive_u540/platform.c +++ b/platform/sifive/hifive_u540/platform.c @@ -15,6 +15,9 @@ #include #include +#define SIFIVE_U_HART_COUNT 5 +#define SIFIVE_U_HART_STACK_SIZE 8192 + #define SIFIVE_U_SYS_CLK 1000000000 #define SIFIVE_U_CLINT_ADDR 0x2000000 @@ -41,7 +44,7 @@ static int sifive_u_cold_final_init(void) void *fdt = sbi_scratch_thishart_arg1_ptr(); plic_fdt_fixup(fdt, "riscv,plic0", 0); - for (i = 1; i < PLAT_HART_COUNT; i++) + for (i = 1; i < SIFIVE_U_HART_COUNT; i++) plic_fdt_fixup(fdt, "riscv,plic0", 2 * i - 1); return 0; @@ -91,7 +94,7 @@ static int sifive_u_cold_irqchip_init(void) { return plic_cold_irqchip_init(SIFIVE_U_PLIC_ADDR, SIFIVE_U_PLIC_NUM_SOURCES, - PLAT_HART_COUNT); + SIFIVE_U_HART_COUNT); } static int sifive_u_warm_irqchip_init(u32 target_hart) @@ -104,13 +107,13 @@ static int sifive_u_warm_irqchip_init(u32 target_hart) static int sifive_u_cold_ipi_init(void) { return clint_cold_ipi_init(SIFIVE_U_CLINT_ADDR, - PLAT_HART_COUNT); + SIFIVE_U_HART_COUNT); } static int sifive_u_cold_timer_init(void) { return clint_cold_timer_init(SIFIVE_U_CLINT_ADDR, - PLAT_HART_COUNT); + SIFIVE_U_HART_COUNT); } static int sifive_u_system_down(u32 type) @@ -122,8 +125,8 @@ static int sifive_u_system_down(u32 type) struct sbi_platform platform = { .name = "SiFive HiFive U540", .features = SBI_PLATFORM_DEFAULT_FEATURES, - .hart_count = PLAT_HART_COUNT, - .hart_stack_size = PLAT_HART_STACK_SIZE, + .hart_count = SIFIVE_U_HART_COUNT, + .hart_stack_size = SIFIVE_U_HART_STACK_SIZE, .disabled_hart_mask = ~(1 << SIFIVE_U_HARITD_ENABLED), .pmp_region_count = sifive_u_pmp_region_count, .pmp_region_info = sifive_u_pmp_region_info,