platform: Use one unified per-HART stack size macro for all platforms

As of today all platforms use 8KB of per-HART stack hence there is
no need for each platform to define its own macro or use the magic
number. Create one macro for all platforms. Platform still can use
its own version if needed.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
Bin Meng
2020-03-12 22:39:54 -07:00
committed by Anup Patel
parent 2343efd040
commit 72a0628c7e
12 changed files with 11 additions and 14 deletions

View File

@@ -161,6 +161,9 @@ struct sbi_platform_operations {
struct sbi_trap_info *out_trap); struct sbi_trap_info *out_trap);
} __packed; } __packed;
/** Platform default per-HART stack size for exception/interrupt handling */
#define SBI_PLATFORM_DEFAULT_HART_STACK_SIZE 8192
/** Representation of a platform */ /** Representation of a platform */
struct sbi_platform { struct sbi_platform {
/** /**

View File

@@ -186,6 +186,6 @@ const struct sbi_platform platform = {
.name = "Andes AE350", .name = "Andes AE350",
.features = SBI_PLATFORM_DEFAULT_FEATURES, .features = SBI_PLATFORM_DEFAULT_FEATURES,
.hart_count = AE350_HART_COUNT, .hart_count = AE350_HART_COUNT,
.hart_stack_size = AE350_HART_STACK_SIZE, .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
.platform_ops_addr = (unsigned long)&platform_ops .platform_ops_addr = (unsigned long)&platform_ops
}; };

View File

@@ -12,7 +12,6 @@
#define _AE350_PLATFORM_H_ #define _AE350_PLATFORM_H_
#define AE350_HART_COUNT 4 #define AE350_HART_COUNT 4
#define AE350_HART_STACK_SIZE 8192
#define AE350_PLIC_ADDR 0xe4000000 #define AE350_PLIC_ADDR 0xe4000000
#define AE350_PLIC_NUM_SOURCES 71 #define AE350_PLIC_NUM_SOURCES 71

View File

@@ -201,6 +201,6 @@ const struct sbi_platform platform = {
.name = "ARIANE RISC-V", .name = "ARIANE RISC-V",
.features = SBI_ARIANE_FEATURES, .features = SBI_ARIANE_FEATURES,
.hart_count = ARIANE_HART_COUNT, .hart_count = ARIANE_HART_COUNT,
.hart_stack_size = 8192, .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
.platform_ops_addr = (unsigned long)&platform_ops .platform_ops_addr = (unsigned long)&platform_ops
}; };

View File

@@ -138,6 +138,6 @@ const struct sbi_platform platform = {
.name = "Kendryte K210", .name = "Kendryte K210",
.features = SBI_PLATFORM_HAS_TIMER_VALUE, .features = SBI_PLATFORM_HAS_TIMER_VALUE,
.hart_count = K210_HART_COUNT, .hart_count = K210_HART_COUNT,
.hart_stack_size = K210_HART_STACK_SIZE, .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
.platform_ops_addr = (unsigned long)&platform_ops .platform_ops_addr = (unsigned long)&platform_ops
}; };

View File

@@ -12,7 +12,6 @@
#include <sbi/riscv_io.h> #include <sbi/riscv_io.h>
#define K210_HART_COUNT 2 #define K210_HART_COUNT 2
#define K210_HART_STACK_SIZE 8192
#define K210_UART_BAUDRATE 115200 #define K210_UART_BAUDRATE 115200

View File

@@ -21,7 +21,6 @@
/* clang-format off */ /* clang-format off */
#define VIRT_HART_COUNT 8 #define VIRT_HART_COUNT 8
#define VIRT_HART_STACK_SIZE 8192
#define VIRT_TEST_ADDR 0x100000 #define VIRT_TEST_ADDR 0x100000
#define VIRT_TEST_FINISHER_FAIL 0x3333 #define VIRT_TEST_FINISHER_FAIL 0x3333
@@ -159,6 +158,6 @@ const struct sbi_platform platform = {
.name = "QEMU Virt Machine", .name = "QEMU Virt Machine",
.features = SBI_PLATFORM_DEFAULT_FEATURES, .features = SBI_PLATFORM_DEFAULT_FEATURES,
.hart_count = VIRT_HART_COUNT, .hart_count = VIRT_HART_COUNT,
.hart_stack_size = VIRT_HART_STACK_SIZE, .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
.platform_ops_addr = (unsigned long)&platform_ops .platform_ops_addr = (unsigned long)&platform_ops
}; };

View File

@@ -22,7 +22,6 @@
/* clang-format off */ /* clang-format off */
#define FU540_HART_COUNT 5 #define FU540_HART_COUNT 5
#define FU540_HART_STACK_SIZE 8192
#define FU540_SYS_CLK 1000000000 #define FU540_SYS_CLK 1000000000
@@ -232,6 +231,6 @@ const struct sbi_platform platform = {
.name = "SiFive Freedom U540", .name = "SiFive Freedom U540",
.features = SBI_PLATFORM_DEFAULT_FEATURES, .features = SBI_PLATFORM_DEFAULT_FEATURES,
.hart_count = FU540_HART_COUNT, .hart_count = FU540_HART_COUNT,
.hart_stack_size = FU540_HART_STACK_SIZE, .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
.platform_ops_addr = (unsigned long)&platform_ops .platform_ops_addr = (unsigned long)&platform_ops
}; };

