summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Steffen <cwsteffen@us.ibm.com>2016-10-13 18:33:51 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-10-14 11:58:45 -0400
commite528c80022f5858193fa1c14bb940b3f6b644ff4 (patch)
tree4844acef2e3d81c56c5cff3ecc8b92e1e68249d9
parent427fc49fe53e8b6f9564c6ff0dac1f8cb458efdb (diff)
downloadtalos-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>
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g0_scom.C267
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g1_scom.C267
-rw-r--r--src/import/chips/p9/procedures/hwp/io/p9_io_xbus_linktrain.C9
3 files changed, 209 insertions, 334 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 );
}
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g1_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g1_scom.C
index af73022ed..94b22baeb 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g1_scom.C
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_xbus_g1_scom.C
@@ -36,6 +36,7 @@ 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;
@@ -43,16 +44,18 @@ constexpr auto literal_0b000000 = 0b000000;
constexpr auto literal_0b100111 = 0b100111;
constexpr auto literal_0b000001 = 0b000001;
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_g1_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>& TGT0,
const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT1)
@@ -2189,20 +2192,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2228,20 +2224,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2267,20 +2256,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2306,20 +2288,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2345,20 +2320,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2384,20 +2352,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2423,20 +2384,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2462,20 +2416,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2501,20 +2448,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2540,20 +2480,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2579,20 +2512,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2618,20 +2544,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2657,20 +2576,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2696,20 +2608,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2735,20 +2640,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2774,20 +2672,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2813,20 +2704,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -2852,20 +2736,13 @@ fapi2::ReturnCode p9_xbus_g1_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)
{
@@ -6531,13 +6408,17 @@ fapi2::ReturnCode p9_xbus_g1_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>&
}
{
+ l_scom_buffer.insert<uint64_t> (literal_0b01, 48, 2, 62 );
+ }
+
+ {
constexpr auto l_IOF1_RX_RX1_RXCTL_CTL_REGS_RX_CTL_REGS_RX_PEAK_TUNE_OFF = 0x0;
l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX1_RXCTL_CTL_REGS_RX_CTL_REGS_RX_PEAK_TUNE_OFF, 55, 1, 63 );
}
{
- constexpr auto l_IOF1_RX_RX1_RXCTL_CTL_REGS_RX_CTL_REGS_RX_LTE_EN_OFF = 0x0;
- l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX1_RXCTL_CTL_REGS_RX_CTL_REGS_RX_LTE_EN_OFF, 56, 1, 63 );
+ constexpr auto l_IOF1_RX_RX1_RXCTL_CTL_REGS_RX_CTL_REGS_RX_LTE_EN_ON = 0x1;
+ l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX1_RXCTL_CTL_REGS_RX_CTL_REGS_RX_LTE_EN_ON, 56, 1, 63 );
}
{
@@ -6563,6 +6444,29 @@ fapi2::ReturnCode p9_xbus_g1_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>&
}
}
{
+ l_rc = fapi2::getScom( TGT0, 0x8009702006010c3full, l_scom_buffer );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x8009702006010c3full)");
+ break;
+ }
+
+ {
+ constexpr auto l_IOF1_RX_RX1_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_RX1_RXCTL_CTL_REGS_RX_CTL_REGS_RX_RC_ENABLE_CTLE_1ST_LATCH_OFFSET_CAL_ON, 48,
+ 1, 63 );
+ }
+
+ l_rc = fapi2::putScom(TGT0, 0x8009702006010c3full, l_scom_buffer);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x8009702006010c3full)");
+ break;
+ }
+ }
+ {
l_rc = fapi2::getScom( TGT0, 0x8009802006010c3full, l_scom_buffer );
if (l_rc)
@@ -6675,6 +6579,34 @@ fapi2::ReturnCode p9_xbus_g1_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>&
}
}
{
+ l_rc = fapi2::getScom( TGT0, 0x8009b02006010c3full, l_scom_buffer );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x8009b02006010c3full)");
+ 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, 0x8009b02006010c3full, l_scom_buffer);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x8009b02006010c3full)");
+ break;
+ }
+ }
+ {
l_rc = fapi2::getScom( TGT0, 0x8009b82006010c3full, l_scom_buffer );
if (l_rc)
@@ -6751,6 +6683,11 @@ fapi2::ReturnCode p9_xbus_g1_scom(const fapi2::Target<fapi2::TARGET_TYPE_XBUS>&
}
{
+ constexpr auto l_IOF1_RX_RX1_RXCTL_GLBSM_REGS_RX_DESKEW_BUMP_AFTER_AFTER = 0x1;
+ l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX1_RXCTL_GLBSM_REGS_RX_DESKEW_BUMP_AFTER_AFTER, 56, 1, 63 );
+ }
+
+ {
constexpr auto l_IOF1_RX_RX1_RXCTL_GLBSM_REGS_RX_PG_GLBSM_SPARE_MODE_2_ON = 0x1;
l_scom_buffer.insert<uint64_t> (l_IOF1_RX_RX1_RXCTL_GLBSM_REGS_RX_PG_GLBSM_SPARE_MODE_2_ON, 50, 1, 63 );
}
diff --git a/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_linktrain.C b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_linktrain.C
index 2f7cf99f3..70a50f148 100644
--- a/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_linktrain.C
+++ b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_linktrain.C
@@ -853,10 +853,11 @@ fapi2::ReturnCode p9_io_xbus_linktrain(
"P9 IO Xbus Linktrain Polling Failed" );
- // Disable the Tx Serializer Sync
- FAPI_TRY( tx_serializer_sync_power_off( l_mtgt, l_stgt, i_grp ),
- "tx_serializer_sync_power_off Failed.");
-
+ // >> HW390103 -- Leave Tx Unload Clock Disable Off
+ //// Disable the Tx Serializer Sync
+ //FAPI_TRY( tx_serializer_sync_power_off( l_mtgt, l_stgt, i_grp ),
+ // "tx_serializer_sync_power_off Failed.");
+ // << HW390103 -- Leave Tx Unload Clock Disable Off
// Record the Bad Lane Vectors after link training.
FAPI_TRY( get_bad_lane_data( l_mtgt, i_grp, l_m_post_bad_data ),
OpenPOWER on IntegriCloud