diff options
author | Marty Gloff <mgloff@us.ibm.com> | 2016-10-12 09:03:05 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-10-25 23:52:13 -0400 |
commit | afc2dd25bbcda6087376d1c6f4f7a56b92289dea (patch) | |
tree | 8ed34329c9e30d97f10ffce6da3c7ef95d36d0b0 | |
parent | 2d91a55c9d99a1ba76a68698e5735aff36bf05ae (diff) | |
download | talos-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/makefile | 4 | ||||
-rwxr-xr-x | src/usr/targeting/xmltohb/updatetempsxml.pl | 72 |
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" ]; |