summaryrefslogtreecommitdiffstats
path: root/src/usr/intr/intrrp.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/intr/intrrp.C')
-rw-r--r--src/usr/intr/intrrp.C12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/usr/intr/intrrp.C b/src/usr/intr/intrrp.C
index b374c9f7d..39ea2d470 100644
--- a/src/usr/intr/intrrp.C
+++ b/src/usr/intr/intrrp.C
@@ -35,6 +35,7 @@
#include <sys/mmio.h>
#include <sys/misc.h>
#include <kernel/console.H>
+#include <kernel/ipc.H>
#include <sys/task.h>
#include <vmmconst.h>
#include <targeting/common/targetservice.H>
@@ -181,6 +182,17 @@ errlHndl_t IntrRp::_init()
TRACFCOMP(g_trac_intr,"INTR: vAddr = %lx",iv_baseAddr);
+ // Set up the IPC message Data area
+ TARGETING::Target * sys = NULL;
+ TARGETING::targetService().getTopLevelTarget( sys );
+ assert(sys != NULL);
+ uint64_t hrmor_base =
+ sys->getAttr<TARGETING::ATTR_HB_HRMOR_NODAL_BASE>();
+
+ KernelIpc::ipc_data_area.pir = iv_masterCpu.word;
+ KernelIpc::ipc_data_area.hrmor_base = hrmor_base;
+ KernelIpc::ipc_data_area.msg_queue_id = 0;
+
// Set the BAR scom reg
err = setBAR(procTarget,iv_masterCpu);
OpenPOWER on IntegriCloud