summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Ploetz <maploetz@us.ibm.com>2014-01-30 10:52:38 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-02-06 17:29:14 -0600
commit2c0792a4bdb36b402b42c596799e617c3b3dadfe (patch)
tree5146c1fd0d358242a4ac0e04862971298b357536
parent44524ea06f0db5d637bf04c5e233089bd4d6023d (diff)
downloadtalos-hostboot-2c0792a4bdb36b402b42c596799e617c3b3dadfe.tar.gz
talos-hostboot-2c0792a4bdb36b402b42c596799e617c3b3dadfe.zip
INITPROC: Hostboot - SW242686 proc_*_utils from RAS review
Change-Id: Ic5300b3054cdacb6ecacebc1f47de28f3a4b4530 CQ: SW242686 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8456 Tested-by: Jenkins Server Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.C110
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H60
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils_errors.xml41
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_fbc_utils.H16
4 files changed, 126 insertions, 101 deletions
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.C b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.C
index 7ca990bd8..50af530d9 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.C
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.C
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_adu_utils.C,v 1.7 2013/09/26 17:56:54 jmcgill Exp $
+// $Id: proc_adu_utils.C,v 1.8 2014/01/19 17:35:55 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/utils/proc_adu_utils.C,v $
//------------------------------------------------------------------------------
// *|
@@ -32,7 +32,7 @@
// *! DESCRIPTION : ADU library functions (FAPI)
// *!
// *! OWNER NAME : Joe McGill Email: jmcgill@us.ibm.com
-// *! BACKUP NAME : Jeshua Smith Email: jeshua@us.ibm.com
+// *! BACKUP NAME : Kevin Reick Email: reick@us.ibm.com
// *!
//------------------------------------------------------------------------------
@@ -40,7 +40,7 @@
//------------------------------------------------------------------------------
// Includes
//------------------------------------------------------------------------------
-#include "proc_adu_utils.H"
+#include <proc_adu_utils.H>
extern "C"
{
@@ -60,7 +60,7 @@ fapi::ReturnCode proc_adu_utils_get_adu_lock_id(
ecmdDataBufferBase data(64);
uint8_t lock_id;
- FAPI_DBG("proc_adu_utils_get_adu_lock_id: End");
+ FAPI_DBG("proc_adu_utils_get_adu_lock_id: Start");
do
{
@@ -69,7 +69,7 @@ fapi::ReturnCode proc_adu_utils_get_adu_lock_id(
rc = fapiGetScom(i_target, ADU_COMMAND_0x02020001, data);
if (!rc.ok())
{
- FAPI_ERR("proc_adu_utils_manage_adu_lock: fapiGetScom error (ADU_COMMAND_0x02020001)");
+ FAPI_ERR("proc_adu_utils_get_adu_lock_id: fapiGetScom error (ADU_COMMAND_0x02020001)");
break;
}
@@ -78,9 +78,9 @@ fapi::ReturnCode proc_adu_utils_get_adu_lock_id(
ADU_COMMAND_LOCK_ID_START_BIT,
(ADU_COMMAND_LOCK_ID_END_BIT-
ADU_COMMAND_LOCK_ID_START_BIT)+1);
- rc.setEcmdError(rc_ecmd);
- if (!rc.ok())
+ if (rc_ecmd)
{
+ rc.setEcmdError(rc_ecmd);
FAPI_ERR("proc_adu_utils_get_adu_lock_id: Error 0x%x extracting lock id from data buffer",
rc_ecmd);
break;
@@ -116,9 +116,9 @@ fapi::ReturnCode proc_adu_utils_clear_adu_auto_inc(
// clear auto-increment bit
rc_ecmd |= data.clearBit(ADU_COMMAND_AUTO_INC_BIT);
- rc.setEcmdError(rc_ecmd);
- if (!rc.ok())
+ if (rc_ecmd)
{
+ rc.setEcmdError(rc_ecmd);
FAPI_ERR("proc_adu_utils_clear_adu_auto_inc: Error 0x%x forming auto-increment clear data buffer",
rc_ecmd);
break;
@@ -142,8 +142,8 @@ fapi::ReturnCode proc_adu_utils_clear_adu_auto_inc(
fapi::ReturnCode proc_adu_utils_manage_adu_lock(
const fapi::Target& i_target,
- const proc_adu_utils_adu_lock_operation& i_lock_operation,
- const uint32_t& i_num_attempts)
+ const proc_adu_utils_adu_lock_operation i_lock_operation,
+ const uint32_t i_num_attempts)
{
fapi::ReturnCode rc;
uint32_t rc_ecmd = 0;
@@ -159,8 +159,9 @@ fapi::ReturnCode proc_adu_utils_manage_adu_lock(
{
FAPI_ERR("proc_adu_utils_manage_adu_lock: Invalid value %d for number of lock manipulation attempts",
i_num_attempts);
- const uint64_t & ARGS = i_num_attempts;
- FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_ARGS);
+ const fapi::Target & TARGET = i_target;
+ const uint32_t & ATTEMPTS = i_num_attempts;
+ FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_LOCK_ATTEMPTS);
break;
}
@@ -184,13 +185,14 @@ fapi::ReturnCode proc_adu_utils_manage_adu_lock(
{
FAPI_ERR("proc_adu_utils_manage_adu_lock: Internal error (unsupported lock operation enum value %d)",
i_lock_operation);
- const uint64_t & ERR_DATA = i_lock_operation;
- FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INTERNAL_ERR);
+ const fapi::Target & TARGET = i_target;
+ const uint32_t & OPERATION = i_lock_operation;
+ FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_LOCK_OPERATION);
break;
}
- rc.setEcmdError(rc_ecmd);
- if (!rc.ok())
+ if (rc_ecmd)
{
+ rc.setEcmdError(rc_ecmd);
FAPI_ERR("proc_adu_utils_manage_adu_lock: Error 0x%x setting up lock manipulation control data buffer",
rc_ecmd);
break;
@@ -269,9 +271,9 @@ fapi::ReturnCode proc_adu_utils_reset_adu(
rc_ecmd |= data.setBit(ADU_COMMAND_CLEAR_STATUS_BIT);
rc_ecmd |= data.setBit(ADU_COMMAND_RESET_BIT);
rc_ecmd |= data.setBit(ADU_COMMAND_LOCKED_BIT);
- rc.setEcmdError(rc_ecmd);
- if (!rc.ok())
+ if (rc_ecmd)
{
+ rc.setEcmdError(rc_ecmd);
FAPI_ERR("proc_adu_utils_reset_adu: Error 0x%x setting up reset control data buffer",
rc_ecmd);
break;
@@ -294,9 +296,9 @@ fapi::ReturnCode proc_adu_utils_reset_adu(
fapi::ReturnCode proc_adu_utils_send_fbc_op(
const fapi::Target& i_target,
- const proc_adu_utils_fbc_op& i_adu_ctl,
- const bool& i_use_hp,
- const proc_adu_utils_fbc_op_hp_ctl& i_adu_hp_ctl)
+ const proc_adu_utils_fbc_op i_adu_ctl,
+ const bool i_use_hp,
+ const proc_adu_utils_fbc_op_hp_ctl i_adu_hp_ctl)
{
fapi::ReturnCode rc;
uint32_t rc_ecmd = 0;
@@ -313,8 +315,12 @@ fapi::ReturnCode proc_adu_utils_send_fbc_op(
{
FAPI_ERR("proc_adu_utils_send_fbc_op: Out-of-range value %016llX specified for fabric address argument",
i_adu_ctl.address);
- const uint64_t & ARGS = i_adu_ctl.address;
- FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_ARGS);
+ const fapi::Target & TARGET = i_target;
+ const uint64_t & ADDRESS = i_adu_ctl.address;
+ const bool & HP = i_use_hp;
+ const uint32_t & HP_QUIESCE_DLY = i_adu_hp_ctl.post_quiesce_delay;
+ const uint32_t & HP_INIT_DLY = i_adu_hp_ctl.pre_init_delay;
+ FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_FBC_OP);
break;
}
if (i_use_hp &&
@@ -323,8 +329,12 @@ fapi::ReturnCode proc_adu_utils_send_fbc_op(
{
FAPI_ERR("proc_adu_utils_send_fbc_op: Out-of-range value %d specified for hotplug post-quiesce delay argument",
i_adu_hp_ctl.post_quiesce_delay);
- const uint64_t & ARGS = i_adu_hp_ctl.post_quiesce_delay;
- FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_ARGS);
+ const fapi::Target & TARGET = i_target;
+ const uint64_t & ADDRESS = i_adu_ctl.address;
+ const bool & HP = i_use_hp;
+ const uint32_t & HP_QUIESCE_DLY = i_adu_hp_ctl.post_quiesce_delay;
+ const uint32_t & HP_INIT_DLY = i_adu_hp_ctl.pre_init_delay;
+ FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_FBC_OP);
break;
}
if (i_use_hp &&
@@ -333,8 +343,12 @@ fapi::ReturnCode proc_adu_utils_send_fbc_op(
{
FAPI_ERR("proc_adu_utils_send_fbc_op: Out-of-range value %d specified for hotplug pre-init delay argument",
i_adu_hp_ctl.pre_init_delay);
- const uint64_t & ARGS = i_adu_hp_ctl.pre_init_delay;
- FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_ARGS);
+ const fapi::Target & TARGET = i_target;
+ const uint64_t & ADDRESS = i_adu_ctl.address;
+ const bool & HP = i_use_hp;
+ const uint32_t & HP_QUIESCE_DLY = i_adu_hp_ctl.post_quiesce_delay;
+ const uint32_t & HP_INIT_DLY = i_adu_hp_ctl.pre_init_delay;
+ FAPI_SET_HWP_ERROR(rc, RC_PROC_ADU_UTILS_INVALID_FBC_OP);
break;
}
@@ -372,9 +386,9 @@ fapi::ReturnCode proc_adu_utils_send_fbc_op(
ADU_CONTROL_FBC_ADDRESS_SPLIT_BIT,
(ADU_CONTROL_FBC_ADDRESS_END_BIT-
ADU_CONTROL_FBC_ADDRESS_SPLIT_BIT+1));
- rc.setEcmdError(rc_ecmd);
- if (!rc.ok())
+ if (rc_ecmd)
{
+ rc.setEcmdError(rc_ecmd);
FAPI_ERR("proc_adu_utils_send_fbc_op: Error 0x%x setting up ADU Control register data buffer",
rc_ecmd);
break;
@@ -453,9 +467,9 @@ fapi::ReturnCode proc_adu_utils_send_fbc_op(
(ADU_COMMAND_FBC_PRE_INIT_COUNT_END_BIT-
ADU_COMMAND_FBC_PRE_INIT_COUNT_START_BIT+1));
}
- rc.setEcmdError(rc_ecmd);
- if (!rc.ok())
+ if (rc_ecmd)
{
+ rc.setEcmdError(rc_ecmd);
FAPI_ERR("proc_adu_utils_send_fbc_op: Error 0x%x forming data buffer",
rc_ecmd);
break;
@@ -465,7 +479,7 @@ fapi::ReturnCode proc_adu_utils_send_fbc_op(
rc = fapiPutScom(i_target, ADU_COMMAND_0x02020001, cmd_data);
if (!rc.ok())
{
- FAPI_ERR("proc_adu_utils_send_fbc_op: fapiPutScom error (ADU_COMMAND_0x02020000)");
+ FAPI_ERR("proc_adu_utils_send_fbc_op: fapiPutScom error (ADU_COMMAND_0x02020001)");
break;
}
@@ -483,16 +497,16 @@ fapi::ReturnCode proc_adu_utils_get_adu_status(
fapi::ReturnCode rc;
ecmdDataBufferBase status_data(64);
- FAPI_DBG("proc_adu_utils_check_adu_status: Start");
+ FAPI_DBG("proc_adu_utils_get_adu_status: Start");
do
{
// read ADU Status register
- FAPI_DBG("proc_adu_utils_check_adu_status: Reading ADU Status register");
+ FAPI_DBG("proc_adu_utils_get_adu_status: Reading ADU Status register");
rc = fapiGetScom(i_target, ADU_STATUS_0x02020002, status_data);
if (!rc.ok())
{
- FAPI_ERR("proc_adu_utils_check_adu_status: fapiGetScom error (ADU_STATUS_0x02020002)");
+ FAPI_ERR("proc_adu_utils_get_adu_status: fapiGetScom error (ADU_STATUS_0x02020002)");
break;
}
@@ -547,18 +561,18 @@ fapi::ReturnCode proc_adu_utils_get_adu_status(
ADU_STATUS_BIT_CLEAR;
} while(0);
- FAPI_DBG("proc_adu_utils_check_adu_status: End");
+ FAPI_DBG("proc_adu_utils_get_adu_status: End");
return rc;
}
fapi::ReturnCode proc_adu_utils_set_adu_data_registers(
const fapi::Target& i_target,
- const uint64_t& i_write_data,
- const bool& i_override_itag,
- const bool& i_write_itag,
- const bool& i_override_ecc,
- const uint8_t& i_write_ecc)
+ const uint64_t i_write_data,
+ const bool i_override_itag,
+ const bool i_write_itag,
+ const bool i_override_ecc,
+ const uint8_t i_write_ecc)
{
fapi::ReturnCode rc;
uint32_t rc_ecmd = 0;
@@ -594,9 +608,9 @@ fapi::ReturnCode proc_adu_utils_set_adu_data_registers(
ADU_FORCE_ECC_DATA_TX_ECC_LO_END_BIT-
ADU_FORCE_ECC_DATA_TX_ECC_LO_START_BIT+1);
}
- rc.setEcmdError(rc_ecmd);
- if (!rc.ok())
+ if (rc_ecmd)
{
+ rc.setEcmdError(rc_ecmd);
FAPI_ERR("proc_adu_utils_set_adu_data_registers: Error 0x%x forming override ECC data buffer",
rc_ecmd);
break;
@@ -624,9 +638,9 @@ fapi::ReturnCode proc_adu_utils_set_adu_data_registers(
ADU_DATA_SPLIT_BIT,
(ADU_DATA_END_BIT-
ADU_DATA_SPLIT_BIT+1));
- rc.setEcmdError(rc_ecmd);
- if (!rc.ok())
+ if (rc_ecmd)
{
+ rc.setEcmdError(rc_ecmd);
FAPI_ERR("proc_adu_utils_set_adu_data_registers: Error 0x%x forming data buffer",
rc_ecmd);
break;
@@ -649,7 +663,7 @@ fapi::ReturnCode proc_adu_utils_set_adu_data_registers(
fapi::ReturnCode proc_adu_utils_get_adu_data_registers(
const fapi::Target& i_target,
- const bool& i_get_itag,
+ const bool i_get_itag,
uint64_t& o_read_data,
bool& o_read_itag)
{
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H
index 7895b8aaa..eec34d948 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_adu_utils.H,v 1.7 2013/11/11 22:34:59 jmcgill Exp $
+// $Id: proc_adu_utils.H,v 1.8 2014/01/19 17:35:55 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/utils/proc_adu_utils.H,v $
//------------------------------------------------------------------------------
// *|
@@ -32,7 +32,7 @@
// *! DESCRIPTION : ADU library functions (FAPI)
// *!
// *! OWNER NAME : Joe McGill Email: jmcgill@us.ibm.com
-// *! BACKUP NAME : Jeshua Smith Email: jeshua@us.ibm.com
+// *! BACKUP NAME : Kevin Reick Email: reick@us.ibm.com
// *!
// *! ADDITIONAL COMMENTS :
// *!
@@ -75,14 +75,6 @@
// *!
//------------------------------------------------------------------------------
-//------------------------------------------------------------------------------
-//
-// TODO:
-// o check if ADU data register read fails when locked?
-// if not seems stray read operation can increment pointer?
-//
-//------------------------------------------------------------------------------
-
#ifndef _PROC_ADU_UTILS_H_
#define _PROC_ADU_UTILS_H_
@@ -91,8 +83,8 @@
//------------------------------------------------------------------------------
#include <fapi.H>
-#include "proc_fbc_utils.H"
-#include "p8_scom_addresses.H"
+#include <proc_fbc_utils.H>
+#include <p8_scom_addresses.H>
extern "C" {
@@ -309,12 +301,12 @@ const uint32_t PROC_ADU_UTILS_ADU_HW_NS_DELAY = 10000;
const uint32_t PROC_ADU_UTILS_ADU_SIM_CYCLE_DELAY = 10000;
// field width definitions
-const uint32_t PROC_ADU_UTILS_ADU_MAX_POST_QUIESCE_DELAY = ((1ULL << 20)-1ULL);
-const uint32_t PROC_ADU_UTILS_ADU_MAX_PRE_INIT_DELAY = ((1ULL << 10)-1ULL);
+const uint32_t PROC_ADU_UTILS_ADU_MAX_POST_QUIESCE_DELAY = ((1 << 20)-1);
+const uint32_t PROC_ADU_UTILS_ADU_MAX_PRE_INIT_DELAY = ((1 << 10)-1);
// auto-increment constant definitions
-const uint32_t PROC_ADU_UTILS_AUTO_INCREMENT_BOUNDARY_MASK = 0x7FFFFULL;
-const uint32_t PROC_ADU_UTILS_AUTO_INCREMENT_BOUNDARY = 0x7FFF8ULL;
+const uint32_t PROC_ADU_UTILS_AUTO_INCREMENT_BOUNDARY_MASK = 0x7FFFF;
+const uint32_t PROC_ADU_UTILS_AUTO_INCREMENT_BOUNDARY = 0x7FFF8;
// Security Switch register field/bit definitions
const uint32_t OTPC_M_SECURITY_SWITCH_TRUSTED_BOOT_BIT = 1;
@@ -329,7 +321,7 @@ const uint32_t ADU_CONTROL_FBC_ADDRESS_START_BIT = 14;
const uint32_t ADU_CONTROL_FBC_ADDRESS_END_BIT = 63;
const uint32_t ADU_CONTROL_FBC_ADDRESS_SPLIT_BIT = 32;
-const uint32_t ADU_CONTROL_FBC_ADDRESS_SPLIT_MASK = 0xFFFFFFFFULL;
+const uint32_t ADU_CONTROL_FBC_ADDRESS_SPLIT_MASK = 0xFFFFFFFF;
// ADU Command register field/bit definitions
const uint32_t ADU_COMMAND_START_OP_BIT = 2;
@@ -383,7 +375,7 @@ const uint32_t ADU_DATA_START_BIT = 0;
const uint32_t ADU_DATA_END_BIT = 63;
const uint32_t ADU_DATA_SPLIT_BIT = 32;
-const uint32_t ADU_DATA_SPLIT_MASK = 0xFFFFFFFFULL;
+const uint32_t ADU_DATA_SPLIT_MASK = 0xFFFFFFFF;
//------------------------------------------------------------------------------
@@ -420,15 +412,15 @@ fapi::ReturnCode proc_adu_utils_clear_adu_auto_inc(
// returns: FAPI_RC_SUCCESS if lock manipulation is successful,
// FAPI_RC_PLAT_ERR_ADU_LOCKED if operation failed due to state of
// ADU atomic lock,
-// RC_PROC_ADU_UTILS_INVALID_ARGS if invalid number of attempts
+// RC_PROC_ADU_UTILS_INVALID_LOCK_OPERATION if an unsupported operation
+// is specified,
+// RC_PROC_ADU_UTILS_INVALID_LOCK_ATTEMPTS if invalid number of attempts
// is specified,
-// RC_PROC_ADU_UTILS_INTERNAL_ERR if an unexpected internal
-// logic error occurs,
// else error
fapi::ReturnCode proc_adu_utils_manage_adu_lock(
const fapi::Target& i_target,
- const proc_adu_utils_adu_lock_operation& i_lock_operation,
- const uint32_t& i_num_attempts);
+ const proc_adu_utils_adu_lock_operation i_lock_operation,
+ const uint32_t i_num_attempts);
// function: write ADU Command register to clear the ADU Status register and
// reset the ADU state machine
@@ -454,14 +446,14 @@ fapi::ReturnCode proc_adu_utils_reset_adu(
// successful,
// FAPI_RC_PLAT_ERR_ADU_LOCKED if operation failed due to state of
// ADU atomic lock,
-// RC_PROC_ADU_UTILS_INVALID_ARGS if invalid/out-of-range input
+// RC_PROC_ADU_UTILS_INVALID_FBC_OP if invalid fabric operation
// parameters are specified,
// else error
fapi::ReturnCode proc_adu_utils_send_fbc_op(
const fapi::Target& i_target,
- const proc_adu_utils_fbc_op& i_adu_ctl,
- const bool& i_use_hp,
- const proc_adu_utils_fbc_op_hp_ctl& i_adu_hp_ctl);
+ const proc_adu_utils_fbc_op i_adu_ctl,
+ const bool i_use_hp,
+ const proc_adu_utils_fbc_op_hp_ctl i_adu_hp_ctl);
// function: read ADU Status register, return structure encapsulating
// error/status bits
@@ -491,11 +483,11 @@ fapi::ReturnCode proc_adu_utils_get_adu_status(
// else error
fapi::ReturnCode proc_adu_utils_set_adu_data_registers(
const fapi::Target& i_target,
- const uint64_t& i_write_data,
- const bool& i_override_itag,
- const bool& i_write_itag,
- const bool& i_override_ecc,
- const uint8_t& i_write_ecc);
+ const uint64_t i_write_data,
+ const bool i_override_itag,
+ const bool i_write_itag,
+ const bool i_override_ecc,
+ const uint8_t i_write_ecc);
// function: read ADU Data & Force ECC registers (to get inbound data
// delivered from the fabric)
@@ -511,7 +503,7 @@ fapi::ReturnCode proc_adu_utils_set_adu_data_registers(
// else error
fapi::ReturnCode proc_adu_utils_get_adu_data_registers(
const fapi::Target& i_target,
- const bool& i_get_itag,
+ const bool i_get_itag,
uint64_t& o_read_data,
bool& o_read_itag);
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils_errors.xml b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils_errors.xml
index 9fbd949ae..08ba59041 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils_errors.xml
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils_errors.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- IBM CONFIDENTIAL -->
<!-- -->
-<!-- COPYRIGHT International Business Machines Corp. 2012 -->
+<!-- COPYRIGHT International Business Machines Corp. 2012,2014 -->
<!-- -->
<!-- p1 -->
<!-- -->
@@ -20,17 +20,44 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_adu_utils_errors.xml,v 1.4 2014/01/20 19:55:04 jmcgill Exp $ -->
<!-- Error definitions for proc_adu_utils library -->
<hwpErrors>
<!-- *********************************************************************** -->
<hwpError>
- <rc>RC_PROC_ADU_UTILS_INVALID_ARGS</rc>
- <description>Invalid or out-of-range argument value(s) presented to proc_adu_utils library routine.</description>
- <ffdc>ARGS</ffdc>
+ <rc>RC_PROC_ADU_UTILS_INVALID_LOCK_ATTEMPTS</rc>
+ <ffdc>TARGET</ffdc>
+ <ffdc>ATTEMPTS</ffdc>
+ <description>Invalid number of lock manipulation attempts presented to proc_adu_utils library routine.</description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
+ <!-- *********************************************************************** -->
<hwpError>
- <rc>RC_PROC_ADU_UTILS_INTERNAL_ERR</rc>
- <description>Unexpected internal program logic error</description>
- <ffdc>ERR_DATA</ffdc>
+ <rc>RC_PROC_ADU_UTILS_INVALID_LOCK_OPERATION</rc>
+ <ffdc>TARGET</ffdc>
+ <ffdc>OPERATION</ffdc>
+ <description>Invalid lock operation type presented to proc_adu_utils library routine.</description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
+ <!-- *********************************************************************** -->
+ <hwpError>
+ <rc>RC_PROC_ADU_UTILS_INVALID_FBC_OP</rc>
+ <ffdc>TARGET</ffdc>
+ <ffdc>ADDRESS</ffdc>
+ <ffdc>HP</ffdc>
+ <ffdc>HP_QUIESCE_DLY</ffdc>
+ <ffdc>HP_INIT_DLY</ffdc>
+ <description>Invalid fabric op programming parameters presented to proc_adu_utils library routine.</description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+ <!-- *********************************************************************** -->
</hwpErrors>
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_fbc_utils.H b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_fbc_utils.H
index a4ec1264c..a00d2dfdb 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_fbc_utils.H
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_fbc_utils.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_fbc_utils.H,v 1.2 2012/04/27 06:49:15 jmcgill Exp $
+// $Id: proc_fbc_utils.H,v 1.3 2014/01/19 17:34:51 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/utils/proc_fbc_utils.H,v $
//------------------------------------------------------------------------------
// *|
@@ -29,7 +29,7 @@
// *! *** IBM Confidential ***
// *|
// *! TITLE : proc_fbc_utils.H
-// *! DESCRIPTION : PBA library functions (FAPI)
+// *! DESCRIPTION : Fabric library functions (FAPI)
// *!
// *! OWNER NAME : Joe McGill Email: jmcgill@us.ibm.com
// *!
@@ -43,7 +43,7 @@
//------------------------------------------------------------------------------
#include <fapi.H>
-#include "p8_scom_addresses.H"
+#include <p8_scom_addresses.H>
extern "C" {
@@ -56,14 +56,6 @@ const uint64_t PROC_FBC_UTILS_FBC_MAX_ADDRESS = ((1ULL << 50)-1ULL);
const uint64_t PROC_FBC_UTILS_CACHELINE_MASK = 0x7FULL;
const uint64_t PROC_FBC_UTILS_LAST_ADDR_IN_CACHELINE = 0x78ULL;
-// PB Mode register field bit/definitions
-const uint32_t PB_MODE_FBC_INIT_BIT = 0;
-
-// ADU pMISC Mode register field/bit definitions
-const uint32_t ADU_PMISC_MODE_DISABLE_CHECKSTOP_BIT = 19;
-const uint32_t ADU_PMISC_MODE_MANUAL_CLEAR_FBC_STOP_BIT = 21;
-const uint32_t ADU_PMISC_MODE_FBC_STOP_BIT = 22;
-
//------------------------------------------------------------------------------
// Function prototypes
OpenPOWER on IntegriCloud