summaryrefslogtreecommitdiffstats
path: root/import/chips/p9/common/pmlib/include
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2017-05-19 14:05:12 -0500
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2017-10-23 17:53:44 -0500
commitfb4b460ccbe3ed1c4c9e19982ffd0ca55a98bac8 (patch)
tree7327048127b658fb6eba2c282c2b1799e8d034c3 /import/chips/p9/common/pmlib/include
parent5225d641f4b91e9eeae9a548b74a5208d35bb16e (diff)
downloadtalos-hcode-fb4b460ccbe3ed1c4c9e19982ffd0ca55a98bac8.tar.gz
talos-hcode-fb4b460ccbe3ed1c4c9e19982ffd0ca55a98bac8.zip
STOP: Scrub _ANR and _OR opcode from regular cme getscom
Change-Id: Ie886e4d7f5b515e89cdef797e87deb07a822f058 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40765 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: BRIAN D. VICTOR <brian.d.victor1@ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Diffstat (limited to 'import/chips/p9/common/pmlib/include')
-rw-r--r--import/chips/p9/common/pmlib/include/cmehw_common.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/import/chips/p9/common/pmlib/include/cmehw_common.h b/import/chips/p9/common/pmlib/include/cmehw_common.h
index 4b692087..b9587521 100644
--- a/import/chips/p9/common/pmlib/include/cmehw_common.h
+++ b/import/chips/p9/common/pmlib/include/cmehw_common.h
@@ -59,17 +59,32 @@ enum CME_BCEBAR_INDEXES
#define CME_SCOM_ADDR(addr, core, op) (addr | (core << 22) | (op << 20))
+// cme getscom default with 'eq' op
+#define CME_GETSCOM(addr, core, data) \
+ PPE_LVD(CME_SCOM_ADDR(addr, core, CME_SCOM_EQ), data);
+
+// cme getscom with 'and' op
+#define CME_GETSCOM_AND(addr, core, data) \
+ PPE_LVD(CME_SCOM_ADDR(addr, core, CME_SCOM_AND), data);
+
+// cme getscom with 'or' op
+#define CME_GETSCOM_OR(addr, core, data) \
+ PPE_LVD(CME_SCOM_ADDR(addr, core, CME_SCOM_OR), data);
+
+// use this to override cme getscom with user specified op
+#define CME_GETSCOM_OP(addr, core, scom_op, data) \
+ PPE_LVD(CME_SCOM_ADDR(addr, core, scom_op), data);
+
+
+// use this to override undesired queued cme putscom with nop
#define CME_PUTSCOM_NOP(addr, core, data) \
putscom_norc(CME_SCOM_ADDR(addr, core, CME_SCOM_NOP), data);
+// queued cme putscom if enabled; otherwise default with nop
#if defined(USE_CME_QUEUED_SCOM)
-#define CME_GETSCOM(addr, core, scom_op, data) \
- PPE_LVD(CME_SCOM_ADDR(addr, core, scom_op), data);
#define CME_PUTSCOM(addr, core, data) \
putscom_norc(CME_SCOM_ADDR(addr, core, CME_SCOM_QUEUED), data);
#else
-#define CME_GETSCOM(addr, core, scom_op, data) \
- PPE_LVD(CME_SCOM_ADDR(addr, core, scom_op), data);
#define CME_PUTSCOM(addr, core, data) \
putscom_norc(CME_SCOM_ADDR(addr, core, CME_SCOM_NOP), data);
#endif
OpenPOWER on IntegriCloud