blob: df1a728a8012187e50b73a813b3f03fdc9266365 [file] [log] [blame]
From 07b936c1c5f97314719e7e988e6c07810637b8c1 Mon Sep 17 00:00:00 2001
From: Dean Sanner <dsanner@us.ibm.com>
Date: Wed, 11 Mar 2015 09:11:14 -0500
Subject: [PATCH 3/8] Support partial good Xbus
Change-Id: I245cd9947d5b7a05ff9a8f92ff18c658b1fe09d6
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16300
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
(cherry picked from commit a0f4a934254572ce49a1ddf5e4d5d944b52779be)
---
src/usr/hwpf/plat/fapiPlatAttributeService.C | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/src/usr/hwpf/plat/fapiPlatAttributeService.C b/src/usr/hwpf/plat/fapiPlatAttributeService.C
index 6e4f400..7da841a 100644
--- a/src/usr/hwpf/plat/fapiPlatAttributeService.C
+++ b/src/usr/hwpf/plat/fapiPlatAttributeService.C
@@ -58,11 +58,14 @@
#include <hwpf/hwp/pll_accessors/getPllRingInfoAttr.H>
#include <hwpf/hwp/winkle_ring_accessors/getL3DeltaDataAttr.H>
#include <fapiAttributeIds.H>
+#include <hwas/common/hwasCommon.H>
+
// The following file checks at compile time that all HWPF attributes are
// handled by Hostboot. This is done to ensure that the HTML file listing
// supported HWPF attributes lists attributes handled by Hostboot
#include <fapiAttributePlatCheck.H>
+
//******************************************************************************
// Implementation
//******************************************************************************
@@ -1239,6 +1242,7 @@ fapi::ReturnCode fapiPlatGetEnableAttr ( fapi::AttributeId i_id,
{
fapi::ReturnCode l_rc;
TARGETING::Target * l_pTarget = NULL;
+ o_enable = 0;
// Get the Targeting Target
l_rc = getTargetingTarget(i_pFapiTarget, l_pTarget);
@@ -1271,10 +1275,20 @@ fapi::ReturnCode fapiPlatGetEnableAttr ( fapi::AttributeId i_id,
o_enable = 1;
break;
case fapi::ATTR_PROC_X_ENABLE:
- // The enable flag reflects the state of the pervasive chiplet,
- // NOT the bus logic, so always return true since we don't
- // support partial good on the XBUS chiplet
- o_enable = 1;
+ // Need to support having the X bus chiplet partial good
+ // Look at the saved away PG data
+ TARGETING::ATTR_CHIP_REGIONS_TO_ENABLE_type l_chipRegionData;
+ l_rc = FAPI_ATTR_GET(ATTR_CHIP_REGIONS_TO_ENABLE, i_pFapiTarget,
+ l_chipRegionData);
+ if (l_rc) {
+ FAPI_ERR("fapi_attr_get( ATTR_CHIP_REGIONS_TO_ENABLE ) failed. With rc = 0x%x",
+ (uint32_t) l_rc );
+ break;
+ }
+ else if (l_chipRegionData[HWAS::VPD_CP00_PG_XBUS_INDEX] != 0)
+ {
+ o_enable = 0x1;
+ }
break;
default:
o_enable = 0;
--
1.8.2.2