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 #include +#include #include #include @@ -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;