diff options
author | Daniel Hellstrom <daniel@gaisler.com> | 2012-04-05 10:23:20 -0500 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-04-10 08:45:03 +0200 |
commit | 29b2b3e08f9c430585521c3c51766deee876eb9f (patch) | |
tree | e22e9876fe41a56e7060452024937a6a42639fb3 /c | |
parent | SPARC BSPs: implemented shared-irq using libbsp/shared layer (diff) | |
download | rtems-29b2b3e08f9c430585521c3c51766deee876eb9f.tar.bz2 |
LEON3: halt boot if IRQ controller not found
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/sparc/leon3/amba/amba.c | 13 |
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(); |