From 3876e7574dd7eff9241e6fb0a3822e4e51731b9f Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Mon, 6 Jul 2026 18:05:44 +0200 Subject: [PATCH] lib: make SBI_HARTMASK_MAX_BITS customizable, default 256 Linux has raised the default number of 64bit CPUs to 256 in commit 0fa749771993 ("riscv: Raise default NR_CPUS for 64BIT to 256"). OpenSBI should use a matching value for SBI_HARTMASK_MAX_BITS. Introduce configuration variable CONFIG_HARTMASK_MAX_BITS with range 32-512 and default 256. Signed-off-by: Heinrich Schuchardt Reviewed-by: Anup Patel Link: https://lore.kernel.org/r/20260706160544.697409-1-heinrich.schuchardt@canonical.com Signed-off-by: Anup Patel --- include/sbi/sbi_hartmask.h | 4 ++++ lib/sbi/Kconfig | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/include/sbi/sbi_hartmask.h b/include/sbi/sbi_hartmask.h index 200ab6e5..da6821ee 100644 --- a/include/sbi/sbi_hartmask.h +++ b/include/sbi/sbi_hartmask.h @@ -20,7 +20,11 @@ * also represents the maximum number of HART ids generic OpenSBI * can handle. */ +#ifdef CONFIG_HARTMASK_MAX_BITS +#define SBI_HARTMASK_MAX_BITS CONFIG_HARTMASK_MAX_BITS +#else #define SBI_HARTMASK_MAX_BITS 128 +#endif /** Representation of hartmask */ struct sbi_hartmask { diff --git a/lib/sbi/Kconfig b/lib/sbi/Kconfig index e76aecca..24132eaa 100644 --- a/lib/sbi/Kconfig +++ b/lib/sbi/Kconfig @@ -2,6 +2,15 @@ menu "Generic SBI Support" +config HARTMASK_MAX_BITS + int "Maximum number of hart mask bits (32-512)" + range 32 512 + default 256 + help + The hartmask is indexed using physical hart IDs so this setting + also represents the maximum number of hart IDs generic OpenSBI + can handle. + config DEFAULT_HART_STACK_SIZE int "Default per-HART stack size (bytes)" range 8192 1048576