summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2016-10-12 09:03:05 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-10-25 23:52:13 -0400
commitafc2dd25bbcda6087376d1c6f4f7a56b92289dea (patch)
tree8ed34329c9e30d97f10ffce6da3c7ef95d36d0b0
parent2d91a55c9d99a1ba76a68698e5735aff36bf05ae (diff)
downloadtalos-hostboot-afc2dd25bbcda6087376d1c6f4f7a56b92289dea.tar.gz
talos-hostboot-afc2dd25bbcda6087376d1c6f4f7a56b92289dea.zip
Fix Temp Default handling
Do not create FAPI Attribute enumeration for temp default. Handle white space before or after an ID in the hb_temp_defaults.xml and fapiattr.xml files. Change-Id: Ie5bd49d2e12a1ca7da5eac1ce3de7f9eefe7e4f6 RTC:152899 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31058 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r--src/usr/targeting/xmltohb/makefile4
-rwxr-xr-xsrc/usr/targeting/xmltohb/updatetempsxml.pl72
2 files changed, 12 insertions, 64 deletions
diff --git a/src/usr/targeting/xmltohb/makefile b/src/usr/targeting/xmltohb/makefile
index feeb9c20b..ae3a41383 100644
--- a/src/usr/targeting/xmltohb/makefile
+++ b/src/usr/targeting/xmltohb/makefile
@@ -223,9 +223,9 @@ $(XMLTOHB_RAN_INDICATION): ${XMLTOHB_COMPILER_SCRIPT} \
cp ${GENDIR_ERRL}/errludtarget.H ${GENDIR_PLUGINS}
touch $(XMLTOHB_RAN_INDICATION)
-# system-specific XML needs the generic plus the xxx.system.xml file + the
+# system-specific XML needs the generic xml plus the xxx.system.xml file + the
# MRW file
-${GENDIR}/%.hb.xml: %.system.xml ${XMLTOHB_GENERIC_SOURCES} %.mrw.xml
+${GENDIR}/%.hb.xml: %.system.xml ${GENDIR}/${XMLTOHB_GENERIC_XML} %.mrw.xml
${COMMON_TARGETING_REL_PATH}/${XMLTOHB_MERGE_SCRIPT} $^ > $@
# create the binary files
diff --git a/src/usr/targeting/xmltohb/updatetempsxml.pl b/src/usr/targeting/xmltohb/updatetempsxml.pl
index 5c2031a8d..87e0b9f84 100755
--- a/src/usr/targeting/xmltohb/updatetempsxml.pl
+++ b/src/usr/targeting/xmltohb/updatetempsxml.pl
@@ -164,6 +164,7 @@ foreach my $TempAttr ( @{$fwDfltsXml->{attribute}} )
{
my $fapi_attr = "";
my $fapi_id = $TempAttr->{id}->[0];
+ $fapi_id =~ s/\s//g;
# print STDERR "Processing FAPI Id $fapi_id\n";
my $generic_id = $fapi_id;
$generic_id =~ s/ATTR_//;
@@ -174,7 +175,9 @@ foreach my $TempAttr ( @{$fwDfltsXml->{attribute}} )
# First, check if attribute definition exists in fapiattrs.xml
foreach my $FapiAttr ( @{$fapiXml->{attribute}} )
{
- if ($FapiAttr->{id}->[0] eq $fapi_id)
+ my $fapi_attr_id = $FapiAttr->{id}->[0];
+ $fapi_attr_id =~ s/\s//g;
+ if ($fapi_attr_id eq $fapi_id)
{
$found = 1;
$fapi_attr = $FapiAttr;
@@ -192,7 +195,7 @@ foreach my $TempAttr ( @{$fwDfltsXml->{attribute}} )
$type =~ s/_CHIP//;
$type =~ s/^SYSTEM$/SYS/;
- my $msgNotNeeded = 0;
+ my $msgNeeded = 1;
# Loop through target type info from temp_generic.xml file
for my $i ( 0 .. $#TgtTypeInfo)
@@ -214,18 +217,18 @@ foreach my $TempAttr ( @{$fwDfltsXml->{attribute}} )
push @UpdtTgt, [ $TgtTypeInfo[$i][0], $type,
$generic_id, ""];
}
- $msgNotNeeded = 1;
+ $msgNeeded = 0;
}
elsif($TgtTypeInfo[$i][2] =~ /\s$generic_id\s/)
{
print STDERR "Target $TgtTypeInfo[$i][0] of type ".
"$type already has attribute $generic_id\n";
- $msgNotNeeded = 1;
+ $msgNeeded = 0;
}
}
print STDERR "Type $type not found in $fapi for attribute ".
- "$generic_id\n" if($msgNotNeeded == 0);
+ "$generic_id\n" if($msgNeeded);
}
}
else
@@ -286,7 +289,7 @@ foreach my $TempAttr ( @{$fwDfltsXml->{attribute}} )
}
next if($found);
- # Collect information for creating attribute and enumeration definitions
+ # Collect information for creating attribute definitions
my $description = $fapi_attr->{description}->[0];
my $valueType = $fapi_attr->{valueType}->[0];
@@ -310,47 +313,6 @@ foreach my $TempAttr ( @{$fwDfltsXml->{attribute}} )
}
}
- # Create enumeration definition to support generic attribute if FAPI
- # attribute associated with temp FW default uses enum
- my $enum_id = "";
- my $enumDefault = "";
- if(exists $fapi_attr->{enum} && (!exists $fapi_attr->{array}))
- {
- $enum_id = $generic_id;
- push @NewAttr, [ "<enumerationType>\n" ];
- push @NewAttr, [ " <id>$enum_id</id>\n" ];
- push @NewAttr, [ " <description>\n" ];
- push @NewAttr, [ " Enumeration for FAPI attribute $fapi_id\n" ];
- push @NewAttr, [ " </description>\n" ];
-
- my @enum_defs = split(',',$fapi_attr->{enum}->[0]);
- my $previous_value = -1;
- for my $i ( 0 .. $#enum_defs )
- {
- $enum_defs[$i] =~ /^\s*(.*)\s*=\s*(.*)\s*/;
- my $enumName = $1;
- my $enumValue = $2;
- if ($enumValue eq "") # non-specified enum values (first enum = 0)
- {
- ($enumName) = $enum_defs[$i] =~ m/^\s*(.*)\s*/;
- $enumValue = 1 + $previous_value;
-# print STDERR "Update enum $enumName with value $enumValue\n";
- }
- $previous_value = $enumValue;
- $enumName =~ s/ //;
- $enumDefault = $enumName if($fwDefault eq $enumValue);
- push @NewAttr, [ " <enumerator>\n" ];
- push @NewAttr, [ " <name>$enumName</name>\n" ];
- push @NewAttr, [ " <value>$enumValue</value>\n" ];
- push @NewAttr, [ " </enumerator>\n" ];
- }
-
- push @NewAttr, [ " <default>$enumDefault</default>\n" ]
- if($enumDefault ne "");
-
- push @NewAttr, [ "</enumerationType>\n\n" ];
- }
-
# Create generic attribute with mapping
push @NewAttr, [ "<attribute>\n" ];
push @NewAttr, [ " <id>$generic_id</id>\n" ];
@@ -358,25 +320,12 @@ foreach my $TempAttr ( @{$fwDfltsXml->{attribute}} )
push @NewAttr, [ " $description\n" ];
push @NewAttr, [ " </description>\n" ];
push @NewAttr, [ " <simpleType>\n" ];
- if($enumDefault ne "")
- {
- push @NewAttr, [ " <enumeration>\n" ];
- push @NewAttr, [ " <id>$enum_id</id>\n" ];
- push @NewAttr, [ " <default>$enumDefault</default>\n" ];
- push @NewAttr, [ " </enumeration>\n" ];
- }
- elsif($fwDefault ne "")
+ if($fwDefault ne "")
{
push @NewAttr, [ " <$valueType>\n" ];
push @NewAttr, [ " <default>$fwDefault</default>\n" ];
push @NewAttr, [ " </$valueType>\n" ];
}
- elsif($enum_id ne "")
- {
- push @NewAttr, [ " <enumeration>\n" ];
- push @NewAttr, [ " <id>$enum_id</id>\n" ];
- push @NewAttr, [ " </enumeration>\n" ];
- }
else
{
push @NewAttr, [ " <$valueType></$valueType>\n" ];
@@ -386,7 +335,6 @@ foreach my $TempAttr ( @{$fwDfltsXml->{attribute}} )
push @NewAttr, [ " <persistency>$persistency</persistency>\n" ];
push @NewAttr, [ " <readable/>\n" ];
push @NewAttr, [ " <writeable/>\n" ] if(exists $fapi_attr->{writeable});
- push @NewAttr, [ " <hasStringConversion/>\n" ] if($enum_id ne "");
push @NewAttr, [ " <hwpfToHbAttrMap>\n" ];
push @NewAttr, [ " <id>$fapi_id</id>\n" ];
push @NewAttr, [ " <macro>DIRECT</macro>\n" ];
OpenPOWER on IntegriCloud