this adds CAPI and EPOW parts to opal.h that previously were only
in firmware opal.h

Currently unused, but gets us really close to being able to share
opal.h between firmware and linux.

Signed-off-by: Stewart Smith <stew...@linux.vnet.ibm.com>
---
 arch/powerpc/include/asm/opal.h |   52 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
index 240ee1c..214a106 100644
--- a/arch/powerpc/include/asm/opal.h
+++ b/arch/powerpc/include/asm/opal.h
@@ -414,6 +414,46 @@ struct opal_ipmi_msg {
        uint8_t         data[];
 };
 
+/*
+ * EPOW status sharing (OPAL and the host)
+ *
+ * The host will pass on OPAL, a buffer of length OPAL_SYSEPOW_MAX
+ * with individual elements being 16 bits wide to fetch the system
+ * wide EPOW status. Each element in the buffer will contain the
+ * EPOW status in it's bit representation for a particular EPOW sub
+ * class as defiend here. So multiple detailed EPOW status bits
+ * specific for any sub class can be represented in a single buffer
+ * element as it's bit representation.
+ */
+
+/* System EPOW type */
+enum OpalSysEpow {
+       OPAL_SYSEPOW_POWER      = 0,    /* Power EPOW */
+       OPAL_SYSEPOW_TEMP       = 1,    /* Temperature EPOW */
+       OPAL_SYSEPOW_COOLING    = 2,    /* Cooling EPOW */
+       OPAL_SYSEPOW_MAX        = 3,    /* Max EPOW categories */
+};
+
+/* Power EPOW */
+enum OpalSysPower {
+       OPAL_SYSPOWER_UPS       = 0x0001, /* System on UPS power */
+       OPAL_SYSPOWER_CHNG      = 0x0002, /* System power configuration change 
*/
+       OPAL_SYSPOWER_FAIL      = 0x0004, /* System impending power failure */
+       OPAL_SYSPOWER_INCL      = 0x0008, /* System incomplete power */
+};
+
+/* Temperature EPOW */
+enum OpalSysTemp {
+       OPAL_SYSTEMP_AMB        = 0x0001, /* System over ambient temperature */
+       OPAL_SYSTEMP_INT        = 0x0002, /* System over internal temperature */
+       OPAL_SYSTEMP_HMD        = 0x0004, /* System over ambient humidity */
+};
+
+/* Cooling EPOW */
+enum OpalSysCooling {
+       OPAL_SYSCOOL_INSF       = 0x0001, /* System insufficient cooling */
+};
+
 /* FSP memory errors handling */
 enum OpalMemErr_Version {
        OpalMemErr_V1 = 1,
@@ -741,6 +781,18 @@ struct opal_sg_list {
 #define OPAL_DUMP_REGION_LOG_BUF               0x80
 #define OPAL_DUMP_REGION_HOST_END              0xFF
 
+/* CAPI modes for PHB */
+enum {
+       OPAL_PHB_CAPI_MODE_PCIE         = 0,
+       OPAL_PHB_CAPI_MODE_CAPI         = 1,
+       OPAL_PHB_CAPI_MODE_SNOOP_OFF    = 2,
+       OPAL_PHB_CAPI_MODE_SNOOP_ON     = 3,
+};
+
+/* CAPI feature flags (in device-tree) */
+#define OPAL_PHB_CAPI_FLAG_SNOOP_CONTROL       0x00000001
+#define OPAL_PHB_CAPI_FLAG_REVERT_TO_PCIE      0x00000002
+
 /* We calculate number of sg entries based on PAGE_SIZE */
 #define SG_ENTRIES_PER_NODE ((PAGE_SIZE - 16) / sizeof(struct opal_sg_entry))
 
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to