diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C b/src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C index da7486900e8..a1359478411 100644 --- a/src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C +++ b/src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C @@ -58,6 +58,7 @@ extern "C" const uint32_t FBC_ALTD_PRE_QUIESCE_COUNT_NUM_OF_BITS = 20; const uint32_t FBC_ALTD_WITH_POST_INIT = 51; + const uint32_t FBC_ALTD_HW397129 = 52; const uint32_t FBC_ALTD_POST_INIT_COUNT_START_BIT = 54; // Bits 54:63 const uint32_t FBC_ALTD_POST_INIT_COUNT_NUM_OF_BITS = 10; @@ -293,6 +294,9 @@ extern "C" FBC_ALTD_POST_INIT_COUNT_NUM_OF_BITS> (INIT_SWITCH_WAIT_COUNT); + //If DD2 setup workaround for HW397129 to re-enable fastpath for DD2 + altd_option_reg_data.setBit(); + // Write to ADU option reg FAPI_DBG("OPTION reg value 0x%016llX", altd_option_reg_data); FAPI_TRY(fapi2::putScom(i_target, PU_ALTD_OPTION_REG, altd_option_reg_data), diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_build_smp_adu.C b/src/import/chips/p9/procedures/hwp/nest/p9_build_smp_adu.C index bb0c4f57de1..d05e5bc9faa 100644 --- a/src/import/chips/p9/procedures/hwp/nest/p9_build_smp_adu.C +++ b/src/import/chips/p9/procedures/hwp/nest/p9_build_smp_adu.C @@ -437,8 +437,12 @@ fapi2::ReturnCode p9_build_smp_sequence_adu(p9_build_smp_system& i_smp, goto adu_reset_unlock; } - // workaround for HW397129 - if (i_action == SWITCH_AB) + // workaround for HW397129 to re-enable fastpath for DD1 + uint8_t l_hw397129_workaround; + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_HW397129, *(p_iter->second.target), l_hw397129_workaround), + "Error getting the ATTR_CHIP_EC_FEATURE_HW397129"); + + if ((i_action == SWITCH_AB) && l_hw397129_workaround) { p9_ADU_oper_flag l_adu_oper_flag_reinit; l_adu_oper_flag_reinit.setOperationType(p9_ADU_oper_flag::PB_INIT_OPER); 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 1ad00d4e714..f77126fc215 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 @@ -2375,6 +2375,24 @@ + + ATTR_CHIP_EC_FEATURE_HW397129> + TARGET_TYPE_PROC_CHIP + + Attribute for if we need a workaround for re-enabling the MC fastpath since on + Nimbus DD1 is gets disabled. + + + + ENUM_ATTR_NAME_NIMBUS + + 0x20 + LESS_THAN + + + + +