summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2012-04-05 10:23:20 -0500
committerJoel Sherrill <joel.sherrill@oarcorp.com>2012-04-06 09:03:35 -0500
commit684b54a986d8093cc1bf679130630b47bba6d638 (patch)
tree8ac874aa36e5fc0d0641943aa50f566b4eb8b8bd /c/src/lib/libbsp
parentSPARC BSPs: implemented shared-irq using libbsp/shared layer (diff)
downloadrtems-684b54a986d8093cc1bf679130630b47bba6d638.tar.bz2
LEON3: halt boot if IRQ controller not found
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/sparc/leon3/amba/amba.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/amba/amba.c b/c/src/lib/libbsp/sparc/leon3/amba/amba.c
index 03af2265d2..e334aecd09 100644
--- a/c/src/lib/libbsp/sparc/leon3/amba/amba.c
+++ b/c/src/lib/libbsp/sparc/leon3/amba/amba.c
@@ -44,13 +44,18 @@ void amba_initialize(void)
/* Scan the AMBA Plug&Play info at the default LEON3 area */
amba_scan(&amba_conf,LEON3_IO_AREA,NULL);
- /* Find LEON3 Interrupt controler */
+ /* Find LEON3 Interrupt controller */
i = amba_find_apbslv(&amba_conf,VENDOR_GAISLER,GAISLER_IRQMP,&dev);
- if ( i > 0 ){
- /* Found APB IRQ_MP Interrupt Controller */
- LEON3_IrqCtrl_Regs = (volatile LEON3_IrqCtrl_Regs_Map *) dev.start;
+ if (i <= 0){
+ /* PANIC IRQ controller not found!
+ *
+ * What else can we do but stop ...
+ */
+ asm volatile( "mov 1, %g1; ta 0x0" );
}
+ LEON3_IrqCtrl_Regs = (volatile LEON3_IrqCtrl_Regs_Map *) dev.start;
+
/* Init Extended IRQ controller if available */
leon3_ext_irq_init();