From 29b2b3e08f9c430585521c3c51766deee876eb9f Mon Sep 17 00:00:00 2001 From: Daniel Hellstrom Date: Thu, 5 Apr 2012 10:23:20 -0500 Subject: LEON3: halt boot if IRQ controller not found Signed-off-by: Daniel Hellstrom --- c/src/lib/libbsp/sparc/leon3/amba/amba.c | 13 +++++++++---- 1 file 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(); -- cgit v1.2.3