diff options
author | Alvin Wang <wangat@tw.ibm.com> | 2018-11-13 17:01:09 -0600 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2019-02-06 09:53:51 -0600 |
commit | 527ce1d4fac5db34f799946d05b5b6a1fd96861a (patch) | |
tree | 7b0efba0084c41a9a3de76514ca74206f5f559b6 /src/import/chips/p9a/procedures | |
parent | fa120078b86468cfb6f917065af74b1f4fcf590b (diff) | |
download | talos-hostboot-527ce1d4fac5db34f799946d05b5b6a1fd96861a.tar.gz talos-hostboot-527ce1d4fac5db34f799946d05b5b6a1fd96861a.zip |
Added p9a_omi_train procedure
Change-Id: Icc48dd9103f045119760f965c1df672833b60662
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68723
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71343
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9a/procedures')
-rw-r--r-- | src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.C | 98 | ||||
-rw-r--r-- | src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.H | 57 |
2 files changed, 155 insertions, 0 deletions
diff --git a/src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.C b/src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.C new file mode 100644 index 000000000..c70bf77a1 --- /dev/null +++ b/src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.C @@ -0,0 +1,98 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.C $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2018 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ + +/// +/// @file p9a_omi_train.C +/// @brief Check the omi status +/// +// *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com> +// *HWP HWP Backup: Stephen Glancy <sglancy@us.ibm.com> +// *HWP Team: Memory +// *HWP Level: 3 +// *HWP Consumed by: Memory + +#include <p9a_omi_train.H> + +#include <fapi2.H> +#include <p9a_mc_scom_addresses.H> +#include <p9a_mc_scom_addresses_fld.H> +#include <generic/memory/lib/utils/c_str.H> +#include <generic/memory/lib/utils/scom.H> +#include <generic/memory/lib/utils/buffer_ops.H> + + +extern "C" +{ + + /// + /// @brief Check the omi status in Axone side + /// @param[in] i_target the OMIC target to operate on + /// @return FAPI2_RC_SUCCESS iff ok + /// + fapi2::ReturnCode p9a_omi_train( const fapi2::Target<fapi2::TARGET_TYPE_OMIC>& i_target) + { + FAPI_INF("%s Start p9a_omi_train", mss::c_str(i_target)); + + // Const + constexpr uint8_t STATE_MACHINE_SUCCESS = 0b111; // This value is from Lonny Lambrecht + + // Declares variables + fapi2::buffer<uint64_t> l_omi_status; + fapi2::buffer<uint64_t> l_omi_training_status; + uint8_t l_state_machine_state = 0; + + // Check OMI training status + FAPI_TRY(mss::getScom(i_target, P9A_OMI_REG0_DL0_STATUS, l_omi_status)); + FAPI_TRY(mss::getScom(i_target, P9A_OMI_REG0_DL0_TRAINING_STATUS, l_omi_training_status)); + + l_omi_status.extractToRight<P9A_OMI_REG0_DL0_STATUS_STS_TRAINING_STATE_MACHINE, P9A_OMI_REG0_DL0_STATUS_STS_TRAINING_STATE_MACHINE_LEN> + (l_state_machine_state); + + FAPI_ASSERT(l_state_machine_state == STATE_MACHINE_SUCCESS, + fapi2::P9A_OMI_TRAIN_ERR() + .set_TARGET(i_target) + .set_EXPECTED_SM_STATE(STATE_MACHINE_SUCCESS) + .set_ACTUAL_SM_STATE(l_state_machine_state) + .set_DL0_STATUS(l_omi_status) + .set_DL0_TRAINING_STATUS(l_omi_training_status), + "%s OMI Training Failure, expected state:%d/actual state:%d", + mss::c_str(i_target), + STATE_MACHINE_SUCCESS, + l_state_machine_state + ); + + FAPI_INF("%s End p9a_omi_train, expected state:%d/actual state:%d, DL0_STATUS:%d, DL0_TRAINING_STATUS:%d", + mss::c_str(i_target), + STATE_MACHINE_SUCCESS, + l_state_machine_state, + l_omi_status, + l_omi_training_status); + return fapi2::FAPI2_RC_SUCCESS; + + fapi_try_exit: + return fapi2::current_err; + + }// p9a_omi_train +}// extern C diff --git a/src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.H b/src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.H new file mode 100644 index 000000000..ec305822b --- /dev/null +++ b/src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.H @@ -0,0 +1,57 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.H $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2018 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ + + +/// +/// @file p9a_omi_train.H +/// @brief Check the omi status +/// +// *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com> +// *HWP HWP Backup: Stephen Glancy <sglancy@us.ibm.com> +// *HWP Team: Memory +// *HWP Level: 3 +// *HWP Consumed by: FSP:HB + +#ifndef P9A_OMI_TRAIN_H_ +#define P9A_OMI_TRAIN_H_ + +#include <fapi2.H> + + +typedef fapi2::ReturnCode (*p9a_omi_train_FP_t) (const fapi2::Target<fapi2::TARGET_TYPE_OMIC>&); + +extern "C" +{ + + /// + /// @brief Check the omi status in Axone side + /// @param[in] i_target the OMIC target to operate on + /// @return FAPI2_RC_SUCCESS iff ok + /// + fapi2::ReturnCode p9a_omi_train( const fapi2::Target<fapi2::TARGET_TYPE_OMIC>& i_target ); + +} + +#endif |