summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/usr/targeting/common/processMrw.pl40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
index 24cba10e5..76ac2bd14 100755
--- a/src/usr/targeting/common/processMrw.pl
+++ b/src/usr/targeting/common/processMrw.pl
@@ -241,6 +241,10 @@ foreach my $target (sort keys %{ $targetObj->getAllTargets() })
$targetObj->deleteAttribute($target,"SYSTEM_WOF_ENABLED");
$targetObj->deleteAttribute($target,"VDM_ENABLE");
$targetObj->deleteAttribute($target,"CHIP_HAS_SBE");
+
+ my $maxComputeNodes = get_max_compute_nodes($targetObj , $target);
+ $targetObj->setAttribute($target, "MAX_COMPUTE_NODES_PER_SYSTEM", $maxComputeNodes);
+
#handle enumeration changes
my $enum_val = $targetObj->getAttribute($target,"PROC_FABRIC_PUMP_MODE");
if ( $enum_val =~ /MODE1/i)
@@ -2255,6 +2259,42 @@ sub setGpioAttributes
}
#--------------------------------------------------
+## Compute max compute node
+sub get_max_compute_nodes
+{
+ my $targetObj = shift;
+ my $sysTarget = shift;
+ my $retVal = 0;
+ ##
+ #Proceeed only for sys targets
+ ##
+ if ($targetObj->getType($sysTarget) eq "SYS")
+ {
+ foreach my $child (@{$targetObj->getTargetChildren($sysTarget)})
+ {
+ if ($targetObj->isBadAttribute($child, "ENC_TYPE") == 0)
+ {
+ my $attrVal = $targetObj->getAttribute($child, "ENC_TYPE");
+ if ($attrVal eq "CEC")
+ {
+ $retVal++;
+ }
+ }
+ }
+ ##
+ #For Open Power systems this attribute
+ #is not populated, we consider default value as 1
+ # for open power systems.
+ ##
+ if ($retVal == 0 )
+ {
+ $retVal = 1;
+ }
+ }
+ return $retVal;
+}
+
+#--------------------------------------------------
## ERROR checking
sub errorCheck
{
OpenPOWER on IntegriCloud