diff options
author | Santosh Puranik <santosh.puranik@in.ibm.com> | 2017-02-02 05:12:46 -0600 |
---|---|---|
committer | Santosh S. Puranik <santosh.puranik@in.ibm.com> | 2017-02-03 01:57:57 -0500 |
commit | b8acb760d5f059e5d15008e8113d3f951dfe0e9b (patch) | |
tree | 42de5d741e5b0865765271860d46b2c3f389832e | |
parent | 2f5d3fc9c1865d1c815131a81b97901d99b16fae (diff) | |
download | talos-sbe-b8acb760d5f059e5d15008e8113d3f951dfe0e9b.tar.gz talos-sbe-b8acb760d5f059e5d15008e8113d3f951dfe0e9b.zip |
Plat fixes for array ops
-- Enable ATTR_CHIP_UNIT_POS on all chiplet targets
-- Add PERV to compound target for getParent specialization
Change-Id: I156e5b92b21c486f549543c63ed66f59f60fc9bc
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35789
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Reviewed-by: Shakeeb A. Pasha B K <shakeebbk@in.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Santosh S. Puranik <santosh.puranik@in.ibm.com>
-rw-r--r-- | src/hwpf/include/plat/target.H | 4 | ||||
-rw-r--r-- | src/hwpf/src/plat/plat_attribute_service.H | 24 | ||||
-rwxr-xr-x | src/tools/scripts/ppeParseAttributeInfo.pl | 50 |
3 files changed, 54 insertions, 24 deletions
diff --git a/src/hwpf/include/plat/target.H b/src/hwpf/include/plat/target.H index a204a08c..b262ae8c 100644 --- a/src/hwpf/include/plat/target.H +++ b/src/hwpf/include/plat/target.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER sbe Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* Contributors Listed Below - COPYRIGHT 2012,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -259,7 +259,7 @@ namespace fapi2 template<> template<TargetType T> Target<T, plat_target_handle_t> - Target<TARGET_TYPE_PROC_CHIP | TARGET_TYPE_CORE | TARGET_TYPE_EX, + Target<TARGET_TYPE_PROC_CHIP | TARGET_TYPE_CORE | TARGET_TYPE_EX | TARGET_TYPE_PERV, plat_target_handle_t>::getParent(void) const { static_assert(((T == TARGET_TYPE_PROC_CHIP) || (T == TARGET_TYPE_EQ)), diff --git a/src/hwpf/src/plat/plat_attribute_service.H b/src/hwpf/src/plat/plat_attribute_service.H index 86d78316..c54a5f28 100644 --- a/src/hwpf/src/plat/plat_attribute_service.H +++ b/src/hwpf/src/plat/plat_attribute_service.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER sbe Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ +/* Contributors Listed Below - COPYRIGHT 2015,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -237,6 +237,28 @@ void __set( const Target<K>& i_ptarget, TAttrStruct* object, const AttributeId a template<TargetType K, typename TAttrStruct, typename TValue, AttributeId AId> void __get( const Target<K>& i_ptarget, const TAttrStruct* object, const AttributeId attrid, TValue* value ); +#define ATTR_CHIP_UNIT_POS_GETMACRO PLAT_ATTR_GET_CHIP_UNIT_POS + +#define PLAT_ATTR_GET_CHIP_UNIT_POS(ID, PTARGET, VAL) \ + _getAttrChipUnitPos(PTARGET, VAL) + +template<TargetType K> +inline +AttributeRC _getAttrChipUnitPos(const Target<K>& i_target, + ATTR_CHIP_UNIT_POS_Type& o_val) +{ + o_val = i_target.get().getTargetInstance(); + return FAPI2_RC_SUCCESS; +} + +template<> +inline +AttributeRC _getAttrChipUnitPos(const Target<TARGET_TYPE_PERV>& i_target, + ATTR_CHIP_UNIT_POS_Type& o_val) +{ + o_val = i_target.getChipletNumber(); + return FAPI2_RC_SUCCESS; +} /* INSERT NEW GETTER AND SETTER FUNCTIONS HERE */ diff --git a/src/tools/scripts/ppeParseAttributeInfo.pl b/src/tools/scripts/ppeParseAttributeInfo.pl index d43d4c7c..97188e8a 100755 --- a/src/tools/scripts/ppeParseAttributeInfo.pl +++ b/src/tools/scripts/ppeParseAttributeInfo.pl @@ -6,7 +6,7 @@ # # OpenPOWER sbe Project # -# Contributors Listed Below - COPYRIGHT 2015,2016 +# Contributors Listed Below - COPYRIGHT 2015,2017 # [+] International Business Machines Corp. # # @@ -480,28 +480,36 @@ foreach my $entr (@{$entries->{entry}}) { print AIFILE "const fapi2::TargetType $attr->{id}_TargetType = "; - # Split on commas - my @targTypes = split(',', $attr->{targetType}); - my $targType = $targTypes[0]; - - foreach my $targType (@targTypes) + if($attr->{id} eq 'ATTR_CHIP_UNIT_POS') { - # Remove newlines and leading/trailing whitespace - $targType =~ s/\n//; - $targType =~ s/^\s+//; - $targType =~ s/\s+$//; - - # Consider only supported target types. The rest are ignored - if($targType ~~ ["TARGET_TYPE_PROC_CHIP", "TARGET_TYPE_SYSTEM", - "TARGET_TYPE_CORE", "TARGET_TYPE_MCS", "TARGET_TYPE_PERV", - "TARGET_TYPE_EQ", "TARGET_TYPE_EX"]) - { - print AIFILE "$targType"; - last; - } - else + # Default CHIP_UNIT_POS to all chiplet class targets + print AIFILE "TARGET_TYPE_CHIPLETS"; + } + else + { + # Split on commas + my @targTypes = split(',', $attr->{targetType}); + my $targType = $targTypes[0]; + + foreach my $targType (@targTypes) { - next; + # Remove newlines and leading/trailing whitespace + $targType =~ s/\n//; + $targType =~ s/^\s+//; + $targType =~ s/\s+$//; + + # Consider only supported target types. The rest are ignored + if($targType ~~ ["TARGET_TYPE_PROC_CHIP", "TARGET_TYPE_SYSTEM", + "TARGET_TYPE_CORE", "TARGET_TYPE_MCS", "TARGET_TYPE_PERV", + "TARGET_TYPE_EQ", "TARGET_TYPE_EX"]) + { + print AIFILE "$targType"; + last; + } + else + { + next; + } } } print AIFILE ";\n"; |