diff options
Diffstat (limited to 'import/chips')
4 files changed, 150 insertions, 54 deletions
diff --git a/import/chips/p9/procedures/hwp/initfiles/p9_l2_scom.C b/import/chips/p9/procedures/hwp/initfiles/p9_l2_scom.C index 1466e070..9e0796e8 100644 --- a/import/chips/p9/procedures/hwp/initfiles/p9_l2_scom.C +++ b/import/chips/p9/procedures/hwp/initfiles/p9_l2_scom.C @@ -27,8 +27,6 @@ constexpr auto literal_0b0001 = 0b0001; constexpr auto literal_0b0100 = 0b0100; constexpr auto literal_0 = 0; constexpr auto literal_0x001 = 0x001; -constexpr auto literal_1 = 1; -constexpr auto literal_2 = 2; constexpr auto literal_0b0000 = 0b0000; fapi2::ReturnCode p9_l2_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, @@ -122,12 +120,30 @@ fapi2::ReturnCode p9_l2_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, } } - fapi2::ATTR_PROC_EPS_READ_CYCLES_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES; - l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES); + fapi2::ATTR_PROC_EPS_READ_CYCLES_T0_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES_T0, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0); if (l_rc) { - FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_READ_CYCLES)"); + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_READ_CYCLES_T0)"); + break; + } + + fapi2::ATTR_PROC_EPS_READ_CYCLES_T1_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES_T1, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1); + + if (l_rc) + { + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_READ_CYCLES_T1)"); + break; + } + + fapi2::ATTR_PROC_EPS_READ_CYCLES_T2_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES_T2, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2); + + if (l_rc) + { + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_READ_CYCLES_T2)"); break; } @@ -141,33 +157,33 @@ fapi2::ReturnCode p9_l2_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, } { - if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_0] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_0], 0, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0, 0, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_0] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 0, 12, 52 ); } } { - if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_1] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_1], 12, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1, 12, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_1] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 12, 12, 52 ); } } { - if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_2] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_2], 24, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2, 24, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_2] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 24, 12, 52 ); } @@ -182,12 +198,21 @@ fapi2::ReturnCode p9_l2_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, } } - fapi2::ATTR_PROC_EPS_WRITE_CYCLES_Type l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES; - l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_WRITE_CYCLES, TGT1, l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES); + fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T1_Type l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T1, TGT1, l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1); + + if (l_rc) + { + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_WRITE_CYCLES_T1)"); + break; + } + + fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T2_Type l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T2, TGT1, l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2); if (l_rc) { - FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_WRITE_CYCLES)"); + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_WRITE_CYCLES_T2)"); break; } @@ -201,22 +226,22 @@ fapi2::ReturnCode p9_l2_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, } { - if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_0] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_0], 0, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1, 0, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_0] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 0, 12, 52 ); } } { - if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_1] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_1], 12, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2, 12, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_1] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 12, 12, 52 ); } diff --git a/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C b/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C index b8dba489..325a2aa1 100644 --- a/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C +++ b/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C @@ -25,8 +25,6 @@ using namespace fapi2; constexpr auto literal_0 = 0; constexpr auto literal_0x001 = 0x001; -constexpr auto literal_1 = 1; -constexpr auto literal_2 = 2; constexpr auto literal_0b0 = 0b0; constexpr auto literal_0b0000 = 0b0000; constexpr auto literal_0b0001 = 0b0001; @@ -40,12 +38,30 @@ fapi2::ReturnCode p9_l3_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, do { fapi2::buffer<uint64_t> l_scom_buffer; - fapi2::ATTR_PROC_EPS_READ_CYCLES_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES; - l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES); + fapi2::ATTR_PROC_EPS_READ_CYCLES_T0_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES_T0, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0); if (l_rc) { - FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_READ_CYCLES)"); + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_READ_CYCLES_T0)"); + break; + } + + fapi2::ATTR_PROC_EPS_READ_CYCLES_T1_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES_T1, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1); + + if (l_rc) + { + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_READ_CYCLES_T1)"); + break; + } + + fapi2::ATTR_PROC_EPS_READ_CYCLES_T2_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES_T2, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2); + + if (l_rc) + { + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_READ_CYCLES_T2)"); break; } @@ -59,33 +75,33 @@ fapi2::ReturnCode p9_l3_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, } { - if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_0] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_0], 0, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0, 0, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_0] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 0, 12, 52 ); } } { - if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_1] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_1], 12, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1, 12, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_1] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T1 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 12, 12, 52 ); } } { - if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_2] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_2], 24, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2, 24, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_2] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T2 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 24, 12, 52 ); } @@ -100,12 +116,21 @@ fapi2::ReturnCode p9_l3_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, } } - fapi2::ATTR_PROC_EPS_WRITE_CYCLES_Type l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES; - l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_WRITE_CYCLES, TGT1, l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES); + fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T1_Type l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T1, TGT1, l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1); + + if (l_rc) + { + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_WRITE_CYCLES_T1)"); + break; + } + + fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T2_Type l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T2, TGT1, l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2); if (l_rc) { - FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_WRITE_CYCLES)"); + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_WRITE_CYCLES_T2)"); break; } @@ -119,22 +144,22 @@ fapi2::ReturnCode p9_l3_scom(const fapi2::Target<fapi2::TARGET_TYPE_EX>& TGT0, } { - if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_0] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_0], 0, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1, 0, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_0] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 0, 12, 52 ); } } { - if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_1] != literal_0)) + if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2 != literal_0)) { - l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_1], 12, 12, 52 ); + l_scom_buffer.insert<uint64_t> (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2, 12, 12, 52 ); } - else if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_1] == literal_0)) + else if ((l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2 == literal_0)) { l_scom_buffer.insert<uint64_t> (literal_0x001, 12, 12, 52 ); } diff --git a/import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml b/import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml index 254bd84e..a42b5294 100644 --- a/import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml +++ b/import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml @@ -573,26 +573,52 @@ </attribute> <!-- ********************************************************************** --> <attribute> - <id>ATTR_PROC_EPS_READ_CYCLES</id> + <id>ATTR_PROC_EPS_READ_CYCLES_T0</id> <targetType>TARGET_TYPE_SYSTEM</targetType> <description> - Calculated read epsilon protection count. - Counter tier is index. + Calculated read tier0 epsilon protection count. </description> <valueType>uint32</valueType> - <array>3</array> <writeable/> </attribute> <!-- ********************************************************************** --> <attribute> - <id>ATTR_PROC_EPS_WRITE_CYCLES</id> + <id>ATTR_PROC_EPS_READ_CYCLES_T1</id> <targetType>TARGET_TYPE_SYSTEM</targetType> <description> - Calculated write epsilon protection count. - Counter tier is index. + Calculated read tier1 epsilon protection count. + </description> + <valueType>uint32</valueType> + <writeable/> +</attribute> +<!-- ********************************************************************** --> +<attribute> + <id>ATTR_PROC_EPS_READ_CYCLES_T2</id> + <targetType>TARGET_TYPE_SYSTEM</targetType> + <description> + Calculated read tier2 epsilon protection count. + </description> + <valueType>uint32</valueType> + <writeable/> +</attribute> +<!-- ********************************************************************** --> +<attribute> + <id>ATTR_PROC_EPS_WRITE_CYCLES_T1</id> + <targetType>TARGET_TYPE_SYSTEM</targetType> + <description> + Calculated write tier1 epsilon protection count. + </description> + <valueType>uint32</valueType> + <writeable/> +</attribute> +<!-- ********************************************************************** --> +<attribute> + <id>ATTR_PROC_EPS_WRITE_CYCLES_T2</id> + <targetType>TARGET_TYPE_SYSTEM</targetType> + <description> + Calculated write tier2 epsilon protection count. </description> <valueType>uint32</valueType> - <array>2</array> <writeable/> </attribute> <!-- ********************************************************************** --> diff --git a/import/chips/p9/procedures/xml/attribute_info/p9_sbe_attributes.xml b/import/chips/p9/procedures/xml/attribute_info/p9_sbe_attributes.xml index 7d532915..98dc6cdf 100644 --- a/import/chips/p9/procedures/xml/attribute_info/p9_sbe_attributes.xml +++ b/import/chips/p9/procedures/xml/attribute_info/p9_sbe_attributes.xml @@ -553,4 +553,24 @@ <entry> <name>ATTR_BOOT_FMULT</name> </entry> + <entry> + <name>ATTR_PROC_EPS_READ_CYCLES_T0</name> + <value>0x00000FFF</value> + </entry> + <entry> + <name>ATTR_PROC_EPS_READ_CYCLES_T1</name> + <value>0x00000FFF</value> + </entry> + <entry> + <name>ATTR_PROC_EPS_READ_CYCLES_T2</name> + <value>0x00000FFF</value> + </entry> + <entry> + <name>ATTR_PROC_EPS_WRITE_CYCLES_T1</name> + <value>0x00000FFF</value> + </entry> + <entry> + <name>ATTR_PROC_EPS_WRITE_CYCLES_T2</name> + <value>0x00000FFF</value> + </entry> </entries> |