diff options
author | Jenny Huynh <jhuynh@us.ibm.com> | 2019-05-17 10:40:33 -0400 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2019-05-20 09:46:55 -0500 |
commit | bedc05eb919f70831f744865c94e19d9d169e654 (patch) | |
tree | 6e8db7981857616eadc1dfaf25af693d05e496d3 /src/import/chips/p9/procedures/hwp/initfiles | |
parent | 2a334beaa4b6e4b8eb7993476631e69e4a0da0b2 (diff) | |
download | talos-hostboot-bedc05eb919f70831f744865c94e19d9d169e654.tar.gz talos-hostboot-bedc05eb919f70831f744865c94e19d9d169e654.zip |
Fabric inits update for Axone
Change-Id: I7fd20b531154d7109b191f78c2400320552b611e
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77544
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Reviewed-by: DANIEL C. HOWE <dchowe@us.ibm.com>
Reviewed-by: Thi N. Tran <thi@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77557
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/initfiles')
4 files changed, 102 insertions, 9 deletions
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp1_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp1_scom.C index 6f65f5fe5..896614802 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp1_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp1_scom.C @@ -149,6 +149,10 @@ fapi2::ReturnCode p9_fbc_cd_hp1_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_CORE_CEILING_RATIO, TGT1, l_TGT1_ATTR_PROC_FABRIC_CORE_CEILING_RATIO)); uint64_t l_def_CORE_CEILING_RATIO_8_8 = (l_TGT1_ATTR_PROC_FABRIC_CORE_CEILING_RATIO == ENUM_ATTR_PROC_FABRIC_CORE_CEILING_RATIO_RATIO_8_8); + fapi2::ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS_Type l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS; + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS, TGT0, + l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS)); + uint64_t l_def_IS_AXONE = (l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS != literal_0); fapi2::buffer<uint64_t> l_scom_buffer; { if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) || ((l_chip_id == 0x5) && (l_chip_ec == 0x21)) || ((l_chip_id == 0x5) @@ -1200,11 +1204,21 @@ fapi2::ReturnCode p9_fbc_cd_hp1_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC l_scom_buffer.insert<34, 8, 56, uint64_t>(literal_0b11111110 ); } - if (literal_1) + if (l_def_IS_AXONE) + { + l_scom_buffer.insert<42, 2, 62, uint64_t>(literal_0b10 ); + } + + if (( ! l_def_IS_AXONE)) { l_scom_buffer.insert<42, 8, 56, uint64_t>(literal_0b11111110 ); } + if (l_def_IS_AXONE) + { + l_scom_buffer.insert<44, 6, 58, uint64_t>(literal_0b000000 ); + } + if (literal_1) { l_scom_buffer.insert<50, 2, 62, uint64_t>(literal_0b01 ); diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp2_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp2_scom.C index 42e21b5f9..456de5563 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp2_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp2_scom.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2017,2018 */ +/* Contributors Listed Below - COPYRIGHT 2017,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -40,9 +40,11 @@ constexpr uint64_t literal_0b1111 = 0b1111; constexpr uint64_t literal_0b011 = 0b011; constexpr uint64_t literal_0b010 = 0b010; constexpr uint64_t literal_0b11111110 = 0b11111110; +constexpr uint64_t literal_0 = 0; +constexpr uint64_t literal_0b10 = 0b10; +constexpr uint64_t literal_0b000000 = 0b000000; constexpr uint64_t literal_0b01 = 0b01; constexpr uint64_t literal_0b00 = 0b00; -constexpr uint64_t literal_0b10 = 0b10; fapi2::ReturnCode p9_fbc_cd_hp2_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0, const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT1) @@ -59,6 +61,10 @@ fapi2::ReturnCode p9_fbc_cd_hp2_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC fapi2::ATTR_PROC_FABRIC_X_LINKS_CNFG_Type l_TGT0_ATTR_PROC_FABRIC_X_LINKS_CNFG; FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_X_LINKS_CNFG, TGT0, l_TGT0_ATTR_PROC_FABRIC_X_LINKS_CNFG)); uint64_t l_def_NUM_X_LINKS_CFG = l_TGT0_ATTR_PROC_FABRIC_X_LINKS_CNFG; + fapi2::ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS_Type l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS; + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS, TGT0, + l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS)); + uint64_t l_def_IS_AXONE = (l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS != literal_0); fapi2::buffer<uint64_t> l_scom_buffer; { if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) || ((l_chip_id == 0x5) && (l_chip_ec == 0x21)) || ((l_chip_id == 0x5) @@ -184,11 +190,21 @@ fapi2::ReturnCode p9_fbc_cd_hp2_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC l_scom_buffer.insert<34, 8, 56, uint64_t>(literal_0b11111110 ); } - if (literal_1) + if (l_def_IS_AXONE) + { + l_scom_buffer.insert<42, 2, 62, uint64_t>(literal_0b10 ); + } + + if (( ! l_def_IS_AXONE)) { l_scom_buffer.insert<42, 8, 56, uint64_t>(literal_0b11111110 ); } + if (l_def_IS_AXONE) + { + l_scom_buffer.insert<44, 6, 58, uint64_t>(literal_0b000000 ); + } + if (literal_1) { l_scom_buffer.insert<50, 2, 62, uint64_t>(literal_0b01 ); diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp3_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp3_scom.C index 9790095c3..3488465f2 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp3_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_cd_hp3_scom.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2017,2018 */ +/* Contributors Listed Below - COPYRIGHT 2017,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -40,9 +40,11 @@ constexpr uint64_t literal_0b1 = 0b1; constexpr uint64_t literal_0b011 = 0b011; constexpr uint64_t literal_0b010 = 0b010; constexpr uint64_t literal_0b11111110 = 0b11111110; +constexpr uint64_t literal_0 = 0; +constexpr uint64_t literal_0b10 = 0b10; +constexpr uint64_t literal_0b000000 = 0b000000; constexpr uint64_t literal_0b01 = 0b01; constexpr uint64_t literal_0b00 = 0b00; -constexpr uint64_t literal_0b10 = 0b10; fapi2::ReturnCode p9_fbc_cd_hp3_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0, const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT1) @@ -59,6 +61,10 @@ fapi2::ReturnCode p9_fbc_cd_hp3_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC fapi2::ATTR_PROC_FABRIC_X_LINKS_CNFG_Type l_TGT0_ATTR_PROC_FABRIC_X_LINKS_CNFG; FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_X_LINKS_CNFG, TGT0, l_TGT0_ATTR_PROC_FABRIC_X_LINKS_CNFG)); uint64_t l_def_NUM_X_LINKS_CFG = l_TGT0_ATTR_PROC_FABRIC_X_LINKS_CNFG; + fapi2::ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS_Type l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS; + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS, TGT0, + l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS)); + uint64_t l_def_IS_AXONE = (l_TGT0_ATTR_CHIP_EC_FEATURE_AXONE_FBC_SETTINGS != literal_0); fapi2::buffer<uint64_t> l_scom_buffer; { if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) || ((l_chip_id == 0x5) && (l_chip_ec == 0x21)) || ((l_chip_id == 0x5) @@ -184,11 +190,21 @@ fapi2::ReturnCode p9_fbc_cd_hp3_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC l_scom_buffer.insert<34, 8, 56, uint64_t>(literal_0b11111110 ); } - if (literal_1) + if (l_def_IS_AXONE) + { + l_scom_buffer.insert<42, 2, 62, uint64_t>(literal_0b10 ); + } + + if (( ! l_def_IS_AXONE)) { l_scom_buffer.insert<42, 8, 56, uint64_t>(literal_0b11111110 ); } + if (l_def_IS_AXONE) + { + l_scom_buffer.insert<44, 6, 58, uint64_t>(literal_0b000000 ); + } + if (literal_1) { l_scom_buffer.insert<50, 2, 62, uint64_t>(literal_0b01 ); diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_no_hp_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_no_hp_scom.C index d368c5b07..ba5d1a069 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_no_hp_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_fbc_no_hp_scom.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -31,8 +31,8 @@ using namespace fapi2; constexpr uint64_t literal_0 = 0; constexpr uint64_t literal_1 = 1; -constexpr uint64_t literal_0x0 = 0x0; constexpr uint64_t literal_3 = 3; +constexpr uint64_t literal_0x0 = 0x0; constexpr uint64_t literal_0x3 = 0x3; constexpr uint64_t literal_2 = 2; constexpr uint64_t literal_0x4 = 0x4; @@ -89,6 +89,8 @@ fapi2::ReturnCode p9_fbc_no_hp_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_ uint64_t l_def_IS_FLAT_8 = (l_TGT1_ATTR_PROC_EPS_TABLE_TYPE == fapi2::ENUM_ATTR_PROC_EPS_TABLE_TYPE_EPS_TYPE_HE_F8); fapi2::ATTR_PROC_FABRIC_PUMP_MODE_Type l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE; FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_PUMP_MODE, TGT1, l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE)); + fapi2::ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE_Type l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE; + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE, TGT0, l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE)); fapi2::buffer<uint64_t> l_scom_buffer; { FAPI_TRY(fapi2::getScom( TGT0, 0x501180aull, l_scom_buffer )); @@ -128,6 +130,21 @@ fapi2::ReturnCode p9_fbc_no_hp_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_ constexpr auto l_PB_COM_PB_CFG_LCL_HW_MARK_CNT_42 = 0x2aaaa; l_scom_buffer.insert<30, 6, 46, uint64_t>(l_PB_COM_PB_CFG_LCL_HW_MARK_CNT_42 ); + + if (((l_chip_id == 0x7) && (l_chip_ec == 0x10)) ) + { + if ((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == fapi2::ENUM_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE_SMP)) + { + constexpr auto l_PB_COM_PB_CFG_NP2_EN_OFF = 0x0; + l_scom_buffer.insert<49, 1, 61, uint64_t>(l_PB_COM_PB_CFG_NP2_EN_OFF ); + } + else if ((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == fapi2::ENUM_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE_NV)) + { + constexpr auto l_PB_COM_PB_CFG_NP2_EN_ON = 0x7; + l_scom_buffer.insert<49, 1, 61, uint64_t>(l_PB_COM_PB_CFG_NP2_EN_ON ); + } + } + FAPI_TRY(fapi2::putScom(TGT0, 0x501180aull, l_scom_buffer)); } { @@ -168,6 +185,21 @@ fapi2::ReturnCode p9_fbc_no_hp_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_ constexpr auto l_PB_COM_PB_CFG_LCL_HW_MARK_CNT_42 = 0x2aaaa; l_scom_buffer.insert<30, 6, 52, uint64_t>(l_PB_COM_PB_CFG_LCL_HW_MARK_CNT_42 ); + + if (((l_chip_id == 0x7) && (l_chip_ec == 0x10)) ) + { + if ((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == fapi2::ENUM_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE_SMP)) + { + constexpr auto l_PB_COM_PB_CFG_NP2_EN_OFF = 0x0; + l_scom_buffer.insert<49, 1, 62, uint64_t>(l_PB_COM_PB_CFG_NP2_EN_OFF ); + } + else if ((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == fapi2::ENUM_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE_NV)) + { + constexpr auto l_PB_COM_PB_CFG_NP2_EN_ON = 0x7; + l_scom_buffer.insert<49, 1, 62, uint64_t>(l_PB_COM_PB_CFG_NP2_EN_ON ); + } + } + FAPI_TRY(fapi2::putScom(TGT0, 0x5011c0aull, l_scom_buffer)); } { @@ -1710,6 +1742,21 @@ fapi2::ReturnCode p9_fbc_no_hp_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_ constexpr auto l_PB_COM_PB_CFG_LCL_HW_MARK_CNT_42 = 0x2aaaa; l_scom_buffer.insert<30, 6, 58, uint64_t>(l_PB_COM_PB_CFG_LCL_HW_MARK_CNT_42 ); + + if (((l_chip_id == 0x7) && (l_chip_ec == 0x10)) ) + { + if ((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == fapi2::ENUM_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE_SMP)) + { + constexpr auto l_PB_COM_PB_CFG_NP2_EN_OFF = 0x0; + l_scom_buffer.insert<49, 1, 63, uint64_t>(l_PB_COM_PB_CFG_NP2_EN_OFF ); + } + else if ((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == fapi2::ENUM_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE_NV)) + { + constexpr auto l_PB_COM_PB_CFG_NP2_EN_ON = 0x7; + l_scom_buffer.insert<49, 1, 63, uint64_t>(l_PB_COM_PB_CFG_NP2_EN_ON ); + } + } + FAPI_TRY(fapi2::putScom(TGT0, 0x501200aull, l_scom_buffer)); } |