summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2017-04-25 09:10:03 +0200
committerDaniel Hellstrom <daniel@gaisler.com>2017-05-14 12:31:56 +0200
commit011efee8139a5ec526c549704c78372b2205a92f (patch)
treeb63fdd2f98ac3be47c56b8cf2d6e2b489de5c932
parentleon, greth: new option and change soft-reset logic for EDCL (diff)
downloadrtems-011efee8139a5ec526c549704c78372b2205a92f.tar.bz2
leon, irq: single CPU SMP configuration does not need IPI ISR
-rw-r--r--c/src/lib/libbsp/sparc/shared/irq/irq-shared.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c b/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c
index 174324fb46..f219e49f45 100644
--- a/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c
+++ b/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c
@@ -47,9 +47,14 @@ void BSP_shared_interrupt_init(void)
for (i=0; i <= BSP_INTERRUPT_VECTOR_MAX_STD; i++) {
#if defined(LEON3) && \
(defined(RTEMS_SMP) || defined(RTEMS_MULTIPROCESSING))
- /* Don't install IRQ handler on IPI interrupt */
- if (i == LEON3_mp_irq)
- continue;
+ /* Don't install IRQ handler on IPI interrupt. An SMP kernel with max one
+ * CPU does not use IPIs
+ */
+#ifdef RTEMS_SMP
+ if (rtems_configuration_get_maximum_processors() > 1)
+#endif
+ if (i == LEON3_mp_irq)
+ continue;
#endif
vector = SPARC_ASYNCHRONOUS_TRAP(i) + 0x10;
rtems_interrupt_catch(bsp_isr_handler, vector, &previous_isr);