diff options
author | Sangeetha T S <sangeet2@in.ibm.com> | 2016-02-26 00:23:47 -0600 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2016-04-18 05:57:22 -0400 |
commit | f45ce60aac2741e5f9e11b9364007cc7fc228194 (patch) | |
tree | 4b6eba6490450a9ccdef873586ffa575d7fa3a1b /import/chips/p9 | |
parent | ccd9eca1908c373a846e40b70c20bf0534c2444b (diff) | |
download | talos-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')
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] +} |