From 527ce1d4fac5db34f799946d05b5b6a1fd96861a Mon Sep 17 00:00:00 2001 From: Alvin Wang Date: Tue, 13 Nov 2018 17:01:09 -0600 Subject: Added p9a_omi_train procedure Change-Id: Icc48dd9103f045119760f965c1df672833b60662 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68723 Tested-by: Jenkins Server Reviewed-by: STEPHEN GLANCY Reviewed-by: Louis Stermole Reviewed-by: Jennifer A. Stofer Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71343 Tested-by: FSP CI Jenkins Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Christian R. Geddes --- .../p9a/procedures/hwp/memory/p9a_omi_train.C | 98 ++++++++++++++++++++++ .../p9a/procedures/hwp/memory/p9a_omi_train.H | 57 +++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.C create mode 100644 src/import/chips/p9a/procedures/hwp/memory/p9a_omi_train.H (limited to 'src/import/chips/p9a/procedures') 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 +// *HWP HWP Backup: Stephen Glancy +// *HWP Team: Memory +// *HWP Level: 3 +// *HWP Consumed by: Memory + +#include + +#include +#include +#include +#include +#include +#include + + +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& 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 l_omi_status; + fapi2::buffer 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 + (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 +// *HWP HWP Backup: Stephen Glancy +// *HWP Team: Memory +// *HWP Level: 3 +// *HWP Consumed by: FSP:HB + +#ifndef P9A_OMI_TRAIN_H_ +#define P9A_OMI_TRAIN_H_ + +#include + + +typedef fapi2::ReturnCode (*p9a_omi_train_FP_t) (const fapi2::Target&); + +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& i_target ); + +} + +#endif -- cgit v1.2.1