summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/xmltohb
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2017-06-14 16:53:11 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-08-11 09:57:05 -0400
commit18c1910fe597158178380a0cfb74504736b4fb3b (patch)
tree45d0c6163bd0ef0aa02f26b4ba890ac84cba18e0 /src/usr/targeting/xmltohb
parenteb8df8822f732c47e0ea3326da1691596206f90d (diff)
downloadtalos-hostboot-18c1910fe597158178380a0cfb74504736b4fb3b.tar.gz
talos-hostboot-18c1910fe597158178380a0cfb74504736b4fb3b.zip
Autogenerate targeting xmls for ekb attributes
CMVC-Prereq: 1028808 Change-Id: I3d50cf242fd4cf23358c553a1b5395950616637e Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41860 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/targeting/xmltohb')
-rwxr-xr-xsrc/usr/targeting/xmltohb/fapi_utils.pl426
-rwxr-xr-xsrc/usr/targeting/xmltohb/makefile289
-rwxr-xr-xsrc/usr/targeting/xmltohb/updatetargetxml.pl9
3 files changed, 665 insertions, 59 deletions
diff --git a/src/usr/targeting/xmltohb/fapi_utils.pl b/src/usr/targeting/xmltohb/fapi_utils.pl
new file mode 100755
index 000000000..7ba1c1fb1
--- /dev/null
+++ b/src/usr/targeting/xmltohb/fapi_utils.pl
@@ -0,0 +1,426 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/targeting/xmltohb/fapi_utils.pl $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2017
+# [+] 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.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+# A collection of utility functions to convert fapi attributes to targeting attributes
+
+$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
+my $xml = new XML::Simple (KeyAttr=>[]);
+use Digest::MD5 qw(md5_hex);
+use strict;
+
+# Convert a FAPI2 target type to the equivalent TARGETING type
+# Input: fapi2 type
+# Output: targeting type
+sub convertTargetFapi2Targ
+{
+ my $fapitype = shift;
+ my $targtype;
+
+ $targtype =~ s/\s//g;
+ $targtype =~ s/TARGET_TYPE_//;
+ $targtype =~ s/_ENDPOINT//;
+ $targtype =~ s/_CHIPLET//;
+ $targtype =~ s/_CHIP//;
+ $targtype =~ s/^SYSTEM$/SYS/;
+
+ #todo - check result against list of types from target_types?
+
+ return $targtype;
+}
+
+
+# Convert a FAPI2 value type to the equivalent TARGETING type
+# Input: fapi2 type
+# Output: targeting type
+sub convertValueFapi2Targ
+{
+ my $fapitype = shift;
+ my $targtype = $fapitype;
+
+ $targtype =~ s/(uint\d+)/$1_t/ if($fapitype =~ /^uint\d+$/);
+ $targtype =~ s/(int\d+)/$1_t/ if($fapitype =~ /^int\d+$/);
+
+ #todo - check result against list of types from target_types?
+
+ return $targtype;
+}
+
+# Create a TARGETING style enumeration based on the enum tag from
+# a FAPI2 attribute definition
+# Input: fapi2 attribute
+# Output: targeting enumeration
+sub createEnumFromAttr(\%)
+{
+ my($fapiattr) = @_;
+ my @enums;
+
+ if (exists $fapiattr->{enum})
+ {
+ # description: passed as-is
+ my $fapiattr_id = $fapiattr->{id};
+ my $id = $fapiattr_id;
+ $id =~ s/ATTR_//;
+ my $description = $fapiattr->{description};
+ $description =~ s/^\s+|\s+$//g;
+
+
+ my $enum = $fapiattr->{enum};
+ my @enumerators = split( /,/, $enum);
+ my @enumeratorHashArray;
+
+ foreach my $enumerator (@enumerators) {
+ my %enumeratorHash;
+ chomp($enumerator);
+ $enumerator =~ s/^\s+|\s+$//g;
+
+ my @nameVal = split( /=/, $enumerator);
+
+ my $name = $nameVal[0];
+ $name =~ s/^\s+|\s+$//g;
+ my $value = $nameVal[1];
+ $value =~ s/^\s+|\s+$//g;
+
+ my %enumeratorHash = (
+ name => $name,
+ value => $value
+ );
+
+ push @enumeratorHashArray, \%enumeratorHash;
+ }
+
+ my %enumToAdd = (
+ id => $id,
+ description => $description,
+ );
+ $enumToAdd{'enumerator'} = [@enumeratorHashArray];
+ return \%enumToAdd
+ }
+}
+
+# Create full attribute definition from a fapi2 attribute definition
+# Input: hashmap of a single fapi attribute
+# Output: hashmap of a single targeting attribute
+sub createAttrFromFapi(\%)
+{
+ my($fapiattr) = @_;
+ my $targattr = {};
+
+ # id: passed as-is
+ my $fapiattr_id = $fapiattr->{id};
+ my $id = $fapiattr_id;
+ $id =~ s/ATTR_//;
+ $targattr->{id} = $id;
+
+ # description: passed as-is
+ my $description = $fapiattr->{description};
+ $targattr->{description} = $description;
+
+ # valueType: convert
+ my $valueType = convertValueFapi2Targ($fapiattr->{valueType});
+ $targattr->{simpleType}->{$valueType} = {};
+
+ # writeable: passed as-is
+ if( exists $fapiattr->{writeable} )
+ {
+ $targattr->{writeable} = {};
+ }
+
+ #default: modifies simpleType
+ if( exists $fapiattr->{default} )
+ {
+ $targattr->{simpleType}->{$valueType}->{default} =
+ $fapiattr->{default};
+ }
+
+ #array: modifies simpleType
+ if( exists $fapiattr->{array} )
+ {
+ my @dimensions = split(' ',$fapiattr->{array});
+ my $dimensions_cs = @dimensions[0];
+ for my $i ( 1 .. $#dimensions )
+ {
+ $dimensions_cs .= ",$dimensions[$i]";
+ }
+ $dimensions_cs =~ s/,,/,/g;
+ $targattr->{simpleType}->{array} = $dimensions_cs;
+ }
+
+ #platInit: influences persistency
+ #initToZero: influences persistency
+ #overrideOnly: influences persistency
+ if( exists $fapiattr->{platInit} )
+ {
+ if( exists $fapiattr->{overrideOnly} )
+ {
+ $targattr->{persistency} = "volatile";
+ }
+ else
+ {
+ $targattr->{persistency} = "non-volatile";
+ }
+ }
+ elsif( exists $fapiattr->{initToZero} )
+ {
+ if( exists $fapiattr->{default} )
+ {
+ print "INVALID - $fapiattr_id has initToZero and a default\n";
+ }
+ $targattr->{persistency} = "volatile-zeroed";
+ }
+ elsif( exists $fapiattr->{default} )
+ {
+ $targattr->{persistency} = "volatile";
+ }
+ else
+ {
+ $targattr->{persistency} = "volatile-zeroed";
+ }
+
+ #mssUnits: ignore
+ #mssAccessorName: ignore
+ #odmVisible: ignore
+ #odmChangeable: ignore
+ #persistent: ignore
+ #persistRuntime: ignore
+
+ #enum: ignored here
+ #targetType: ignored here
+
+ #always add these
+ $targattr->{readable} = {};
+ $targattr->{hwpfToHbAttrMap}->{id} = $fapiattr_id;
+ $targattr->{hwpfToHbAttrMap}->{macro} = "DIRECT";
+
+# print Dumper($targattr);
+
+# printTargAttr($targattr);
+
+ return $targattr;
+}
+
+# Create targetTypeExtensions from a fapi2 attribute definition
+# Input: hashmap of a single fapi attribute
+# array of all targetTypeExtensions
+sub createTargetExtensionFromFapi(\%,\%)
+{
+ my($fapiattr,$alltargext) = @_;
+ #print "createTargetExtensionFromFapi---\n";
+ open my $FHSTDOUT, ">&STDOUT";
+
+ # Conversions from FAPI2 to TARGETING types
+ my $fapi2targ = {
+ TARGET_TYPE_SYSTEM => "sys-sys-power9",
+ TARGET_TYPE_DIMM => "lcard-dimm",
+ TARGET_TYPE_PROC_CHIP => "chip-processor",
+ TARGET_TYPE_MEMBUF_CHIP => "chip-membuf",
+ TARGET_TYPE_EX => "unit-ex-power9",
+ TARGET_TYPE_MBA => "unit-mba",
+ TARGET_TYPE_MCS => "unit-mcs-power9",
+ TARGET_TYPE_XBUS => "unit-xbus-power9",
+ TARGET_TYPE_ABUS => "unit-abus-power9",
+ TARGET_TYPE_L4 => "unit-l4-power9",
+ TARGET_TYPE_CORE => "unit-core-power9",
+ TARGET_TYPE_EQ => "unit-eq-power9",
+ TARGET_TYPE_MCA => "unit-mca-power9",
+ TARGET_TYPE_MCBIST => "unit-mcbist-power9",
+ TARGET_TYPE_MI => "unit-mi-power9",
+ TARGET_TYPE_CAPP => "unit-capp-power9",
+ TARGET_TYPE_DMI => "unit-dmi-power9",
+ TARGET_TYPE_OBUS => "unit-obus-power9",
+ TARGET_TYPE_NV => "unit-nv-power9",
+ TARGET_TYPE_SBE => "unit-sbe-power9",
+ TARGET_TYPE_PPE => "unit-ppe-power9",
+ TARGET_TYPE_PERV => "unit-perv-power9",
+ TARGET_TYPE_PEC => "unit-pec-power9",
+ TARGET_TYPE_PHB => "unit-phb-power9",
+ TARGET_TYPE_MC => "unit-mc-power9",
+ };
+
+ # Loop through all of the targets that this attribute
+ # is needed on (per fapi xml)
+ my @types = split(',',$fapiattr->{targetType});
+ foreach my $type(@types)
+ {
+ my $foundmatch = 0;
+ $type =~ s/\s//g;
+ my $targtype = $fapi2targ->{$type};
+ #print "type = $type -> $targtype\n";
+ my $attrid = $fapiattr->{id};
+ $attrid =~ s/ATTR_//;
+
+ # create new attribute element
+ my $newattr = {};
+ $newattr->{id} = $attrid;
+
+ # look for an existing targetTypeExtension entry
+ # to modify with new attribute
+ foreach my $targ (@{$alltargext->{targetTypeExtension}})
+ {
+ if( $targ->{id} =~ $targtype )
+ {
+ #print "-Found it\n";
+ $foundmatch = 1;
+ #printTargExt($FHSTDOUT,$targ);
+ my $attrlist = $targ->{attribute};
+ push @$attrlist, $newattr;
+ #printTargExt($FHSTDOUT,$targ);
+ last;
+ }
+ }
+
+ # no existing entry for this kind of target, make a new one
+ if( $foundmatch == 0 )
+ {
+ #print "-No entry found for $targtype, creating new entry\n";
+ my $newext = {};
+ $newext->{id} = $targtype;
+ my $newarray = [];
+ push @$newarray, $newattr;
+ $newext->{attribute} = $newarray;
+ my $allext = $alltargext->{targetTypeExtension};
+ push @$allext, $newext;
+ #printTargExt($FHSTDOUT,$newext);
+ }
+ }
+
+
+ #print Dumper($alltargets);
+
+
+# print "---\n";
+# printTargTarg($targtarg);
+# print "---done\n";
+}
+
+
+
+# Print string representation of a targeting attribute
+# Input: hashmap of a single targeting attribute
+# Output: string of xml tags
+sub printTargAttr
+{
+ my($FH1,$targattr) = @_;
+ print $FH1 $xml->XMLout( $targattr, RootName => 'attribute', NoAttr => 1 );
+}
+
+# Print string representation of a targeting enumeration
+# Input: hashmap of a single targeting enumeration
+# Output: string of xml tags
+sub printTargEnum
+{
+ my($FH1,$targattr) = @_;
+ print $FH1 $xml->XMLout( $targattr, RootName => 'enumerationType', NoAttr => 1 );
+}
+
+# Print string representation of a targeting target
+# Input: hashmap of a single targeting target
+# Output: string of xml tags
+sub printTargTarg
+{
+ my($FH1,$targtarg) = @_;
+ print $FH1 $xml->XMLout( $targtarg, RootName => 'targetType', NoAttr => 1 );
+}
+
+# Print string representation of a targeting targetExtension
+# Input: hashmap of a single targeting target
+# Output: string of xml tags
+sub printTargExt
+{
+ my($FH1,$targtarg) = @_;
+ print $FH1 $xml->XMLout( $targtarg, RootName => 'targetTypeExtension', NoAttr => 1 );
+}
+
+# getArrayDimmensions
+# Description: for a given attribute hashMap , return the array dimmensions
+# if the attribute type is an array
+# input : hashMap of attribute xml
+# return : String of CSV list that lists the array dimmensions
+sub getArrayDimmensions{
+ my (%attrHash) = @_;
+ my $retValue = "";
+
+ my $simpleType = %attrHash->{simpleType};
+
+ my @keys = keys (%$simpleType);
+
+ for my $key (@keys)
+ {
+ if( $key eq "array")
+ {
+ $retValue .= %attrHash->{simpleType}->{$key};
+ }
+ }
+ #eat whitespace
+ $retValue =~ s/\s+//g;
+ return $retValue;
+}
+
+# getFuncionBackedAttrs
+# Description: Lookup all of the attributes that HB is backing with functions
+# input : full path to attribute_service.H
+# return : array of attribute IDs that are function backed
+sub getFuncionBackedAttrs {
+ my ($headerFile) = @_;
+ my @attrIdArray;
+ open(my $attr_service_fh, '<', $headerFile) || die "unable to open $headerFile";
+
+ foreach my $row (<$attr_service_fh>)
+ {
+ my $attrIndex = index($row, "ATTR_");
+ my $getMacroIndex = index($row, "_GETMACRO(ID");
+ if($getMacroIndex != -1)
+ {
+ my $attrToAdd = substr $row, $attrIndex, $getMacroIndex - $attrIndex;
+ push @attrIdArray, $attrToAdd;
+ print " $0> FOUND $attrToAdd GETMACRO\n";
+ }
+ }
+ return @attrIdArray;
+}
+
+# getAttrType
+# Description: for a given attribute hashMap , return the attribute type
+# input : hashMap of attribute xml
+# return : string represention attribute type
+sub getAttrType {
+ my (%attrHash) = @_;
+ my $retValue = "";
+
+ my $simpleType = %attrHash->{simpleType};
+
+ my @keys = keys (%$simpleType);
+
+ for my $key (@keys)
+ {
+ if( $key ne "array")
+ {
+ $retValue .= $key;
+ }
+ }
+ return $retValue;
+}
+
+
+# need to return 1 for other modules to include this
+1;
diff --git a/src/usr/targeting/xmltohb/makefile b/src/usr/targeting/xmltohb/makefile
index 2e34e4941..35fa36761 100755
--- a/src/usr/targeting/xmltohb/makefile
+++ b/src/usr/targeting/xmltohb/makefile
@@ -46,8 +46,6 @@ include ${COMMON_TARGETING_MAKEFILE}
VPATH = ${COMMON_TARGETING_REL_PATH}
FAPI_ATTR_SOURCE_DIR = ${ROOTPATH}/src/usr/hwpf/hwp
-XMLTOHB_FAPIATTR_SOURCES = \
- ${addprefix ${FAPI_ATTR_SOURCE_DIR}/, ${FAPI_ATTR_SOURCES}}
FAPI2_ATTR_XML_DIR = ${ROOTPATH}/src/import/hwpf/fapi2/xml/attribute_info
HB_TEMP_DFLT_SOURCES = $(wildcard \
@@ -59,6 +57,7 @@ FAPIATTRSRVC_SOURCE = \
${FAPI2_INCLUDE_PATH}/${ATTRIBUTE_SERVICE_H}
+
# Attribute XML files.
FAPI2_ATTR_XML += $(wildcard $(ROOTPATH)/src/import/chips/p9/procedures/xml/attribute_info/*)
FAPI2_ATTR_XML += $(wildcard $(ROOTPATH)/src/import/hwpf/fapi2/xml/attribute_info/*)
@@ -66,45 +65,112 @@ FAPI2_ATTR_XML += $(wildcard $(ROOTPATH)/src/import/hwpf/fapi2/xml/attribute_inf
# NOTE: The hb_temp_defaults.xml file is not a normal attribute file with the
# normal structures that define the attribute itself. It temporarily
# provides default values for new attributes defined in other files.
-FAPI2_ATTR_XML := $(filter-out ${HB_TEMP_DFLT_SOURCES},$(FAPI2_ATTR_XML))
+
+FAPI2_ATTR_XML := $(filter-out $(ROOTPATH)/src/import/hwpf/fapi2/xml/attribute_info/hb_temp_defaults.xml,$(FAPI2_ATTR_XML))
+FAPI2_ATTR_XML := $(filter-out $(wildcard $(ROOTPATH)/src/import/hwpf/fapi2/xml/attribute_info/*~) ,$(FAPI2_ATTR_XML))
+FAPI2_ATTR_XML := $(filter-out $(wildcard $(ROOTPATH)/src/import/chips/p9/procedures/xml/attribute_info/*~),$(FAPI2_ATTR_XML))
XMLTOHB_FAPIATTR_SOURCES += ${FAPI2_ATTR_XML}
-XMLTOHB_COMMON_ATTRIBUTE_SOURCES = attribute_types.xml
-XMLTOHB_COMMON_TARGET_SOURCES = target_types.xml
-XMLTOHB_HB_ATTRIBUTE_SOURCES = attribute_types_hb.xml
-XMLTOHB_HB_TARGET_SOURCES = target_types_hb.xml
+# Manually generated sources
+
+# Common
+XMLTOHB_COMMON_ATTRIBUTE_TYPES = attribute_types.xml
+XMLTOHB_COMMON_TARGET_TYPES = target_types.xml
+
+# HB only
+XMLTOHB_HB_ATTRIBUTE_TYPES = attribute_types_hb.xml
+XMLTOHB_HB_TARGET_TYPES = target_types_hb.xml
+
+# OP PowerVM only
+XMLTOHB_OPPOWERVM_ATTRIBUTE_TYPES = attribute_types_oppowervm.xml
+XMLTOHB_OPPOWERVM_TARGET_TYPES = target_types_oppowervm.xml
+
+# Empty Targeting XML - Needed to generate XMLTOHB_CONFIG_ATTRIBUTE_SOURCES
+XMLTOHB_EMPTY_TARGET_TYPES = target_types_empty.xml
+
+# OP only
+XMLTOHB_OPENPOWER_ATTRIBUTE_TYPES = attribute_types_openpower.xml
+XMLTOHB_OPENPOWER_TARGET_TYPES = target_types_openpower.xml
+
+# Auto generated sources
+
+# EKB
+# Common generated from EKB xml
+XMLTOHB_EKB_ATTRIBUTE_TYPES = attribute_types_ekb.xml
+XMLTOHB_EKB_TARGET_TYPES = target_types_ekb.xml
+
+# Config Sources
+# Contains all sources in configuration
+XMLTOHB_CONFIG_ATTRIBUTE_TYPES = attribute_types_config.xml
+XMLTOHB_CONFIG_TARGET_TYPES = target_types_config.xml
+
+# SP Sources
+# Contains xml that will be exported to SP
+XMLTOHB_SP_ATTRIBUTE_TYPES = attribute_types_sp.xml
+XMLTOHB_SP_TARGET_TYPES = target_types_sp.xml
+
+# SRC
+# a_src = a + a_hb + a_xxx
+# t_src = t + merge_extension(t_hb + t_xxx)
+XMLTOHB_SRC_ATTRIBUTE_TYPES = attribute_types_src.xml
+XMLTOHB_SRC_TARGET_TYPES = target_types_src.xml
+
+
+# HBX
+# a_hbx = a_ekb + a_xxx
+# t_hbx = merge_extension(t_ekb + t_xxx)
+#XMLTOHB_HBX_ATTRIBUTE_TYPES = attribute_types_hbx.xml
+#XMLTOHB_HBX_TARGET_TYPES = target_types_hbx.xml
+
+# FULL
+# a_full = a_src + a_ekb
+# t_full = t_src + t_ekb
+XMLTOHB_FULL_ATTRIBUTE_TYPES = attribute_types_full.xml
+XMLTOHB_FULL_TARGET_TYPES = target_types_full.xml
+
+# attribute_customization
+# hb_temp_defaults.xml + hb_customized_attrs.xml
+XMLTOHB_ATTRIBUTE_CUSTOMIZATION = attribute_customization.xml
+
+#Note that order matters here , we want hb_customized_attrs to be first so it's defaults get picked up first
+#if there are duplicates
+XMLTOHB_ATTRIBUTE_CUSTOMIZATION_SOURCES += ${COMMON_TARGETING_REL_PATH}/${HB_CUSTOMIZED_ATTRS_XML}
+XMLTOHB_ATTRIBUTE_CUSTOMIZATION_SOURCES += ${ROOTPATH}/src/import/hwpf/fapi2/xml/attribute_info/hb_temp_defaults.xml
-# attribute files that are only included in power vm build.
-XMLTOHB_OPPOWERVM_ATTRIBUTE_SOURCES = attribute_types_oppowervm.xml
-XMLTOHB_OPPOWERVM_TARGET_SOURCES = target_types_oppowervm.xml
+# SRC attribute sources
+XMLTOHB_SRC_ATTRIBUTE_SOURCES += ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_COMMON_ATTRIBUTE_TYPES}
+XMLTOHB_SRC_ATTRIBUTE_SOURCES += ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_HB_ATTRIBUTE_TYPES}
+XMLTOHB_SRC_ATTRIBUTE_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),${XMLTOHB_OPPOWERVM_ATTRIBUTE_TYPES})
+XMLTOHB_SRC_ATTRIBUTE_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_ATTRIBUTE_TYPES})
-# attribute files that are only included in openpower build.
-XMLTOHB_OPENPOWER_ATTRIBUTE_SOURCES = attribute_types_openpower.xml
-XMLTOHB_OPENPOWER_TARGET_SOURCES = target_types_openpower.xml
+# Config Sources
+XMLTOHB_CONFIG_ATTRIBUTE_SOURCES += ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_COMMON_ATTRIBUTE_TYPES}
+XMLTOHB_CONFIG_ATTRIBUTE_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),${XMLTOHB_OPPOWERVM_ATTRIBUTE_TYPES})
+XMLTOHB_CONFIG_ATTRIBUTE_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_ATTRIBUTE_TYPES})
-XMLTOHB_MERGED_COMMON_TARGET_SOURCES = target_types_merged.xml
# The customize target file combines all targetTypeExtension files before
# combining them with the common target_types.xml file. To include a new file,
-# just add it to the XMLTOHB_TARGET_SOURCES.
-XMLTOHB_CUSTOMIZE_TARGET_SOURCES = target_types_customize.xml
+# just add it to the XMLTOHB_*_EXT_TARGET_SOURCES.
+XMLTOHB_SRC_CUSTOMIZE_TARGET_SOURCES = target_types_customize_src.xml
+XMLTOHB_CONFIG_CUSTOMIZE_TARGET_SOURCES = target_types.customize_config.xml
+
+
+XMLTOHB_SRC_EXT_TARGET_SOURCES += ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_HB_TARGET_TYPES}
+XMLTOHB_SRC_EXT_TARGET_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),${XMLTOHB_OPPOWERVM_TARGET_TYPES})
+XMLTOHB_SRC_EXT_TARGET_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_TARGET_TYPES})
+
+XMLTOHB_CONFIG_EXT_TARGET_SOURCES += ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_EMPTY_TARGET_TYPES}
+XMLTOHB_CONFIG_EXT_TARGET_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),${XMLTOHB_OPPOWERVM_TARGET_TYPES})
+XMLTOHB_CONFIG_EXT_TARGET_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_TARGET_TYPES})
-XMLTOHB_TARGET_SOURCES += ${XMLTOHB_HB_TARGET_SOURCES}
-XMLTOHB_TARGET_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),${XMLTOHB_OPPOWERVM_TARGET_SOURCES})
-XMLTOHB_TARGET_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_TARGET_SOURCES})
#Define XMLTOHB_GENERIC_SOURCES
-XMLTOHB_GENERIC_SOURCES += ${XMLTOHB_COMMON_ATTRIBUTE_SOURCES}
-XMLTOHB_GENERIC_SOURCES += ${XMLTOHB_HB_ATTRIBUTE_SOURCES}
-XMLTOHB_GENERIC_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),${XMLTOHB_OPPOWERVM_ATTRIBUTE_SOURCES})
-XMLTOHB_GENERIC_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_ATTRIBUTE_SOURCES})
-XMLTOHB_GENERIC_SOURCES += ${GENDIR}/${XMLTOHB_MERGED_COMMON_TARGET_SOURCES}
-XMLTOHB_GENERIC_SOURCES += ${XMLTOHB_HB_TARGET_SOURCES}
-XMLTOHB_GENERIC_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),${XMLTOHB_OPPOWERVM_TARGET_SOURCES})
-XMLTOHB_GENERIC_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_TARGET_SOURCES})
+XMLTOHB_GENERIC_SOURCES += ${GENDIR}/${XMLTOHB_FULL_ATTRIBUTE_TYPES}
+XMLTOHB_GENERIC_SOURCES += ${GENDIR}/${XMLTOHB_FULL_TARGET_TYPES}
TEMP_DEFAULT_SOURCES = tempdefaults.xml
@@ -123,7 +189,7 @@ XMLTOHB_SYSTEM_BINARIES += \
$(if $(CONFIG_SECUREBOOT),simics_NIMBUS_targeting.bin.protected)
XMLTOHB_SYSTEM_BINARIES += \
$(if $(CONFIG_SECUREBOOT),simics_NIMBUS_targeting.bin.unprotected)
-
+
XMLTOHB_SYSTEM_BINARIES += \
$(if $(CONFIG_SECUREBOOT),simics_CUMULUS_targeting.bin.protected)
XMLTOHB_SYSTEM_BINARIES += \
@@ -142,12 +208,12 @@ XMLTOHB_SYSTEM_BINARIES += \
# @echo FAPI_ATTR_SOURCES = ${FAPI_ATTR_SOURCES}
# @echo XMLTOHB_FAPIATTR_SOURCES = ${XMLTOHB_FAPIATTR_SOURCES}
# @echo HB_TEMP_DFLT_SOURCES = ${HB_TEMP_DFLT_SOURCES}
-# @echo XMLTOHB_COMMON_ATTRIBUTE_SOURCES = ${XMLTOHB_COMMON_ATTRIBUTE_SOURCES}
-# @echo XMLTOHB_COMMON_TARGET_SOURCES = ${XMLTOHB_COMMON_TARGET_SOURCES}
+# @echo XMLTOHB_COMMON_ATTRIBUTE_TYPES = ${XMLTOHB_COMMON_ATTRIBUTE_TYPES}
+# @echo XMLTOHB_COMMON_TARGET_TYPES = ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_COMMON_TARGET_TYPES}
# @echo TEMP_DEFAULT_SOURCES = ${TEMP_DEFAULT_SOURCES}
-# @echo XMLTOHB_HB_ATTRIBUTE_SOURCES = ${XMLTOHB_HB_ATTRIBUTE_SOURCES}
-# @echo XMLTOHB_HB_TARGET_SOURCES = ${XMLTOHB_HB_TARGET_SOURCES}
-# @echo XMLTOHB_MERGED_COMMON_TARGET_SOURCES = ${XMLTOHB_MERGED_COMMON_TARGET_SOURCES}
+# @echo XMLTOHB_HB_ATTRIBUTE_TYPES = ${XMLTOHB_HB_ATTRIBUTE_TYPES}
+# @echo XMLTOHB_HB_TARGET_TYPES = ${XMLTOHB_HB_TARGET_TYPES}
+# @echo XMLTOHB_SRC_TARGET_TYPES = ${XMLTOHB_SRC_TARGET_TYPES}
# @echo TEMP_GENERIC_XML = ${TEMP_GENERIC_XML}
# @echo VPATH = ${VPATH}
@@ -156,14 +222,25 @@ EXTRA_PARTS = $(addprefix $(IMGDIR)/, $(XMLTOHB_SYSTEM_BINARIES))
CLEAN_TARGETS += $(addprefix $(GENDIR)/, ${XMLTOHB_SYSTEM_BINARIES})
CLEAN_TARGETS += $(addprefix $(GENDIR)/, ${XMLTOHB_SYSTEM_BINARIES:.bin=.xml})
CLEAN_TARGETS += ${GENDIR}/${HB_PLAT_ATTR_SRVC_H}
-CLEAN_TARGETS += ${GENDIR}/${TEMP_GENERIC_XML}
CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_GENERIC_XML}
CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_FAPI_XML}
-CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_MERGED_COMMON_TARGET_SOURCES}
CLEAN_TARGETS += ${GENDIR}/errl/errludattribute.H
CLEAN_TARGETS += ${GENDIR}/errl/errludtarget.H
CLEAN_TARGETS += ${GENDIR}/targAttrInfo.csv
CLEAN_TARGETS += ${GENDIR}/targAttrOverrideData.H
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_SRC_TARGET_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_SRC_ATTRIBUTE_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_CONFIG_ATTRIBUTE_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_CONFIG_TARGET_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_SRC_CUSTOMIZE_TARGET_SOURCES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_CONFIG_CUSTOMIZE_TARGET_SOURCES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_SP_ATTRIBUTE_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_SP_TARGET_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_EKB_ATTRIBUTE_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_FULL_ATTRIBUTE_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_FULL_TARGET_TYPES}
+CLEAN_TARGETS += ${GENDIR}/${XMLTOHB_ATTRIBUTE_CUSTOMIZATION}
GENDIR_ERRL = $(ROOTPATH)/obj/genfiles/errl
@@ -173,24 +250,93 @@ CLEAN_TARGETS += $(XMLTOHB_RAN_INDICATION)
COPYHDR_RAN_INDICATION = $(GENDIR)/.called_copy_attrsrvhdr
CLEAN_TARGETS += $(COPYHDR_RAN_INDICATION)
+GEN_PASS_BODY += ${GENDIR}/${XMLTOHB_CONFIG_ATTRIBUTE_TYPES}
+GEN_PASS_BODY += ${GENDIR}/${XMLTOHB_CONFIG_TARGET_TYPES}
+GEN_PASS_BODY += ${GENDIR}/${XMLTOHB_SP_ATTRIBUTE_TYPES}
+GEN_PASS_BODY += ${GENDIR}/${XMLTOHB_SP_TARGET_TYPES}
+
include ${ROOTPATH}/config.mk
# Delete any generated file on error
-.DELETE_ON_ERROR:
+# # .DELETE_ON_ERROR:
${EXTRA_PARTS}: ${IMGDIR}/% : ${GENDIR}/%
cp -f $^ $@
+# create merged config attribute xml
+${GENDIR}/${XMLTOHB_CONFIG_ATTRIBUTE_TYPES}: \
+ ${XMLTOHB_MERGE_SCRIPT} ${XMLTOHB_CONFIG_ATTRIBUTE_SOURCES}
+ $< $(wordlist 2,$(words $^),$^) > $@
+
+# create merged src attribute xml
+${GENDIR}/${XMLTOHB_SRC_ATTRIBUTE_TYPES}: \
+ ${XMLTOHB_MERGE_SCRIPT} ${XMLTOHB_SRC_ATTRIBUTE_SOURCES}
+ $< $(wordlist 2,$(words $^),$^) > $@
+
+# create merged src target xml
+${GENDIR}/${XMLTOHB_SRC_CUSTOMIZE_TARGET_SOURCES}: \
+ ${XMLTOHB_MERGE_SCRIPT} ${XMLTOHB_SRC_EXT_TARGET_SOURCES}
+ $< $(wordlist 2,$(words $^),$^) > $@
+
+# TODO RTC: 178228 Review usage of XMLTOHB_TARGET_MERGE_SCRIPT in this makefile
+${GENDIR}/${XMLTOHB_SRC_TARGET_TYPES}: \
+ ${XMLTOHB_TARGET_MERGE_SCRIPT} ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_COMMON_TARGET_TYPES} \
+ ${GENDIR}/${XMLTOHB_SRC_CUSTOMIZE_TARGET_SOURCES}
+ ./${XMLTOHB_TARGET_MERGE_SCRIPT} $(addprefix --hb=,${GENDIR}/${XMLTOHB_SRC_CUSTOMIZE_TARGET_SOURCES}) \
+ $(addprefix --common=,${COMMON_TARGETING_REL_PATH}/${XMLTOHB_COMMON_TARGET_TYPES}) > $@
-# create merged target xml
-${GENDIR}/${XMLTOHB_CUSTOMIZE_TARGET_SOURCES}: \
- ${XMLTOHB_MERGE_SCRIPT} ${XMLTOHB_TARGET_SOURCES}
+# create merged config target xml
+${GENDIR}/${XMLTOHB_CONFIG_CUSTOMIZE_TARGET_SOURCES}: \
+ ${XMLTOHB_MERGE_SCRIPT} ${XMLTOHB_CONFIG_EXT_TARGET_SOURCES}
$< $(wordlist 2,$(words $^),$^) > $@
-${GENDIR}/${XMLTOHB_MERGED_COMMON_TARGET_SOURCES}: \
- ${XMLTOHB_TARGET_MERGE_SCRIPT} ${XMLTOHB_COMMON_TARGET_SOURCES} ${GENDIR}/${XMLTOHB_CUSTOMIZE_TARGET_SOURCES}
- ./${XMLTOHB_TARGET_MERGE_SCRIPT} $(addprefix --hb=,${GENDIR}/${XMLTOHB_CUSTOMIZE_TARGET_SOURCES}) \
- $(addprefix --common=,${COMMON_TARGETING_REL_PATH}/${XMLTOHB_COMMON_TARGET_SOURCES}) > $@
+# TODO RTC: 178228 Review usage of XMLTOHB_TARGET_MERGE_SCRIPT in this makefile
+${GENDIR}/${XMLTOHB_CONFIG_TARGET_TYPES}: \
+ ${XMLTOHB_TARGET_MERGE_SCRIPT} ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_COMMON_TARGET_TYPES} \
+ ${GENDIR}/${XMLTOHB_CONFIG_CUSTOMIZE_TARGET_SOURCES}
+ ./${XMLTOHB_TARGET_MERGE_SCRIPT} $(addprefix --hb=,${GENDIR}/${XMLTOHB_CONFIG_CUSTOMIZE_TARGET_SOURCES}) \
+ $(addprefix --common=,${COMMON_TARGETING_REL_PATH}/${XMLTOHB_COMMON_TARGET_TYPES}) > $@
+
+
+# TODO RTC: 178228 Review usage of XMLTOHB_TARGET_MERGE_SCRIPT in this makefile
+# create merged full target xml
+${GENDIR}/${XMLTOHB_FULL_TARGET_TYPES}: \
+ ${XMLTOHB_TARGET_MERGE_SCRIPT} ${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES} \
+ ${GENDIR}/${XMLTOHB_SRC_TARGET_TYPES} ${GENDIR}/${XMLTOHB_SRC_ATTRIBUTE_TYPES} \
+ ${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES} ${GENDIR}/${XMLTOHB_FULL_ATTRIBUTE_TYPES}
+ ./${XMLTOHB_TARGET_MERGE_SCRIPT} $(addprefix --hb=,${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES}) \
+ $(addprefix --common=,${GENDIR}/${XMLTOHB_SRC_TARGET_TYPES}) > $@
+ ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_SWAP_MAPPED_ATTR_SCRIPT} \
+ $(addprefix --srcTargetXml=,${GENDIR}/${XMLTOHB_SRC_TARGET_TYPES}) \
+ $(addprefix --ekbTargetXml=,${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES}) \
+ $(addprefix --fullAttrXml=,${GENDIR}/${XMLTOHB_FULL_ATTRIBUTE_TYPES}) \
+ $(addprefix --fullTargetXml=,${GENDIR}/${XMLTOHB_FULL_TARGET_TYPES}) \
+ $(addprefix --fapi2Header=,${ROOTPATH}/src/include/usr/fapi2/attribute_service.H)
+ echo '<attributes>' | cat - ${GENDIR}/${XMLTOHB_FULL_TARGET_TYPES} > tempFull && mv tempFull ${GENDIR}/${XMLTOHB_FULL_TARGET_TYPES}
+ echo '</attributes>' | cat ${GENDIR}/${XMLTOHB_FULL_TARGET_TYPES} - > tempFull && mv tempFull ${GENDIR}/${XMLTOHB_FULL_TARGET_TYPES}
+
+# TODO RTC: 178228 Review usage of XMLTOHB_TARGET_MERGE_SCRIPT in this makefile
+# create merged sp target xml
+${GENDIR}/${XMLTOHB_SP_TARGET_TYPES}: \
+ ${XMLTOHB_TARGET_MERGE_SCRIPT} ${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES} \
+ ${GENDIR}/${XMLTOHB_CONFIG_TARGET_TYPES} ${GENDIR}/${XMLTOHB_CONFIG_ATTRIBUTE_TYPES} \
+ ${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES} ${GENDIR}/${XMLTOHB_SP_ATTRIBUTE_TYPES}
+ ./${XMLTOHB_TARGET_MERGE_SCRIPT} $(addprefix --hb=,${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES}) \
+ $(addprefix --common=,${GENDIR}/${XMLTOHB_CONFIG_TARGET_TYPES}) > $@
+ ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_SWAP_MAPPED_ATTR_SCRIPT} \
+ $(addprefix --srcTargetXml=,${GENDIR}/${XMLTOHB_CONFIG_TARGET_TYPES}) \
+ $(addprefix --ekbTargetXml=,${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES}) \
+ $(addprefix --fullAttrXml=,${GENDIR}/${XMLTOHB_SP_ATTRIBUTE_TYPES}) \
+ $(addprefix --fullTargetXml=,${GENDIR}/${XMLTOHB_SP_TARGET_TYPES}) \
+ $(addprefix --fapi2Header=,${ROOTPATH}/src/include/usr/fapi2/attribute_service.H)
+ echo '<attributes>' | cat - ${GENDIR}/${XMLTOHB_SP_TARGET_TYPES} > tempSp && mv tempSp ${GENDIR}/${XMLTOHB_SP_TARGET_TYPES}
+ echo '</attributes>' | cat ${GENDIR}/${XMLTOHB_SP_TARGET_TYPES} - > tempSp && mv tempSp ${GENDIR}/${XMLTOHB_SP_TARGET_TYPES}
+ ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_REMOVE_HB_MAPPED_ATTR_SCRIPT} \
+ $(addprefix --spAttrXml=,${GENDIR}/${XMLTOHB_SP_ATTRIBUTE_TYPES}) \
+ $(addprefix --spTargXml=,${GENDIR}/${XMLTOHB_SP_TARGET_TYPES}) \
+ $(addprefix --hbAttrXml=,${COMMON_TARGETING_REL_PATH}/${XMLTOHB_HB_ATTRIBUTE_TYPES}) \
+
+
# merge all FAPI attribute files into one
${GENDIR}/${XMLTOHB_FAPI_XML}: ${XMLTOHB_MERGE_SCRIPT} \
@@ -203,23 +349,51 @@ $(COPYHDR_RAN_INDICATION): ${FAPIATTRSRVC_SOURCE}
cp ${FAPIATTRSRVC_SOURCE} ${GENDIR}/${HB_PLAT_ATTR_SRVC_H}
touch $(COPYHDR_RAN_INDICATION)
-# temp generic XML is created from the generic sources only
-${GENDIR}/${TEMP_GENERIC_XML}: \
- ${XMLTOHB_MERGE_SCRIPT} ${XMLTOHB_GENERIC_SOURCES}
+# merge all attribute customization srcs together
+${GENDIR}/${XMLTOHB_ATTRIBUTE_CUSTOMIZATION}: ${XMLTOHB_MERGE_SCRIPT} \
+ ${XMLTOHB_ATTRIBUTE_CUSTOMIZATION_SOURCES}
$< $(wordlist 2,$(words $^),$^) > $@
-# generic XML is created from temp generic XML, temporary defaults, merged FAPI
-# attributes, and HB temp defaults
+# convert FAPI attrs to HB attrs
+${GENDIR}/${XMLTOHB_EKB_ATTRIBUTE_TYPES} \
+${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES}: \
+ ${XMLTOHB_EKB_TARGATTR_SCRIPT} ${GENDIR}/${XMLTOHB_FAPI_XML} \
+ fapi_utils.pl ${GENDIR}/${XMLTOHB_ATTRIBUTE_CUSTOMIZATION}
+ ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_EKB_TARGATTR_SCRIPT} \
+ $(addprefix --fapi=,${GENDIR}/${XMLTOHB_FAPI_XML}) \
+ $(addprefix --attr=,${GENDIR}/${XMLTOHB_EKB_ATTRIBUTE_TYPES}) \
+ $(addprefix --targ=,${GENDIR}/${XMLTOHB_EKB_TARGET_TYPES}) \
+ $(addprefix --default=,${GENDIR}/${XMLTOHB_ATTRIBUTE_CUSTOMIZATION})\
+
+
+# Add EKB attribute xml to src xml to produce the final output.
+# Skip adding any attributes that already exists in the src xml
+${GENDIR}/${XMLTOHB_FULL_ATTRIBUTE_TYPES}: \
+ ${XMLTOHB_DUPLICATE_SCRIPT} ${GENDIR}/${XMLTOHB_EKB_ATTRIBUTE_TYPES} \
+ ${GENDIR}/${XMLTOHB_SRC_ATTRIBUTE_TYPES}
+ ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_DUPLICATE_SCRIPT} \
+ $(addprefix --ekbXmlFile=,${GENDIR}/${XMLTOHB_EKB_ATTRIBUTE_TYPES}) \
+ $(addprefix --hbXmlFile=,${GENDIR}/${XMLTOHB_SRC_ATTRIBUTE_TYPES}) \
+ $(addprefix --fapi2Header=,${ROOTPATH}/src/include/usr/fapi2/attribute_service.H) \
+ $(addprefix --outFile=,${GENDIR}/${XMLTOHB_FULL_ATTRIBUTE_TYPES}) \
+ --verbose
+
+# Add EKB attribute xml to config xml to produce the final output.
+# Skip adding any attributes that already exists in the src xml
+${GENDIR}/${XMLTOHB_SP_ATTRIBUTE_TYPES}: \
+ ${XMLTOHB_DUPLICATE_SCRIPT} ${GENDIR}/${XMLTOHB_EKB_ATTRIBUTE_TYPES} \
+ ${GENDIR}/${XMLTOHB_CONFIG_ATTRIBUTE_TYPES}
+ ${COMMON_TARGETING_REL_PATH}/${XMLTOHB_DUPLICATE_SCRIPT} \
+ $(addprefix --ekbXmlFile=,${GENDIR}/${XMLTOHB_EKB_ATTRIBUTE_TYPES}) \
+ $(addprefix --hbXmlFile=,${GENDIR}/${XMLTOHB_CONFIG_ATTRIBUTE_TYPES}) \
+ $(addprefix --fapi2Header=,${ROOTPATH}/src/include/usr/fapi2/attribute_service.H) \
+ $(addprefix --outFile=,${GENDIR}/${XMLTOHB_SP_ATTRIBUTE_TYPES}) \
+ --verbose
+
+# generic XML is created from the generic sources only
${GENDIR}/${XMLTOHB_GENERIC_XML}: \
- ${XMLTOHB_TEMPS_MERGE_SCRIPT} ${GENDIR}/${TEMP_GENERIC_XML} \
- ${GENDIR}/${XMLTOHB_FAPI_XML} \
- ${HB_TEMP_DFLT_SOURCES} ${TEMP_DEFAULT_SOURCES}
- ./${XMLTOHB_TEMPS_MERGE_SCRIPT} \
- --generic=${GENDIR}/${TEMP_GENERIC_XML} \
- --fapi=${GENDIR}/${XMLTOHB_FAPI_XML} \
- --fapi_inc=${ROOTPATH}/src/include/usr/fapi2/attribute_service.H \
- --fw_dflts=${HB_TEMP_DFLT_SOURCES} \
- --defaults=${COMMON_TARGETING_REL_PATH}/${TEMP_DEFAULT_SOURCES} > $@
+ ${XMLTOHB_MERGE_SCRIPT} ${XMLTOHB_GENERIC_SOURCES}
+ $< $(wordlist 2,$(words $^),$^) > $@
# create the header files, only needs generic xml
$(call GENTARGET,$(XMLTOHB_TARGETS)) : $(XMLTOHB_RAN_INDICATION)
@@ -233,6 +407,7 @@ $(XMLTOHB_RAN_INDICATION): ${XMLTOHB_COMPILER_SCRIPT} \
cp ${GENDIR_ERRL}/errludtarget.H ${GENDIR_PLUGINS}
touch $(XMLTOHB_RAN_INDICATION)
+# .PRECIOUS: ${GENDIR}/%.hb.xml
# system-specific XML needs the generic xml plus the xxx.system.xml file + the
# MRW file
${GENDIR}/%.hb.xml: %.system.xml ${GENDIR}/${XMLTOHB_GENERIC_XML} %.mrw.xml
diff --git a/src/usr/targeting/xmltohb/updatetargetxml.pl b/src/usr/targeting/xmltohb/updatetargetxml.pl
index 8d86159df..11b38c3ba 100755
--- a/src/usr/targeting/xmltohb/updatetargetxml.pl
+++ b/src/usr/targeting/xmltohb/updatetargetxml.pl
@@ -6,7 +6,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2012,2014
+# Contributors Listed Below - COPYRIGHT 2012,2017
# [+] International Business Machines Corp.
#
#
@@ -83,7 +83,7 @@ foreach my $Extension ( @{$generic->{targetTypeExtension}} )
{
$default = $attr->{default}->[0];
}
- #print "$id, $attribute_id $default\n";
+
if (! exists $generic1->{targetType}->{$id}->{attribute}->{$attribute_id})
{
push @NewAttr, [ $id, $attribute_id, $default ];
@@ -91,6 +91,11 @@ foreach my $Extension ( @{$generic->{targetTypeExtension}} )
}
}
+#for my $i ( 0 .. $#NewAttr )
+#{
+ # print STDERR "$NewAttr[$i][0], $NewAttr[$i][1], $NewAttr[$i][2]\n";
+#}
+
open (FH, "<$common");
my $check = 0;
OpenPOWER on IntegriCloud