Skip to content

Commit

Permalink
Adding in default raw card information
Browse files Browse the repository at this point in the history
Change-Id: Ic4428b0ff153adf751b0159b004eb6900bcf3cee
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36391
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Reviewed-by: Brian R. Silver <bsilver@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36461
Reviewed-by: Hostboot Team <hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+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>
  • Loading branch information
JacobHarvey authored and dcrowell77 committed Feb 27, 2017
1 parent 1b510a6 commit 2ded2ff
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 23 deletions.
7 changes: 4 additions & 3 deletions src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
Expand Up @@ -1135,7 +1135,6 @@ fapi2::ReturnCode eff_dimm::dimm_rc08()
uint8_t l_num_slave_ranks = 0;

FAPI_TRY( eff_dimm_ddr4_rc08(iv_mcs, &l_attrs_dimm_rc08[0][0]) );

FAPI_TRY(iv_pDecoder->num_package_ranks_per_dimm(l_master_ranks) );

// Pulling this one from the decoder
Expand Down Expand Up @@ -1227,9 +1226,11 @@ fapi2::ReturnCode eff_dimm::dimm_rc08()
};

// Let's set the other bits
l_buffer.writeBit<uint64_t(QXPAR_LOCATION)>(PARITY_ENABLE);
l_buffer.writeBit<QXPAR_LOCATION>(PARITY_ENABLE);

l_buffer.writeBit<uint64_t(DA17_QA17_LOCATION)>(DA17_QA17_ENABLE);
// We only need the 17th Address bit if we have 16G dense drams
// TK: come back and do disable if not needed
l_buffer.writeBit<DA17_QA17_LOCATION>(DA17_QA17_ENABLE);

l_attrs_dimm_rc08[iv_port_index][iv_dimm_index] = l_buffer;

Expand Down
Expand Up @@ -158,7 +158,29 @@ rcw_settings rdimm_rc_b2( 0x00, // RC00
0x00, // RCAX
0x07);// RCBX

////
/// @brief raw card for custom dimms
///
rcw_settings rdimm_rc_custom ( 0x00, // RC00
0x00, // RC01 (C might be the right answer?)
0x00, // RC02
0x0F, // RC06_07
0x00, // RC09
0x0E, // RC0B
0x00, // RC0C
0x0D, // RC0E
0x00, // RC0F
0x00, // RC1X
0x00, // RC2X
0x00, // RC4X
0x00, // RC5X
0x00, // RC6X
0x00, // RC8X
0x00, // RC9X
0x00, // RCAX
0x07);// RCBX

//
/// @brief raw card VBU settings
///
rcw_settings rdimm_rc_vbu( 0x00, // RC00
Expand Down Expand Up @@ -194,6 +216,7 @@ const std::vector< std::pair< uint8_t , rcw_settings> > RAW_CARDS =
{raw_card_rev::VBU, rdimm_rc_vbu},
{raw_card_rev::B2, rdimm_rc_b2},
{raw_card_rev::C2, rdimm_rc_c2},
{raw_card_rev::CUSTOM, rdimm_rc_custom},
};

}// rdimm
Expand Down
Expand Up @@ -51,18 +51,18 @@ enum raw_card_rev : uint8_t
{
A1 = 0x20,
B1 = 0x21,

// RDIMM power-on
C1 = 0x22,

// TK - Change to 0xFF - AAM
// In the spec hex XF (where X - don't care)
// means no JEDEC reference raw card design used.
// We will want to redefine it to be VBU reference raw card
// since it is unlikely we will use a DIMM w/o a
// reference caw card design.
// TK - Change VBU value to a no-op value or a value that will never be reached -JLH
VBU = 0x23,

B2 = 0x41,
C2 = 0x42,

// Default settings used for DIMMs that do not use a JEDEC raw card reference
CUSTOM = 0xFF,
};

