diff options
author | Ben Gass <bgass@us.ibm.com> | 2017-05-10 08:03:21 -0500 |
---|---|---|
committer | Dean Sanner <dsanner@us.ibm.com> | 2017-07-19 11:41:05 -0400 |
commit | afa42a408191b9fbd03e45c9e41903a0f54625b5 (patch) | |
tree | c2a26d7830b6d66d3cd7e319a164b98645c886f3 | |
parent | a3f6792f4f1c00b6168ed66de2456caacbd96014 (diff) | |
download | talos-hostboot-afa42a408191b9fbd03e45c9e41903a0f54625b5.tar.gz talos-hostboot-afa42a408191b9fbd03e45c9e41903a0f54625b5.zip |
Create dmi.pll.scan.initfile
Support sync and async mode for Cumulus MC
Default buckets are 1.
Change-Id: I62d0221abf7f93030cb8c0200a456609ab4dfe04
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40326
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Benjamin Gass <bgass@us.ibm.com>
Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com>
Reviewed-by: Thi N. Tran <thi@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41057
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
4 files changed, 31 insertions, 3 deletions
diff --git a/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_initf.C b/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_initf.C index 39d28d4d3..23d4ba33c 100644 --- a/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_initf.C +++ b/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_initf.C @@ -47,10 +47,14 @@ fapi2::ReturnCode p9_mem_pll_initf(const fapi2::Target<fapi2::TARGET_TYPE_PROC_C FAPI_INF("Entering ..."); uint8_t l_sync_mode; + uint8_t l_use_dmi_buckets = 0; FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MC_SYNC_MODE, i_target_chip, l_sync_mode), "Error from FAPI_ATTR_GET (ATTR_MC_SYNC_MODE)"); - if (l_sync_mode == 0) + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_DMI_MC_PLL_SCAN_BUCKETS, i_target_chip, l_use_dmi_buckets), + "Error from FAPI_ATTR_GET (ATTR_CHIP_EC_FEATURE_DMI_MC_PLL_SCAN_BUCKETS)"); + + if (l_sync_mode == 0 && l_use_dmi_buckets == 0) { FAPI_DBG("Re-scanning PLL ring to set final frequency"); diff --git a/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_reset.C b/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_reset.C index 1062b6a9d..c08728fab 100644 --- a/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_reset.C +++ b/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_reset.C @@ -140,13 +140,16 @@ fapi_try_exit: fapi2::ReturnCode p9_mem_pll_reset(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target_chiplet) { uint8_t l_read_attr = 0; + uint8_t l_use_dmi_buckets = 0; fapi2::buffer<uint64_t> l_data64; FAPI_INF("Entering ..."); FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MC_SYNC_MODE, i_target_chiplet, l_read_attr)); - if ( !l_read_attr ) + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_DMI_MC_PLL_SCAN_BUCKETS, i_target_chiplet, l_use_dmi_buckets)); + + if ( !l_read_attr && !l_use_dmi_buckets ) { for (auto l_chplt_trgt : i_target_chiplet.getChildren<fapi2::TARGET_TYPE_PERV> (fapi2::TARGET_FILTER_ALL_MC, fapi2::TARGET_STATE_FUNCTIONAL)) diff --git a/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_setup.C b/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_setup.C index dfcf57b2b..2ca9ba942 100644 --- a/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_setup.C +++ b/src/import/chips/p9/procedures/hwp/perv/p9_mem_pll_setup.C @@ -55,6 +55,7 @@ fapi2::ReturnCode p9_mem_pll_setup(const fapi2::Target<fapi2::TARGET_TYPE_PROC_C uint8_t l_read_attr = 0; fapi2::buffer<uint64_t> l_data64; uint8_t l_mem_bypass; + uint8_t l_use_dmi_buckets = 0; FAPI_INF("Entering ..."); @@ -64,7 +65,10 @@ fapi2::ReturnCode p9_mem_pll_setup(const fapi2::Target<fapi2::TARGET_TYPE_PROC_C FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MC_SYNC_MODE, i_target_chip, l_read_attr), "Error from FAPI_ATTR_GET (ATTR_MC_SYNC_MODE)"); - if (!l_read_attr ) + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_DMI_MC_PLL_SCAN_BUCKETS, i_target_chip, l_use_dmi_buckets), + "Error from FAPI_ATTR_GET (ATTR_CHIP_EC_FEATURE_DMI_MC_PLL_SCAN_BUCKETS)"); + + if ( !l_read_attr && !l_use_dmi_buckets ) { for (auto l_chplt_trgt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV> (fapi2::TARGET_FILTER_ALL_MC, fapi2::TARGET_STATE_FUNCTIONAL)) diff --git a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml index 51084559d..c43b012d8 100644 --- a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml +++ b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml @@ -48,6 +48,23 @@ </attribute> <!-- ********************************************************************* --> <attribute> + <id>ATTR_CHIP_EC_FEATURE_DMI_MC_PLL_SCAN_BUCKETS</id> + <targetType>TARGET_TYPE_PROC_CHIP</targetType> + <description> + Use nest buckets for mc_pll_bndy for cumulus + </description> + <chipEcFeature> + <chip> + <name>ENUM_ATTR_NAME_CUMULUS</name> + <ec> + <value>0x10</value> + <test>GREATER_THAN_OR_EQUAL</test> + </ec> + </chip> + </chipEcFeature> + </attribute> + <!-- ********************************************************************* --> + <attribute> <id>ATTR_CHIP_EC_FEATURE_EARLYMODE_FIX</id> <targetType>TARGET_TYPE_PROC_CHIP</targetType> <description> |