summaryrefslogtreecommitdiffstats
path: root/src/import/generic/memory/lib/spd
diff options
context:
space:
mode:
authorJacob Harvey <jlharvey@us.ibm.com>2017-10-12 14:35:34 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-11-14 12:22:24 -0500
commitf7dfd17dfc996414b5989aa464817dd595b5623b (patch)
treec0503431fe6a9f6efc8da89c1ac48c0af7be12b4 /src/import/generic/memory/lib/spd
parentd6c5b55b7f06dde471f63c0c275fe16b67418405 (diff)
downloadtalos-hostboot-f7dfd17dfc996414b5989aa464817dd595b5623b.tar.gz
talos-hostboot-f7dfd17dfc996414b5989aa464817dd595b5623b.zip
Fix RCW structure and make a default option
Change-Id: I7b0a2c66e78a6d05aa213cd2a51f637c808c857e Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48323 Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Dev-Ready: JACOB L. HARVEY <jlharvey@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48528 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/generic/memory/lib/spd')
-rw-r--r--src/import/generic/memory/lib/spd/common/rcw_settings.H56
-rw-r--r--src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.C19
-rw-r--r--src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.H1
-rw-r--r--src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.C152
-rw-r--r--src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.H1
5 files changed, 36 insertions, 193 deletions
diff --git a/src/import/generic/memory/lib/spd/common/rcw_settings.H b/src/import/generic/memory/lib/spd/common/rcw_settings.H
index e3a80c73f..91e4af8e8 100644
--- a/src/import/generic/memory/lib/spd/common/rcw_settings.H
+++ b/src/import/generic/memory/lib/spd/common/rcw_settings.H
@@ -52,19 +52,6 @@ struct rcw_settings
{
uint64_t iv_rc00;
uint64_t iv_rc01;
- uint64_t iv_rc06_07;
- uint64_t iv_rc09;
- uint64_t iv_rc0b;
- uint64_t iv_rc0c;
- uint64_t iv_rc0f;
- uint64_t iv_rc1x;
- uint64_t iv_rc2x;
- uint64_t iv_rc4x;
- uint64_t iv_rc5x;
- uint64_t iv_rc6x;
- uint64_t iv_rc8x;
- uint64_t iv_rc9x;
- uint64_t iv_rcax;
///
/// @brief default ctor
@@ -97,50 +84,11 @@ struct rcw_settings
/// @brief ctor
/// @param[in] i_rc00 setting for register control word (RC00)
/// @param[in] i_rc01 setting for register control word (RC01)
- /// @param[in] i_rc06_07 setting for register control word (RCO6 & RC07)
- /// @param[in] i_rc09 setting for register control word (RC09)
- /// @param[in] i_rc0b setting for register control word (RC0B)
- /// @param[in] i_rc0c setting for register control word (RC0C)
- /// @param[in] i_rc0f setting for register control word (RC0F)
- /// @param[in] i_rc1x setting for register control word (RC1X)
- /// @param[in] i_rc2x setting for register control word (RC2X)
- /// @param[in] i_rc4x setting for register control word (RC4X)
- /// @param[in] i_rc5x setting for register control word (RC5X)
- /// @param[in] i_rc6x setting for register control word (RC6X)
- /// @param[in] i_rc8x setting for register control word (RC8X)
- /// @param[in] i_rc9x setting for register control word (RC9X)
- /// @param[in] i_rcax setting for register control word (RCAX)
///
constexpr rcw_settings( const uint64_t i_rc00,
- const uint64_t i_rc01,
- const uint64_t i_rc06_07,
- const uint64_t i_rc09,
- const uint64_t i_rc0b,
- const uint64_t i_rc0c,
- const uint64_t i_rc0f,
- const uint64_t i_rc1x,
- const uint64_t i_rc2x,
- const uint64_t i_rc4x,
- const uint64_t i_rc5x,
- const uint64_t i_rc6x,
- const uint64_t i_rc8x,
- const uint64_t i_rc9x,
- const uint64_t i_rcax)
+ const uint64_t i_rc01)
: iv_rc00(i_rc00),
- iv_rc01(i_rc01),
- iv_rc06_07(i_rc06_07),
- iv_rc09(i_rc09),
- iv_rc0b(i_rc0b),
- iv_rc0c(i_rc0c),
- iv_rc0f(i_rc0f),
- iv_rc1x(i_rc1x),
- iv_rc2x(i_rc2x),
- iv_rc4x(i_rc4x),
- iv_rc5x(i_rc5x),
- iv_rc6x(i_rc6x),
- iv_rc8x(i_rc8x),
- iv_rc9x(i_rc9x),
- iv_rcax(i_rcax)
+ iv_rc01(i_rc01)
{}
///
diff --git a/src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.C b/src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.C
index 99ea68a38..e7ac40546 100644
--- a/src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.C
+++ b/src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.C
@@ -51,20 +51,11 @@ namespace mss
///
// TODO RTC:160116 Fill in valid RCD data for LRDIMM
rcw_settings lrdimm_rc_b0( 0x00, // RC00
- 0x00, // RC01 (C might be the right answer)
- 0x1F, // RC06_7
- 0x00, // RC09
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6C
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00); // RCAX
+ 0x00); // RC01
+
+rcw_settings lrdimm_rc_default( 0x00, // RC00
+ 0x00); // RC01
+
namespace lrdimm
{
diff --git a/src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.H b/src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.H
index 9a11472f4..a7083cd16 100644
--- a/src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.H
+++ b/src/import/generic/memory/lib/spd/lrdimm/ddr4/lrdimm_raw_cards.H
@@ -66,6 +66,7 @@ extern const std::vector< std::pair< uint8_t, rcw_settings> > RAW_CARDS;
// Exposed so we can test them.
extern rcw_settings lrdimm_rc_b0;
+extern rcw_settings lrdimm_rc_default;
}// mss
diff --git a/src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.C b/src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.C
index 4e03ecb1a..0fa879212 100644
--- a/src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.C
+++ b/src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.C
@@ -49,157 +49,59 @@ namespace mss
///
/// @brief raw card A1 settings
///
-rcw_settings rdimm_rc_a1( 0x02, // RC00
- 0x00, // RC01
- 0x0F, // RC06_07
- 0x0C, // RC09
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6X
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00); // RCAX
+rcw_settings rdimm_rc_a1( 0x02, // RC00 Enable weak drive
+ 0x00); // RC01 Enables all clocks
///
/// @brief raw card B1 settings
/// @note need to verify, copy from b2, need to verify with b1 annex
///
-rcw_settings rdimm_rc_b1( 0x02, // RC00
- 0x00, // RC01
- 0x0F, // RC06_07
- 0x0C, // RC09 Could be set in eff_config for CKE power DOWN mode
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6X
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00);// RCAX
-
+rcw_settings rdimm_rc_b1( 0x02, // RC00
+ 0x00); // RC01
///
/// @brief raw card B2 settings
///
-rcw_settings rdimm_rc_b2( 0x02, // RC00
- 0x00, // RC01
- 0x0F, // RC06_07
- 0x0C, // RC09
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6X
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00);// RCAX
+rcw_settings rdimm_rc_b2( 0x02, // RC00
+ 0x00 ); // RC01
///
/// @brief raw card C1 settings
///
-rcw_settings rdimm_rc_c1( 0x02, // RC00
- 0x0C, // RC01
- 0x0F, // RC06_07
- 0x0C, // RC09
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6X
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00); // RCAX
+rcw_settings rdimm_rc_c1( 0x02, // RC00
+ 0x0C ); // RC01
///
/// @brief raw card C2 settings
/// @note same settings as C1
///
-rcw_settings rdimm_rc_c2( 0x02, // RC00
- 0x0C, // RC01
- 0x0F, // RC06_07
- 0x0C, // RC09
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6X
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00); // RCAX
-
-////
+rcw_settings rdimm_rc_c2( 0x02, // RC00
+ 0x0C ); // RC01
+
+///
/// @brief raw card for custom dimms
///
-rcw_settings rdimm_rc_custom ( 0x02, // RC00
- 0x00, // RC01
- 0x0F, // RC06_07
- 0x0C, // RC09
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6X
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00);// RCAX
-
-////
+rcw_settings rdimm_rc_custom( 0x02, // RC00
+ 0x00 ); // RC01
+
+///
/// @brief raw card for NVDIMMs
///
-rcw_settings rdimm_rc_nvdimm ( 0x00, // RC00
- 0x00, // RC01
- 0x0F, // RC06_07
- 0x0C, // RC09
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6X
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00); // RCAX
+rcw_settings rdimm_rc_nvdimm( 0x00, // RC00
+ 0x00 ); // RC01
///
/// @brief raw card VBU settings
///
-rcw_settings rdimm_rc_vbu( 0x02, // RC00
- 0x00, // RC01
- 0x0F, // RC06_07
- 0x0C, // RC09
- 0x0E, // RC0B
- 0x00, // RC0C
- 0x00, // RC0F
- 0x00, // RC1X
- 0x00, // RC2X
- 0x00, // RC4X
- 0x00, // RC5X
- 0x00, // RC6X
- 0x00, // RC8X
- 0x00, // RC9X
- 0x00); // RCAX
+rcw_settings rdimm_rc_vbu( 0x02, // RC00
+ 0x00 ); // RC01
+
+///
+/// @brief raw card Default settings
+///
+rcw_settings rdimm_rc_default( 0x00, // RC00
+ 0x00 ); // RC01
+
namespace rdimm
{
diff --git a/src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.H b/src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.H
index 85205544e..da834abbd 100644
--- a/src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.H
+++ b/src/import/generic/memory/lib/spd/rdimm/ddr4/rdimm_raw_cards.H
@@ -90,6 +90,7 @@ extern rcw_settings rdimm_rc_c2;
extern rcw_settings rdimm_rc_custom;
extern rcw_settings rdimm_rc_nvdimm;
extern rcw_settings rdimm_rc_vbu;
+extern rcw_settings rdimm_rc_default;
}// mss
OpenPOWER on IntegriCloud