diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/psim/irq/irq_init.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/psim/irq/irq_init.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c b/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c index 7a9e182277..b8d2f70271 100644 --- a/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c +++ b/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c @@ -19,8 +19,10 @@ #include <libcpu/spr.h> #include <bsp/irq.h> #include <bsp.h> +#include <psim.h> #include <libcpu/raw_exception.h> #include <rtems/bspIo.h> +#include <bsp/openpic.h> static rtems_irq_connect_data rtemsIrq[BSP_IRQ_NUMBER]; static rtems_irq_global_settings initial_config; @@ -48,6 +50,8 @@ void BSP_rtems_irq_mng_init(unsigned cpuId) /* * First initialize the Interrupt management hardware */ + OpenPIC = (void*)PSIM.OpenPIC; + openpic_init(1,0,0,16,0,0); /* * Initialize Rtems management interrupt table @@ -68,6 +72,10 @@ void BSP_rtems_irq_mng_init(unsigned cpuId) initial_config.irqBase = BSP_LOWEST_OFFSET; initial_config.irqPrioTbl = irqPrioTable; + for (i = BSP_PCI_IRQ_LOWEST_OFFSET; i< BSP_PCI_IRQ_NUMBER; i++ ) { + irqPrioTable[i] = 8; + } + if (!BSP_rtems_irq_mngt_set(&initial_config)) { /* * put something here that will show the failure... |