Bill Hoffa | ffe8370 | 2015-03-30 21:37:20 -0500 | [diff] [blame] | 1 | From 07b936c1c5f97314719e7e988e6c07810637b8c1 Mon Sep 17 00:00:00 2001 |
| 2 | From: Dean Sanner <dsanner@us.ibm.com> |
| 3 | Date: Wed, 11 Mar 2015 09:11:14 -0500 |
| 4 | Subject: [PATCH 3/8] Support partial good Xbus |
| 5 | |
| 6 | Change-Id: I245cd9947d5b7a05ff9a8f92ff18c658b1fe09d6 |
| 7 | Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16300 |
| 8 | Tested-by: Jenkins Server |
| 9 | Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> |
| 10 | Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> |
| 11 | Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> |
| 12 | (cherry picked from commit a0f4a934254572ce49a1ddf5e4d5d944b52779be) |
| 13 | --- |
| 14 | src/usr/hwpf/plat/fapiPlatAttributeService.C | 22 ++++++++++++++++++---- |
| 15 | 1 file changed, 18 insertions(+), 4 deletions(-) |
| 16 | |
| 17 | diff --git a/src/usr/hwpf/plat/fapiPlatAttributeService.C b/src/usr/hwpf/plat/fapiPlatAttributeService.C |
| 18 | index 6e4f400..7da841a 100644 |
| 19 | --- a/src/usr/hwpf/plat/fapiPlatAttributeService.C |
| 20 | +++ b/src/usr/hwpf/plat/fapiPlatAttributeService.C |
| 21 | @@ -58,11 +58,14 @@ |
| 22 | #include <hwpf/hwp/pll_accessors/getPllRingInfoAttr.H> |
| 23 | #include <hwpf/hwp/winkle_ring_accessors/getL3DeltaDataAttr.H> |
| 24 | #include <fapiAttributeIds.H> |
| 25 | +#include <hwas/common/hwasCommon.H> |
| 26 | + |
| 27 | // The following file checks at compile time that all HWPF attributes are |
| 28 | // handled by Hostboot. This is done to ensure that the HTML file listing |
| 29 | // supported HWPF attributes lists attributes handled by Hostboot |
| 30 | #include <fapiAttributePlatCheck.H> |
| 31 | |
| 32 | + |
| 33 | //****************************************************************************** |
| 34 | // Implementation |
| 35 | //****************************************************************************** |
| 36 | @@ -1239,6 +1242,7 @@ fapi::ReturnCode fapiPlatGetEnableAttr ( fapi::AttributeId i_id, |
| 37 | { |
| 38 | fapi::ReturnCode l_rc; |
| 39 | TARGETING::Target * l_pTarget = NULL; |
| 40 | + o_enable = 0; |
| 41 | |
| 42 | // Get the Targeting Target |
| 43 | l_rc = getTargetingTarget(i_pFapiTarget, l_pTarget); |
| 44 | @@ -1271,10 +1275,20 @@ fapi::ReturnCode fapiPlatGetEnableAttr ( fapi::AttributeId i_id, |
| 45 | o_enable = 1; |
| 46 | break; |
| 47 | case fapi::ATTR_PROC_X_ENABLE: |
| 48 | - // The enable flag reflects the state of the pervasive chiplet, |
| 49 | - // NOT the bus logic, so always return true since we don't |
| 50 | - // support partial good on the XBUS chiplet |
| 51 | - o_enable = 1; |
| 52 | + // Need to support having the X bus chiplet partial good |
| 53 | + // Look at the saved away PG data |
| 54 | + TARGETING::ATTR_CHIP_REGIONS_TO_ENABLE_type l_chipRegionData; |
| 55 | + l_rc = FAPI_ATTR_GET(ATTR_CHIP_REGIONS_TO_ENABLE, i_pFapiTarget, |
| 56 | + l_chipRegionData); |
| 57 | + if (l_rc) { |
| 58 | + FAPI_ERR("fapi_attr_get( ATTR_CHIP_REGIONS_TO_ENABLE ) failed. With rc = 0x%x", |
| 59 | + (uint32_t) l_rc ); |
| 60 | + break; |
| 61 | + } |
| 62 | + else if (l_chipRegionData[HWAS::VPD_CP00_PG_XBUS_INDEX] != 0) |
| 63 | + { |
| 64 | + o_enable = 0x1; |
| 65 | + } |
| 66 | break; |
| 67 | default: |
| 68 | o_enable = 0; |
| 69 | -- |
| 70 | 1.8.2.2 |
| 71 | |