summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOriol Catalan <oriol.catalan@openchip.com>2026-06-16 19:09:33 +0530
committerAnup Patel <anup@brainfault.org>2026-06-16 19:21:11 +0530
commitd936372eab7f2cdd93d21f67d2381914589d9dd9 (patch)
treeee818a76eb447770eca1bf249370fed1e43011bf
parent56c39d1f08cb7aa1132e115b7850715c63212d57 (diff)
downloadopensbi-d936372eab7f2cdd93d21f67d2381914589d9dd9.tar.gz
opensbi-d936372eab7f2cdd93d21f67d2381914589d9dd9.zip
lib: sbi: Make per-HART stack size configurable via Kconfig
The per-HART stack size for exception/interrupt handling is currently hardcoded to 8192 bytes in SBI_PLATFORM_DEFAULT_HART_STACK_SIZE. This may not be sufficient for platforms with deeper call stacks (e.g. those enabling additional SBI extensions) or may be wasteful for minimal platforms. Introduce a HART_STACK_SIZE Kconfig option in lib/sbi/Kconfig with a valid range of 8192 to 1048576 bytes and a default of 8192 bytes to preserve existing behavior. The SBI_PLATFORM_DEFAULT_HART_STACK_SIZE macro now resolves to CONFIG_HART_STACK_SIZE, allowing all platforms to benefit from a single configuration knob without any source changes. Signed-off-by: Oriol Catalan <oriol.catalan@openchip.com> Reviewed-by: Anup Patel <anup@brainfault.org> Link: https://lore.kernel.org/r/VI0P192MB3062735A6194BB6DA72083499E002@VI0P192MB3062.EURP192.PROD.OUTLOOK.COM Signed-off-by: Anup Patel <anup@brainfault.org>
-rw-r--r--include/sbi/sbi_platform.h2
-rw-r--r--lib/sbi/Kconfig5
2 files changed, 6 insertions, 1 deletions
diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h
index 5cbc1bc3..1e9a23c1 100644
--- a/include/sbi/sbi_platform.h
+++ b/include/sbi/sbi_platform.h
@@ -164,7 +164,7 @@ struct sbi_platform_operations {
};
/** Platform default per-HART stack size for exception/interrupt handling */
-#define SBI_PLATFORM_DEFAULT_HART_STACK_SIZE 8192
+#define SBI_PLATFORM_DEFAULT_HART_STACK_SIZE CONFIG_DEFAULT_HART_STACK_SIZE
/** Platform default heap size */
#define SBI_PLATFORM_DEFAULT_HEAP_SIZE(__num_hart) \
diff --git a/lib/sbi/Kconfig b/lib/sbi/Kconfig
index 89245a25..e76aecca 100644
--- a/lib/sbi/Kconfig
+++ b/lib/sbi/Kconfig
@@ -2,6 +2,11 @@
menu "Generic SBI Support"
+config DEFAULT_HART_STACK_SIZE
+ int "Default per-HART stack size (bytes)"
+ range 8192 1048576
+ default 8192
+
config CONSOLE_EARLY_BUFFER_SIZE
int "Early console buffer size (bytes)"
default 256