From 47cc99ec4522b6a2729c7d4435963929fb861df0 Mon Sep 17 00:00:00 2001 From: Sachin Gupta Date: Mon, 31 Oct 2016 14:08:14 -0500 Subject: Workaround for function versus present Change-Id: Ib37ae27c93ee1707ba02f17969c3118919219806 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32028 Reviewed-by: RAJA DAS Reviewed-by: Santosh S. Puranik Tested-by: Jenkins Server Reviewed-by: Shakeeb A. Pasha B K Reviewed-by: AMIT J. TENDOLKAR --- src/hwpf/src/plat/target.C | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/hwpf') diff --git a/src/hwpf/src/plat/target.C b/src/hwpf/src/plat/target.C index 9ff1a75b..301e8534 100644 --- a/src/hwpf/src/plat/target.C +++ b/src/hwpf/src/plat/target.C @@ -312,13 +312,36 @@ namespace fapi2 bool & b_present) { + // TODO via RTC 164026 + // In nimbus all pervasive chiplets (non quad, non core), are present + // other than OBUS1 and OBUS2. In cumulus all chiplets are present. + // Though on field parts, all chiplets which are present should be + // functional. But in lab when we can get partial good parts, its + // possible that few chiplets are not functional. So we need to + // differentiate between present versus functional chiplets. + // We need to see if we need to use same strategy for cores/caches as + // well. + // Also in current code we are hard coding the chiplets. We need to use + // attribute to differentiate between nimbus versus cumulus config. + static const size_t OBUS1 = 10; + static const size_t OBUS2 = 11; + if(( i_chiplet_target.getChipletNumber() != OBUS1 ) && + ( i_chiplet_target.getChipletNumber() != OBUS2 ) && + ( i_chiplet_target.getChipletNumber() < EQ_CHIPLET_OFFSET ) ) + { + static_cast((i_chiplet_target.operator()())).setPresent(); + } // Find the PERV target number in the partial good initialization // array + FAPI_TRY(plat_PervPGTargets(i_chiplet_target, b_present)); if (b_present) { - static_cast((i_chiplet_target.operator()())).setPresent(); + if( i_chiplet_target.getChipletNumber() >= EQ_CHIPLET_OFFSET ) + { + static_cast((i_chiplet_target.operator()())).setPresent(); + } static_cast((i_chiplet_target.operator()())).setFunctional(true); } else -- cgit v1.2.1