View File

@@ -11,7 +11,6 @@
/* clang-format off */ /* clang-format off */
#define SPIKE_HART_COUNT 8 #define SPIKE_HART_COUNT 8
#define SPIKE_HART_STACK_SIZE 8192
#define SPIKE_CLINT_ADDR 0x2000000 #define SPIKE_CLINT_ADDR 0x2000000
@@ -109,6 +108,6 @@ const struct sbi_platform platform = {
.name = "Spike", .name = "Spike",
.features = SBI_PLATFORM_DEFAULT_FEATURES, .features = SBI_PLATFORM_DEFAULT_FEATURES,
.hart_count = SPIKE_HART_COUNT, .hart_count = SPIKE_HART_COUNT,
.hart_stack_size = SPIKE_HART_STACK_SIZE, .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
.platform_ops_addr = (unsigned long)&platform_ops .platform_ops_addr = (unsigned long)&platform_ops
}; };

View File

@@ -223,6 +223,6 @@ const struct sbi_platform platform = {
.name = "platform-name", .name = "platform-name",
.features = SBI_PLATFORM_DEFAULT_FEATURES, .features = SBI_PLATFORM_DEFAULT_FEATURES,
.hart_count = 1, .hart_count = 1,
.hart_stack_size = 8192, .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
.platform_ops_addr = (unsigned long)&platform_ops .platform_ops_addr = (unsigned long)&platform_ops
}; };

View File

@@ -152,6 +152,6 @@ const struct sbi_platform platform = {
.name = "T-HEAD Xuantie c910", .name = "T-HEAD Xuantie c910",
.features = SBI_THEAD_FEATURES, .features = SBI_THEAD_FEATURES,
.hart_count = C910_HART_COUNT, .hart_count = C910_HART_COUNT,
.hart_stack_size = C910_HART_STACK_SIZE, .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
.platform_ops_addr = (unsigned long)&platform_ops .platform_ops_addr = (unsigned long)&platform_ops
}; };

View File

@@ -6,7 +6,6 @@
#define _C910_PLATFORM_H_ #define _C910_PLATFORM_H_
#define C910_HART_COUNT 16 #define C910_HART_COUNT 16
#define C910_HART_STACK_SIZE 8192
#define SBI_THEAD_FEATURES \ #define SBI_THEAD_FEATURES \
(SBI_PLATFORM_HAS_SCOUNTEREN | \ (SBI_PLATFORM_HAS_SCOUNTEREN | \