diff options
Diffstat (limited to 'src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_pba_firinit.C')
-rwxr-xr-x | src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_pba_firinit.C | 414 |
1 files changed, 201 insertions, 213 deletions
diff --git a/src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_pba_firinit.C b/src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_pba_firinit.C index 7a8578fef..40f5f63f1 100755 --- a/src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_pba_firinit.C +++ b/src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_pba_firinit.C @@ -20,25 +20,8 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -/* begin_generated_IBM_copyright_prolog */ -/* */ -/* This is an automatically generated copyright prolog. */ -/* After initializing, DO NOT MODIFY OR MOVE */ -/* --------------------------------------------------------------- */ -/* IBM Confidential */ -/* */ -/* Licensed Internal Code Source Materials */ -/* */ -/* (C)Copyright IBM Corp. 2014, 2014 */ -/* */ -/* The Source code for this program is not published or otherwise */ -/* divested of its trade secrets, irrespective of what has been */ -/* deposited with the U.S. Copyright Office. */ -/* -------------------------------------------------------------- */ -/* */ -/* end_generated_IBM_copyright_prolog */ -// $Id: p8_pm_pba_firinit.C,v 1.10 2012/10/05 08:44:02 pchatnah Exp $ -// $Source: /afs/awd.austin.ibm.com/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/p8_pm_pba_firinit.C,v $ +// $Id: p8_pm_pba_firinit.C,v 1.15 2013/04/12 01:17:25 stillgs Exp $ +// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/p8_pm_pba_firinit.C,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2011 // *! All Rights Reserved -- Property of IBM @@ -47,18 +30,18 @@ // *! OWNER NAME: Pradeep CN Email: pradeepcn@in.ibm.com // *! // *! General Description: -// *! +// *! // *! The purpose of this procedure is to ...... -// *! +// *! // *! High-level procedure flow: // *! o Set the particluar bits of databuffers action0 , action 1 and mask for the correspoding actions via MACROS // *! o Write the action1 , actionn0 and mask registers of FIRs -// *! o -// *! o -// *! o -// *! o +// *! o +// *! o +// *! o +// *! o // *! o Check if all went well -// *! o If so celebrate +// *! o If so celebrate // *! o Else write logs, set bad return code // *! // *! @@ -74,7 +57,6 @@ // ---------------------------------------------------------------------- #include <fapi.H> #include "p8_scom_addresses.H" -#include "p8_pm_firinit.H" #include "p8_pm_pba_firinit.H" extern "C" { @@ -98,8 +80,6 @@ using namespace fapi; // Macro definitions // ---------------------------------------------------------------------- - - // #define SET_CHECK_STOP(b){SET_FIR_ACTION(b, 0, 0);} // #define SET_RECOV_ATTN(b){SET_FIR_ACTION(b, 0, 1);} // #define SET_RECOV_INTR(b){SET_FIR_ACTION(b, 1, 0);} @@ -110,12 +90,8 @@ using namespace fapi; // Global variables // ---------------------------------------------------------------------- - - - - fapi::ReturnCode -p8_pm_pba_firinit(const fapi::Target& i_target ) +p8_pm_pba_firinit(const fapi::Target& i_target , uint32_t mode ) { //------------------------------------------------------------------------------ @@ -125,197 +101,209 @@ p8_pm_pba_firinit(const fapi::Target& i_target ) //------------------------------------------------------------------------------ // function: FAPI p8_pm_pba_firinit HWP entry point // operates on chips passed in i_target argument to perform -// desired settings of FIRS of PBA macro +// desired settings of FIRS of PBA macro // parameters: i_target => chip target // returns: FAPI_RC_SUCCESS if all specified operations complete successfully, // else return code for failing operation //------------------------------------------------------------------------------ - - - enum PBA_FIRS - { - - PBAFIR_OCI_APAR_ERR = 0 , - PBAFIR_PB_RDADRERR_FW =1 , - PBAFIR_PB_RDDATATO_FW =2 , - PBAFIR_PB_SUE_FW =3 , - PBAFIR_PB_UE_FW =4 , - PBAFIR_PB_CE_FW =5 , - PBAFIR_OCI_SLAVE_INIT =6 , - PBAFIR_OCI_WRPAR_ERR =7 , - PBAFIR_OCI_REREQTO =8 , - PBAFIR_PB_UNEXPCRESP =9 , - PBAFIR_PB_UNEXPDATA =10 , - PBAFIR_PB_PARITY_ERR =11 , - PBAFIR_PB_WRADRERR_FW =12 , - PBAFIR_PB_BADCRESP =13 , - PBAFIR_PB_ACKDEAD_FW_RD =14 , - PBAFIR_PB_CRESPTO =15 , - PBAFIR_BCUE_SETUP_ERR =16 , - PBAFIR_BCUE_PB_ACK_DEAD =17 , - PBAFIR_BCUE_PB_ADRERR =18 , - PBAFIR_BCUE_OCI_DATERR =19 , - PBAFIR_BCDE_SETUP_ERR =20 , - PBAFIR_BCDE_PB_ACK_DEAD =21 , - PBAFIR_BCDE_PB_ADRERR =22 , - PBAFIR_BCDE_RDDATATO_ERR =23 , - PBAFIR_BCDE_SUE_ERR =24 , - PBAFIR_BCDE_UE_ERR =25 , - PBAFIR_BCDE_CE =26 , - PBAFIR_BCDE_OCI_DATERR =27 , - PBAFIR_INTERNAL_ERR =28 , - PBAFIR_ILLEGAL_CACHE_OP =29 , - PBAFIR_OCI_BAD_REG_ADDR =30 , - PBAFIR_AXPUSH_WRERR =31 , - PBAFIR_AXRCV_DLO_ERR =32 , - PBAFIR_AXRCV_DLO_TO =33 , - PBAFIR_AXRCV_RSVDATA_TO =34 , - PBAFIR_AXFLOW_ERR =35 , - PBAFIR_AXSND_DHI_RTYTO =36 , - PBAFIR_AXSND_DLO_RTYTO =37 , - PBAFIR_AXSND_RSVTO =38 , - PBAFIR_AXSND_RSVERR =39 , - PBAFIR_PB_ACKDEAD_FW_WR =40 , - PBAFIR_RESERVED_41 =41 , - PBAFIR_RESERVED_42 =42 , - PBAFIR_RESERVED_43 =43 , - PBAFIR_FIR_PARITY_ERR2 =44 , - PBAFIR_FIR_PARITY_ERR =45 - - }; - - - - fapi::ReturnCode rc; + fapi::ReturnCode rc; + ecmdDataBufferBase fir(64); ecmdDataBufferBase action_0(64); ecmdDataBufferBase action_1(64); ecmdDataBufferBase mask(64); uint32_t e_rc = 0; - - - - FAPI_INF(""); - FAPI_INF("Executing p8_pm_pba_firinit ....\n"); - - e_rc = action_0.flushTo0(); if (e_rc) { rc.setEcmdError(e_rc); return rc; } - e_rc = action_1.flushTo0(); if (e_rc) { rc.setEcmdError(e_rc); return rc; } - e_rc = mask.flushTo0() ; if (e_rc) { rc.setEcmdError(e_rc); return rc; } - - SET_RECOV_ATTN (PBAFIR_OCI_APAR_ERR ) ; // 0 PBAFIR_OCI_APAR_ERR - SET_RECOV_ATTN (PBAFIR_PB_RDADRERR_FW ) ; // 1 PBAFIR_PB_RDADRERR_FW - SET_RECOV_ATTN (PBAFIR_PB_RDDATATO_FW ) ; // 2 PBAFIR_PB_RDDATATO_FW - SET_RECOV_ATTN (PBAFIR_PB_SUE_FW ) ; // 3 PBAFIR_PB_SUE_FW - SET_RECOV_ATTN (PBAFIR_PB_UE_FW ) ; // 4 PBAFIR_PB_UE_FW - SET_RECOV_ATTN (PBAFIR_PB_CE_FW ) ; // 5 PBAFIR_PB_CE_FW - SET_RECOV_ATTN (PBAFIR_OCI_SLAVE_INIT ) ; // 6 PBAFIR_OCI_SLAVE_INIT - SET_RECOV_ATTN (PBAFIR_OCI_WRPAR_ERR ) ; // 7 PBAFIR_OCI_WRPAR_ERR - SET_RECOV_ATTN (PBAFIR_OCI_REREQTO ) ; // 8 PBAFIR_OCI_REREQTO - SET_RECOV_ATTN (PBAFIR_PB_UNEXPCRESP ) ; // 9 PBAFIR_PB_UNEXPCRESP - SET_RECOV_ATTN (PBAFIR_PB_UNEXPDATA ) ; // 10 PBAFIR_PB_UNEXPDATA - SET_RECOV_ATTN (PBAFIR_PB_PARITY_ERR ) ; // 11 PBAFIR_PB_PARITY_ERR - SET_RECOV_ATTN (PBAFIR_PB_WRADRERR_FW ) ; // 12 PBAFIR_PB_WRADRERR_FW - SET_RECOV_ATTN (PBAFIR_PB_BADCRESP ) ; // 13 PBAFIR_PB_BADCRESP - SET_RECOV_ATTN (PBAFIR_PB_ACKDEAD_FW_RD ) ; // 14 PBAFIR_PB_ACKDEAD_FW_RD - SET_RECOV_ATTN (PBAFIR_PB_CRESPTO ) ; // 15 PBAFIR_PB_CRESPTO - SET_FIR_MASKED (PBAFIR_BCUE_SETUP_ERR ) ; // 16 PBAFIR_BCUE_SETUP_ERR - SET_FIR_MASKED (PBAFIR_BCUE_PB_ACK_DEAD ) ; // 17 PBAFIR_BCUE_PB_ACK_DEAD - SET_FIR_MASKED (PBAFIR_BCUE_PB_ADRERR ) ; // 18 PBAFIR_BCUE_PB_ADRERR - SET_FIR_MASKED (PBAFIR_BCUE_OCI_DATERR ) ; // 19 PBAFIR_BCUE_OCI_DATERR - SET_FIR_MASKED (PBAFIR_BCDE_SETUP_ERR ) ; // 20 PBAFIR_BCDE_SETUP_ERR - SET_FIR_MASKED (PBAFIR_BCDE_PB_ACK_DEAD ) ; // 21 PBAFIR_BCDE_PB_ACK_DEAD - SET_FIR_MASKED (PBAFIR_BCDE_PB_ADRERR ) ; // 22 PBAFIR_BCDE_PB_ADRERR - SET_FIR_MASKED (PBAFIR_BCDE_RDDATATO_ERR ) ; // 23 PBAFIR_BCDE_RDDATATO_ERR - SET_FIR_MASKED (PBAFIR_BCDE_SUE_ERR ) ; // 24 PBAFIR_BCDE_SUE_ERR - SET_FIR_MASKED (PBAFIR_BCDE_UE_ERR ) ; // 25 PBAFIR_BCDE_UE_ERR - SET_FIR_MASKED (PBAFIR_BCDE_CE ) ; // 26 PBAFIR_BCDE_CE - SET_FIR_MASKED (PBAFIR_BCDE_OCI_DATERR ) ; // 27 PBAFIR_BCDE_OCI_DATERR - SET_RECOV_ATTN (PBAFIR_INTERNAL_ERR ) ; // 28 PBAFIR_INTERNAL_ERR - SET_RECOV_ATTN (PBAFIR_ILLEGAL_CACHE_OP ) ; // 29 PBAFIR_ILLEGAL_CACHE_OP - SET_RECOV_ATTN (PBAFIR_OCI_BAD_REG_ADDR ) ; // 30 PBAFIR_OCI_BAD_REG_ADDR - SET_FIR_MASKED (PBAFIR_AXPUSH_WRERR ) ; // 31 PBAFIR_AXPUSH_WRERR - SET_FIR_MASKED (PBAFIR_AXRCV_DLO_ERR ) ; // 32 PBAFIR_AXRCV_DLO_ERR - SET_FIR_MASKED (PBAFIR_AXRCV_DLO_TO ) ; // 33 PBAFIR_AXRCV_DLO_TO - SET_FIR_MASKED (PBAFIR_AXRCV_RSVDATA_TO ) ; // 34 PBAFIR_AXRCV_RSVDATA_TO - SET_FIR_MASKED (PBAFIR_AXFLOW_ERR ) ; // 35 PBAFIR_AXFLOW_ERR - SET_FIR_MASKED (PBAFIR_AXSND_DHI_RTYTO ) ; // 36 PBAFIR_AXSND_DHI_RTYTO - SET_FIR_MASKED (PBAFIR_AXSND_DLO_RTYTO ) ; // 37 PBAFIR_AXSND_DLO_RTYTO - SET_FIR_MASKED (PBAFIR_AXSND_RSVTO ) ; // 38 PBAFIR_AXSND_RSVTO - SET_FIR_MASKED (PBAFIR_AXSND_RSVERR ) ; // 39 PBAFIR_AXSND_RSVERR - SET_RECOV_ATTN (PBAFIR_PB_ACKDEAD_FW_WR ) ; // 40 PBAFIR_PB_ACKDEAD_FW_WR - SET_FIR_MASKED (PBAFIR_RESERVED_41 ) ; // 41 PBAFIR_RESERVED_41 - SET_FIR_MASKED (PBAFIR_RESERVED_42 ) ; // 42 PBAFIR_RESERVED_42 - SET_FIR_MASKED (PBAFIR_RESERVED_43 ) ; // 43 PBAFIR_RESERVED_43 - SET_RECOV_ATTN (PBAFIR_FIR_PARITY_ERR2 ) ; // 44 PBAFIR_FIR_PARITY_ERR2 - SET_RECOV_ATTN (PBAFIR_FIR_PARITY_ERR ) ; // 45 PBAFIR_FIR_PARITY_ERR - - - if (e_rc) { rc.setEcmdError(e_rc); return rc; } - -// FAPI_INF(" action_0 => %s ", action_0.genHexRightStr(0,64).c_str()); -// FAPI_INF(" action_1 => %s ", action_1.genHexRightStr(0,64).c_str()); -// FAPI_INF(" mask => %s ", mask.genHexRightStr(0,64).c_str()); - - - //#--****************************************************************************** - //#-- PBA_FIR_ACTION0 - //#--****************************************************************************** - - rc = fapiPutScom(i_target, PBA_FIR_ACTION0_0x02010846, action_0 ); - if (rc) { - FAPI_ERR("fapiPutScom(PBA_FIR_ACTION0_0x02010846) failed."); return rc; - } - - //#--****************************************************************************** - //#-- PBA_FIR_ACTION1 - //#--****************************************************************************** - - rc = fapiPutScom(i_target, PBA_FIR_ACTION1_0x02010847, action_1 ); - if (rc) { - FAPI_ERR("fapiPutScom(PBA_FIR_ACTION1_0x02010847) failed."); return rc; - } - - - //--****************************************************************************** - //-- PBA_FIR_MASK (W0_OR_45) (WR_43) (WO_AND_44) - //--****************************************************************************** - rc = fapiPutScom(i_target, PBA_FIR_MASK_WR_0x02010843, mask ); - if (rc) { - FAPI_ERR("fapiPutScom(PBA_FIR_MASK_WR_0x02010843) failed."); return rc; - } - - - - - - - - - - - - return rc ; - - -} // Procedure - - -} //end extern C - - + enum PBA_FIRS + { + PBAFIR_OCI_APAR_ERR =0 , + PBAFIR_PB_RDADRERR_FW =1 , + PBAFIR_PB_RDDATATO_FW =2 , + PBAFIR_PB_SUE_FW =3 , + PBAFIR_PB_UE_FW =4 , + PBAFIR_PB_CE_FW =5 , + PBAFIR_OCI_SLAVE_INIT =6 , + PBAFIR_OCI_WRPAR_ERR =7 , + PBAFIR_OCI_REREQTO =8 , + PBAFIR_PB_UNEXPCRESP =9 , + PBAFIR_PB_UNEXPDATA =10 , + PBAFIR_PB_PARITY_ERR =11 , + PBAFIR_PB_WRADRERR_FW =12 , + PBAFIR_PB_BADCRESP =13 , + PBAFIR_PB_ACKDEAD_FW_RD =14 , + PBAFIR_PB_CRESPTO =15 , + PBAFIR_BCUE_SETUP_ERR =16 , + PBAFIR_BCUE_PB_ACK_DEAD =17 , + PBAFIR_BCUE_PB_ADRERR =18 , + PBAFIR_BCUE_OCI_DATERR =19 , + PBAFIR_BCDE_SETUP_ERR =20 , + PBAFIR_BCDE_PB_ACK_DEAD =21 , + PBAFIR_BCDE_PB_ADRERR =22 , + PBAFIR_BCDE_RDDATATO_ERR =23 , + PBAFIR_BCDE_SUE_ERR =24 , + PBAFIR_BCDE_UE_ERR =25 , + PBAFIR_BCDE_CE =26 , + PBAFIR_BCDE_OCI_DATERR =27 , + PBAFIR_INTERNAL_ERR =28 , + PBAFIR_ILLEGAL_CACHE_OP =29 , + PBAFIR_OCI_BAD_REG_ADDR =30 , + PBAFIR_AXPUSH_WRERR =31 , + PBAFIR_AXRCV_DLO_ERR =32 , + PBAFIR_AXRCV_DLO_TO =33 , + PBAFIR_AXRCV_RSVDATA_TO =34 , + PBAFIR_AXFLOW_ERR =35 , + PBAFIR_AXSND_DHI_RTYTO =36 , + PBAFIR_AXSND_DLO_RTYTO =37 , + PBAFIR_AXSND_RSVTO =38 , + PBAFIR_AXSND_RSVERR =39 , + PBAFIR_PB_ACKDEAD_FW_WR =40 , + PBAFIR_RESERVED_41 =41 , + PBAFIR_RESERVED_42 =42 , + PBAFIR_RESERVED_43 =43 , + PBAFIR_FIR_PARITY_ERR2 =44 , + PBAFIR_FIR_PARITY_ERR =45 + }; -// ---------------------------------------------------------------------- -// BACKUPS -// ---------------------------------------------------------------------- -// #define RECOV_INTR 1, 0 -// #define RECOV_ATTN 0, 1 -// #define MALF_ALERT 1, 1 + FAPI_DBG("Executing p8_pm_pba_firinit ...."); + do + { + if (mode == PM_RESET) + { + + e_rc = mask.flushTo0(); + e_rc |= mask.setBit(0, PBA_FIR_REGISTER_LENGTH); + if (e_rc) + { + rc.setEcmdError(e_rc); + break; + } + + //--****************************************************************************** + //-- PBA_FIR_MASK (W0_OR_45) (WR_43) (WO_AND_44) + //--****************************************************************************** + rc = fapiPutScom(i_target, PBA_FIR_MASK_WR_0x02010843, mask ); + if (rc) + { + FAPI_ERR("fapiPutScom(PBA_FIR_MASK_WR_0x02010843) failed."); + break; + } + } + else + { + e_rc |= fir.flushTo0(); + e_rc |= action_0.flushTo0(); + e_rc |= action_1.flushTo0(); + e_rc |= mask.flushTo0() ; + if (e_rc) + { + rc.setEcmdError(e_rc); + break; + } + + SET_RECOV_ATTN (PBAFIR_OCI_APAR_ERR ) ; // 0 PBAFIR_OCI_APAR_ERR + SET_RECOV_ATTN (PBAFIR_PB_RDADRERR_FW ) ; // 1 PBAFIR_PB_RDADRERR_FW + SET_RECOV_ATTN (PBAFIR_PB_RDDATATO_FW ) ; // 2 PBAFIR_PB_RDDATATO_FW + SET_RECOV_ATTN (PBAFIR_PB_SUE_FW ) ; // 3 PBAFIR_PB_SUE_FW + SET_RECOV_ATTN (PBAFIR_PB_UE_FW ) ; // 4 PBAFIR_PB_UE_FW + SET_RECOV_ATTN (PBAFIR_PB_CE_FW ) ; // 5 PBAFIR_PB_CE_FW + SET_RECOV_ATTN (PBAFIR_OCI_SLAVE_INIT ) ; // 6 PBAFIR_OCI_SLAVE_INIT + SET_RECOV_ATTN (PBAFIR_OCI_WRPAR_ERR ) ; // 7 PBAFIR_OCI_WRPAR_ERR + SET_RECOV_ATTN (PBAFIR_OCI_REREQTO ) ; // 8 PBAFIR_OCI_REREQTO + SET_RECOV_ATTN (PBAFIR_PB_UNEXPCRESP ) ; // 9 PBAFIR_PB_UNEXPCRESP + SET_RECOV_ATTN (PBAFIR_PB_UNEXPDATA ) ; // 10 PBAFIR_PB_UNEXPDATA + SET_RECOV_ATTN (PBAFIR_PB_PARITY_ERR ) ; // 11 PBAFIR_PB_PARITY_ERR + SET_RECOV_ATTN (PBAFIR_PB_WRADRERR_FW ) ; // 12 PBAFIR_PB_WRADRERR_FW + SET_RECOV_ATTN (PBAFIR_PB_BADCRESP ) ; // 13 PBAFIR_PB_BADCRESP + SET_RECOV_ATTN (PBAFIR_PB_ACKDEAD_FW_RD ) ; // 14 PBAFIR_PB_ACKDEAD_FW_RD + SET_RECOV_ATTN (PBAFIR_PB_CRESPTO ) ; // 15 PBAFIR_PB_CRESPTO + SET_FIR_MASKED (PBAFIR_BCUE_SETUP_ERR ) ; // 16 PBAFIR_BCUE_SETUP_ERR + SET_FIR_MASKED (PBAFIR_BCUE_PB_ACK_DEAD ) ; // 17 PBAFIR_BCUE_PB_ACK_DEAD + SET_FIR_MASKED (PBAFIR_BCUE_PB_ADRERR ) ; // 18 PBAFIR_BCUE_PB_ADRERR + SET_FIR_MASKED (PBAFIR_BCUE_OCI_DATERR ) ; // 19 PBAFIR_BCUE_OCI_DATERR + SET_FIR_MASKED (PBAFIR_BCDE_SETUP_ERR ) ; // 20 PBAFIR_BCDE_SETUP_ERR + SET_FIR_MASKED (PBAFIR_BCDE_PB_ACK_DEAD ) ; // 21 PBAFIR_BCDE_PB_ACK_DEAD + SET_FIR_MASKED (PBAFIR_BCDE_PB_ADRERR ) ; // 22 PBAFIR_BCDE_PB_ADRERR + SET_FIR_MASKED (PBAFIR_BCDE_RDDATATO_ERR ) ; // 23 PBAFIR_BCDE_RDDATATO_ERR + SET_FIR_MASKED (PBAFIR_BCDE_SUE_ERR ) ; // 24 PBAFIR_BCDE_SUE_ERR + SET_FIR_MASKED (PBAFIR_BCDE_UE_ERR ) ; // 25 PBAFIR_BCDE_UE_ERR + SET_FIR_MASKED (PBAFIR_BCDE_CE ) ; // 26 PBAFIR_BCDE_CE + SET_FIR_MASKED (PBAFIR_BCDE_OCI_DATERR ) ; // 27 PBAFIR_BCDE_OCI_DATERR + SET_RECOV_ATTN (PBAFIR_INTERNAL_ERR ) ; // 28 PBAFIR_INTERNAL_ERR + SET_RECOV_ATTN (PBAFIR_ILLEGAL_CACHE_OP ) ; // 29 PBAFIR_ILLEGAL_CACHE_OP + SET_RECOV_ATTN (PBAFIR_OCI_BAD_REG_ADDR ) ; // 30 PBAFIR_OCI_BAD_REG_ADDR + SET_FIR_MASKED (PBAFIR_AXPUSH_WRERR ) ; // 31 PBAFIR_AXPUSH_WRERR + SET_FIR_MASKED (PBAFIR_AXRCV_DLO_ERR ) ; // 32 PBAFIR_AXRCV_DLO_ERR + SET_FIR_MASKED (PBAFIR_AXRCV_DLO_TO ) ; // 33 PBAFIR_AXRCV_DLO_TO + SET_FIR_MASKED (PBAFIR_AXRCV_RSVDATA_TO ) ; // 34 PBAFIR_AXRCV_RSVDATA_TO + SET_FIR_MASKED (PBAFIR_AXFLOW_ERR ) ; // 35 PBAFIR_AXFLOW_ERR + SET_FIR_MASKED (PBAFIR_AXSND_DHI_RTYTO ) ; // 36 PBAFIR_AXSND_DHI_RTYTO + SET_FIR_MASKED (PBAFIR_AXSND_DLO_RTYTO ) ; // 37 PBAFIR_AXSND_DLO_RTYTO + SET_FIR_MASKED (PBAFIR_AXSND_RSVTO ) ; // 38 PBAFIR_AXSND_RSVTO + SET_FIR_MASKED (PBAFIR_AXSND_RSVERR ) ; // 39 PBAFIR_AXSND_RSVERR + SET_RECOV_ATTN (PBAFIR_PB_ACKDEAD_FW_WR ) ; // 40 PBAFIR_PB_ACKDEAD_FW_WR + SET_FIR_MASKED (PBAFIR_RESERVED_41 ) ; // 41 PBAFIR_RESERVED_41 + SET_FIR_MASKED (PBAFIR_RESERVED_42 ) ; // 42 PBAFIR_RESERVED_42 + SET_FIR_MASKED (PBAFIR_RESERVED_43 ) ; // 43 PBAFIR_RESERVED_43 + SET_RECOV_ATTN (PBAFIR_FIR_PARITY_ERR2 ) ; // 44 PBAFIR_FIR_PARITY_ERR2 + SET_RECOV_ATTN (PBAFIR_FIR_PARITY_ERR ) ; // 45 PBAFIR_FIR_PARITY_ERR + + if (e_rc) + { + rc.setEcmdError(e_rc); + break; + } + + // --------------- + // PBA_FIR - cleared + // --------------- + rc = fapiPutScom(i_target, PBA_FIR_0x02010840, fir); + if (!rc.ok()) + { + FAPI_ERR("fapiPutScom(PBA_FIR_0x02010840) failed."); + break; + } + + FAPI_DBG(" action_0 => 0x%16llx ", action_0.getDoubleWord(0)); + FAPI_DBG(" action_1 => 0x%16llx ", action_1.getDoubleWord(0)); + FAPI_DBG(" mask => 0x%16llx ", mask.getDoubleWord(0)); + + //#--****************************************************************************** + //#-- PBA_FIR_ACTION0 + //#--****************************************************************************** + + rc = fapiPutScom(i_target, PBA_FIR_ACTION0_0x02010846, action_0 ); + if (rc) + { + FAPI_ERR("fapiPutScom(PBA_FIR_ACTION0_0x02010846) failed."); + break; + } + + //#--****************************************************************************** + //#-- PBA_FIR_ACTION1 + //#--****************************************************************************** + + rc = fapiPutScom(i_target, PBA_FIR_ACTION1_0x02010847, action_1 ); + if (rc) + { + FAPI_ERR("fapiPutScom(PBA_FIR_ACTION1_0x02010847) failed."); + break; + } + + //--****************************************************************************** + //-- PBA_FIR_MASK (W0_OR_45) (WR_43) (WO_AND_44) + //--****************************************************************************** + rc = fapiPutScom(i_target, PBA_FIR_MASK_WR_0x02010843, mask ); + if (rc) + { + FAPI_ERR("fapiPutScom(PBA_FIR_MASK_WR_0x02010843) failed."); + break; + } + } // Mode + } while(0); + return rc; +} // Procedure -// SET_FIR_ACTION( 1 ,1 ,0) ; -// SET_FIR_ACTION( 2, 0, 1) ; -// SET_FIR_ACTION( 3, 1, 1) ; SET_FIR_MASK(3, 1) ; - +} //end extern C |