diff options
author | Jacob Harvey <jlharvey@us.ibm.com> | 2017-10-12 14:35:34 -0500 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2017-11-14 12:22:24 -0500 |
commit | f7dfd17dfc996414b5989aa464817dd595b5623b (patch) | |
tree | c0503431fe6a9f6efc8da89c1ac48c0af7be12b4 /src/import/generic/memory/lib/spd | |
parent | d6c5b55b7f06dde471f63c0c275fe16b67418405 (diff) | |
download | talos-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')
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 |