diff options
author | Richard J. Knight <rjknight@us.ibm.com> | 2016-11-02 08:08:52 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-12-05 18:29:18 -0500 |
commit | 9fb9648aa5538582538af141ccde1c7ac9794a52 (patch) | |
tree | 559fd8f2364da08e8300e531ab0d167038c119dc /src/import/chips/p9/procedures/hwp/initfiles/p9_vas_scom.C | |
parent | 1ac343bdb0d937b3a4b4c7de1aba03f38bf2ee7f (diff) | |
download | talos-hostboot-9fb9648aa5538582538af141ccde1c7ac9794a52.tar.gz talos-hostboot-9fb9648aa5538582538af141ccde1c7ac9794a52.zip |
Add support for iterating over EC_LEVELS
-Add support for looping over various EC levels for
SCOM and Scan init files
Change-Id: I7463b71698856922829cddc0e4d8d179803a1db8
RTC:159043
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31688
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin Gass <bgass@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com>
Reviewed-by: Prachi Gupta <pragupta@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31858
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/initfiles/p9_vas_scom.C')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/initfiles/p9_vas_scom.C | 236 |
1 files changed, 138 insertions, 98 deletions
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_vas_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_vas_scom.C index f7171f5e4..e9b0f8ade 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9_vas_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_vas_scom.C @@ -29,9 +29,9 @@ using namespace fapi2; -constexpr auto literal_0x00000100000D7FFF = 0x00000100000D7FFF; constexpr auto literal_0x0000000000000FFF = 0x0000000000000FFF; constexpr auto literal_0x00FF0203C00C0FFF = 0x00FF0203C00C0FFF; +constexpr auto literal_0x00000100000D7FFF = 0x00000100000D7FFF; constexpr auto literal_0x1 = 0x1; fapi2::ReturnCode p9_vas_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0, @@ -41,154 +41,194 @@ fapi2::ReturnCode p9_vas_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& do { - fapi2::buffer<uint64_t> l_scom_buffer; + fapi2::ATTR_EC_Type l_chip_ec; + fapi2::ATTR_NAME_Type l_chip_id; + l_rc = FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_NAME, TGT0, l_chip_id); + + if (l_rc) { - l_rc = fapi2::getScom( TGT0, 0x3011803ull, l_scom_buffer ); + FAPI_ERR("ERROR getting ATTR_NAME"); + break; + } - if (l_rc) - { - FAPI_ERR("ERROR executing: getScom (0x3011803ull)"); - break; - } + l_rc = FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_EC, TGT0, l_chip_ec); - { - l_scom_buffer.insert<uint64_t> (literal_0x00000100000D7FFF, 0, 54, 0 ); - } + if (l_rc) + { + FAPI_ERR("ERROR getting ATTR_EC"); + break; + } - l_rc = fapi2::putScom(TGT0, 0x3011803ull, l_scom_buffer); + fapi2::ATTR_PROC_FABRIC_ADDR_BAR_MODE_Type l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE; + l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_ADDR_BAR_MODE, TGT1, l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE); - if (l_rc) - { - FAPI_ERR("ERROR executing: putScom (0x3011803ull)"); - break; - } - } + if (l_rc) { - l_rc = fapi2::getScom( TGT0, 0x3011806ull, l_scom_buffer ); + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_FABRIC_ADDR_BAR_MODE)"); + break; + } - if (l_rc) + { + fapi2::buffer<uint64_t> l_scom_buffer; { - FAPI_ERR("ERROR executing: getScom (0x3011806ull)"); - break; - } + l_rc = fapi2::getScom( TGT0, 0x301184eull, l_scom_buffer ); - { - l_scom_buffer.insert<uint64_t> (literal_0x0000000000000FFF, 0, 54, 0 ); - } + if (l_rc) + { + FAPI_ERR("ERROR executing: getScom (0x301184eull)"); + break; + } - l_rc = fapi2::putScom(TGT0, 0x3011806ull, l_scom_buffer); + { + if ((l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_ADDR_BAR_MODE_SMALL_SYSTEM)) + { + constexpr auto l_VA_VA_SOUTH_VA_EG_EG_SCF_ADDR_BAR_MODE_ON = 0x1; + l_scom_buffer.insert<uint64_t> (l_VA_VA_SOUTH_VA_EG_EG_SCF_ADDR_BAR_MODE_ON, 13, 1, 63 ); + } + else if ((l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_ADDR_BAR_MODE_LARGE_SYSTEM)) + { + constexpr auto l_VA_VA_SOUTH_VA_EG_EG_SCF_ADDR_BAR_MODE_OFF = 0x0; + l_scom_buffer.insert<uint64_t> (l_VA_VA_SOUTH_VA_EG_EG_SCF_ADDR_BAR_MODE_OFF, 13, 1, 63 ); + } + } - if (l_rc) - { - FAPI_ERR("ERROR executing: putScom (0x3011806ull)"); - break; + l_rc = fapi2::putScom(TGT0, 0x301184eull, l_scom_buffer); + + if (l_rc) + { + FAPI_ERR("ERROR executing: putScom (0x301184eull)"); + break; + } } } - { - l_rc = fapi2::getScom( TGT0, 0x3011807ull, l_scom_buffer ); - if (l_rc) + { + fapi2::buffer<uint64_t> l_scom_buffer; { - FAPI_ERR("ERROR executing: getScom (0x3011807ull)"); - break; - } + l_rc = fapi2::getScom( TGT0, 0x3011806ull, l_scom_buffer ); - { - l_scom_buffer.insert<uint64_t> (literal_0x00FF0203C00C0FFF, 0, 54, 0 ); - } + if (l_rc) + { + FAPI_ERR("ERROR executing: getScom (0x3011806ull)"); + break; + } + + { + l_scom_buffer.insert<uint64_t> (literal_0x0000000000000FFF, 0, 54, 0 ); + } - l_rc = fapi2::putScom(TGT0, 0x3011807ull, l_scom_buffer); + l_rc = fapi2::putScom(TGT0, 0x3011806ull, l_scom_buffer); - if (l_rc) - { - FAPI_ERR("ERROR executing: putScom (0x3011807ull)"); - break; + if (l_rc) + { + FAPI_ERR("ERROR executing: putScom (0x3011806ull)"); + break; + } } } - { - l_rc = fapi2::getScom( TGT0, 0x301184dull, l_scom_buffer ); - if (l_rc) + { + fapi2::buffer<uint64_t> l_scom_buffer; { - FAPI_ERR("ERROR executing: getScom (0x301184dull)"); - break; - } + l_rc = fapi2::getScom( TGT0, 0x3011807ull, l_scom_buffer ); - { - l_scom_buffer.insert<uint64_t> (literal_0x1, 19, 1, 63 ); - } + if (l_rc) + { + FAPI_ERR("ERROR executing: getScom (0x3011807ull)"); + break; + } - l_rc = fapi2::putScom(TGT0, 0x301184dull, l_scom_buffer); + { + l_scom_buffer.insert<uint64_t> (literal_0x00FF0203C00C0FFF, 0, 54, 0 ); + } - if (l_rc) - { - FAPI_ERR("ERROR executing: putScom (0x301184dull)"); - break; + l_rc = fapi2::putScom(TGT0, 0x3011807ull, l_scom_buffer); + + if (l_rc) + { + FAPI_ERR("ERROR executing: putScom (0x3011807ull)"); + break; + } } } - fapi2::ATTR_PROC_FABRIC_ADDR_BAR_MODE_Type l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE; - l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_ADDR_BAR_MODE, TGT1, l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE); - if (l_rc) { - FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_FABRIC_ADDR_BAR_MODE)"); - break; - } + fapi2::buffer<uint64_t> l_scom_buffer; + { + l_rc = fapi2::getScom( TGT0, 0x3011803ull, l_scom_buffer ); - { - l_rc = fapi2::getScom( TGT0, 0x301184eull, l_scom_buffer ); + if (l_rc) + { + FAPI_ERR("ERROR executing: getScom (0x3011803ull)"); + break; + } - if (l_rc) - { - FAPI_ERR("ERROR executing: getScom (0x301184eull)"); - break; + { + l_scom_buffer.insert<uint64_t> (literal_0x00000100000D7FFF, 0, 54, 0 ); + } + + l_rc = fapi2::putScom(TGT0, 0x3011803ull, l_scom_buffer); + + if (l_rc) + { + FAPI_ERR("ERROR executing: putScom (0x3011803ull)"); + break; + } } + } + { + fapi2::buffer<uint64_t> l_scom_buffer; { - if ((l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_ADDR_BAR_MODE_SMALL_SYSTEM)) + l_rc = fapi2::getScom( TGT0, 0x301184full, l_scom_buffer ); + + if (l_rc) { - constexpr auto l_VA_VA_SOUTH_VA_EG_EG_SCF_ADDR_BAR_MODE_ON = 0x1; - l_scom_buffer.insert<uint64_t> (l_VA_VA_SOUTH_VA_EG_EG_SCF_ADDR_BAR_MODE_ON, 13, 1, 63 ); + FAPI_ERR("ERROR executing: getScom (0x301184full)"); + break; } - else if ((l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_ADDR_BAR_MODE_LARGE_SYSTEM)) + { - constexpr auto l_VA_VA_SOUTH_VA_EG_EG_SCF_ADDR_BAR_MODE_OFF = 0x0; - l_scom_buffer.insert<uint64_t> (l_VA_VA_SOUTH_VA_EG_EG_SCF_ADDR_BAR_MODE_OFF, 13, 1, 63 ); + l_scom_buffer.insert<uint64_t> (literal_0x1, 0, 1, 63 ); } - } - l_rc = fapi2::putScom(TGT0, 0x301184eull, l_scom_buffer); + l_rc = fapi2::putScom(TGT0, 0x301184full, l_scom_buffer); - if (l_rc) - { - FAPI_ERR("ERROR executing: putScom (0x301184eull)"); - break; + if (l_rc) + { + FAPI_ERR("ERROR executing: putScom (0x301184full)"); + break; + } } } { - l_rc = fapi2::getScom( TGT0, 0x301184full, l_scom_buffer ); - - if (l_rc) + fapi2::buffer<uint64_t> l_scom_buffer; { - FAPI_ERR("ERROR executing: getScom (0x301184full)"); - break; - } + l_rc = fapi2::getScom( TGT0, 0x301184dull, l_scom_buffer ); - { - l_scom_buffer.insert<uint64_t> (literal_0x1, 0, 1, 63 ); - } + if (l_rc) + { + FAPI_ERR("ERROR executing: getScom (0x301184dull)"); + break; + } + + { + l_scom_buffer.insert<uint64_t> (literal_0x1, 19, 1, 63 ); + } - l_rc = fapi2::putScom(TGT0, 0x301184full, l_scom_buffer); + l_rc = fapi2::putScom(TGT0, 0x301184dull, l_scom_buffer); - if (l_rc) - { - FAPI_ERR("ERROR executing: putScom (0x301184full)"); - break; + if (l_rc) + { + FAPI_ERR("ERROR executing: putScom (0x301184dull)"); + break; + } } } + } - while (0); + while(0); return l_rc; } |