summaryrefslogtreecommitdiffstats
path: root/src/import/hwpf/fapi2/include/fapi2_hw_access.H
diff options
context:
space:
mode:
authorJoachim Fenkes <fenkes@de.ibm.com>2018-11-28 10:25:41 +0100
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-02-14 16:26:35 -0600
commit7d9e00e84843d669f115cb9f51ef587321dae39a (patch)
tree3087350793d929fa51b0c4d9753bae319e144479 /src/import/hwpf/fapi2/include/fapi2_hw_access.H
parent5e4b564b9cc39812e3be3f022175edc8a0404ee6 (diff)
downloadtalos-hostboot-7d9e00e84843d669f115cb9f51ef587321dae39a.tar.gz
talos-hostboot-7d9e00e84843d669f115cb9f51ef587321dae39a.zip
FAPI2: Multicast API 2/2: Introduce the actual multicast functions
Chip targets gain a getMulticast() method to generate MC sub-targets. The meaning of getParent()/getChildren() is updated to reflect MC specialties. Add an API call to update the multicast group mapping table per chip. For details, please see hwpf/fapi2/docs/topics/multicast_doc.C Change-Id: I4cea561fd14324b1accedf4ffaae9943159caf71 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69457 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Matt K. Light <mklight@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70946
Diffstat (limited to 'src/import/hwpf/fapi2/include/fapi2_hw_access.H')
-rw-r--r--src/import/hwpf/fapi2/include/fapi2_hw_access.H20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/import/hwpf/fapi2/include/fapi2_hw_access.H b/src/import/hwpf/fapi2/include/fapi2_hw_access.H
index d2a4d0191..4c7142369 100644
--- a/src/import/hwpf/fapi2/include/fapi2_hw_access.H
+++ b/src/import/hwpf/fapi2/include/fapi2_hw_access.H
@@ -76,6 +76,26 @@ inline void setOpMode(const OpModes i_mode);
inline OpModes getOpMode(void);
//--------------------------------------------------------------------------
+// Multicast mapping functions
+//--------------------------------------------------------------------------
+
+/// @brief Set up or replace the multicast group mapping for a given chip
+/// @param[in] i_chip The chip whose multicast map is to be replaced
+/// @param[in] i_mappings A list of multicast group mappings
+/// @return FAPI2_RC_SUCCESS if the map was updated, otherwise error code.
+///
+/// This replaces the given chip's map of abstract multicast groups to chip
+/// specific hardware values with a new map. Any abstract group not explicitly
+/// mapped via i_mappings will be unmapped after this call returns success,
+/// and attempting to create multicast targets targeting unmapped groups will
+/// result in error.
+/// i_mappings may contain an arbitrary amount of abstract/HW pairs, but the
+/// function may return an error if too many mappings are specified.
+template< MulticastType M, typename V >
+inline ReturnCode setMulticastGroupMap(const Target<TARGET_TYPE_PROC_CHIP, M, V>& i_chip,
+ const std::vector< MulticastGroupMapping >& i_mappings);
+
+//--------------------------------------------------------------------------
// HW Communication Functions
//--------------------------------------------------------------------------
OpenPOWER on IntegriCloud