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