summaryrefslogtreecommitdiffstats
path: root/src/include/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/kernel')
-rw-r--r--src/include/kernel/cpumgr.H5
-rw-r--r--src/include/kernel/intmsghandler.H26
2 files changed, 17 insertions, 14 deletions
diff --git a/src/include/kernel/cpumgr.H b/src/include/kernel/cpumgr.H
index 30009da73..25bb794bf 100644
--- a/src/include/kernel/cpumgr.H
+++ b/src/include/kernel/cpumgr.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2010,2015 */
+/* Contributors Listed Below - COPYRIGHT 2010,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -170,8 +170,9 @@ class CpuManager
* bit 51 - Wake-up from machine check.
* bit 60 - LPES(0) = 1 (see ISA).
* bit 61 - LPES(1) = 0 (P8 RFC02204 forces to 0)
+ * bit 62 - HVICE - Hypervisor Virt Interrupt Conditionally Enable
*/
- static const uint64_t WAKEUP_LPCR_VALUE = 0x0000000000007008;
+ static const uint64_t WAKEUP_LPCR_VALUE = 0x000000000000700A;
/** Desired value for RPR after wakeup.
*
diff --git a/src/include/kernel/intmsghandler.H b/src/include/kernel/intmsghandler.H
index 98d8d5288..8fd4e34b6 100644
--- a/src/include/kernel/intmsghandler.H
+++ b/src/include/kernel/intmsghandler.H
@@ -46,6 +46,7 @@ class InterruptMsgHdlr : public MessageHandler
public:
/**
+ * TODO RTC 150260
* Field values for P8
* @note This is used to calculate the mmio address offset
* from the PIR for the interrupt presenter memory mapped registers.
@@ -56,19 +57,20 @@ class InterruptMsgHdlr : public MessageHandler
*/
enum
{
- P8_PIR_THREADID_MSK = PIR_t::THREAD_MASK,
- P8_PIR_COREID_MSK = PIR_t::CORE_MASK,
- P8_PIR_CHIPID_MSK = PIR_t::CHIP_MASK,
- P8_PIR_NODEID_MSK = PIR_t::GROUP_MASK,
+ P9_PIR_THREADID_MSK = PIR_t::THREAD_MASK,
+ P9_PIR_COREID_MSK = PIR_t::CORE_MASK,
+ P9_PIR_CHIPID_MSK = PIR_t::CHIP_MASK,
+ P9_PIR_NODEID_MSK = PIR_t::GROUP_MASK,
// Logical Shift Left fields for mmio Base address from PIR.
// (IP addr bit pos - PIR bit pos)
- P8_IP_THREADID_LSL = (12-PIR_t::BITS_AFTER_CORE),
- P8_IP_COREID_LSL = (15-PIR_t::BITS_AFTER_CORE),
- P8_IP_CHIPID_LSL = (20-PIR_t::BITS_AFTER_CHIP),
- P8_IP_NODEID_LSL = (22-PIR_t::BITS_AFTER_GROUP),
+ P9_IP_THREADID_LSL = (12-PIR_t::BITS_AFTER_CORE),
+ P9_IP_COREID_LSL = (15-PIR_t::BITS_AFTER_CORE),
+ P9_IP_CHIPID_LSL = (20-PIR_t::BITS_AFTER_CHIP),
+ P9_IP_NODEID_LSL = (22-PIR_t::BITS_AFTER_GROUP),
XIRR_ADDR_OFFSET = 4,
MFRR_ADDR_OFFSET = 12,
+ ACK_HYPERVISOR_INT_REG_OFFSET = 0x830,
INTP_BAR_VALUE = 0xFFFFE000, // upper 32 bits of IPCBAR
@@ -109,16 +111,16 @@ class InterruptMsgHdlr : public MessageHandler
// The PIR chip id field has 1 extra bit (8 chips), so we need
// to shift the node and chip separately
offset |=
- (i_pir & P8_PIR_NODEID_MSK) << P8_IP_NODEID_LSL;
+ (i_pir & P9_PIR_NODEID_MSK) << P9_IP_NODEID_LSL;
offset |=
- (i_pir & P8_PIR_CHIPID_MSK) << P8_IP_CHIPID_LSL;
+ (i_pir & P9_PIR_CHIPID_MSK) << P9_IP_CHIPID_LSL;
// The core and thread id field are adjacent in both the PIR and
// the mmio offset, so they can be done in one shift operation.
offset |=
- (i_pir & (P8_PIR_COREID_MSK | P8_PIR_THREADID_MSK))
- << P8_IP_THREADID_LSL;
+ (i_pir & (P9_PIR_COREID_MSK | P9_PIR_THREADID_MSK))
+ << P9_IP_THREADID_LSL;
return offset;
}
OpenPOWER on IntegriCloud