summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c
diff options
context:
space:
mode:
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.c8
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...