From 198376ff3a3da01c5752a7196f774c690e77ee5f Mon Sep 17 00:00:00 2001 From: Prachi Gupta Date: Mon, 25 Apr 2016 16:06:43 -0500 Subject: initCompiler: fix problems with multiple instances of same scom address Change-Id: I1070613e85abdee1ecadbcabf30a4ed9d4ceaa43 Original-Change-Id: Ic5bcb120b3bafbd5d8dffbc5550812e12e5472c6 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/23644 Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: Joseph J. McGill Reviewed-by: SHELTON LEUNG Reviewed-by: Prachi Gupta Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/26364 Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- .../p9/procedures/hwp/initfiles/p9_npu_scom.C | 90 +++++++++++++++++----- 1 file changed, 72 insertions(+), 18 deletions(-) (limited to 'src/import') diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_npu_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_npu_scom.C index 653b3cab2..169f6e1bd 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9_npu_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_npu_scom.C @@ -27,6 +27,7 @@ constexpr auto literal_2 = 2; constexpr auto literal_3 = 3; constexpr auto literal_1 = 1; constexpr auto literal_0 = 0; +constexpr auto literal_0x0 = 0x0; constexpr auto literal_0x1111111111111111 = 0x1111111111111111; constexpr auto literal_0x0000000000000000 = 0x0000000000000000; @@ -56,10 +57,13 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } - l_scom_buffer.insert (((((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_0] == literal_2) - || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_1] == literal_2)) - || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_2] == literal_2)) - || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == literal_2)), 38, 1, 63 ); + { + l_scom_buffer.insert (((((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_0] == literal_2) + || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_1] == literal_2)) + || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_2] == literal_2)) + || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == literal_2)), 38, 1, 63 ); + } + l_rc = fapi2::putScom(TGT0, 0x5011000ull, l_scom_buffer); if (l_rc) @@ -78,6 +82,15 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } + 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); + + if (l_rc) + { + FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_EPS_WRITE_CYCLES)"); + break; + } + { l_rc = fapi2::getScom( TGT0, 0x5011002ull, l_scom_buffer ); @@ -87,7 +100,30 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } - l_scom_buffer.insert (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_0], 28, 12, 52 ); + { + l_scom_buffer.insert (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_0], 28, 12, 52 ); + } + + { + l_scom_buffer.insert (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_1], 40, 12, 52 ); + } + + { + l_scom_buffer.insert (l_TGT1_ATTR_PROC_EPS_READ_CYCLES[literal_2], 52, 12, 52 ); + } + + { + l_scom_buffer.insert (literal_0x0, 0, 4, 60 ); + } + + { + l_scom_buffer.insert (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_0], 4, 12, 52 ); + } + + { + l_scom_buffer.insert (l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES[literal_1], 16, 12, 52 ); + } + l_rc = fapi2::putScom(TGT0, 0x5011002ull, l_scom_buffer); if (l_rc) @@ -106,10 +142,13 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } - l_scom_buffer.insert (((((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_0] == literal_2) - || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_1] == literal_2)) - || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_2] == literal_2)) - || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == literal_2)), 51, 1, 63 ); + { + l_scom_buffer.insert (((((l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_0] == literal_2) + || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_1] == literal_2)) + || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_2] == literal_2)) + || (l_TGT0_ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE[literal_3] == literal_2)), 51, 1, 63 ); + } + l_rc = fapi2::putScom(TGT0, 0x5011008ull, l_scom_buffer); if (l_rc) @@ -128,7 +167,10 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } - l_scom_buffer.insert (literal_0x1111111111111111, 0, 64, 0 ); + { + l_scom_buffer.insert (literal_0x1111111111111111, 0, 64, 0 ); + } + l_rc = fapi2::putScom(TGT0, 0x5011403ull, l_scom_buffer); if (l_rc) @@ -147,8 +189,11 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } - l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); - l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + { + l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + } + l_rc = fapi2::putScom(TGT0, 0x5011406ull, l_scom_buffer); if (l_rc) @@ -167,8 +212,11 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } - l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); - l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + { + l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + } + l_rc = fapi2::putScom(TGT0, 0x5011407ull, l_scom_buffer); if (l_rc) @@ -187,8 +235,11 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } - l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); - l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + { + l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + } + l_rc = fapi2::putScom(TGT0, 0x5011446ull, l_scom_buffer); if (l_rc) @@ -207,8 +258,11 @@ fapi2::ReturnCode p9_npu_scom(const fapi2::Target& break; } - l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); - l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + { + l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + l_scom_buffer.insert (literal_0x0000000000000000, 0, 64, 0 ); + } + l_rc = fapi2::putScom(TGT0, 0x5011447ull, l_scom_buffer); if (l_rc) -- cgit v1.2.1