diff options
author | Santosh Puranik <santosh.puranik@in.ibm.com> | 2016-06-28 05:51:59 -0500 |
---|---|---|
committer | Jennifer A. Stofer <stofer@us.ibm.com> | 2016-06-29 13:48:25 -0400 |
commit | 8bd4d78ccbe225f99b6f61f63757b9b30837b3c5 (patch) | |
tree | df414db1364f5016a66ee6c2e1e4916d06b8cfe8 /hwpf/src | |
parent | a874a8d59dc7fad583e785a9ea227cdf424100ab (diff) | |
download | talos-sbe-8bd4d78ccbe225f99b6f61f63757b9b30837b3c5.tar.gz talos-sbe-8bd4d78ccbe225f99b6f61f63757b9b30837b3c5.zip |
Add MCBIST Target Support
-- Support MCBIST targets
-- Fix MCS targets
Change-Id: Ib80e0986171102877059fd3142412277b6d0189f
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/26330
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: Sunil Kumar <skumar8j@in.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Diffstat (limited to 'hwpf/src')
-rw-r--r-- | hwpf/src/plat/target.C | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/hwpf/src/plat/target.C b/hwpf/src/plat/target.C index 74b2bdd1..c63af312 100644 --- a/hwpf/src/plat/target.C +++ b/hwpf/src/plat/target.C @@ -356,13 +356,13 @@ fapi_try_exit: } /* - * Memory Controller Synchronous (MCS) Targets + * Memory Controller Synchronous (MCBIST) Targets */ - l_beginning_offset = MCS_TARGET_OFFSET; - for (uint32_t i = 0; i < MCS_TARGET_COUNT; ++i) + l_beginning_offset = MCBIST_TARGET_OFFSET; + for (uint32_t i = 0; i < MCBIST_TARGET_COUNT; ++i) { - fapi2::Target<fapi2::TARGET_TYPE_MCS> target_name((fapi2::plat_target_handle_t)i); + fapi2::Target<fapi2::TARGET_TYPE_MCBIST> target_name((fapi2::plat_target_handle_t)i); // Determine if the chiplet is present and, thus, functional // via partial good attributes @@ -440,6 +440,28 @@ fapi_try_exit: G_vec_targets.at(l_beginning_offset+i) = revle32((fapi2::plat_target_handle_t)(target_name.get())); } + /* + * MCS Targets + */ + + l_beginning_offset = MCS_TARGET_OFFSET; + for (uint32_t i = 0; i < MCS_TARGET_COUNT; ++i) + { + fapi2::Target<fapi2::TARGET_TYPE_MCS> target_name((fapi2::plat_target_handle_t)i); + + // Check if both the MCBIST as well as the NEST chiplets for the MCS + // are present and functional + if((G_vec_targets.at(MCBIST_TARGET_OFFSET + (i / MCS_PER_MCBIST))).fields.present && + (plat_getTargetHandleByChipletNumber(N3_CHIPLET - (MCS_PER_MCBIST * (i / MCS_PER_MCBIST)))).fields.present) + { + target_name.setPresent(); + target_name.setFunctional(true); + } + + G_vec_targets.at(l_beginning_offset+i) = revle32((fapi2::plat_target_handle_t)(target_name.get())); + } + + fapi_try_exit: return fapi2::current_err; } |