summaryrefslogtreecommitdiffstats
path: root/import/chips/p9
diff options
context:
space:
mode:
authorSangeetha T S <sangeet2@in.ibm.com>2016-02-26 00:23:47 -0600
committerSachin Gupta <sgupta2m@in.ibm.com>2016-04-18 05:57:22 -0400
commitf45ce60aac2741e5f9e11b9364007cc7fc228194 (patch)
tree4b6eba6490450a9ccdef873586ffa575d7fa3a1b /import/chips/p9
parentccd9eca1908c373a846e40b70c20bf0534c2444b (diff)
downloadtalos-sbe-f45ce60aac2741e5f9e11b9364007cc7fc228194.tar.gz
talos-sbe-f45ce60aac2741e5f9e11b9364007cc7fc228194.zip
Fixes for OCB channel init and access
- Changes to RCs - Wrapper changes to be more user friendly - Fixed bugs in setting the linear window - Action file changes Change-Id: Icb3628d79b507b059ed2b3b50510538800f4bef7 RTC: 137014 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/21322 Tested-by: Jenkins Server Tested-by: PPE CI Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: AMIT KUMAR <akumar3@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22326 Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'import/chips/p9')
-rw-r--r--import/chips/p9/procedures/hwp/pm/p9_pm_ocb_indir_access.C4
-rw-r--r--import/chips/p9/procedures/xml/error_info/p9_pm_ocb_indir_access_errors.xml14
-rw-r--r--import/chips/p9/sw_simulation/powermgmt.act68
3 files changed, 71 insertions, 15 deletions
diff --git a/import/chips/p9/procedures/hwp/pm/p9_pm_ocb_indir_access.C b/import/chips/p9/procedures/hwp/pm/p9_pm_ocb_indir_access.C
index 85ee4c10..460b8d13 100644
--- a/import/chips/p9/procedures/hwp/pm/p9_pm_ocb_indir_access.C
+++ b/import/chips/p9/procedures/hwp/pm/p9_pm_ocb_indir_access.C
@@ -133,7 +133,7 @@ fapi2::ReturnCode p9_pm_ocb_indir_access(
{
FAPI_INF("OCB access for data write operation");
FAPI_ASSERT(io_ocb_buffer != NULL,
- fapi2::PROCPM_OCB_PUT_NO_DATA_ERROR(),
+ fapi2::PM_OCB_PUT_NO_DATA_ERROR(),
"No data provided for PUT operation");
fapi2::buffer<uint64_t> l_data64;
@@ -179,7 +179,7 @@ fapi2::ReturnCode p9_pm_ocb_indir_access(
while (l_counter < OCB_FULL_POLL_MAX);
FAPI_ASSERT((true == l_push_ok_flag),
- fapi2::PROCPM_OCB_PUT_DATA_POLL_NOT_FULL_ERROR().
+ fapi2::PM_OCB_PUT_DATA_POLL_NOT_FULL_ERROR().
set_PUSHQ_STATE(l_data64),
"Polling timeout waiting on push non-full");
}
diff --git a/import/chips/p9/procedures/xml/error_info/p9_pm_ocb_indir_access_errors.xml b/import/chips/p9/procedures/xml/error_info/p9_pm_ocb_indir_access_errors.xml
index 7483e665..70a9265f 100644
--- a/import/chips/p9/procedures/xml/error_info/p9_pm_ocb_indir_access_errors.xml
+++ b/import/chips/p9/procedures/xml/error_info/p9_pm_ocb_indir_access_errors.xml
@@ -20,24 +20,14 @@
<hwpErrors>
<!-- ******************************************************************* -->
<hwpError>
- <rc>RC_PROCPM_OCB_ACCESS_LENGTH_CHECK</rc>
- <description>
- Input length of data fetched from the data register and transfered via
- indirect channel did not match the output length
- </description>
- <ffdc>LENGTH</ffdc>
- <ffdc>ACTUALLENGTH</ffdc>
- </hwpError>
- <!-- ******************************************************************* -->
- <hwpError>
- <rc>RC_PROCPM_OCB_PUT_NO_DATA_ERROR</rc>
+ <rc>RC_PM_OCB_PUT_NO_DATA_ERROR</rc>
<description>
No data passed for Put operation.
</description>
</hwpError>
<!-- ******************************************************************* -->
<hwpError>
- <rc>RC_PROCPM_OCB_PUT_DATA_POLL_NOT_FULL_ERROR</rc>
+ <rc>RC_PM_OCB_PUT_DATA_POLL_NOT_FULL_ERROR</rc>
<description>
Indicates that a timeout occured waiting for a push queue to be non-full
before writing data. Is likely due to OCC firmware not pulling entries off
diff --git a/import/chips/p9/sw_simulation/powermgmt.act b/import/chips/p9/sw_simulation/powermgmt.act
index ad645f72..df3ba003 100644
--- a/import/chips/p9/sw_simulation/powermgmt.act
+++ b/import/chips/p9/sw_simulation/powermgmt.act
@@ -110,7 +110,6 @@ CAUSE_EFFECT {
##
-<<<<<<< HEAD
## Actions for Procedure - p9_pm_pba_init
##
@@ -510,3 +509,70 @@ CAUSE_EFFECT {
EFFECT: TARGET=[REG(0x00066021)] OP=[BIT,OFF] BIT=[0]
EFFECT: TARGET=[REG(0x0006C08A)] OP=[BIT,ON] BIT=[8]
}
+
+##
+## Actions for p9_pm_ocb_init
+##
+
+CAUSE_EFFECT {
+ LABEL=[Channel 0 linear stream]
+ WATCH=[REG(0x0006D013)]
+ WATCH=[REG(0x0006D012)]
+ CAUSE: TARGET=[REG(0x0006D013)] OP=[BIT,ON] BIT=[4]
+ CAUSE: TARGET=[REG(0x0006D012)] OP=[BIT,ON] BIT=[5]
+ EFFECT: TARGET=[REG(0x0006D011)] OP=[BIT,ON] BIT=[4]
+ EFFECT: TARGET=[REG(0x0006D011)] OP=[BIT,OFF] BIT=[5]
+}
+
+CAUSE_EFFECT {
+ LABEL=[Channel 1 linear stream]
+ WATCH=[REG(0x0006D033)]
+ WATCH=[REG(0x0006D032)]
+ CAUSE: TARGET=[REG(0x0006D033)] OP=[BIT,ON] BIT=[4]
+ CAUSE: TARGET=[REG(0x0006D032)] OP=[BIT,ON] BIT=[5]
+ EFFECT: TARGET=[REG(0x0006D031)] OP=[BIT,ON] BIT=[4]
+ EFFECT: TARGET=[REG(0x0006D031)] OP=[BIT,OFF] BIT=[5]
+}
+
+CAUSE_EFFECT {
+ LABEL=[Channel 1 circular push interupt enable]
+ WATCH=[REG(0x0006D033)]
+ CAUSE: TARGET=[REG(0x0006D033)] OP=[BIT,ON] BIT=[3]
+ CAUSE: TARGET=[REG(0x0006D033)] OP=[BIT,ON] BIT=[4]
+ CAUSE: TARGET=[REG(0x0006D033)] OP=[BIT,ON] BIT=[5]
+ EFFECT: TARGET=[REG(0x0006D031)] OP=[BIT,ON] BIT=[3]
+ EFFECT: TARGET=[REG(0x0006D031)] OP=[BIT,ON] BIT=[4]
+ EFFECT: TARGET=[REG(0x0006D031)] OP=[BIT,ON] BIT=[5]
+}
+
+CAUSE_EFFECT {
+ LABEL=[Channel 1 circular push interrupt disable]
+ WATCH=[REG(0x0006D033)]
+ WATCH=[REG(0x0006D032)]
+ CAUSE: TARGET=[REG(0x0006D032)] OP=[BIT,ON] BIT=[3]
+ CAUSE: TARGET=[REG(0x0006D033)] OP=[BIT,ON] BIT=[4]
+ CAUSE: TARGET=[REG(0x0006D033)] OP=[BIT,ON] BIT=[5]
+ EFFECT: TARGET=[REG(0x0006D031)] OP=[BIT,OFF] BIT=[3]
+ EFFECT: TARGET=[REG(0x0006D031)] OP=[BIT,ON] BIT=[4]
+ EFFECT: TARGET=[REG(0x0006D031)] OP=[BIT,ON] BIT=[5]
+}
+
+CAUSE_EFFECT {
+ LABEL=[Channel 2 linear stream]
+ WATCH=[REG(0x0006D053)]
+ WATCH=[REG(0x0006D052)]
+ CAUSE: TARGET=[REG(0x0006D053)] OP=[BIT,ON] BIT=[4]
+ CAUSE: TARGET=[REG(0x0006D052)] OP=[BIT,ON] BIT=[5]
+ EFFECT: TARGET=[REG(0x0006D051)] OP=[BIT,ON] BIT=[4]
+ EFFECT: TARGET=[REG(0x0006D051)] OP=[BIT,OFF] BIT=[5]
+}
+
+CAUSE_EFFECT {
+ LABEL=[Channel 3 linear stream]
+ WATCH=[REG(0x0006D073)]
+ WATCH=[REG(0x0006D072)]
+ CAUSE: TARGET=[REG(0x0006D073)] OP=[BIT,ON] BIT=[4]
+ CAUSE: TARGET=[REG(0x0006D072)] OP=[BIT,ON] BIT=[5]
+ EFFECT: TARGET=[REG(0x0006D071)] OP=[BIT,ON] BIT=[4]
+ EFFECT: TARGET=[REG(0x0006D071)] OP=[BIT,OFF] BIT=[5]
+}
OpenPOWER on IntegriCloud