diff options
-rw-r--r-- | bsps/riscv/riscv/irq/irq.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/bsps/riscv/riscv/irq/irq.c b/bsps/riscv/riscv/irq/irq.c index ba7078d5fb..6fcaee172e 100644 --- a/bsps/riscv/riscv/irq/irq.c +++ b/bsps/riscv/riscv/irq/irq.c @@ -44,6 +44,7 @@ #include <rtems/score/percpu.h> #include <rtems/score/riscv-utility.h> +#include <rtems/score/scheduler.h> #include <rtems/score/smpimpl.h> #include <libfdt.h> @@ -176,6 +177,11 @@ static void riscv_clint_init(const void *fdt) if (cpu_index >= rtems_configuration_get_maximum_processors()) { continue; } + + if ( _Scheduler_Initial_assignments[ cpu_index ].scheduler == NULL ) { + /* Skip not configured processor */ + continue; + } #else if (hart_index != RISCV_BOOT_HARTID) { continue; @@ -251,6 +257,11 @@ static void riscv_plic_init(const void *fdt) if (cpu_index >= rtems_configuration_get_maximum_processors()) { continue; } + + if ( _Scheduler_Initial_assignments[ cpu_index ].scheduler == NULL ) { + /* Skip not configured processor */ + continue; + } #else if (hart_index != RISCV_BOOT_HARTID) { continue; |