// Raw cards can share the same raw card # between RDIMM and LRDIMMs so
Expand All @@ -78,6 +78,7 @@ extern rcw_settings rdimm_rc_c2;
extern rcw_settings rdimm_rc_a1;
extern rcw_settings rdimm_rc_b1;
extern rcw_settings rdimm_rc_b2;
extern rcw_settings rdimm_rc_custom;
extern rcw_settings rdimm_rc_vbu;

}// mss
Expand Down
35 changes: 23 additions & 12 deletions src/import/chips/p9/procedures/hwp/memory/lib/spd/spd_factory.C
Expand Up @@ -645,26 +645,37 @@ fapi2::ReturnCode raw_card_factory(const fapi2::Target<TARGET_TYPE_DIMM>& i_targ
switch(l_dimm_type)
{
case fapi2::ENUM_ATTR_EFF_DIMM_TYPE_RDIMM:
if( !find_value_from_key( mss::rdimm::RAW_CARDS, l_ref_raw_card_rev, o_raw_card) )
{
FAPI_ERR( "Invalid reference raw card recieved for RDIMM: %d", l_ref_raw_card_rev );
return fapi2::FAPI2_RC_FALSE;
}

FAPI_ASSERT( find_value_from_key( mss::rdimm::RAW_CARDS, l_ref_raw_card_rev, o_raw_card),
fapi2::MSS_INVALID_RAW_CARD()
.set_DIMM_TYPE(l_dimm_type)
.set_RAW_CARD_REV(l_ref_raw_card_rev)
.set_DIMM_TARGET(i_target),
"Invalid reference raw card recieved for RDIMM: %d for %s",
l_ref_raw_card_rev,
mss::c_str(i_target) );
break;

case fapi2::ENUM_ATTR_EFF_DIMM_TYPE_LRDIMM:
if( !find_value_from_key( mss::lrdimm::RAW_CARDS, l_ref_raw_card_rev, o_raw_card) )
{
FAPI_ERR( "Invalid reference raw card recieved for LRDIMM: %d", l_ref_raw_card_rev );
return fapi2::FAPI2_RC_FALSE;
}

FAPI_ASSERT( find_value_from_key( mss::lrdimm::RAW_CARDS, l_ref_raw_card_rev, o_raw_card),
fapi2::MSS_INVALID_RAW_CARD()
.set_DIMM_TYPE(l_dimm_type)
.set_RAW_CARD_REV(l_ref_raw_card_rev)
.set_DIMM_TARGET(i_target),
"Invalid reference raw card recieved for LRDIMM: %d for %s",
l_ref_raw_card_rev,
mss::c_str(i_target));
break;

default:
FAPI_ERR( "Recieved invalid dimm type: %d", l_dimm_type);
return fapi2::FAPI2_RC_FALSE;

FAPI_ASSERT( false,
fapi2::MSS_INVALID_DIMM_TYPE()
.set_DIMM_TYPE(l_dimm_type)
.set_TARGET(i_target),
"Recieved invalid dimm type: %d for %s",
l_dimm_type, mss::c_str(i_target) );
break;
}

Expand Down
Expand Up @@ -5,7 +5,7 @@
<!-- -->
<!-- OpenPOWER HostBoot Project -->
<!-- -->
<!-- Contributors Listed Below - COPYRIGHT 2016 -->
<!-- Contributors Listed Below - COPYRIGHT 2016,2017 -->
<!-- [+] International Business Machines Corp. -->
<!-- -->
<!-- -->
Expand Down Expand Up @@ -52,4 +52,20 @@
</deconfigure>
</hwpError>

<hwpError>
<rc>RC_MSS_INVALID_DIMM_TYPE</rc>
<description>
An invalid/unsupported DIMM type was received. This is possibly due
to SPD decoding errors or incorrect setting of ATTR_EFF_DIMM_TYPE attribute.
</description>
<ffdc>DIMM_TYPE</ffdc>
<callout>
<target>TARGET</target>
<priority>HIGH</priority>
</callout>
<deconfigure>
<target>TARGET</target>
</deconfigure>
</hwpError>

</hwpErrors>
Expand Up @@ -5,7 +5,7 @@
<!-- -->
<!-- OpenPOWER HostBoot Project -->
<!-- -->
<!-- Contributors Listed Below - COPYRIGHT 2015,2016 -->
<!-- Contributors Listed Below - COPYRIGHT 2015,2017 -->
<!-- [+] International Business Machines Corp. -->
<!-- -->
<!-- -->
Expand Down Expand Up @@ -84,4 +84,21 @@
</deconfigure>
</hwpError>

<hwpError>
<rc>RC_MSS_INVALID_RAW_CARD</rc>
<description>
Recieved a raw card that currently isn't supported in code
</description>
<ffdc>DIMM_TYPE</ffdc>
<ffdc>RAW_CARD_REV</ffdc>
<callout>
<target>DIMM_TARGET</target>
<priority>HIGH</priority>
</callout>
<deconfigure>
<target>DIMM_TARGET</target>
</deconfigure>
</hwpError>


</hwpErrors>

0 comments on commit 2ded2ff

Please sign in to comment.