diff options
author | Shakeeb <shakeebbk@in.ibm.com> | 2016-09-01 06:24:44 -0500 |
---|---|---|
committer | AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com> | 2016-09-01 07:48:28 -0400 |
commit | 5e83bcb5cf9d400739cfb2beaab1a3173e8cafb2 (patch) | |
tree | b3d6cd12b5eb0c92404ae5ac0352bb360b38fa95 /import/chips/p9/procedures/hwp/cache | |
parent | 1008ef70a71fcfdec398ff30923d5025991c85f4 (diff) | |
download | talos-sbe-5e83bcb5cf9d400739cfb2beaab1a3173e8cafb2.tar.gz talos-sbe-5e83bcb5cf9d400739cfb2beaab1a3173e8cafb2.zip |
SBE move import`
Change-Id: I726951318cdb19fd445af2f7910e0d6872eff18c
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29086
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
Diffstat (limited to 'import/chips/p9/procedures/hwp/cache')
33 files changed, 0 insertions, 3149 deletions
diff --git a/import/chips/p9/procedures/hwp/cache/Makefile b/import/chips/p9/procedures/hwp/cache/Makefile deleted file mode 100644 index a95923ab..00000000 --- a/import/chips/p9/procedures/hwp/cache/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -# IBM_PROLOG_BEGIN_TAG -# This is an automatically generated prolog. -# -# $Source: import/chips/p9/procedures/hwp/cache/Makefile $ -# -# OpenPOWER sbe Project -# -# Contributors Listed Below - COPYRIGHT 2015,2016 -# [+] 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 - -# This Makefile compiles all of the cache hardware procedure code. See the -# "cachehcdfiles.mk" file in this directory. - -#all generated files from this makefile will end up in obj/cache -export SUB_OBJDIR = /cache - -include img_defs.mk -include cachehcdfiles.mk - -GCC-CFLAGS += -mlongcall - -OBJS := $(addprefix $(OBJDIR)/, $(CACHE_OBJECTS)) - -libcache.a: cache - $(AR) crs $(OBJDIR)/libcache.a $(OBJDIR)/*.o - -.PHONY: clean cache -cache: $(OBJS) - -$(OBJS) $(OBJS:.o=.d): | $(OBJDIR) - -$(OBJDIR): - mkdir -p $(OBJDIR) - -clean: - rm -fr $(OBJDIR) - -ifneq ($(MAKECMDGOALS),clean) -include $(OBJS:.o=.d) -endif diff --git a/import/chips/p9/procedures/hwp/cache/cachehcdfiles.mk b/import/chips/p9/procedures/hwp/cache/cachehcdfiles.mk deleted file mode 100644 index f8ae915e..00000000 --- a/import/chips/p9/procedures/hwp/cache/cachehcdfiles.mk +++ /dev/null @@ -1,56 +0,0 @@ -# IBM_PROLOG_BEGIN_TAG -# This is an automatically generated prolog. -# -# $Source: import/chips/p9/procedures/hwp/cache/cachehcdfiles.mk $ -# -# OpenPOWER sbe Project -# -# Contributors Listed Below - COPYRIGHT 2015,2016 -# [+] 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 cachehcdfiles.mk -# -# @brief mk for including cache hcode object files -# -########################################################################## -# Object Files -########################################################################## - -CACHE-CPP-SOURCES += p9_hcd_cache_arrayinit.C -CACHE-CPP-SOURCES += p9_hcd_cache_chiplet_init.C -CACHE-CPP-SOURCES += p9_hcd_cache_chiplet_reset.C -CACHE-CPP-SOURCES += p9_hcd_cache_dpll_setup.C -CACHE-CPP-SOURCES += p9_hcd_cache_gptr_time_initf.C -CACHE-CPP-SOURCES += p9_hcd_cache_initf.C -CACHE-CPP-SOURCES += p9_hcd_cache_occ_runtime_scom.C -CACHE-CPP-SOURCES += p9_hcd_cache_poweron.C -CACHE-CPP-SOURCES += p9_hcd_cache_ras_runtime_scom.C -CACHE-CPP-SOURCES += p9_hcd_cache_repair_initf.C -CACHE-CPP-SOURCES += p9_hcd_cache_runinit.C -CACHE-CPP-SOURCES += p9_hcd_cache_scomcust.C -CACHE-CPP-SOURCES += p9_hcd_cache_scominit.C -CACHE-CPP-SOURCES += p9_hcd_cache_startclocks.C -CACHE-CPP-SOURCES += p9_hcd_cache_chiplet_l3_dcc_setup.C -CACHE-CPP-SOURCES += p9_hcd_cache_dpll_initf.C - -CACHE-C-SOURCES += -CACHE-S-SOURCES += - -CACHE_OBJECTS += $(CACHE-CPP-SOURCES:.C=.o) -CACHE_OBJECTS += $(CACHE-C-SOURCES:.c=.o) -CACHE_OBJECTS += $(CACHE-S-SOURCES:.S=.o) - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache.H deleted file mode 100644 index d73007e7..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache.H +++ /dev/null @@ -1,53 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache.H -/// @brief Cache Chiplet Procedure Includes -/// -/// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -/// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -/// *HWP Team : PM -/// *HWP Consumed by : SBE:SGPE -/// *HWP Level : 2 -/// - -#ifndef __P9_HCD_CACHE_H__ -#define __P9_HCD_CACHE_H__ - -#include <p9_hcd_cache_arrayinit.H> -#include <p9_hcd_cache_chiplet_init.H> -#include <p9_hcd_cache_chiplet_reset.H> -#include <p9_hcd_cache_dpll_setup.H> -#include <p9_hcd_cache_gptr_time_initf.H> -#include <p9_hcd_cache_initf.H> -#include <p9_hcd_cache_occ_runtime_scom.H> -#include <p9_hcd_cache_poweron.H> -#include <p9_hcd_cache_ras_runtime_scom.H> -#include <p9_hcd_cache_repair_initf.H> -#include <p9_hcd_cache_scomcust.H> -#include <p9_hcd_cache_scominit.H> -#include <p9_hcd_cache_startclocks.H> - -#endif // __P9_HCD_CACHE_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_arrayinit.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_arrayinit.C deleted file mode 100644 index 3b2887c4..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_arrayinit.C +++ /dev/null @@ -1,147 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_arrayinit.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_arrayinit.C -/// @brief EX Initialize arrays -/// -/// Procedure Summary: -/// Use ABIST engine to zero out all arrays -/// Upon completion, scan0 flush all rings -/// except Vital, Repair, GPTR, TIME and DPLL - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//----------------------------------------------------------------------------- -// Includes -//----------------------------------------------------------------------------- - -#include <p9_quad_scom_addresses.H> -#include <p9_misc_scom_addresses.H> -#include <p9_perv_sbe_cmn.H> -#include <p9_hcd_common.H> -#include "p9_hcd_cache_arrayinit.H" - -//----------------------------------------------------------------------------- -// Constant Definitions -//----------------------------------------------------------------------------- - -enum P9_HCD_CACHE_ARRAYINIT_Private_Constants -{ - LOOP_COUNTER = 0x0000000000042FFF, - SELECT_SRAM = 0x1, - SELECT_EDRAM = 0x0, - START_ABIST_MATCH_VALUE = 0x0000000F00000000 -}; - -//----------------------------------------------------------------------------- -// Procedure: Initialize Cache Arrays -//----------------------------------------------------------------------------- - -fapi2::ReturnCode -p9_hcd_cache_arrayinit( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_arrayinit"); - fapi2::buffer<uint64_t> l_data64; - uint16_t l_region_array; - uint16_t l_region_scan0; - uint8_t l_attr_chip_unit_pos = 0; - fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> l_chip = - i_target.getParent<fapi2::TARGET_TYPE_PROC_CHIP>(); - fapi2::Target<fapi2::TARGET_TYPE_PERV> l_perv = - i_target.getParent<fapi2::TARGET_TYPE_PERV>(); - - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, l_perv, - l_attr_chip_unit_pos)); - l_attr_chip_unit_pos = l_attr_chip_unit_pos - p9hcd::PERV_TO_EQ_POS_OFFSET; - - FAPI_TRY(getScom(l_chip, PU_OCB_OCI_QCSR_SCOM, l_data64)); - FAPI_DBG("Working on cache[%d] good EXs in QCSR[%016llX]", - l_attr_chip_unit_pos, l_data64); - - l_region_array = p9hcd::SCAN0_REGION_ALL_BUT_EX_DPLL; - l_region_scan0 = p9hcd::SCAN0_REGION_ALL_BUT_EX_ANEP_DPLL; - - if (l_data64 & BIT64(l_attr_chip_unit_pos << 1)) - { - l_region_array |= p9hcd::SCAN0_REGION_EX0_L2_L3_REFR; - l_region_scan0 |= p9hcd::SCAN0_REGION_EX0_L2_L3_REFR; - } - - if (l_data64 & BIT64((l_attr_chip_unit_pos << 1) + 1)) - { - l_region_array |= p9hcd::SCAN0_REGION_EX1_L2_L3_REFR; - l_region_scan0 |= p9hcd::SCAN0_REGION_EX1_L2_L3_REFR; - } - - /// @todo add DD1 attribute control - FAPI_DBG("DD1 only: set sdis_n(flushing LCBES condition workaround"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CONF0_OR, MASK_SET(34))); - -#ifndef P9_HCD_STOP_SKIP_ARRAYINIT - - FAPI_DBG("Arrayinit all regions except vital/DPLL"); - FAPI_TRY(p9_perv_sbe_cmn_array_init_module(l_perv, - l_region_array, - LOOP_COUNTER, - SELECT_SRAM, - SELECT_EDRAM, - START_ABIST_MATCH_VALUE)); - -#endif - -#ifndef P9_HCD_STOP_SKIP_FLUSH - - //-------------------------------------------- - // perform scan0 module for pervasive chiplet - //-------------------------------------------- - // Each scan0 will rotate the ring 8191 latches (2**13 - 1) and the longest - // ring is defined by P9_HCD_SCAN_FUNC_REPEAT. When the design ALWAYS has - // all stumps less than 8191, the loop can be removed. - - FAPI_DBG("Scan0 region:all_but_anep_dpll type:all_but_gptr_repr_time rings"); - - for(uint32_t l_loop = 0; l_loop < P9_HCD_SCAN_FUNC_REPEAT; l_loop++) - FAPI_TRY(p9_perv_sbe_cmn_scan0_module(l_perv, - l_region_scan0, - p9hcd::SCAN0_TYPE_ALL_BUT_GPTR_REPR_TIME)); - -#endif - - /// @todo add DD1 attribute control - FAPI_DBG("DD1 only: reset sdis_n(flushing LCBES condition workaround"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CONF0_CLEAR, MASK_SET(34))); - -fapi_try_exit: - - FAPI_INF("<<p9_hcd_cache_arrayinit"); - return fapi2::current_err; -} - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_arrayinit.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_arrayinit.H deleted file mode 100644 index 16b97e5b..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_arrayinit.H +++ /dev/null @@ -1,64 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_arrayinit.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_arrayinit.H -/// @brief EX Initialize arrays -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_ARRAYINIT_H__ -#define __P9_HCD_CACHE_ARRAYINIT_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_arrayinit_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_arrayinit_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief EX Initialize arrays -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem NONE -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_arrayinit( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_ARRAYINIT_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_init.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_init.C deleted file mode 100644 index 2978337b..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_init.C +++ /dev/null @@ -1,88 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_init.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_chiplet_init.C -/// @brief Cache Flush/Initialize -/// -/// Procedure Summary: -/// Scan0 flush all configured chiplet rings except Vital, GPTR, TIME and DPLL - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//----------------------------------------------------------------------------- -// Includes -//----------------------------------------------------------------------------- - -#include <p9_quad_scom_addresses.H> -#include <p9_perv_sbe_cmn.H> -#include <p9_hcd_common.H> -#include "p9_hcd_cache_chiplet_init.H" - -//----------------------------------------------------------------------------- -// Constant Definitions -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// Procedure: Cache Flush/Initialize -//----------------------------------------------------------------------------- - -fapi2::ReturnCode -p9_hcd_cache_chiplet_init( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_chiplet_init"); - /* - #ifndef P9_HCD_STOP_SKIP_FLUSH - - //-------------------------------------------- - // perform scan0 module for pervasive chiplet - //-------------------------------------------- - // Each scan0 will rotate the ring 8191 latches (2**13 - 1) and the longest - // ring is defined by P9_HCD_SCAN_FUNC_REPEAT. When the design ALWAYS has - // all stumps less than 8191, the loop can be removed. - - fapi2::Target<fapi2::TARGET_TYPE_PERV> l_perv = - i_target.getParent<fapi2::TARGET_TYPE_PERV>(); - - FAPI_DBG("Scan0 region:all_but_anep_dpll type:all_but_gptr_repr_time rings"); - - for(uint32_t l_loop = 0; l_loop < P9_HCD_SCAN_FUNC_REPEAT; l_loop++) - FAPI_TRY(p9_perv_sbe_cmn_scan0_module(l_perv, - p9hcd::SCAN0_REGION_ALL_BUT_ANEP_DPLL, - p9hcd::SCAN0_TYPE_ALL_BUT_GPTR_REPR_TIME)); - - fapi_try_exit: - - #endif - */ - FAPI_INF("<<p9_hcd_cache_chiplet_init"); - return fapi2::current_err; -} - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_init.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_init.H deleted file mode 100644 index 7b55f9ee..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_init.H +++ /dev/null @@ -1,59 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_init.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_chiplet_init.H -/// @brief Cache Flush/Initialize -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_CHIPLET_INIT_H__ -#define __P9_HCD_CACHE_CHIPLET_INIT_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_chiplet_init_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_chiplet_init_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief Cache Flush/Initialize -/// @param [in] i_target TARGET_TYPE_EQ target -/// @return FAPI2_RC_SUCCESS if success, else error code - fapi2::ReturnCode - p9_hcd_cache_chiplet_init( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_CHIPLET_INIT_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_l3_dcc_setup.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_l3_dcc_setup.C deleted file mode 100644 index 0cf09244..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_l3_dcc_setup.C +++ /dev/null @@ -1,83 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_l3_dcc_setup.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2016 */ -/* [+] 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_hcd_cache_chiplet_l3_dcc_setup.C -/// -/// @brief Setup L3 DCC, Drop L3 DCC bypass -//------------------------------------------------------------------------------ -// *HWP HW Owner : Anusha Reddy Rangareddygari <anusrang@in.ibm.com> -// *HWP HW Backup Owner : Srinivas V Naga <srinivan@in.ibm.com> -// *HWP FW Owner : Sunil Kumar <skumar8j@in.ibm.com> -// *HWP Team : Perv -// *HWP Level : 2 -// *HWP Consumed by : SBE -//------------------------------------------------------------------------------ - - -//## auto_generated -#include "p9_hcd_cache_chiplet_l3_dcc_setup.H" - -#include <p9_quad_scom_addresses.H> -#include <p9_quad_scom_addresses_fld.H> - - -fapi2::ReturnCode p9_hcd_cache_chiplet_l3_dcc_setup(const - fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target_chiplet) -{ - const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> FAPI_SYSTEM; - fapi2::buffer<uint64_t> l_data64; - uint8_t l_read_attr = 0; - FAPI_DBG("Entering ..."); - - FAPI_DBG("Scan eq_ana_bndy_l3dcc_bucket_26 ring"); - FAPI_TRY(fapi2::putRing(i_target_chiplet, eq_ana_bndy_l3dcc_bucket_26, fapi2::RING_MODE_SET_PULSE_NSL), - "Error from putRing (eq_ana_bndy_l3dcc_bucket_26)"); - - FAPI_DBG("Drop L3 DCC bypass"); - //Setting NET_CTRL1 register value - l_data64.flush<1>(); - //NET_CTRL1.CLK_DCC_BYPASS_EN = 0 - l_data64.clearBit<C_NET_CTRL1_CLK_DCC_BYPASS_EN>(); - FAPI_TRY(fapi2::putScom(i_target_chiplet, EQ_NET_CTRL1_WAND, l_data64)); - - FAPI_DBG("Check if VDMs are to be enabled. If so, power them on"); - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_VDM_ENABLE, FAPI_SYSTEM, - l_read_attr)); - - if( l_read_attr ) - { - - l_data64.flush<0>(); - l_data64.setBit<0>(); - FAPI_TRY(fapi2::putScom(i_target_chiplet, EQ_PPM_VDMCR_OR, l_data64)); - - } - - FAPI_DBG("Exiting ..."); - -fapi_try_exit: - return fapi2::current_err; - -} diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_l3_dcc_setup.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_l3_dcc_setup.H deleted file mode 100644 index 2033f38f..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_l3_dcc_setup.H +++ /dev/null @@ -1,60 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_l3_dcc_setup.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2016 */ -/* [+] 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_hcd_cache_chiplet_l3_dcc_setup.H -/// -/// @brief Setup L3 DCC, Drop L3 DCC bypass -//------------------------------------------------------------------------------ -// *HWP HW Owner : Anusha Reddy Rangareddygari <anusrang@in.ibm.com> -// *HWP HW Backup Owner : Srinivas V Naga <srinivan@in.ibm.com> -// *HWP FW Owner : Sunil Kumar <skumar8j@in.ibm.com> -// *HWP Team : Perv -// *HWP Level : 2 -// *HWP Consumed by : SBE -//------------------------------------------------------------------------------ - - -#ifndef _P9_HCD_CACHE_CHIPLET_L3_DCC_SETUP_H_ -#define _P9_HCD_CACHE_CHIPLET_L3_DCC_SETUP_H_ - - -#include <fapi2.H> - - -typedef fapi2::ReturnCode (*p9_hcd_cache_chiplet_l3_dcc_setup_FP_t)( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -/// @brief * Setup L3 DCC (scan with setpulse, scan region = ANEP), attribute dependency Nimbus/Cumulus -/// * Drop L3 DCC bypass -/// -/// @param[in] i_target_chiplet Reference to TARGET_TYPE_EQ target -/// @return FAPI2_RC_SUCCESS if success, else error code. -extern "C" -{ - fapi2::ReturnCode p9_hcd_cache_chiplet_l3_dcc_setup(const - fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target_chiplet); -} - -#endif diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_reset.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_reset.C deleted file mode 100644 index 8f35b4ed..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_reset.C +++ /dev/null @@ -1,237 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_reset.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_chiplet_reset.C -/// @brief Cache Chiplet Reset -/// -/// Procedure Summary: -/// Reset quad chiplet logic -/// Clocking: -/// - setup cache sector buffer strength, -/// pulse mode and pulsed mode enable values -/// (attribute dependency Nimbus/Cumulus) -/// - Drop glsmux async reset -/// Scan0 flush entire cache chiplet - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include <p9_misc_scom_addresses.H> -#include <p9_quad_scom_addresses.H> -#include <p9_perv_sbe_cmn.H> -#include <p9_hcd_common.H> -#include "p9_hcd_cache_chiplet_reset.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ - -enum P9_HCD_CACHE_CHIPLET_RESET_CONSTANTS -{ - // (1)PCB_EP_RESET - // (2)CLK_ASYNC_RESET - // (3)PLL_TEST_EN - // (4)PLLRST - // (5)PLLBYP - // (11)EDIS - // (12)VITL_MPW1 - // (13)VITL_MPW2 - // (14)VITL_MPW3 - // (16)VITL_THOLD - // (18)FENCE_EN - // (22)FUNC_CLKSEL - // (25)PCB_FENCE - // (26)LVLTRANS_FENCE - Q_NET_CTRL0_INIT_VECTOR = (BITS64(1, 5) | BITS64(11, 4) | BIT64(16) | - BIT64(18) | BIT64(22) | BITS64(25, 2)), - CACHE_GLSMUX_RESET_DELAY_REF_CYCLES = 40 -}; - -//------------------------------------------------------------------------------ -// Procedure: Cache Chiplet Reset -//------------------------------------------------------------------------------ - -fapi2::ReturnCode -p9_hcd_cache_chiplet_reset( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_chiplet_reset"); - fapi2::buffer<uint64_t> l_data64; - uint16_t l_region_scan0; - uint64_t l_l2gmux_input = 0; - uint64_t l_l2gmux_reset = 0; - uint8_t l_attr_chip_unit_pos = 0; - fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> l_chip = - i_target.getParent<fapi2::TARGET_TYPE_PROC_CHIP>(); - fapi2::Target<fapi2::TARGET_TYPE_PERV> l_perv = - i_target.getParent<fapi2::TARGET_TYPE_PERV>(); - auto l_core_functional_vector = - i_target.getChildren<fapi2::TARGET_TYPE_CORE> - (fapi2::TARGET_STATE_FUNCTIONAL); - - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, l_perv, - l_attr_chip_unit_pos)); - l_attr_chip_unit_pos = l_attr_chip_unit_pos - p9hcd::PERV_TO_EQ_POS_OFFSET; - - FAPI_TRY(getScom(l_chip, PU_OCB_OCI_QCSR_SCOM, l_data64)); - FAPI_DBG("Working on cache[%d], good EXs in QCSR[%016llX]", - l_attr_chip_unit_pos, l_data64); - - l_region_scan0 = p9hcd::SCAN0_REGION_ALL_BUT_EX; - - if (l_data64 & BIT64(l_attr_chip_unit_pos << 1)) - { - l_region_scan0 |= p9hcd::SCAN0_REGION_EX0_L2_L3_REFR; - l_l2gmux_reset |= BIT64(32); - l_l2gmux_input |= BIT64(34); - } - - if (l_data64 & BIT64((l_attr_chip_unit_pos << 1) + 1)) - { - l_region_scan0 |= p9hcd::SCAN0_REGION_EX1_L2_L3_REFR; - l_l2gmux_reset |= BIT64(33); - l_l2gmux_input |= BIT64(35); - } - - //-------------------------- - // Reset cache chiplet logic - //-------------------------- - // If there is an unused, powered-off cache chiplet which needs to be - // configured in the following steps to setup the PCB endpoint. - - for(auto it : l_core_functional_vector) - { - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, - it.getParent<fapi2::TARGET_TYPE_PERV>(), - l_attr_chip_unit_pos)); - FAPI_DBG("Assert core[%d] DCC reset via NET_CTRL0[2]", - (l_attr_chip_unit_pos - p9hcd::PERV_TO_CORE_POS_OFFSET)); - FAPI_TRY(putScom(l_chip, (C_NET_CTRL0_WOR + (0x1000000 * - (l_attr_chip_unit_pos - p9hcd::PERV_TO_CORE_POS_OFFSET))), - MASK_SET(2))); - } - - /// @todo needs to revisit this sim workaround - FAPI_DBG("Init heartbeat hang counter via HANG_PULSE_6[2]"); - FAPI_TRY(putScom(i_target, EQ_HANG_PULSE_6_REG, MASK_SET(2))); - - FAPI_DBG("Init NET_CTRL0[1-5,11-14,16,18,22,25,26],step needed for hotplug"); - l_data64 = Q_NET_CTRL0_INIT_VECTOR; - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0, l_data64)); - - FAPI_DBG("Assert progdly/DCC bypass,L2 DCC reset via NET_CTRL1[1,2,23,24]"); - l_data64.flush<0>().insertFromRight<1, 2>(0x3).insertFromRight<23, 2>(0x3); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL1_WOR, l_data64)); - - FAPI_DBG("Flip cache glsmux to DPLL input via PPM_CGCR[3]"); - FAPI_TRY(putScom(i_target, EQ_PPM_CGCR, MASK_OR(0, 4, 0x9))); - - FAPI_DBG("Flip L2 glsmux to DPLL input via QPPM_EXCGCR[34:35]"); - FAPI_TRY(putScom(i_target, EQ_QPPM_EXCGCR_OR, l_l2gmux_input)); - - FAPI_DBG("Assert DPLL ff_bypass via QPPM_DPLL_CTRL[2]"); - FAPI_TRY(putScom(i_target, EQ_QPPM_DPLL_CTRL_OR, MASK_SET(2))); - - FAPI_DBG("Drop vital thold via NET_CTRL0[16]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(16))); - - /// @todo optional setup sector buffer strength, pulse mode and pulsed mode enable - - FAPI_DBG("Drop cache glsmux reset via PPM_CGCR[0]"); - FAPI_TRY(putScom(i_target, EQ_PPM_CGCR, MASK_SET(3))); - - FAPI_DBG("Drop L2 glsmux reset via QPPM_EXCGCR[32:33]"); - FAPI_TRY(putScom(i_target, EQ_QPPM_EXCGCR_CLEAR, l_l2gmux_reset)); - - FAPI_TRY(fapi2::delay( - CACHE_GLSMUX_RESET_DELAY_REF_CYCLES * p9hcd::CLK_PERIOD_10NS, - CACHE_GLSMUX_RESET_DELAY_REF_CYCLES * p9hcd::SIM_CYCLE_200UD)); - - FAPI_DBG("Assert chiplet enable via NET_CTRL0[0]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WOR, MASK_SET(0))); - - FAPI_DBG("Drop PCB endpoint reset via NET_CTRL0[1]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(1))); - - FAPI_DBG("Drop chiplet electrical fence via NET_CTRL0[26]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(26))); - - FAPI_DBG("Drop PCB fence via NET_CTRL0[25]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(25))); - - FAPI_DBG("Set scan ratio to 1:1 in bypass mode via OPCG_ALIGN[47-51]"); - FAPI_TRY(getScom(i_target, EQ_OPCG_ALIGN, l_data64)); - l_data64.insertFromRight<47, 5>(0x0); - FAPI_TRY(putScom(i_target, EQ_OPCG_ALIGN, l_data64)); - -#ifndef P9_HCD_STOP_SKIP_FLUSH - //-------------------------------------------- - // perform scan0 module for pervasive chiplet - //-------------------------------------------- - // Each scan0 will rotate the ring 8191 latches (2**13 - 1) and the longest - // ring is defined by P9_HCD_SCAN_FUNC_REPEAT. When the design ALWAYS has - // all stumps less than 8191, the loop can be removed. - - // Putting in block to avoid c++ crosses initialization compile error - { - uint32_t l_loop; - - FAPI_DBG("Scan0 region:all_but_vital type:gptr_repr_time rings"); - - for(l_loop = 0; l_loop < P9_HCD_SCAN_GPTR_REPEAT; l_loop++) - FAPI_TRY(p9_perv_sbe_cmn_scan0_module(l_perv, - l_region_scan0, - p9hcd::SCAN0_TYPE_GPTR_REPR_TIME)); - - FAPI_DBG("Scan0 region:all_but_vital type:all_but_gptr_repr_time rings"); - - for(l_loop = 0; l_loop < P9_HCD_SCAN_FUNC_REPEAT; l_loop++) - FAPI_TRY(p9_perv_sbe_cmn_scan0_module(l_perv, - l_region_scan0, - p9hcd::SCAN0_TYPE_ALL_BUT_GPTR_REPR_TIME)); - } -#endif - - /// @todo scan_with_setpulse_module(L3 DCC) - //FAPI_DBG("Drop L3 DCC bypass via NET_CTRL1[1]"); - //FAPI_TRY(putScom(i_target, EQ_NET_CTRL1_WAND, MASK_UNSET(1))); - /// @todo add VDM_ENABLE attribute control - //FAPI_DBG("Assert vdm enable via CPPM_VDMCR[0]"); - //FAPI_TRY(putScom(i_target, EQ_PPM_VDMCR_OR, MASK_SET(0))); - -fapi_try_exit: - - FAPI_INF("<<p9_hcd_cache_chiplet_reset"); - return fapi2::current_err; -} - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_reset.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_reset.H deleted file mode 100644 index 1582c76d..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_reset.H +++ /dev/null @@ -1,59 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_chiplet_reset.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_chiplet_reset.H -/// @brief Cache Chiplet Reset -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_CHIPLET_RESET_H__ -#define __P9_HCD_CACHE_CHIPLET_RESET_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_chiplet_reset_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_chiplet_reset_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief Cache Chiplet Reset -/// @param [in] i_target TARGET_TYPE_EQ target -/// @return FAPI2_RC_SUCCESS if success, else error code - fapi2::ReturnCode - p9_hcd_cache_chiplet_reset( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_CHIPLET_RESET_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_initf.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_initf.C deleted file mode 100644 index 64b30d93..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_initf.C +++ /dev/null @@ -1,71 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_initf.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2016 */ -/* [+] 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_hcd_cache_dpll_initf.C -/// @brief Load DPLL ring for EX non-core -/// -/// Procedure Summary: -/// Load cache ring images from MVPD -/// These rings must contain ALL chip customization data. -/// This includes the following: DPLL Power headers, and DTS -/// Historically this was stored in MVPD keywords are #R, #G. Still stored in -/// MVPD, but SBE image is customized with rings for booting cores - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include <p9_ring_id.h> -#include "p9_hcd_cache_dpll_initf.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Procedure: Load DPLL ring for cache -//------------------------------------------------------------------------------ - -fapi2::ReturnCode -p9_hcd_cache_dpll_initf( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_dpll_initf"); - - FAPI_DBG("Scan eq_dpll_func ring"); - FAPI_TRY(fapi2::putRing(i_target, eq_dpll_func), - "Error from putRing (eq_dpll_func)"); - -fapi_try_exit: - FAPI_INF("<<p9_hcd_cache_dpll_initf"); - return fapi2::current_err; -} diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_initf.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_initf.H deleted file mode 100644 index 3c48f52a..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_initf.H +++ /dev/null @@ -1,65 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_initf.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2016 */ -/* [+] 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_hcd_cache_dpll_initf.H -/// @brief Load DPLL ring for EX non-core -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_DPLL_INITF_H__ -#define __P9_HCD_CACHE_DPLL_INITF_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_dpll_initf_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_dpll_initf_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief Load DPLL ring for EX non-core -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem ATTR_CACHE_DPLL_RING - EX target, uint32 -/// pointer to RS4 content, VPD #R Keyword content(RS4)<br> -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_dpll_initf( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_DPLL_INITF_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_setup.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_setup.C deleted file mode 100644 index 744f0ae9..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_setup.C +++ /dev/null @@ -1,206 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_setup.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_dpll_setup.C -/// @brief Quad DPLL Setup -/// -/// Procedure Summary: -/// Note: -/// Initfiles in procedure defined on VBU ENGD wiki (TODO add link) -/// DPLL tune bits are not dependent on frequency -/// Frequency is controlled by the Quad PPM -/// Actual frequency value for boot is stored into the Quad PPM by -/// p9_hcd_setup_evid.C in istep 2 -/// In real cache STOP exit, the frequency value is persistent -/// -/// Pre-Scan: -/// -/// Scan: -/// (TODO) Set clock controller scan ratio to 1:1 as this is done at refclk -/// (TODO) scan0 (region = DPLL and ANEP, scan_type = GPTR) -/// (TODO) scan0 (region = DPLL and ANEP, scan_type = FUNC) -/// (TODO) Set clock controller scan ratio to 8:1 for future scans -/// -/// Setup: -/// (TODO) set DPLL FREQ CTRL regitster -/// (TODO) set DPLL CTRL register -/// (Done) Drop DPLL test mode; -/// (Done) Drop DPLL into Reset; -/// (Done) Start DPLL clock via quad clock controller -/// (Done) Check for DPLL lock, Timeout: 200us -/// (Done) Remove DPLL bypass -/// (Done) Switch cache glitchless mux to use the DPLL -/// (Done) Drop ff_bypass to enable slewing -/// -/// 1) reset, dpll_func_clksel, and all SL_HLD inputs are asserted -/// 2) If grid clock connected to dpll clkout, -/// bypass also has to be asserted to allow refclk on grid - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//----------------------------------------------------------------------------- -// Includes -//----------------------------------------------------------------------------- - -#include <p9_quad_scom_addresses.H> -#include <p9_perv_sbe_cmn.H> -#include <p9_hcd_common.H> -#include "p9_hcd_cache_dpll_setup.H" - -//----------------------------------------------------------------------------- -// Constant Definitions -//----------------------------------------------------------------------------- - -enum P9_HCD_CACHE_DPLL_SETUP_CONSTANTS -{ - CACHE_DPLL_LOCK_TIMEOUT_IN_MS = 1, - CACHE_DPLL_CLK_START_TIMEOUT_IN_MS = 1, - CACHE_ANEP_CLK_START_TIMEOUT_IN_MS = 1 -}; - -//----------------------------------------------------------------------------- -// Procedure: Quad DPLL Setup -//----------------------------------------------------------------------------- - -fapi2::ReturnCode -p9_hcd_cache_dpll_setup( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_dpll_setup"); - fapi2::buffer<uint64_t> l_data64; - uint32_t l_timeout; - - //---------------------------- - // Prepare to start DPLL clock - //---------------------------- - - FAPI_DBG("Assert DPLL in mode 1,set slew rate via QPPM_DPLL_CTRL[2,6-15]"); - l_data64.flush<0>().setBit<2>().insertFromRight<6, 10>(0x40); - FAPI_TRY(putScom(i_target, EQ_QPPM_DPLL_CTRL_OR, l_data64)); - - FAPI_DBG("Drop flushmode_inhibit via CPLT_CTRL0[2]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL0_CLEAR, MASK_SET(2))); - - FAPI_DBG("Drop DPLL test mode and reset via NET_CTRL0[3,4]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_AND(3, 2, 0))); - - FAPI_DBG("Drop DPLL clock region fence via NET_CTRL1[14]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL1_CLEAR, MASK_SET(14))); - - // ---------------- - // Start DPLL clock - // ---------------- - - FAPI_DBG("Clear all bits prior start DPLL clock via SCAN_REGION_TYPE"); - FAPI_TRY(putScom(i_target, EQ_SCAN_REGION_TYPE, MASK_ZERO)); - - FAPI_DBG("Start DPLL clock via CLK_REGION"); - l_data64 = (p9hcd::CLK_START_CMD | - p9hcd::CLK_REGION_DPLL | - p9hcd::CLK_THOLD_ALL); - FAPI_TRY(putScom(i_target, EQ_CLK_REGION, l_data64)); - - FAPI_DBG("Poll for DPLL clock running via CPLT_STAT0[8]"); - l_timeout = (p9hcd::CYCLES_PER_MS / p9hcd::INSTS_PER_POLL_LOOP) * - CACHE_DPLL_CLK_START_TIMEOUT_IN_MS; - - do - { - FAPI_TRY(getScom(i_target, EQ_CPLT_STAT0, l_data64)); - } - while((l_data64.getBit<8>() != 1) && ((--l_timeout) != 0)); - - FAPI_ASSERT((l_timeout != 0), - fapi2::PMPROC_DPLLCLKSTART_TIMEOUT().set_EQCPLTSTAT(l_data64), - "DPLL Clock Start Timeout"); - - FAPI_DBG("Check DPLL clock running via CLOCK_STAT_SL[14]"); - FAPI_TRY(getScom(i_target, EQ_CLOCK_STAT_SL, l_data64)); - - FAPI_ASSERT((l_data64.getBit<14>() == 0), - fapi2::PMPROC_DPLLCLKSTART_FAILED().set_EQCLKSTAT(l_data64), - "DPLL Clock Start Failed"); - FAPI_DBG("DPLL clock running now"); - - // This is necessary to ensure that the DPLL is in Mode 1(ff_bypass = 1) - // If not, the lock times will go from ~30us to 3-5ms - FAPI_DBG("Poll for DPLL to lock via QPPM_DPLL_STAT"); - l_timeout = (p9hcd::CYCLES_PER_MS / p9hcd::INSTS_PER_POLL_LOOP) * - CACHE_DPLL_LOCK_TIMEOUT_IN_MS; - - do - { - FAPI_TRY(getScom(i_target, EQ_QPPM_DPLL_STAT, l_data64)); - ///@todo disable poll for DPLL lock until model setting in place - break; - } - while ((l_data64.getBit<63>() != 1 ) && (--l_timeout != 0)); - - FAPI_ASSERT((l_timeout != 0), - fapi2::PMPROC_DPLL_LOCK_TIMEOUT() - .set_EQQPPMDPLLSTAT(l_data64), - "DPLL Lock Timeout"); - FAPI_DBG("DPLL is locked now"); - - //-------------------------- - // Cleaning up - //-------------------------- - - FAPI_DBG("Drop DPLL bypass via NET_CTRL0[5]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(5))); - - FAPI_DBG("Drop DPLL ff_bypass via QPPM_DPLL_CTRL[2]"); - FAPI_TRY(putScom(i_target, EQ_QPPM_DPLL_CTRL_CLEAR, MASK_SET(2))); - - FAPI_DBG("Assert flushmode_inhibit via CPLT_CTRL0[2]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL0_OR, MASK_SET(2))); - - FAPI_DBG("Set scan ratio to 4:1 in non-bypass mode via OPCG_ALIGN[47-51]"); - FAPI_TRY(getScom(i_target, EQ_OPCG_ALIGN, l_data64)); - l_data64.insertFromRight<47, 5>(0x3); - FAPI_TRY(putScom(i_target, EQ_OPCG_ALIGN, l_data64)); - - FAPI_DBG("Drop ANEP clock region fence via CPLT_CTRL1[10]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL1_CLEAR, MASK_SET(10))); - - FAPI_DBG("Drop skew/duty cycle adjust func_clksel via NET_CTRL0[22]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(22))); - - FAPI_DBG("Drop skew adjust reset via NET_CTRL0[2]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(2))); - -fapi_try_exit: - - FAPI_INF("<<p9_hcd_cache_dpll_setup"); - return fapi2::current_err; -} - - - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_setup.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_setup.H deleted file mode 100644 index 0da2ea3b..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_setup.H +++ /dev/null @@ -1,65 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_dpll_setup.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_dpll_setup.H -/// @brief Quad DPLL Setup -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_DPLL_SETUP_H__ -#define __P9_HCD_CACHE_DPLL_SETUP_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_dpll_setup_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_dpll_setup_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ -/// @brief Quad DPLL Setup -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem ATTR_DPLL_REPAIR_RING - EQ target, uint32 -/// repair dpll ring content<br> -/// -/// @retval FAPI2_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_dpll_setup( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - - -} // extern C - -#endif // __P9_HCD_CACHE_DPLL_SETUP_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_gptr_time_initf.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_gptr_time_initf.C deleted file mode 100644 index 4a2e620f..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_gptr_time_initf.C +++ /dev/null @@ -1,126 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_gptr_time_initf.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_gptr_time_initf.C -/// @brief Load GPTR and Time for EX non-core -/// -/// Procedure Summary: -/// Initfiles in procedure defined on VBU ENGD wiki (TODO add link) -/// to produce #G VPD contents -/// Check for the presence of core override GPTR ring from image -/// (this is new fvor P9) -/// if found, apply; if not, apply core GPTR from image -/// Check for the presence of core override TIME ring from image; -/// if found, apply; if not, apply core base TIME from image - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include <p9_ring_id.h> -#include "p9_hcd_cache_gptr_time_initf.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Procedure: Load GPTR and Time for EX non-core -//------------------------------------------------------------------------------ - -fapi2::ReturnCode -p9_hcd_cache_gptr_time_initf( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_gptr_time_initf"); - - auto l_ex_targets = i_target.getChildren<fapi2::TARGET_TYPE_EX>(); - - FAPI_DBG("Scan eq_gptr ring"); - FAPI_TRY(fapi2::putRing(i_target, eq_gptr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (eq_gptr)"); - - FAPI_DBG("Scan eq_time ring"); - FAPI_TRY(fapi2::putRing(i_target, eq_time, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (eq_time)"); - - for (auto l_ex : l_ex_targets) - { - FAPI_DBG("Scan ex_l3_gptr ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l3_gptr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l3_gptr)"); - - FAPI_DBG("Scan ex_l2_gptr ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l2_gptr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l2_gptr)"); - - FAPI_DBG("Scan ex_l3_refr_gptr ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l3_refr_gptr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l3_refr_gptr)"); - - FAPI_DBG("Scan ex_l3_time ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l3_time, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l3_time)"); - - FAPI_DBG("Scan ex_l2_time ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l2_time, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l2_time)"); - - FAPI_DBG("Scan ex_l3_refr_time ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l3_refr_time, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l3_refr_time)"); - } - - FAPI_DBG("Scan eq_dpll_gptr ring"); - FAPI_TRY(fapi2::putRing(i_target, eq_dpll_gptr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (eq_dpll_gptr)"); - - FAPI_DBG("Scan eq_ana_gptr ring"); - FAPI_TRY(fapi2::putRing(i_target, eq_ana_gptr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (eq_ana_gptr)"); - -fapi_try_exit: - - FAPI_INF("<<p9_hcd_cache_gptr_time_initf"); - return fapi2::current_err; -} - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_gptr_time_initf.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_gptr_time_initf.H deleted file mode 100644 index 714395cf..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_gptr_time_initf.H +++ /dev/null @@ -1,65 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_gptr_time_initf.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_gptr_time_initf.H -/// @brief Load GPTR and Time for EX non-core -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_GPTR_TIME_INIT_H__ -#define __P9_HCD_CACHE_GPTR_TIME_INIT_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_gptr_time_initf_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_gptr_time_initf_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief Load GPTR and Time for EX non-core -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem ATTR_CACHE_GPTR_TIME_RING - EX target, uint32 -/// pointer to RS4 content.<br> -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_gptr_time_initf( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_GPTR_TIME_INIT_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_initf.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_initf.C deleted file mode 100644 index 3eb56747..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_initf.C +++ /dev/null @@ -1,88 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_initf.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_initf.C -/// @brief EX (non-core) scan init -/// -/// Procedure Summary: -/// Initfiles in procedure defined on VBU ENGD wiki (TODO add link) -/// Check for the presence of cache FUNC override rings from image; -/// if found, apply; if not, apply cache base FUNC rings from image -/// Note: FASTINIT ring (eg CMSK ring) is setup at this point to limit the -/// stumps that participate in FUNC ring scanning (this is new for P9). -/// (TODO to make sure the image build support is in place) -/// Note: all caches that are in the Cache Multicast group will be -/// initialized to the same values via multicast scans - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include "p9_hcd_cache_initf.H" - -//------------------------------------------------------------------------------ -// Procedure: EX (non-core) scan init -//------------------------------------------------------------------------------ - -fapi2::ReturnCode -p9_hcd_cache_initf( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_initf"); - - FAPI_DBG("Scan eq_fure ring"); - FAPI_TRY(fapi2::putRing(i_target, eq_fure), - "Error from putRing (eq_fure)"); - FAPI_DBG("Scan eq_ana_func ring"); - FAPI_TRY(fapi2::putRing(i_target, eq_ana_func), - "Error from putRing (eq_ana_func)"); - - for (auto l_ex_target : i_target.getChildren<fapi2::TARGET_TYPE_EX>()) - { - FAPI_DBG("Scan ex_l2_fure ring"); - FAPI_TRY(fapi2::putRing(l_ex_target, ex_l2_fure), - "Error from putRing (ex_l2_fure)"); - FAPI_DBG("Scan ex_l2_mode ring"); - FAPI_TRY(fapi2::putRing(l_ex_target, ex_l2_mode), - "Error from putRing (ex_l2_mode)"); - FAPI_DBG("Scan ex_l3_fure ring"); - FAPI_TRY(fapi2::putRing(l_ex_target, ex_l3_fure), - "Error from putRing (ex_l3_fure)"); - FAPI_DBG("Scan ex_l3_refr_fure ring"); - FAPI_TRY(fapi2::putRing(l_ex_target, ex_l3_refr_fure), - "Error from putRing (ex_l3_refr_fure)"); - } - -fapi_try_exit: - FAPI_INF("<<p9_hcd_cache_initf"); - return fapi2::current_err; -} diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_initf.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_initf.H deleted file mode 100644 index 1754c690..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_initf.H +++ /dev/null @@ -1,65 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_initf.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_initf.H -/// @brief EX (non-core) scan init -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_INITF_H__ -#define __P9_HCD_CACHE_INITF_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_initf_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_initf_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief EX (non-core) scan init -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem ATTR_CACHE_L2_FUNC_RING - EX target, uint32 -/// @attritem ATTR_CACHE_L3_FUNC_RING - EX target, uint32 -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_initf( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_INITF_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_occ_runtime_scom.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_occ_runtime_scom.C deleted file mode 100644 index d0e592a4..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_occ_runtime_scom.C +++ /dev/null @@ -1,93 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_occ_runtime_scom.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_occ_runtime_scom.C -/// @brief EX OCC runtime scoms -/// -/// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -/// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -/// *HWP Team : PM -/// *HWP Consumed by : SBE:SGPE -/// *HWP Level : 1 -/// -/// Procedure Summary: -/// Run-time updates from OCC code that are put somewhere TBD -/// (TODO . revisit with OCC FW team) -/// OCC FW sets up value in the TBD SCOM section -/// This was not leverage in P8 with the demise of CPMs -/// Placeholder at this point -/// - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ -#include <fapi2.H> -//#include <common_scom_addresses.H> -//will be replaced with real scom address header file -#include "p9_hcd_cache_occ_runtime_scom.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ -#define host_runtime_scom 0 - -//------------------------------------------------------------------------------ -// Procedure: EX OCC runtime SCOMS -//------------------------------------------------------------------------------ - -extern "C" -{ - - fapi2::ReturnCode - p9_hcd_cache_occ_runtime_scom( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) - { - -#if 0 - fapi2::buffer<uint64_t> data; - - // Run the SCOM sequence if the SCOM procedure is defined - // - la A0, occ_runtime_scom - // - ld D0, 0, A0 - // - braz D0, 1f - FAPI_INF("Launching OCC Runtime SCOM routine") - // - bsrd D0 - // - 1: - - return fapi2::FAPI2_RC_SUCCESS; - - FAPI_CLEANUP(); - return fapi2::FAPI2_RC_PLAT_ERR_SEE_DATA; - -#endif - - return fapi2::FAPI2_RC_SUCCESS; - - } // Procedure - - -} // extern C - - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_occ_runtime_scom.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_occ_runtime_scom.H deleted file mode 100644 index 24c329f8..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_occ_runtime_scom.H +++ /dev/null @@ -1,63 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_occ_runtime_scom.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_occ_runtime_scom.H -/// @brief EX OCC runtime scoms -/// -/// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -/// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -/// *HWP Team : PM -/// *HWP Consumed by : SBE:SGPE -/// *HWP Level : 1 -/// - -#ifndef __P9_HCD_CACHE_OCC_RUNTIME_SCOM_H__ -#define __P9_HCD_CACHE_OCC_RUNTIME_SCOM_H__ - -extern "C" -{ - -/// @typedef p9_hcd_cache_occ_runtime_scom_FP_t -/// function pointer typedef definition for HWP call support - typedef fapi2::ReturnCode (*p9_hcd_cache_occ_runtime_scom_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - - -/// @brief EX OCC runtime scoms -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem ATTR_CACHE_OCC_SCOM_LOC - EX target, uint32 -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_occ_runtime_scom( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - - -} // extern C - -#endif // __P9_HCD_CACHE_OCC_RUNTIME_SCOM_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_poweron.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_poweron.C deleted file mode 100644 index c5193803..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_poweron.C +++ /dev/null @@ -1,92 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_poweron.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_poweron.C -/// @brief Cache Chiplet Power-on -/// -/// Procedure Summary: -/// Set glsmux async reset -/// Set DPLL ff_bypass -/// Command the cache PFET controller to power-on -/// Check for valid power on completion -/// Polled Timeout: 100us - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include <p9_quad_scom_addresses.H> -#include <p9_hcd_common.H> -#include <p9_common_poweronoff.H> -#include <p9_common_poweronoff.C> -#include "p9_hcd_cache_poweron.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Procedure: Cache Chiplet Power-on -//------------------------------------------------------------------------------ - -fapi2::ReturnCode -p9_hcd_cache_poweron( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_poweron"); - fapi2::buffer<uint64_t> l_data64; - - //-------------------------- - // Prepare to power on cache - //-------------------------- - - FAPI_DBG("Drop chiplet enable via NET_CTRL0[0]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(0))); - - FAPI_DBG("Assert L2 glsmux reset via EXCLK_GRID_CTRL[32:33]"); - FAPI_TRY(putScom(i_target, EQ_QPPM_EXCGCR_OR, MASK_OR(32, 2, 0x3))); - - FAPI_DBG("Assert cache glsmux reset via CLOCK_GRID_CTRL[0]"); - FAPI_TRY(putScom(i_target, EQ_PPM_CGCR, MASK_SET(0))); - - //----------------------- - // Power on cache chiplet - //----------------------- - - FAPI_DBG("Power on cache chiplet"); - FAPI_TRY(p9_common_poweronoff<fapi2::TARGET_TYPE_EQ>(i_target, p9power::POWER_ON)); - -fapi_try_exit: - - FAPI_INF("<<p9_hcd_cache_poweron"); - return fapi2::current_err; -} diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_poweron.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_poweron.H deleted file mode 100644 index 656616f4..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_poweron.H +++ /dev/null @@ -1,63 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_poweron.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_poweron.H -/// @brief Cache Chiplet Power-on -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Level : 2 -// *HWP Consumed by : SBE:SGPE - -#ifndef __P9_HCD_CACHE_POWERON_H__ -#define __P9_HCD_CACHE_POWERON_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_poweron_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_poweron_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ -/// @brief Cache Chiplet Power-on -/// @param [in] i_target TARGET_TYPE_EQ target -/// @param [in] i_operation ENUM(ON,OFF) -/// -/// @attr -/// @attritem ATTR_PFET_* -/// -/// @retval FAPI2_RC_SUCCESS if success, else error code - - fapi2::ReturnCode - p9_hcd_cache_poweron( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); -} - -#endif // __P9_HCD_CACHE_POWERON_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_ras_runtime_scom.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_ras_runtime_scom.C deleted file mode 100644 index 5398597e..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_ras_runtime_scom.C +++ /dev/null @@ -1,171 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_ras_runtime_scom.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_ras_runtime_scom.C -/// @brief EX FSP/Host runtime scoms -/// -/// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -/// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -/// *HWP Team : PM -/// *HWP Consumed by : SGPE -/// *HWP Level : 1 -/// -/// Procedure Summary: -/// Run-time updates by FSP/Host(including HostServices and Hypervisors) -/// that are put on the cache image by STOP API calls -/// Dynamically built pointer where a NULL is checked before execution -/// If NULL (the SBE case), return -/// Else call the function at the pointer; pointer is filled in by -/// STOP image build -/// Powerbus (MCD) and L3 BAR settings -/// Runtime FIR mask updates from PRD -/// L2/L3 Repairs -/// - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ -#include <fapi2.H> -//#include <common_scom_addresses.H> -//will be replaced with real scom address header file -#include "p9_hcd_cache_ras_runtime_scom.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ -#define host_runtime_scom 0 - -//------------------------------------------------------------------------------ -// Procedure: EX FSP/HOST runtime scoms -//------------------------------------------------------------------------------ - -extern "C" -{ - - fapi2::ReturnCode - p9_hcd_cache_ras_runtime_scom( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) - { - -#if 0 - fapi2::buffer<uint64_t> data; - - // Run the SCOM sequence if the SCOM procedure is defined - // - la A0, sp_runtime_scom - // - ld D0, 0, A0 - // - braz D0, 1f - //FAPI_INF("Launching SP Runtime SCOM routine") - // - bsrd D0 - // - 1: - // - - // Run the SCOM sequence if the SCOM procedure is defined. - // - la A0, host_runtime_scom - // - ld D1, 0, A0 - // - braz D1, 1f - - // Prep P1 - // - setp1_mcreadand D0 - -#if 0 - // Disable the AISS to allow the override - // = ld D0, EX_OHA_MODE_REG_RWx1002000D, P1 - // = andi D0, D0, ~(BIT(1)) - // = std D0, EX_OHA_MODE_REG_RWx1002000D, P0 - // Drop PSCOM fence to allow SCOM and set pm_wake-up to PC to accepts - // RAMs (SCOMs actually) in the IPL "Nap" state - // = ld D0, EX_OHA_AISS_IO_REG_0x10020014, P1 - // = ori D0, D0, (BIT(15)) - // = andi D0, D0, ~(BIT(21)) - // = std D0, EX_OHA_AISS_IO_REG_0x10020014, P0 -#endif - - // Branch to sub_slw_runtime_scom() - FAPI_INF("Launching Host Runtime SCOM routine") - // - bsrd D1 - - // Prep P1 - // - setp1_mcreadand D0 - -#if 0 - // Clear regular wake-up and restore PSCOM fence in OHA - // These were established in p9_sbe_ex_scominit.S - // = ld D0, EX_OHA_AISS_IO_REG_0x10020014, P1 - // = andi D0, D0, ~(BIT(15)) - // = ori D0, D0, BIT(21) - // = std D0, EX_OHA_AISS_IO_REG_0x10020014, P0 - // Enable the AISS to allow further operation - // = ld D0, EX_OHA_MODE_REG_RWx1002000D, P1 - // = ori D0, D0, (BIT(1)) - // = std D0, EX_OHA_MODE_REG_RWx1002000D, P0 -#endif - - // - bra 2f - // - 1: - - // To accomodate IPL flow, where sub_slw_runtime_scom() is skipped - // - setp1_mcreadand D0 - -#if 0 - // Clear regular wake-up and restore PSCOM fence in OHA - // These were established in p9_sbe_ex_scominit.S - // = ld D0, EX_OHA_MODE_REG_RWx1002000D, P1 - // = andi D0, D0, ~BIT(1) - // = std D0, EX_OHA_MODE_REG_RWx1002000D, P0 - // = ld D0, EX_OHA_AISS_IO_REG_0x10020014, P1 - // = andi D0, D0, ~(BIT(15)) - // = ori D0, D0, BIT(21) - // = std D0, EX_OHA_AISS_IO_REG_0x10020014, P0 - // Enable the AISS to allow further operation - // = ld D0, EX_OHA_MODE_REG_RWx1002000D, P1 - // = ori D0, D0, (BIT(1)) - // = std D0, EX_OHA_MODE_REG_RWx1002000D, P0 -#endif - // - 2: - - // If using cv_multicast, we need to set the magic istep number here - // - la A0, p9_sbe_select_ex_control - // - ldandi D0, 0, A0, P9_CONTROL_INIT_ALL_EX - // - braz D0, 3f - FAPI_DBG("Setting istep num to magic number because cv_multicast is set") - // - lpcs P1, MBOX_SBEVITAL_0x0005001C - // - sti MBOX_SBEVITAL_0x0005001C, P1, (P9_SBE_EX_RAS_RUNTIME_SCOM_MAGIC_ISTEP_NUM << (4+32)) - // - 3: - - return fapi2::FAPI2_RC_SUCCESS; - - FAPI_CLEANUP(); - return fapi2::FAPI2_RC_PLAT_ERR_SEE_DATA; - -#endif - - return fapi2::FAPI2_RC_SUCCESS; - - } // Procedure - - -} // extern C - - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_ras_runtime_scom.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_ras_runtime_scom.H deleted file mode 100644 index 394fb6f6..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_ras_runtime_scom.H +++ /dev/null @@ -1,63 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_ras_runtime_scom.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_ras_runtime_scom.H -/// @brief EX FSP/Host runtime scoms -/// -/// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -/// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -/// *HWP Team : PM -/// *HWP Consumed by : SBE:SGPE -/// *HWP Level : 1 -/// - - -#ifndef __P9_HCD_CACHE_RAS_RUNTIME_SCOM_H__ -#define __P9_HCD_CACHE_RAS_RUNTIME_SCOM_H__ - -extern "C" -{ - -/// @typedef p9_hcd_cache_ras_runtime_scom_FP_t -/// function pointer typedef definition for HWP call support - typedef fapi2::ReturnCode (*p9_hcd_cache_ras_runtime_scom_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -/// @brief EX FSP/Host runtime scoms -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem ATTR_CACHE_RAS_SCOM_LOC - EX target, uint32 -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_ras_runtime_scom( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - - -} // extern C - -#endif // __P9_HCD_CACHE_RAS_RUNTIME_SCOM_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_repair_initf.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_repair_initf.C deleted file mode 100644 index b34ae956..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_repair_initf.C +++ /dev/null @@ -1,96 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_repair_initf.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_repair_initf.C -/// @brief Load Repair ring for EX non-core -/// -/// Procedure Summary: -/// Load cache ring images from MVPD -/// These rings must contain ALL chip customization data. -/// This includes the following: Repair Power headers, and DTS -/// Historically this was stored in MVPD keywords are #R, #G. Still stored in -/// MVPD, but SBE image is customized with rings for booting cores - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include <p9_ring_id.h> -#include "p9_hcd_cache_repair_initf.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Procedure: Load Repair ring for cache -//------------------------------------------------------------------------------ - -fapi2::ReturnCode -p9_hcd_cache_repair_initf( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_repair_initf"); - - auto l_ex_targets = i_target.getChildren<fapi2::TARGET_TYPE_EX>(); - - FAPI_DBG("Scan eq_repr ring"); - FAPI_TRY(fapi2::putRing(i_target, eq_repr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (eq_repr)"); - - for (auto l_ex : l_ex_targets) - { - FAPI_DBG("Scan ex_l3_repr ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l3_repr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l3_repr)"); - - FAPI_DBG("Scan ex_l2_repr ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l2_repr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l2_repr)"); - - FAPI_DBG("Scan ex_l3_refr_repr ring"); - FAPI_TRY(fapi2::putRing(l_ex, ex_l3_refr_repr, - fapi2::RING_MODE_HEADER_CHECK), - "Error from putRing (ex_l3_refr_repr)"); - } - -fapi_try_exit: - - FAPI_INF("<<p9_hcd_cache_repair_initf"); - return fapi2::current_err; -} - - - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_repair_initf.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_repair_initf.H deleted file mode 100644 index 3712cafb..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_repair_initf.H +++ /dev/null @@ -1,65 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_repair_initf.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_repair_initf.H -/// @brief Load Repair ring for EX non-core -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_REPAIR_INITF_H__ -#define __P9_HCD_CACHE_REPAIR_INITF_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_repair_initf_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_repair_initf_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief Load Repair ring for EX non-core -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem ATTR_CACHE_REPAIR_RING - EX target, uint32 -/// pointer to RS4 content, VPD #R Keyword content(RS4)<br> -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_repair_initf( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_REPAIR_INITF_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scomcust.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scomcust.C deleted file mode 100644 index 96ce825d..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scomcust.C +++ /dev/null @@ -1,93 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scomcust.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_scomcust.C -/// @brief Core Chiplet PCB Arbitration -/// -/// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -/// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -/// *HWP Team : PM -/// *HWP Consumed by : SBE:SGPE -/// *HWP Level : 1 -/// -/// Procedure Summary: -/// If CME, request PCB Mux. -/// Poll for PCB Mux grant -/// Else (SBE) -/// Nop (as the CME is not running in bringing up the first Core) -/// - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ -#include <fapi2.H> -//#include <common_scom_addresses.H> -//will be replaced with real scom address header file -#include "p9_hcd_cache_scomcust.H" - -//------------------------------------------------------------------------------ -// Constant Definitions: Core Chiplet PCB Arbitration -//------------------------------------------------------------------------------ - -extern "C" -{ - - fapi2::ReturnCode - p9_hcd_cache_scomcust( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) - { - -#if 0 - - fapi2::buffer<uint64_t> data; - - //Dynamically built (and installed) routine that is inserted by the .XIP - //Customization. process. (New for P9) - //(TODO: this part of the process is a placeholder at this point) - //Dynamically built pointer where a NULL is checked before execution - //If NULL (a potential early value); return - //Else call the function at the pointer; - //pointer is filled in by XIP Customization - //Customization items: - //Epsilon settings scan flush to super safe - //Customize Epsilon settings for system config - //LCO setup (chiplet specific) - //FW setups up based victim caches - - return fapi2::FAPI2_RC_SUCCESS; - - FAPI_CLEANUP(); - return fapi2::FAPI2_RC_PLAT_ERR_SEE_DATA; - -#endif - - return fapi2::FAPI2_RC_SUCCESS; - - } // Procedure - - -} // extern C - - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scomcust.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scomcust.H deleted file mode 100644 index cc3e8884..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scomcust.H +++ /dev/null @@ -1,62 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scomcust.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_scomcust.H -/// @brief Core Chiplet PCB Arbitration -/// -/// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -/// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -/// *HWP Team : PM -/// *HWP Consumed by : SBE:SGPE -/// *HWP Level : 1 -/// - -#ifndef __P9_HCD_CACHE_SCOMCUST_H__ -#define __P9_HCD_CACHE_SCOMCUST_H__ -extern "C" -{ - -/// @typedef p9_hcd_cache_scomcust_FP_t -/// function pointer typedef definition for HWP call support - typedef fapi2::ReturnCode (*p9_hcd_cache_scomcust_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - - -/// @brief Core Chiplet PCB Arbitration -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem NONE -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_scomcust( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - - -} // extern C - -#endif // __P9_HCD_CACHE_SCOMCUST_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scominit.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scominit.C deleted file mode 100644 index 38ee4977..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scominit.C +++ /dev/null @@ -1,119 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scominit.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_scominit.C -/// @brief Cache Customization SCOMs -/// -/// Procedure Summary: -/// Apply any SCOM initialization to the cache -/// Stop L3 configuration mode -/// Configure Trace Stop on Xstop -/// DTS Initialization sequense -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include <p9_quad_scom_addresses.H> -#include <p9_hcd_common.H> -#include <p9_l2_scom.H> -#include <p9_l3_scom.H> -#include <p9_ncu_scom.H> -#include "p9_hcd_cache_scominit.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Procedure: Cache Customization SCOMs -//------------------------------------------------------------------------------ - - -fapi2::ReturnCode -p9_hcd_cache_scominit( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_scominit"); - fapi2::buffer<uint64_t> l_data64; - - fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> FAPI_SYSTEM; - auto l_ex_targets = i_target.getChildren<fapi2::TARGET_TYPE_EX>(); - fapi2::ReturnCode l_rc; - - for (auto l_iter = l_ex_targets.begin(); l_iter != l_ex_targets.end(); l_iter++) - { - FAPI_EXEC_HWP(l_rc, p9_l2_scom, *l_iter, FAPI_SYSTEM); - - if (l_rc) - { - FAPI_ERR("Error from p9_l2_scom (p9.l2.scom.initfile)"); - fapi2::current_err = l_rc; - goto fapi_try_exit; - } - - FAPI_EXEC_HWP(l_rc, p9_l3_scom, *l_iter, FAPI_SYSTEM); - - if (l_rc) - { - FAPI_ERR("Error from p9_l3_scom (p9.l3.scom.initfile)"); - fapi2::current_err = l_rc; - goto fapi_try_exit; - } - - FAPI_EXEC_HWP(l_rc, p9_ncu_scom, *l_iter, FAPI_SYSTEM); - - if (l_rc) - { - FAPI_ERR("Error from p9_ncu_scom (p9.ncu.scom.initfile)"); - fapi2::current_err = l_rc; - goto fapi_try_exit; - } - } - - /// @todo set the sample pulse count (bit 6:9) - /// enable the appropriate loops - /// (needs investigation with the Perv team on the EC wiring). - FAPI_DBG("Enable DTS sampling via THERM_MODE_REG[5]"); - FAPI_TRY(getScom(i_target, EQ_THERM_MODE_REG, l_data64)); - FAPI_TRY(putScom(i_target, EQ_THERM_MODE_REG, DATA_SET(5))); - -fapi_try_exit: - - FAPI_INF("<<p9_hcd_cache_scominit"); - return fapi2::current_err; -} - - - - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scominit.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scominit.H deleted file mode 100644 index ded02249..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scominit.H +++ /dev/null @@ -1,64 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_scominit.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_scominit.H -/// @brief Cache Customization SCOMs -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_SCOMINIT_H__ -#define __P9_HCD_CACHE_SCOMINIT_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_scominit_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_scominit_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief Cache Customization SCOMs -/// -/// @param [in] i_target TARGET_TYPE_EQ target -/// -/// @attr -/// @attritem NONE -/// -/// @retval FAPI_RC_SUCCESS - fapi2::ReturnCode - p9_hcd_cache_scominit( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_SCOMINIT_H__ diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_startclocks.C b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_startclocks.C deleted file mode 100644 index a7bc1510..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_startclocks.C +++ /dev/null @@ -1,334 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_startclocks.C $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_startclocks.C -/// @brief Quad Clock Start -/// -/// Procedure Summary: -/// (Done) Setup L3 EDRAM/LCO -/// (Done) Setup OPCG_ALIGN -/// (Done) Drop partial good regional fences(always drop vital and pervasive) -/// (Done) Drop Vital fence -/// (Done) Reset abst clock muxsel, sync muxsel -/// (TODO) Set fabric node/chip ID from the nest version -/// (Done) module align_chiplets -/// (Done) - set flushmode_inh to exit flush mode -/// (Done) - set force align -/// (Done) - set chiplet_is_aligned -/// (Done) - clear chiplet_is_aligned -/// (Done) - wait -/// (Done) - check chiplet is aligned -/// (Done) - clear force align -/// (Done) module start_clocks -/// (Done) - Clear clock controller scan register before start -/// (Done) - Start arrays + nsl regions -/// (Done) - Start sl + refresh clock regions -/// (Done) Check for clocks started. If not, error -/// (Done) Drop the cache to PowerBus logical fence -/// (Done) Check for cache xstop, If so, error -/// (Done) Clear flushmode_inh to go into flush mode - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include <p9_misc_scom_addresses.H> -#include <p9_quad_scom_addresses.H> -#include <p9_hcd_common.H> -#include "p9_hcd_cache_startclocks.H" - -//------------------------------------------------------------------------------ -// Constant Definitions -//------------------------------------------------------------------------------ - -enum P9_HCD_CACHE_STARTCLOCKS_CONSTANTS -{ - CACHE_CLK_SYNC_TIMEOUT_IN_MS = 1, - CACHE_CLK_START_TIMEOUT_IN_MS = 1, - CACHE_CLK_ALIGN_DELAY_CACHE_CYCLES = 255 -}; - -//------------------------------------------------------------------------------ -// Procedure: Quad Clock Start -//------------------------------------------------------------------------------ - -fapi2::ReturnCode -p9_hcd_cache_startclocks( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target) -{ - FAPI_INF(">>p9_hcd_cache_startclocks"); - fapi2::buffer<uint64_t> l_qcsr; - fapi2::buffer<uint64_t> l_data64; - uint64_t l_region_clock; - uint64_t l_l2sync_clock; - uint64_t l_l2pscom_mask; - uint64_t l_l3pscom_mask; - uint32_t l_timeout; - uint32_t l_attr_system_id = 0; - uint8_t l_attr_group_id = 0; - uint8_t l_attr_chip_id = 0; - uint8_t l_attr_chip_unit_pos = 0; - uint8_t l_attr_system_ipl_phase; - uint32_t l_attr_pg; - fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> l_chip = - i_target.getParent<fapi2::TARGET_TYPE_PROC_CHIP>(); - fapi2::Target<fapi2::TARGET_TYPE_PERV> l_perv = - i_target.getParent<fapi2::TARGET_TYPE_PERV>(); - fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> l_sys; - - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_SYSTEM_IPL_PHASE, l_sys, - l_attr_system_ipl_phase)); - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_GROUP_ID, l_chip, - l_attr_group_id)); - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_CHIP_ID, l_chip, - l_attr_chip_id)); - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_SYSTEM_ID, l_chip, - l_attr_system_id)); - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, l_perv, - l_attr_pg)); - FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, l_perv, - l_attr_chip_unit_pos)); - l_attr_chip_unit_pos = l_attr_chip_unit_pos - p9hcd::PERV_TO_EQ_POS_OFFSET; - - FAPI_TRY(getScom(l_chip, PU_OCB_OCI_QCSR_SCOM, l_qcsr)); - FAPI_DBG("Working on cache[%d], good EXs in QCSR[%016llX]", - l_attr_chip_unit_pos, l_qcsr); - - // ----------------------------- - // Prepare to start cache clocks - // ----------------------------- - // QCCR[0/4] EDRAM_ENABLE_DC - // QCCR[1/5] EDRAM_VWL_ENABLE_DC - // QCCR[2/6] L3_EX0/1_EDRAM_VROW_VBLH_ENABLE_DC - // QCCR[3/7] EDRAM_VPP_ENABLE_DC - // 0x0 -> 0x8 -> 0xC -> 0xE -> 0xF to turn on edram - // stagger EDRAM turn-on per EX (not both at same time) - - l_region_clock = p9hcd::CLK_REGION_ALL_BUT_EX_ANEP_DPLL; - l_l2sync_clock = 0; - l_l2pscom_mask = 0; - l_l3pscom_mask = 0; - - if (l_qcsr & BIT64(l_attr_chip_unit_pos << 1)) - { - l_region_clock |= p9hcd::CLK_REGION_EX0_L2_L3_REFR; - l_l2sync_clock |= BIT64(36); - FAPI_DBG("Sequence EX0 EDRAM enables via QPPM_QCCR[0-3]"); - FAPI_TRY(putScom(i_target, EQ_QPPM_QCCR_WOR, MASK_SET(0))); - FAPI_TRY(fapi2::delay(12000, 200)); - FAPI_TRY(putScom(i_target, EQ_QPPM_QCCR_WOR, MASK_SET(1))); - FAPI_TRY(fapi2::delay(1000, 200)); - FAPI_TRY(putScom(i_target, EQ_QPPM_QCCR_WOR, MASK_SET(2))); - FAPI_TRY(fapi2::delay(4000, 200)); - FAPI_TRY(putScom(i_target, EQ_QPPM_QCCR_WOR, MASK_SET(3))); - FAPI_TRY(fapi2::delay(1000, 200)); - } - else - { - l_l2pscom_mask |= (BIT64(2) | BIT64(10)); - l_l3pscom_mask |= (BIT64(4) | BIT64(6) | BIT64(8)); - } - - if (l_qcsr & BIT64((l_attr_chip_unit_pos << 1) + 1)) - { - l_region_clock |= p9hcd::CLK_REGION_EX1_L2_L3_REFR; - l_l2sync_clock |= BIT64(37); - FAPI_DBG("Sequence EX1 EDRAM enables via QPPM_QCCR[4-7]"); - FAPI_TRY(putScom(i_target, EQ_QPPM_QCCR_WOR, MASK_SET(4))); - FAPI_TRY(fapi2::delay(12000, 200)); - FAPI_TRY(putScom(i_target, EQ_QPPM_QCCR_WOR, MASK_SET(5))); - FAPI_TRY(fapi2::delay(1000, 200)); - FAPI_TRY(putScom(i_target, EQ_QPPM_QCCR_WOR, MASK_SET(6))); - FAPI_TRY(fapi2::delay(4000, 200)); - FAPI_TRY(putScom(i_target, EQ_QPPM_QCCR_WOR, MASK_SET(7))); - FAPI_TRY(fapi2::delay(1000, 200)); - } - else - { - l_l2pscom_mask |= (BIT64(3) | BIT64(11)); - l_l3pscom_mask |= (BIT64(5) | BIT64(7) | BIT64(9)); - } - - FAPI_DBG("Assert cache EX1 ID bit2 via CPLT_CTRL0[6]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL0_OR, MASK_SET(6))); - - FAPI_DBG("Set inop_align/wait/wait_cycles via OPCG_ALIGN[0-3,12-19,52-63]"); - FAPI_TRY(getScom(i_target, EQ_OPCG_ALIGN, l_data64)); - l_data64.insertFromRight<0, 4>(0x5). - insertFromRight<12, 8>(0x0). - insertFromRight<52, 12>(0x10); - FAPI_TRY(putScom(i_target, EQ_OPCG_ALIGN, l_data64)); - - FAPI_DBG("Drop partial good fences via CPLT_CTRL1[4,5,6/7,8/9,10,11,12/13]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL1_CLEAR, - (l_region_clock | p9hcd::CLK_REGION_ANEP))); - - FAPI_DBG("Drop vital fence via CPLT_CTRL1[3]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL1_CLEAR, MASK_SET(3))); - - FAPI_DBG("Assert EX-L2 clock sync enables via QPPM_EXCGCR[36,37]"); - FAPI_TRY(putScom(i_target, EQ_QPPM_EXCGCR_OR, l_l2sync_clock)); - - FAPI_DBG("Poll for EX-L2 clock sync dones via QPPM_QACSR[36,37]"); - l_timeout = (p9hcd::CYCLES_PER_MS / p9hcd::INSTS_PER_POLL_LOOP) * - CACHE_CLK_SYNC_TIMEOUT_IN_MS; - - do - { - FAPI_TRY(getScom(i_target, EQ_QPPM_QACSR, l_data64)); - } - while(((l_data64 & l_l2sync_clock) != l_l2sync_clock) && - ((--l_timeout) != 0)); - - FAPI_ASSERT((l_timeout != 0), - fapi2::PMPROC_CACHECLKSYNC_TIMEOUT().set_EQPPMQACSR(l_data64), - "EX-L2 Clock Sync Timeout"); - FAPI_DBG("EX-L2 clock sync done"); - - FAPI_DBG("Reset abstclk & syncclk muxsel(io_clk_sel) via CPLT_CTRL0[0:1]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL0_CLEAR, MASK_CLR(0, 2, 3))); - - FAPI_DBG("Set fabric group ID[%x] chip ID[%x] system ID[%x]", - l_attr_group_id, l_attr_chip_id, l_attr_system_id); - FAPI_TRY(getScom(i_target, EQ_CPLT_CONF0, l_data64)); - l_data64.insertFromRight<48, 4>(l_attr_group_id). - insertFromRight<52, 3>(l_attr_chip_id). - insertFromRight<56, 5>(l_attr_system_id); - FAPI_TRY(putScom(i_target, EQ_CPLT_CONF0, l_data64)); - - // ------------------------------- - // Align chiplets - // ------------------------------- - - FAPI_DBG("Assert flushmode_inhibit via CPLT_CTRL0[2]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL0_OR, MASK_SET(2))); - - FAPI_DBG("Assert force_align via CPLT_CTRL0[3]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL0_OR, MASK_SET(3))); - - FAPI_DBG("Set then unset clear_chiplet_is_aligned via SYNC_CONFIG[7]"); - FAPI_TRY(getScom(i_target, EQ_SYNC_CONFIG, l_data64)); - FAPI_TRY(putScom(i_target, EQ_SYNC_CONFIG, DATA_SET(7))); - FAPI_TRY(putScom(i_target, EQ_SYNC_CONFIG, DATA_UNSET(7))); - - FAPI_TRY(fapi2::delay( - CACHE_CLK_ALIGN_DELAY_CACHE_CYCLES * p9hcd::CLK_PERIOD_CORE2CACHE * - p9hcd::CLK_PERIOD_250PS / 1000, - CACHE_CLK_ALIGN_DELAY_CACHE_CYCLES * p9hcd::CLK_PERIOD_CORE2CACHE * - p9hcd::SIM_CYCLE_4U4D)); - - FAPI_DBG("Poll for cache chiplet aligned"); - l_timeout = (p9hcd::CYCLES_PER_MS / p9hcd::INSTS_PER_POLL_LOOP) * - CACHE_CLK_START_TIMEOUT_IN_MS; - - do - { - FAPI_TRY(getScom(i_target, EQ_CPLT_STAT0, l_data64)); - } - while((l_data64.getBit<9>() != 1) && ((--l_timeout) != 0)); - - FAPI_ASSERT((l_timeout != 0), - fapi2::PMPROC_CACHECPLTALIGN_TIMEOUT() - .set_EQCPLTSTAT0(l_data64), - "Cache Chiplets Aligned Timeout"); - FAPI_DBG("Cache chiplets aligned now"); - - FAPI_DBG("Drop force_align via CPLT_CTRL0[3]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL0_CLEAR, MASK_SET(3))); - - // ------------------------------- - // Start cache clocks - // ------------------------------- - - FAPI_DBG("Clear all bits prior start cache clocks via SCAN_REGION_TYPE"); - FAPI_TRY(putScom(i_target, EQ_SCAN_REGION_TYPE, MASK_ZERO)); - - FAPI_DBG("Start cache clocks(all but anep+dpll) via CLK_REGION"); - l_data64 = (p9hcd::CLK_START_CMD | - l_region_clock | - p9hcd::CLK_THOLD_ALL); - FAPI_TRY(putScom(i_target, EQ_CLK_REGION, l_data64)); - - FAPI_DBG("Poll for cache clocks running via CPLT_STAT0[8]"); - l_timeout = (p9hcd::CYCLES_PER_MS / p9hcd::INSTS_PER_POLL_LOOP) * - CACHE_CLK_START_TIMEOUT_IN_MS; - - do - { - FAPI_TRY(getScom(i_target, EQ_CPLT_STAT0, l_data64)); - } - while((l_data64.getBit<8>() != 1) && ((--l_timeout) != 0)); - - FAPI_ASSERT((l_timeout != 0), - fapi2::PMPROC_CACHECLKSTART_TIMEOUT().set_EQCPLTSTAT(l_data64), - "Cache Clock Start Timeout"); - - FAPI_DBG("Check cache clocks running"); - FAPI_TRY(getScom(i_target, EQ_CLOCK_STAT_SL, l_data64)); - - FAPI_ASSERT(((l_data64 & l_region_clock) == 0), - fapi2::PMPROC_CACHECLKSTART_FAILED().set_EQCLKSTAT(l_data64), - "Cache Clock Start Failed"); - FAPI_DBG("Cache clocks running now"); - - // ------------------------------- - // Cleaning up - // ------------------------------- - - if (((~l_attr_pg) & BITS32(4, 11)) && l_attr_system_ipl_phase != 4) - { - FAPI_DBG("Drop chiplet fence via NET_CTRL0[18]"); - FAPI_TRY(putScom(i_target, EQ_NET_CTRL0_WAND, MASK_UNSET(18))); - } - - /// @todo ignore xstop checkstop in sim, review for lab - /* - FAPI_DBG("Check the Global Checkstop FIR"); - FAPI_TRY(getScom(i_target, EQ_XFIR, l_data64)); - FAPI_ASSERT(((l_data64 & BITS64(0, 27)) != 0), - fapi2::PMPROC_CACHE_XSTOP().set_EQXFIR(l_data64), - "Cache Chiplet Checkstop"); - */ - - FAPI_DBG("Drop flushmode_inhibit via CPLT_CTRL0[2]"); - FAPI_TRY(putScom(i_target, EQ_CPLT_CTRL0_CLEAR, MASK_SET(2))); - - FAPI_DBG("Drop partial good and assert partial bad L2/L3 pscom masks"); - l_data64 = (l_l2pscom_mask | l_l3pscom_mask); - FAPI_TRY(putScom(i_target, EQ_RING_FENCE_MASK_LATCH_REG, l_data64)); - -fapi_try_exit: - - FAPI_INF("<<p9_hcd_cache_startclocks"); - return fapi2::current_err; -} - diff --git a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_startclocks.H b/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_startclocks.H deleted file mode 100644 index d0ad61d6..00000000 --- a/import/chips/p9/procedures/hwp/cache/p9_hcd_cache_startclocks.H +++ /dev/null @@ -1,59 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: import/chips/p9/procedures/hwp/cache/p9_hcd_cache_startclocks.H $ */ -/* */ -/* OpenPOWER sbe Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ -/* [+] 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_hcd_cache_startclocks.H -/// @brief Quad Clock Start -/// - -// *HWP HWP Owner : David Du <daviddu@us.ibm.com> -// *HWP Backup HWP Owner : Greg Still <stillgs@us.ibm.com> -// *HWP FW Owner : Sangeetha T S <sangeet2@in.ibm.com> -// *HWP Team : PM -// *HWP Consumed by : SBE:SGPE -// *HWP Level : 2 - -#ifndef __P9_HCD_CACHE_STARTCLOCKS_H__ -#define __P9_HCD_CACHE_STARTCLOCKS_H__ - -#include <fapi2.H> - -/// @typedef p9_hcd_cache_startclocks_FP_t -/// function pointer typedef definition for HWP call support -typedef fapi2::ReturnCode (*p9_hcd_cache_startclocks_FP_t) ( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>&); - -extern "C" -{ - -/// @brief Quad Clock Start -/// @param [in] i_target TARGET_TYPE_EQ target -/// @return FAPI2_RC_SUCCESS if success, else error code - fapi2::ReturnCode - p9_hcd_cache_startclocks( - const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target); - -} - -#endif // __P9_HCD_CACHE_STARTCLOCKS_H__ |