diff options
author | Chris Steffen <cwsteffen@us.ibm.com> | 2016-10-13 18:33:51 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-10-14 11:58:45 -0400 |
commit | e528c80022f5858193fa1c14bb940b3f6b644ff4 (patch) | |
tree | 4844acef2e3d81c56c5cff3ecc8b92e1e68249d9 /src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g0_scom.C | |
parent | 427fc49fe53e8b6f9564c6ff0dac1f8cb458efdb (diff) | |
download | talos-hostboot-e528c80022f5858193fa1c14bb940b3f6b644ff4.tar.gz talos-hostboot-e528c80022f5858193fa1c14bb940b3f6b644ff4.zip |
Xbus Fixes
- Fix for HW390103 in xbus link training
- Updated Xbus initfile settigns for group 0 & 1
- Updated Xbus Clean Up pll settings
Change-Id: I928e6306bf71d922b65cbbff4a27d2cbf3d3b066
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31196
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Matt K. Light <mklight@us.ibm.com>
Reviewed-by: Gary A. Peterson <garyp@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31197
Reviewed-by: Hostboot Team <hostboot@us.ibm.com>
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_xbus_g0_scom.C')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g0_scom.C | 267 |
1 files changed, 102 insertions, 165 deletions
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g0_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g0_scom.C index 4da3fd098..d470a7f76 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g0_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g0_scom.C @@ -36,22 +36,25 @@ constexpr auto literal_0b0110 = 0b0110; constexpr auto literal_0b00000 = 0b00000; constexpr auto literal_0b01111 = 0b01111; constexpr auto literal_0b01100 = 0b01100; +constexpr auto literal_0b0111 = 0b0111; constexpr auto literal_0b1011 = 0b1011; constexpr auto literal_0b0000000 = 0b0000000; constexpr auto literal_0b0000011 = 0b0000011; constexpr auto literal_0b000000 = 0b000000; constexpr auto literal_0b100111 = 0b100111; constexpr auto literal_0b1010 = 0b1010; +constexpr auto literal_0b01 = 0b01; constexpr auto literal_0b11 = 0b11; constexpr auto literal_0b0010000 = 0b0010000; constexpr auto literal_0b00001 = 0b00001; +constexpr auto literal_0b0001 = 0b0001; +constexpr auto literal_0b0010 = 0b0010; constexpr auto literal_0b0010001 = 0b0010001; constexpr auto literal_0b0000000000000000 = 0b0000000000000000; constexpr auto literal_0b01111111 = 0b01111111; constexpr auto literal_0b10 = 0b10; constexpr auto literal_0b1100 = 0b1100; constexpr auto literal_0b00 = 0b00; -constexpr auto literal_0b01 = 0b01; fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& TGT0, const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT1) @@ -2188,20 +2191,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2227,20 +2223,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2266,20 +2255,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2305,20 +2287,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2344,20 +2319,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2383,20 +2351,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2422,20 +2383,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2461,20 +2415,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2500,20 +2447,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2539,20 +2479,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2578,20 +2511,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2617,20 +2543,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2656,20 +2575,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2695,20 +2607,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2734,20 +2639,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2773,20 +2671,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2812,20 +2703,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -2851,20 +2735,13 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { - if (l_def_IS_HW) - { - l_scom_buffer.insert<uint64_t> (literal_0b00000, 48, 5, 59 ); - } - else if (l_def_IS_SIM) - { - l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); - } + l_scom_buffer.insert<uint64_t> (literal_0b01100, 48, 5, 59 ); } { if (l_def_IS_HW) { - l_scom_buffer.insert<uint64_t> (literal_0b0000, 53, 4, 60 ); + l_scom_buffer.insert<uint64_t> (literal_0b0111, 53, 4, 60 ); } else if (l_def_IS_SIM) { @@ -6530,13 +6407,17 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { + l_scom_buffer.insert<uint64_t> (literal_0b01, 48, 2, 62 ); + } + + { constexpr auto l_IOF1_RX_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_PEAK_TUNE_OFF = 0x0; l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_PEAK_TUNE_OFF, 55, 1, 63 ); } { - constexpr auto l_IOF1_RX_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_LTE_EN_OFF = 0x0; - l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_LTE_EN_OFF, 56, 1, 63 ); + constexpr auto l_IOF1_RX_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_LTE_EN_ON = 0x1; + l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_LTE_EN_ON, 56, 1, 63 ); } { @@ -6562,6 +6443,29 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } } { + l_rc = fapi2::getScom( TGT0, 0x8009700006010c3full, l_scom_buffer ); + + if (l_rc) + { + FAPI_ERR("ERROR executing: getScom (0x8009700006010c3full)"); + break; + } + + { + constexpr auto l_IOF1_RX_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_RC_ENABLE_CTLE_1ST_LATCH_OFFSET_CAL_ON = 0x1; + l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_RC_ENABLE_CTLE_1ST_LATCH_OFFSET_CAL_ON, 48, + 1, 63 ); + } + + l_rc = fapi2::putScom(TGT0, 0x8009700006010c3full, l_scom_buffer); + + if (l_rc) + { + FAPI_ERR("ERROR executing: putScom (0x8009700006010c3full)"); + break; + } + } + { l_rc = fapi2::getScom( TGT0, 0x8009800006010c3full, l_scom_buffer ); if (l_rc) @@ -6674,6 +6578,34 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } } { + l_rc = fapi2::getScom( TGT0, 0x8009b00006010c3full, l_scom_buffer ); + + if (l_rc) + { + FAPI_ERR("ERROR executing: getScom (0x8009b00006010c3full)"); + break; + } + + { + if (l_def_IS_HW) + { + l_scom_buffer.insert<uint64_t> (literal_0b0001, 52, 4, 60 ); + } + else if (l_def_IS_SIM) + { + l_scom_buffer.insert<uint64_t> (literal_0b0010, 52, 4, 60 ); + } + } + + l_rc = fapi2::putScom(TGT0, 0x8009b00006010c3full, l_scom_buffer); + + if (l_rc) + { + FAPI_ERR("ERROR executing: putScom (0x8009b00006010c3full)"); + break; + } + } + { l_rc = fapi2::getScom( TGT0, 0x8009b80006010c3full, l_scom_buffer ); if (l_rc) @@ -6750,6 +6682,11 @@ fapi2::ReturnCode p9_xbus_g0_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& } { + constexpr auto l_IOF1_RX_RX0_RXCTL_GLBSM_REGS_RX_DESKEW_BUMP_AFTER_AFTER = 0x1; + l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX0_RXCTL_GLBSM_REGS_RX_DESKEW_BUMP_AFTER_AFTER, 56, 1, 63 ); + } + + { constexpr auto l_IOF1_RX_RX0_RXCTL_GLBSM_REGS_RX_PG_GLBSM_SPARE_MODE_2_ON = 0x1; l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX0_RXCTL_GLBSM_REGS_RX_PG_GLBSM_SPARE_MODE_2_ON, 50, 1, 63 ); } |