diff options
author | Corey Swenson <cswenson@us.ibm.com> | 2014-06-18 16:09:55 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-07-01 13:34:57 -0500 |
commit | 2cc1c594ad2b05919d1742625de0da83ffd7f01d (patch) | |
tree | 57bbbe923325245e809ea51a96c60ffe79b18600 /src/usr/vpd/dimmPres.C | |
parent | 3bcf5b7982bb8a2d9227dbff7be4ff2ce5fec05c (diff) | |
download | talos-hostboot-2cc1c594ad2b05919d1742625de0da83ffd7f01d.tar.gz talos-hostboot-2cc1c594ad2b05919d1742625de0da83ffd7f01d.zip |
Merge VPD commits from Stradale
Change-Id: I95aa2bb30299c9d22563068741ffbeda48d2d84b
RTC: 97488
Origin: Google Shared Technology
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/11661
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/vpd/dimmPres.C')
-rwxr-xr-x | src/usr/vpd/dimmPres.C | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/usr/vpd/dimmPres.C b/src/usr/vpd/dimmPres.C index fa7fdc63f..32042fe6b 100755 --- a/src/usr/vpd/dimmPres.C +++ b/src/usr/vpd/dimmPres.C @@ -5,7 +5,10 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012,2014 */ +/* Contributors Listed Below - COPYRIGHT 2013,2014 */ +/* [+] Google Inc. */ +/* [+] International Business Machines Corp. */ +/* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ /* you may not use this file except in compliance with the License. */ @@ -37,6 +40,7 @@ #include <devicefw/driverif.H> #include <vpd/vpdreasoncodes.H> #include <vpd/spdenums.H> +#include <config.h> #include "spd.H" @@ -118,6 +122,24 @@ errlHndl_t dimmPresenceDetect( DeviceFW::OperationType i_opType, } // Is the target present +#ifdef CONFIG_DJVPD_READ_FROM_HW + // Check if the parent MBA is functional. + // If it is non-functional then no reason to check the DIMM which + // would otherwise generate tons of FSI errors. + TARGETING::TargetHandleList membuf_parent; + TARGETING::PredicateIsFunctional isFunctional; + TARGETING::targetService().getAssociated( + membuf_parent, + i_target, + TARGETING::TargetService::PARENT_BY_AFFINITY, + TARGETING::TargetService::IMMEDIATE, + &isFunctional); + if ( membuf_parent.size() != 1 ) + { + present = false; + break; + } +#endif present = spdPresent( i_target ); if( present == false ) |