diff options
author | Chris Steffen <cwsteffen@us.ibm.com> | 2018-05-15 09:19:28 -0500 |
---|---|---|
committer | Thi N. Tran <thi@us.ibm.com> | 2018-08-19 05:28:59 -0500 |
commit | 207de5cbd30e805f2f15dc9f2f4bc7e63e774796 (patch) | |
tree | bbcfeda3177783e5d97939a7f776bb5e7a304b5c /src/import/chips | |
parent | e07f0c96e66b4dc7986076db0a9f3ebe02902361 (diff) | |
download | talos-hostboot-207de5cbd30e805f2f15dc9f2f4bc7e63e774796.tar.gz talos-hostboot-207de5cbd30e805f2f15dc9f2f4bc7e63e774796.zip |
P9C Abus Procedure
- Power Down Lanes for Erepair
- Update for Dccal
Change-Id: I57e3af327b8250ac4bd52691e8690d409b6d6c5c
Original-Change-Id: Ie3a526d0165373a9f946c8db2b07c7006dcbec50
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58836
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: John G. Rell III <jgrell@us.ibm.com>
Reviewed-by: Richard J. Knight <rjknight@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/64829
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: Thi N. Tran <thi@us.ibm.com>
Diffstat (limited to 'src/import/chips')
3 files changed, 187 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.C b/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.C new file mode 100644 index 000000000..1b1120ee6 --- /dev/null +++ b/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.C @@ -0,0 +1,94 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.C $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2015,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 p9_io_obus_pdwn_lanes.C +/// @brief Train the Link. +///----------------------------------------------------------------------------- +/// *HWP HWP Owner : Chris Steffen <cwsteffen@us.ibm.com> +/// *HWP HWP Backup Owner : Gary Peterson <garyp@us.ibm.com> +/// *HWP FW Owner : Jamie Knight <rjknight@us.ibm.com> +/// *HWP Team : IO +/// *HWP Level : 3 +/// *HWP Consumed by : FSP:HB +///----------------------------------------------------------------------------- +/// +/// @verbatim +/// High-level procedure flow: +/// +/// Run Dccal +/// +/// Procedure Prereq: +/// - System clocks are running. +/// +/// @endverbatim +///---------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// Includes +//----------------------------------------------------------------------------- +#include <p9_io_obus_pdwn_lanes.H> +#include <p9_io_scom.H> +#include <p9_io_regs.H> + +//----------------------------------------------------------------------------- +// Function Declarations +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// Function Definitions +//----------------------------------------------------------------------------- + + +/** + * @brief A I/O Obus Procedure to power down lanes + * on every instance of the OBUS. + * @param[in] i_tgt FAPI2 Target + * @param[in] i_lane_vector Lanve Vector + * @retval ReturnCode + */ +fapi2::ReturnCode p9_io_pdwn_lanes(const OBUS_TGT i_tgt, const uint32_t i_lane_vector) +{ + FAPI_IMP("p9_io_pdwn_lanes: I/O Obus Entering"); + const uint8_t GRP0 = 0; + const uint8_t LANES = 24; + char l_tgtStr[fapi2::MAX_ECMD_STRING_LEN]; + fapi2::toString(i_tgt, l_tgtStr, fapi2::MAX_ECMD_STRING_LEN); + FAPI_DBG("I/O Obus Pdwn Lanes %s, Lane Vector(0x%X)", l_tgtStr, i_lane_vector); + + // Power down Per-Lane Registers + for(uint8_t lane = 0; lane < LANES; ++lane) + { + if(((0x1 << lane) & i_lane_vector) != 0) + { + FAPI_TRY(io::rmw(OPT_RX_LANE_ANA_PDWN, i_tgt, GRP0, lane, 0x01)); + FAPI_TRY(io::rmw(OPT_RX_LANE_DIG_PDWN, i_tgt, GRP0, lane, 0x01)); + FAPI_TRY(io::rmw(OPT_TX_LANE_PDWN , i_tgt, GRP0, lane, 0x01)); + } + } + +fapi_try_exit: + FAPI_IMP("p9_io_pdwn_lanes: I/O Obus Exiting"); + return fapi2::current_err; +} diff --git a/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.H b/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.H new file mode 100644 index 000000000..807768f4a --- /dev/null +++ b/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.H @@ -0,0 +1,66 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.H $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2015,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 p9_io_obus_pdwn_lanes.H +/// @brief Run Dccal on the link. +///----------------------------------------------------------------------------- +/// *HWP HWP Owner : Chris Steffen <cwsteffen@us.ibm.com> +/// *HWP HWP Backup Owner : Gary Peterson <garyp@us.ibm.com> +/// *HWP FW Owner : Jamie Knight <rjknight@us.ibm.com> +/// *HWP Team : IO +/// *HWP Level : 3 +/// *HWP Consumed by : FSP:HB +///----------------------------------------------------------------------------- + +#ifndef _P9_IO_OBUS_PDWN_LANES_H +#define _P9_IO_OBUS_PDWN_LANES_H + +//----------------------------------------------------------------------------- +// fapi2 Includes +//----------------------------------------------------------------------------- +#include <fapi2.H> + +typedef fapi2::Target<fapi2::TARGET_TYPE_OBUS> OBUS_TGT; + + +typedef fapi2::ReturnCode (*p9_io_obus_pdwn_lanes_FP_t)( const OBUS_TGT, const uint32_t ); + +extern "C" +{ + + /** + * @brief A I/O Obus Procedure that Powers Down Lanes + * on every group of the Obus. + * @param[in] i_tgt FAPI2 Target + * @param[in] i_lane_vector Lane Vector; all 24 lanes(0x00FFFFFF) + * @retval ReturnCode + */ + fapi2::ReturnCode p9_io_obus_pdwn_lanes( + const OBUS_TGT i_tgt , + const uint32_t i_lane_vector ); + +} // extern "C" + +#endif // _P9_IO_OBUS_PDWN_LANES_H diff --git a/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.mk b/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.mk new file mode 100644 index 000000000..ef8cfe192 --- /dev/null +++ b/src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.mk @@ -0,0 +1,27 @@ +# IBM_PROLOG_BEGIN_TAG +# This is an automatically generated prolog. +# +# $Source: src/import/chips/p9/procedures/hwp/io/p9_io_obus_pdwn_lanes.mk $ +# +# OpenPOWER HostBoot Project +# +# Contributors Listed Below - COPYRIGHT 2015,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 +PROCEDURE=p9_io_obus_pdwn_lanes +#lib$(PROCEDURE)_DEPLIBS+=p9_io_common +$(call BUILD_PROCEDURE) |