diff options
Diffstat (limited to 'src/usr')
11 files changed, 296 insertions, 201 deletions
diff --git a/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit/proc_dmi_scominit.C b/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit/proc_dmi_scominit.C index b55d6cdc0..2a5e07146 100644 --- a/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit/proc_dmi_scominit.C +++ b/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit/proc_dmi_scominit.C @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_dmi_scominit.C,v 1.7 2013/05/14 15:45:32 jmcgill Exp $ +// $Id: proc_dmi_scominit.C,v 1.8 2013/11/09 18:37:40 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_dmi_scominit.C,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 @@ -37,18 +37,30 @@ // *! //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -// Version Date Owner Description +// Version Date Owner Description //------------------------------------------------------------------------------ +// 1.8 10/08/13 jmcgill Updates for RAS review // 1.7 05/14/13 jmcgill Address review comments -// 1.6 05/01/13 jgrell Added proc chip target -// 1.5 02/06/13 jmcgill Change passed targets in order to match scominit file updates. -// 1.4 02/04/13 thomsen Fixed informational print to not say Error -// 1.3 01/23/13 thomsen Added separate calls to base & customized scominit files. Removed separate calls to SIM vs. HW scominit files -// 1.2 01/10/13 thomsen Added separate calls to SIM vs. HW scominit files -// Added commented-out call to OVERRIDE initfile for system/bus/lane specific inits -// Changed passed targets in order to match scominit file updates. -// CO-REQs required: p8.dmi.vbu.scom.initfile v1.1 and p8.dmi.hw.scom.initfile v1.1 -// 1.1 8/11/12 jmcgill Initial release +// 1.6 05/01/13 jgrell Added proc chip target +// 1.5 02/06/13 jmcgill Change passed targets in order to match +// scominit file updates. +// 1.4 02/04/13 thomsen Fixed informational print to not say +// Error +// 1.3 01/23/13 thomsen Added separate calls to base & +// customized scominit files. Removed +// separate calls to SIM vs. HW scominit +// files +// 1.2 01/10/13 thomsen Added separate calls to SIM vs. HW +// scominit files +// Added commented-out call to OVERRIDE +// initfile for system/bus/lane specific +// inits +// Changed passed targets in order to match +// scominit file updates. +// CO-REQs required: +// p8.dmi.vbu.scom.initfile v1.1 and +// p8.dmi.hw.scom.initfile v1.1 +// 1.1 8/11/12 jmcgill Initial release //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ @@ -68,7 +80,7 @@ fapi::ReturnCode proc_dmi_scominit(const fapi::Target & i_target) { fapi::ReturnCode rc; - fapi::Target i_this_pu_target; + fapi::Target this_pu_target; std::vector<fapi::Target> targets; // mark HWP entry @@ -76,40 +88,50 @@ fapi::ReturnCode proc_dmi_scominit(const fapi::Target & i_target) do { - // Get parent chip target - rc = fapiGetParentChip(i_target, i_this_pu_target); - if (!rc.ok()) + // test target type to confirm correct before calling initfile(s) + // to execute + if (i_target.getType() == fapi::TARGET_TYPE_MCS_CHIPLET) { - FAPI_ERR("proc_dmi_scominit: Error from fapiGetParentChip"); - break; - } + // get parent chip target + rc = fapiGetParentChip(i_target, this_pu_target); + if (!rc.ok()) + { + FAPI_ERR("proc_dmi_scominit: Error from fapiGetParentChip (%s)", + i_target.toEcmdString()); + break; + } - // populate targets vector (i_target=chiplet target) - targets.push_back(i_target); - targets.push_back(i_this_pu_target); + // populate targets vector + targets.push_back(i_target); // chiplet target + targets.push_back(this_pu_target); // chip target - // processor MCS chiplet target - // test target type to confirm correct before calling initfile(s) to execute - if (i_target.getType() == fapi::TARGET_TYPE_MCS_CHIPLET) - { // Call BASE DMI SCOMINIT - FAPI_INF("proc_dmi_scominit: fapiHwpExecInitfile executing %s on %s", - MCS_DMI_BASE_IF, i_target.toEcmdString()); + FAPI_INF("proc_dmi_scominit: fapiHwpExecInitfile executing %s on %s, %s", + MCS_DMI_BASE_IF, + i_target.toEcmdString(), + this_pu_target.toEcmdString()); FAPI_EXEC_HWP(rc, fapiHwpExecInitFile, targets, MCS_DMI_BASE_IF); if (!rc.ok()) { - FAPI_ERR("proc_dmi_scominit: Error from fapiHwpExecInitfile executing %s on %s", - MCS_DMI_BASE_IF, i_target.toEcmdString()); + FAPI_ERR("proc_dmi_scominit: Error from fapiHwpExecInitfile executing %s on %s, %s", + MCS_DMI_BASE_IF, + i_target.toEcmdString(), + this_pu_target.toEcmdString()); break; } - // Call CUSTOMIZED DMI SCOMINIT (system specific) - FAPI_INF("proc_dmi_scominit: fapiHwpExecInitfile executing %s on %s", - MCS_DMI_CUSTOM_IF, i_target.toEcmdString()); + + // Call CUSTOMIZED DMI SCOMINIT + FAPI_INF("proc_dmi_scominit: fapiHwpExecInitfile executing %s on %s, %s", + MCS_DMI_CUSTOM_IF, + i_target.toEcmdString(), + this_pu_target.toEcmdString()); FAPI_EXEC_HWP(rc, fapiHwpExecInitFile, targets, MCS_DMI_CUSTOM_IF); if (!rc.ok()) { - FAPI_ERR("proc_dmi_scominit: Error from fapiHwpExecInitfile executing %s on %s", - MCS_DMI_CUSTOM_IF, i_target.toEcmdString()); + FAPI_ERR("proc_dmi_scominit: Error from fapiHwpExecInitfile executing %s on %s, %s", + MCS_DMI_CUSTOM_IF, + i_target.toEcmdString(), + this_pu_target.toEcmdString()); break; } } @@ -117,6 +139,7 @@ fapi::ReturnCode proc_dmi_scominit(const fapi::Target & i_target) else { FAPI_ERR("proc_dmi_scominit: Unsupported target type"); + const fapi::Target & MCS_TARGET = i_target; FAPI_SET_HWP_ERROR(rc, RC_PROC_DMI_SCOMINIT_INVALID_TARGET); break; } diff --git a/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit/proc_dmi_scominit.H b/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit/proc_dmi_scominit.H index ea9b30814..c9f464125 100644 --- a/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit/proc_dmi_scominit.H +++ b/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit/proc_dmi_scominit.H @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_dmi_scominit.H,v 1.3 2013/01/24 20:20:34 thomsen Exp $ +// $Id: proc_dmi_scominit.H,v 1.4 2013/11/09 18:37:40 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_dmi_scominit.H,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 @@ -36,15 +36,6 @@ // *! ADDITIONAL COMMENTS : // *! //------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ -// Version Date Owner Description -//------------------------------------------------------------------------------ -// 1.3 01/23/13 thomsen Added separate calls to base & customized scominit files. Removed separate calls to SIM vs. HW scominit files -// 1.2 01/10/13 thomsen Added SIM and HW scominit filename strings -// Added *_OVERRIDE_IF to allow initfile overrides for specific bus instances -// CO-REQs required: p8.dmi.vbu.scom.initfile v1.1 and p8.dmi.hw.scom.initfile v1.1 -// 1.1 8/11/12 jmcgill Initial release -//------------------------------------------------------------------------------ #ifndef PROC_DMI_SCOMINIT_H_ #define PROC_DMI_SCOMINIT_H_ @@ -79,9 +70,10 @@ extern "C" { * * Should be called with all functional MCS chiplets * - * @param[in] i_target Reference to target + * @param[in] i_target Reference to MCS chiplet target * If TARGET_TYPE_MCS_CHIPLET, calls: * - p8.dmi.scom.initfile + * - p8.dmi.custom.scom.initfile * * @return ReturnCode */ diff --git a/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml b/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml index d09cbac1f..1c640e9cd 100644 --- a/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml +++ b/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml @@ -20,12 +20,17 @@ <!-- Origin: 30 --> <!-- --> <!-- IBM_PROLOG_END_TAG --> -<!-- $Id: proc_dmi_scominit_errors.xml,v 1.2 2013/06/25 15:38:26 cswenson Exp $ --> +<!-- $Id: proc_dmi_scominit_errors.xml,v 1.3 2013/11/09 18:38:44 jmcgill Exp $ --> <!-- Error definitions for proc_dmi_scominit procedure --> <hwpErrors> <!-- *********************************************************************** --> <hwpError> <rc>RC_PROC_DMI_SCOMINIT_INVALID_TARGET</rc> + <ffdc>MCS_TARGET</ffdc> <description>Invalid target type presented to proc_dmi_scominit HWP (expects TARGET_TYPE_MCS_CHIPLET).</description> + <callout> + <procedure>CODE</procedure> + <priority>HIGH</priority> + </callout> </hwpError> </hwpErrors> diff --git a/src/usr/hwpf/hwp/include/common_scom_addresses.H b/src/usr/hwpf/hwp/include/common_scom_addresses.H index 7f712c0d5..6f36a055c 100755 --- a/src/usr/hwpf/hwp/include/common_scom_addresses.H +++ b/src/usr/hwpf/hwp/include/common_scom_addresses.H @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: common_scom_addresses.H,v 1.47 2013/07/10 15:30:36 jmcgill Exp $ +// $Id: common_scom_addresses.H,v 1.48 2013/11/04 14:31:08 kahnevan Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/common_scom_addresses.H,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2011 @@ -36,7 +36,7 @@ // The purpose of this header is to define scom addresses for use by procedures. // This will help catch address typos at compile time, and will make it easy // to track down which procedures use each address - +// #ifndef COMMON_SCOM_ADDRESSES #define COMMON_SCOM_ADDRESSES @@ -297,11 +297,16 @@ CONST_UINT64_T( I2CMS_MEMS0_STATUS_0x000A000B , ULL(0x000A000B) ); // PCB MASTER //------------------------------------------------------------------------------ CONST_UINT64_T( PCBMS_0x000F0000 , ULL(0x000F0000) ); +CONST_UINT64_T( PCBMS_REC_ACK_REG_0x000F0010 , ULL(0x000F0010) ); +CONST_UINT64_T( PCBMS_REC_ERR_REG0_0x000F0011 , ULL(0x000F0011) ); +CONST_UINT64_T( PCBMS_REC_ERR_REG1_0x000F0012 , ULL(0x000F0012) ); CONST_UINT64_T( PCBMS_DEVICE_ID_0x000F000F , ULL(0x000F000F) ); CONST_UINT64_T( PCB_TIMEOUT_0x000F0019 , ULL(0x000F0019) ); CONST_UINT64_T( MASTER_PCB_INT_0x000F001A , ULL(0x000F001A) ); CONST_UINT64_T( PRV_PIB_PCBMS_RESET_REG_0x000F001D , ULL(0x000F001D) ); +CONST_UINT64_T( PCBMS_FIRST_ERR_REG_0x000F001E , ULL(0x000F001E) ); CONST_UINT64_T( MASTER_PCB_ERR_0x000F001F , ULL(0x000F001F) ); +CONST_UINT64_T( PCBSL_ERROR_REG_ALL_0x400F001F , ULL(0x400F001F) ); //------------------------------------------------------------------------------ // TP GPIO @@ -633,6 +638,9 @@ This section is automatically updated by CVS when you check in this file. Be sure to create CVS comments when you commit so that they can be included here. $Log: common_scom_addresses.H,v $ +Revision 1.48 2013/11/04 14:31:08 kahnevan +Added missing addresses used by proc_perv_registers.xml + Revision 1.47 2013/07/10 15:30:36 jmcgill add entries for SCOM debug resources diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit.C b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit.C index 69d4f0a92..40d33f57f 100644 --- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit.C +++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit.C @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_abus_scominit.C,v 1.4 2013/04/18 22:35:35 jgrell Exp $ +// $Id: proc_abus_scominit.C,v 1.5 2013/11/09 18:37:40 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_abus_scominit.C,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 @@ -37,12 +37,18 @@ // *! //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -// Version Date Owner Description +// Version Date Owner Description //------------------------------------------------------------------------------ -// 1.4 02/18/13 thomsen Changed targeting to use Abus_chiplet, chip, connected_Abus_chiplet & connected_chip to match Xbus and DMI target list so they are common -// 1.3 02/10/13 jmcgill Leverage chiplet level targeting, invoke custom initfile -// 1.2 01/20/13 jmcgill Add consistency check for A chiplet partial good support -// 1.1 8/11/12 jmcgill Initial release +// 1.5 11/08/13 jmcgill Updates for RAS review +// 1.4 02/18/13 thomsen Changed targeting to use Abus_chiplet, +// chip, connected_Abus_chiplet & +// connected_chip to match Xbus and DMI +// target list so they are common +// 1.3 02/10/13 jmcgill Leverage chiplet level targeting, invoke +// custom initfile +// 1.2 01/20/13 jmcgill Add consistency check for A chiplet +// partial good support +// 1.1 8/11/12 jmcgill Initial release //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ @@ -58,13 +64,13 @@ extern "C" { //------------------------------------------------------------------------------ // HWP entry point, comments in header -fapi::ReturnCode proc_abus_scominit( const fapi::Target & i_abus_target, - const fapi::Target & i_connected_abus_target) +fapi::ReturnCode proc_abus_scominit(const fapi::Target & i_abus_target, + const fapi::Target & i_connected_abus_target) { fapi::ReturnCode rc; std::vector<fapi::Target> targets; - fapi::Target i_this_pu_target; - fapi::Target i_connected_pu_target; + fapi::Target this_pu_target; + fapi::Target connected_pu_target; uint8_t abus_enable_attr; // mark HWP entry @@ -72,71 +78,89 @@ fapi::ReturnCode proc_abus_scominit( const fapi::Target & i_abus_target, do { + // test target types to confirm correctness before calling initfile(s) + // to execute + if ((i_abus_target.getType() == fapi::TARGET_TYPE_ABUS_ENDPOINT) && + (i_connected_abus_target.getType() == fapi::TARGET_TYPE_ABUS_ENDPOINT)) + { + // get parent chip targets + rc = fapiGetParentChip(i_abus_target, this_pu_target); + if (!rc.ok()) + { + FAPI_ERR("proc_abus_scominit: Error from fapiGetParentChip (this target, %s)", + i_abus_target.toEcmdString()); + break; + } - // Get parent chip targets - rc = fapiGetParentChip(i_abus_target, i_this_pu_target); if(rc) return rc; - rc = fapiGetParentChip(i_connected_abus_target, i_connected_pu_target); if(rc) return rc; + rc = fapiGetParentChip(i_connected_abus_target, connected_pu_target); + if (!rc.ok()) + { + FAPI_ERR("proc_abus_scominit: Error from fapiGetParentChip (connected target, %s)", + i_connected_abus_target.toEcmdString()); + break; + } - // populate targets vector - targets.push_back(i_abus_target); // Chiplet target - targets.push_back(i_this_pu_target); // Proc target - targets.push_back(i_connected_abus_target); // Connected Chiplet target - targets.push_back(i_connected_pu_target); // Connected Proc target + // populate targets vector + targets.push_back(i_abus_target); // chiplet target + targets.push_back(this_pu_target); // chip target + targets.push_back(i_connected_abus_target); // connected chiplet target + targets.push_back(connected_pu_target); // connected chip target - // query ABUS partial good attribute - rc = FAPI_ATTR_GET(ATTR_PROC_A_ENABLE, - &i_this_pu_target, - abus_enable_attr); - if (!rc.ok()) - { - FAPI_ERR("proc_abus_scominit: Error querying ATTR_PROC_A_ENABLE"); - break; - } + // query ABUS partial good attribute + rc = FAPI_ATTR_GET(ATTR_PROC_A_ENABLE, + &this_pu_target, + abus_enable_attr); + if (!rc.ok()) + { + FAPI_ERR("proc_abus_scominit: Error querying ATTR_PROC_A_ENABLE (%s)", + this_pu_target.toEcmdString()); + break; + } - if (abus_enable_attr != fapi::ENUM_ATTR_PROC_A_ENABLE_ENABLE) - { - FAPI_ERR("proc_abus_scominit: Partial good attribute error"); - FAPI_SET_HWP_ERROR(rc, RC_PROC_ABUS_SCOMINIT_PARTIAL_GOOD_ERR); - break; - } + if (abus_enable_attr != fapi::ENUM_ATTR_PROC_A_ENABLE_ENABLE) + { + FAPI_ERR("proc_abus_scominit: Partial good attribute error"); + const fapi::Target & TARGET = this_pu_target; + FAPI_SET_HWP_ERROR(rc, RC_PROC_ABUS_SCOMINIT_PARTIAL_GOOD_ERR); + break; + } - // processor target, processor MCS chiplet target - // test target types to confirm correct before calling initfile(s) to execute - if ((i_this_pu_target.getType() == fapi::TARGET_TYPE_PROC_CHIP) && - (i_abus_target.getType() == fapi::TARGET_TYPE_ABUS_ENDPOINT) && - (i_connected_pu_target.getType() == fapi::TARGET_TYPE_PROC_CHIP) && - (i_connected_abus_target.getType() == fapi::TARGET_TYPE_ABUS_ENDPOINT)) - { - // Call BASE DMI SCOMINIT + // Call BASE ABUS SCOMINIT FAPI_INF("proc_abus_scominit: fapiHwpExecInitfile executing %s on %s, %s, %s, %s", - ABUS_BASE_IF, i_this_pu_target.toEcmdString(), i_abus_target.toEcmdString(), - i_connected_pu_target.toEcmdString(), i_connected_abus_target.toEcmdString()); + ABUS_BASE_IF, + i_abus_target.toEcmdString(), this_pu_target.toEcmdString(), + i_connected_abus_target.toEcmdString(), connected_pu_target.toEcmdString()); FAPI_EXEC_HWP(rc, fapiHwpExecInitFile, targets, ABUS_BASE_IF); if (!rc.ok()) { FAPI_ERR("proc_abus_scominit: Error from fapiHwpExecInitfile executing %s on %s, %s, %s, %s", - ABUS_BASE_IF, i_this_pu_target.toEcmdString(), i_abus_target.toEcmdString(), - i_connected_pu_target.toEcmdString(), i_connected_abus_target.toEcmdString()); + ABUS_BASE_IF, + i_abus_target.toEcmdString(), this_pu_target.toEcmdString(), + i_connected_abus_target.toEcmdString(), connected_pu_target.toEcmdString()); break; } - // Call CUSTOMIZED DMI SCOMINIT (system specific) + // Call CUSTOMIZED ABUS SCOMINIT FAPI_INF("proc_abus_scominit: fapiHwpExecInitfile executing %s on %s, %s, %s, %s", - ABUS_CUSTOM_IF, i_this_pu_target.toEcmdString(), i_abus_target.toEcmdString(), - i_connected_pu_target.toEcmdString(), i_connected_abus_target.toEcmdString()); + ABUS_CUSTOM_IF, + i_abus_target.toEcmdString(), this_pu_target.toEcmdString(), + i_connected_abus_target.toEcmdString(), connected_pu_target.toEcmdString()); FAPI_EXEC_HWP(rc, fapiHwpExecInitFile, targets, ABUS_CUSTOM_IF); if (!rc.ok()) { FAPI_ERR("proc_abus_scominit: Error from fapiHwpExecInitfile executing %s on %s, %s, %s, %s", - ABUS_CUSTOM_IF, i_abus_target.toEcmdString(), i_abus_target.toEcmdString(), - i_connected_pu_target.toEcmdString(), i_connected_abus_target.toEcmdString()); + ABUS_BASE_IF, + i_abus_target.toEcmdString(), this_pu_target.toEcmdString(), + i_connected_abus_target.toEcmdString(), connected_pu_target.toEcmdString()); break; } - } + } // unsupported target type else { FAPI_ERR("proc_abus_scominit: Unsupported target type(s)"); + const fapi::Target & THIS_ABUS_TARGET = i_abus_target; + const fapi::Target & CONNECTED_ABUS_TARGET = i_connected_abus_target; FAPI_SET_HWP_ERROR(rc, RC_PROC_ABUS_SCOMINIT_INVALID_TARGET); break; } @@ -144,7 +168,7 @@ fapi::ReturnCode proc_abus_scominit( const fapi::Target & i_abus_target, // mark HWP exit FAPI_INF("proc_abus_scominit: End"); - return rc; + return rc; } diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit.H b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit.H index 255c14242..b342eba54 100644 --- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit.H +++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit.H @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_abus_scominit.H,v 1.3 2013/04/18 22:36:20 jgrell Exp $ +// $Id: proc_abus_scominit.H,v 1.4 2013/11/09 18:37:40 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_abus_scominit.H,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 @@ -71,14 +71,11 @@ extern "C" { * * Should be called for all valid/connected ABUS endpoints * - * @param[in] i_abus_target Reference to ABUS target - * i_this_pu_target Reference to enclosing chip target - * i_other_pu_target Reference to connected chip target - * If i_abus_target is TARGET_TYPE_ABUS_ENDPOINT, - * i_this_pu_target is TARGET_TYPE_PROC_CHIP, - * i_other_pu_target is TARGET_TYPE_PROC_CHIP, - * calls: - * - p8.abus.scom.initfile + * @param[in] i_abus_target Reference to ABUS chiplet target + * i_connected_abus_target Reference to connected ABUS chiplet target + * If TARGET_TYPE_ABUS_ENDPOINT, calls: + * - p8.abus.scom.initfile + * - p8.abus.custom.scom.initfile * * @return ReturnCode */ diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml index 41c5107bc..4c3859390 100644 --- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml +++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml @@ -20,16 +20,27 @@ <!-- Origin: 30 --> <!-- --> <!-- IBM_PROLOG_END_TAG --> -<!-- $Id: proc_abus_scominit_errors.xml,v 1.3 2013/06/25 15:38:21 cswenson Exp $ --> +<!-- $Id: proc_abus_scominit_errors.xml,v 1.4 2013/11/09 18:38:44 jmcgill Exp $ --> <!-- Error definitions for proc_abus_scominit procedure --> <hwpErrors> <!-- *********************************************************************** --> <hwpError> <rc>RC_PROC_ABUS_SCOMINIT_INVALID_TARGET</rc> - <description>Invalid target type presented to proc_abus_scominit HWP (expects TARGET_TYPE_ABUS_ENDPOINT).</description> + <ffdc>THIS_ABUS_TARGET</ffdc> + <ffdc>CONNECTED_ABUS_TARGET</ffdc> + <description>Invalid target type(s) presented to proc_abus_scominit HWP (expects TARGET_TYPE_ABUS_ENDPOINT).</description> + <callout> + <procedure>CODE</procedure> + <priority>HIGH</priority> + </callout> </hwpError> <hwpError> <rc>RC_PROC_ABUS_SCOMINIT_PARTIAL_GOOD_ERR</rc> + <ffdc>TARGET</ffdc> <description>Partial good attribute state does not allow for action on chiplet target.</description> + <callout> + <procedure>CODE</procedure> + <priority>HIGH</priority> + </callout> </hwpError> </hwpErrors> diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit.C b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit.C index 75f473da0..11ba8fada 100644 --- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit.C +++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit.C @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_xbus_scominit.C,v 1.4 2013/02/06 22:21:31 thomsen Exp $ +// $Id: proc_xbus_scominit.C,v 1.5 2013/11/09 18:37:40 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_xbus_scominit.C,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 @@ -37,13 +37,24 @@ // *! //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -// Version Date Owner Description +// Version Date Owner Description //------------------------------------------------------------------------------ -// 1.3 01/31/13 thomsen Added separate calls to base & customized scominit files. Removed separate calls to SIM vs. HW scominit files -// 1.2 01/09/13 thomsen Added separate calls to SIM vs. HW scominit files -// Added parent chip and connected targets to vector of passed targets. This is to match scominit file updates. -// Added commented-out call to OVERRIDE initfile for system/bus/lane specific inits -// 1.1 8/11/12 jmcgill Initial release +// 1.5 11/08/13 jmcgill Updates for RAS review +// 1.4 02/06/13 thomsen Changed order of targets expected by +// initfile +// 1.3 01/31/13 thomsen Added separate calls to base & +// customized scominit files. Removed +// separate calls to SIM vs. HW scominit +// files +// 1.2 01/09/13 thomsen Added separate calls to SIM vs. HW +// scominit files +// Added parent chip and connected targets +// to vector of passed targets. This is to +// match scominit file updates. +// Added commented-out call to OVERRIDE +// initfile for system/bus/lane specific +// inits +// 1.1 8/11/12 jmcgill Initial release //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ @@ -59,13 +70,13 @@ extern "C" { //------------------------------------------------------------------------------ // HWP entry point, comments in header -fapi::ReturnCode proc_xbus_scominit( const fapi::Target & i_xbus_target, - const fapi::Target & i_connected_xbus_target) +fapi::ReturnCode proc_xbus_scominit(const fapi::Target & i_xbus_target, + const fapi::Target & i_connected_xbus_target) { fapi::ReturnCode rc; std::vector<fapi::Target> targets; - fapi::Target i_this_pu_target; - fapi::Target i_connected_pu_target; + fapi::Target this_pu_target; + fapi::Target connected_pu_target; uint8_t xbus_enable_attr; // mark HWP entry @@ -73,80 +84,97 @@ fapi::ReturnCode proc_xbus_scominit( const fapi::Target & i_xbus_target, do { - - // Get parent chip targets - rc = fapiGetParentChip(i_xbus_target, i_this_pu_target); if(rc) return rc; - rc = fapiGetParentChip(i_connected_xbus_target, i_connected_pu_target); if(rc) return rc; - - // populate targets vector - targets.push_back(i_xbus_target); - targets.push_back(i_this_pu_target); - targets.push_back(i_connected_xbus_target); - targets.push_back(i_connected_pu_target); - - // query XBUS partial good attribute - rc = FAPI_ATTR_GET(ATTR_PROC_X_ENABLE, - &i_this_pu_target, - xbus_enable_attr); - if (!rc.ok()) + // test target types to confirm correctness before calling initfile(s) + // to execute + if ((i_xbus_target.getType() == fapi::TARGET_TYPE_XBUS_ENDPOINT) && + (i_connected_xbus_target.getType() == fapi::TARGET_TYPE_XBUS_ENDPOINT)) { - FAPI_ERR("proc_xbus_scominit: Error querying ATTR_PROC_X_ENABLE"); - break; - } + // get parent chip targets + rc = fapiGetParentChip(i_xbus_target, this_pu_target); + if (!rc.ok()) + { + FAPI_ERR("proc_xbus_scominit: Error from fapiGetParentChip (this target, %s)", + i_xbus_target.toEcmdString()); + break; + } - if (xbus_enable_attr != fapi::ENUM_ATTR_PROC_X_ENABLE_ENABLE) - { - FAPI_ERR("proc_xbus_scominit: Partial good attribute error"); - FAPI_SET_HWP_ERROR(rc, RC_PROC_XBUS_SCOMINIT_PARTIAL_GOOD_ERR); - break; - } + rc = fapiGetParentChip(i_connected_xbus_target, connected_pu_target); + if (!rc.ok()) + { + FAPI_ERR("proc_xbus_scominit: Error from fapiGetParentChip (connected target, %s)", + i_connected_xbus_target.toEcmdString()); + break; + } - // processor target, processor MCS chiplet target - // test target types to confirm correct before calling initfile(s) to execute - if ((i_this_pu_target.getType() == fapi::TARGET_TYPE_PROC_CHIP) && - (i_xbus_target.getType() == fapi::TARGET_TYPE_XBUS_ENDPOINT) && - (i_connected_pu_target.getType() == fapi::TARGET_TYPE_PROC_CHIP) && - (i_connected_xbus_target.getType() == fapi::TARGET_TYPE_XBUS_ENDPOINT)) - { - // Call BASE DMI SCOMINIT + // populate targets vector + targets.push_back(i_xbus_target); // chiplet target + targets.push_back(this_pu_target); // chip target + targets.push_back(i_connected_xbus_target); // connected chiplet target + targets.push_back(connected_pu_target); // connected chip target + + // query XBUS partial good attribute + rc = FAPI_ATTR_GET(ATTR_PROC_X_ENABLE, + &this_pu_target, + xbus_enable_attr); + if (!rc.ok()) + { + FAPI_ERR("proc_xbus_scominit: Error querying ATTR_PROC_X_ENABLE (%s)", + this_pu_target.toEcmdString()); + break; + } + + if (xbus_enable_attr != fapi::ENUM_ATTR_PROC_X_ENABLE_ENABLE) + { + FAPI_ERR("proc_xbus_scominit: Partial good attribute error"); + const fapi::Target & TARGET = this_pu_target; + FAPI_SET_HWP_ERROR(rc, RC_PROC_XBUS_SCOMINIT_PARTIAL_GOOD_ERR); + break; + } + + // Call BASE XBUS SCOMINIT FAPI_INF("proc_xbus_scominit: fapiHwpExecInitfile executing %s on %s, %s, %s, %s", - XBUS_BASE_IF, i_this_pu_target.toEcmdString(), i_xbus_target.toEcmdString(), - i_connected_pu_target.toEcmdString(), i_connected_xbus_target.toEcmdString()); + XBUS_BASE_IF, + i_xbus_target.toEcmdString(), this_pu_target.toEcmdString(), + i_connected_xbus_target.toEcmdString(), connected_pu_target.toEcmdString()); FAPI_EXEC_HWP(rc, fapiHwpExecInitFile, targets, XBUS_BASE_IF); if (!rc.ok()) { - FAPI_ERR("proc_xbus_scominit: Error with fapiHwpExecInitfile executing %s on %s, %s, %s, %s", - XBUS_BASE_IF, i_this_pu_target.toEcmdString(), i_xbus_target.toEcmdString(), - i_connected_pu_target.toEcmdString(), i_connected_xbus_target.toEcmdString()); + FAPI_ERR("proc_xbus_scominit: Error from fapiHwpExecInitfile executing %s on %s, %s, %s, %s", + XBUS_BASE_IF, + i_xbus_target.toEcmdString(), this_pu_target.toEcmdString(), + i_connected_xbus_target.toEcmdString(), connected_pu_target.toEcmdString()); break; } - // Call CUSTOMIZED DMI SCOMINIT (system specific) - FAPI_INF("proc_xbus_scominit: fapiHwpExecInitfile executing %s on %s, %s, %s, %s", - XBUS_CUSTOM_IF, i_this_pu_target.toEcmdString(), i_xbus_target.toEcmdString(), - i_connected_pu_target.toEcmdString(), i_connected_xbus_target.toEcmdString()); + + // Call CUSTOMIZED XBUS SCOMINIT + FAPI_INF("proc_xbus_scominit: fapiHwpExecInitfile executing %s on %s, %s, %s, %s", + XBUS_CUSTOM_IF, + i_xbus_target.toEcmdString(), this_pu_target.toEcmdString(), + i_connected_xbus_target.toEcmdString(), connected_pu_target.toEcmdString()); FAPI_EXEC_HWP(rc, fapiHwpExecInitFile, targets, XBUS_CUSTOM_IF); if (!rc.ok()) { - FAPI_ERR("proc_xbus_scominit: Error with fapiHwpExecInitfile executing %s on %s, %s, %s, %s", - XBUS_CUSTOM_IF, i_this_pu_target.toEcmdString(), i_xbus_target.toEcmdString(), - i_connected_pu_target.toEcmdString(), i_connected_xbus_target.toEcmdString()); + FAPI_ERR("proc_xbus_scominit: Error from fapiHwpExecInitfile executing %s on %s, %s, %s, %s", + XBUS_BASE_IF, + i_xbus_target.toEcmdString(), this_pu_target.toEcmdString(), + i_connected_xbus_target.toEcmdString(), connected_pu_target.toEcmdString()); break; } - } // unsupported target type else { FAPI_ERR("proc_xbus_scominit: Unsupported target type(s)"); + const fapi::Target & THIS_XBUS_TARGET = i_xbus_target; + const fapi::Target & CONNECTED_XBUS_TARGET = i_connected_xbus_target; FAPI_SET_HWP_ERROR(rc, RC_PROC_XBUS_SCOMINIT_INVALID_TARGET); break; } } while (0); - // mark HWP exit FAPI_INF("proc_xbus_scominit: End"); - return rc; + return rc; } diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit.H b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit.H index 85b792639..24ac9d1df 100644 --- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit.H +++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit.H @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_xbus_scominit.H,v 1.2 2013/02/04 23:08:13 thomsen Exp $ +// $Id: proc_xbus_scominit.H,v 1.3 2013/11/09 18:37:40 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_xbus_scominit.H,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 @@ -36,15 +36,6 @@ // *! ADDITIONAL COMMENTS : // *! //------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ -// Version Date Owner Description -//------------------------------------------------------------------------------ -// 1.2 02/04/13 thomsen Added separate calls to base & customized scominit files. Removed separate calls to SIM vs. HW scominit files -// 01/09/13 thomsen Added SIM and HW scominit filename strings -// Added *_OVERRIDE_IF to allow DMI initfile overrides for specific bus instances -// Changed passed targets in order to match scominit file updates. -// 1.1 8/11/12 jmcgill Initial release -//------------------------------------------------------------------------------ #ifndef PROC_XBUS_SCOMINIT_H_ #define PROC_XBUS_SCOMINIT_H_ @@ -80,12 +71,11 @@ extern "C" { * * Should be called for all valid/connected XBUS endpoints * - * @param[in] i_xbus_target Reference to XBUS target - * i_connected_abus_target Reference to connected ABUS target - * If i_xbus_target is TARGET_TYPE_XBUS_ENDPOINT, - * i_connected_abus_target is TARGET_TYPE_ABUS_ENDPOINT, - * calls: - * - p8.xbus.scom.initfile + * @param[in] i_xbus_target Reference to XBUS chiplet target + * i_connected_xbus_target Reference to connected XBUS chiplet target + * If TARGET_TYPE_XBUS_ENDPOINT, calls: + * - p8.xbus.scom.initfile + * - p8.xbus.custom.scom.initfile * * @return ReturnCode */ diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml index 91960d3b8..b753aa3aa 100644 --- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml +++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml @@ -20,16 +20,27 @@ <!-- Origin: 30 --> <!-- --> <!-- IBM_PROLOG_END_TAG --> -<!-- $Id: proc_xbus_scominit_errors.xml,v 1.3 2013/06/25 15:38:34 cswenson Exp $ --> +<!-- $Id: proc_xbus_scominit_errors.xml,v 1.4 2013/11/09 18:38:44 jmcgill Exp $ --> <!-- Error definitions for proc_xbus_scominit procedure --> <hwpErrors> <!-- *********************************************************************** --> <hwpError> <rc>RC_PROC_XBUS_SCOMINIT_INVALID_TARGET</rc> + <ffdc>THIS_XBUS_TARGET</ffdc> + <ffdc>CONNECTED_XBUS_TARGET</ffdc> <description>Invalid target type presented to proc_xbus_scominit HWP (expects TARGET_TYPE_XBUS_ENDPOINT).</description> + <callout> + <procedure>CODE</procedure> + <priority>HIGH</priority> + </callout> </hwpError> <hwpError> <rc>RC_PROC_XBUS_SCOMINIT_PARTIAL_GOOD_ERR</rc> + <ffdc>TARGET</ffdc> <description>Partial good attribute state does not allow for action on chiplet target.</description> + <callout> + <procedure>CODE</procedure> + <priority>HIGH</priority> + </callout> </hwpError> </hwpErrors> diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_getecid/proc_getecid.C b/src/usr/hwpf/hwp/slave_sbe/proc_getecid/proc_getecid.C index 2c32fedff..a0ce94981 100644 --- a/src/usr/hwpf/hwp/slave_sbe/proc_getecid/proc_getecid.C +++ b/src/usr/hwpf/hwp/slave_sbe/proc_getecid/proc_getecid.C @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_getecid.C,v 1.8 2013/03/28 17:21:06 jmcgill Exp $ +// $Id: proc_getecid.C,v 1.9 2013/11/09 18:39:29 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/utils/proc_getecid.C,v $ //------------------------------------------------------------------------------ // *| @@ -39,7 +39,7 @@ //------------------------------------------------------------------------------ // Includes //------------------------------------------------------------------------------ -#include "proc_getecid.H" +#include <proc_getecid.H> extern "C" { @@ -59,7 +59,7 @@ fapi::ReturnCode proc_getecid( uint64_t attr_data[2]; // mark HWP entry - FAPI_IMP("Entering ..."); + FAPI_DBG("proc_getecid: Start"); io_fuseString.setBitLength(112); // sets size and zeros out buffer ecmdDataBufferBase otprom_mode_data(64); @@ -75,14 +75,15 @@ fapi::ReturnCode proc_getecid( rc = fapiGetScom(i_target, OTPC_M_MODE_REGISTER_0x00010008, otprom_mode_data); if (!rc.ok()) { - FAPI_ERR("fapiGetScom error (OTPC_M_MODE_REGISTER_0x00010008)"); + FAPI_ERR("proc_getecid: fapiGetScom error (OTPC_M_MODE_REGISTER_0x00010008) for %s", + i_target.toEcmdString()); break; } rc_ecmd |= otprom_mode_data.clearBit(OTPC_M_MODE_REGISTER_ECC_ENABLE_BIT); if (rc_ecmd) { - FAPI_ERR("Error 0x%X setting up OTPROM Mode register data buffer", + FAPI_ERR("proc_getecid: Error 0x%X setting up OTPROM Mode register data buffer", rc_ecmd); rc.setEcmdError(rc_ecmd); break; @@ -91,7 +92,8 @@ fapi::ReturnCode proc_getecid( rc = fapiPutScom(i_target, OTPC_M_MODE_REGISTER_0x00010008, otprom_mode_data); if (!rc.ok()) { - FAPI_ERR("fapiPutScom error (OTPC_M_MODE_REGISTER_0x00010008)"); + FAPI_ERR("proc_getecid: fapiPutScom error (OTPC_M_MODE_REGISTER_0x00010008) for %s", + i_target.toEcmdString()); break; } @@ -103,7 +105,8 @@ fapi::ReturnCode proc_getecid( rc = fapiGetScom(i_target, ECID_PART_0_0x00018000, ecid_data); if (!rc.ok()) { - FAPI_ERR("fapiGetScom error (ECID_PART_0_0x00018000)"); + FAPI_ERR("proc_getecid: fapiGetScom error (ECID_PART_0_0x00018000) for %s", + i_target.toEcmdString()); break; } @@ -115,7 +118,7 @@ fapi::ReturnCode proc_getecid( if (rc_ecmd) { - FAPI_ERR("Error 0x%X processing ECID (part 0) data buffer", + FAPI_ERR("proc_getecid: Error 0x%X processing ECID (part 0) data buffer", rc_ecmd); rc.setEcmdError(rc_ecmd); break; @@ -124,7 +127,8 @@ fapi::ReturnCode proc_getecid( rc = fapiGetScom(i_target, ECID_PART_1_0x00018001, ecid_data); if (!rc.ok()) { - FAPI_ERR("fapiGetScom error (ECID_PART_1_0x00018001)"); + FAPI_ERR("proc_getecid: fapiGetScom error (ECID_PART_1_0x00018001) for %s", + i_target.toEcmdString()); break; } @@ -137,7 +141,7 @@ fapi::ReturnCode proc_getecid( if (rc_ecmd) { - FAPI_ERR("Error 0x%X processing ECID (part 1) data buffer", + FAPI_ERR("proc_getecid: Error 0x%X processing ECID (part 1) data buffer", rc_ecmd); rc.setEcmdError(rc_ecmd); break; @@ -149,7 +153,8 @@ fapi::ReturnCode proc_getecid( attr_data); if (!rc.ok()) { - FAPI_ERR("Error from FAPI_ATTR_SET (ATTR_ECID)"); + FAPI_ERR("proc_getecid: Error from FAPI_ATTR_SET (ATTR_ECID) for %s (attr_data[0] = %016llX, attr_data[1] = %016llX", + i_target.toEcmdString(), attr_data[0], attr_data[1]); break; } @@ -160,7 +165,7 @@ fapi::ReturnCode proc_getecid( rc_ecmd |= otprom_mode_data.setBit(OTPC_M_MODE_REGISTER_ECC_ENABLE_BIT); if (rc_ecmd) { - FAPI_ERR("Error 0x%X setting up OTPROM Mode register data buffer", + FAPI_ERR("proc_getecid: Error 0x%X setting up OTPROM Mode register data buffer", rc_ecmd); rc.setEcmdError(rc_ecmd); break; @@ -169,14 +174,15 @@ fapi::ReturnCode proc_getecid( rc = fapiPutScom(i_target, OTPC_M_MODE_REGISTER_0x00010008, otprom_mode_data); if (!rc.ok()) { - FAPI_ERR("fapiPutScom error (OTPC_M_MODE_REGISTER_0x00010008)"); + FAPI_ERR("proc_getecid: fapiPutScom error (OTPC_M_MODE_REGISTER_0x00010008) for %s", + i_target.toEcmdString()); break; } } while(0); // mark HWP exit - FAPI_IMP("proc_getecid: Exiting ..."); + FAPI_DBG("proc_getecid: End"); return rc; } |