summaryrefslogtreecommitdiffstats
path: root/src/hwpf/plat_target.H
diff options
context:
space:
mode:
authorJoachim Fenkes <fenkes@de.ibm.com>2018-12-05 16:47:55 +0100
committerSachin Gupta <sgupta2m@in.ibm.com>2019-02-13 21:37:51 -0600
commitb9b668e5916e3310eacb95496cc0792d819b25f0 (patch)
tree78ce2d1f1a4ed46f5c1ad4d5c0536e8acb34b4ea /src/hwpf/plat_target.H
parent6eb2a4c0f0d838967f29d124ae466b8c1920bf37 (diff)
downloadtalos-sbe-b9b668e5916e3310eacb95496cc0792d819b25f0.tar.gz
talos-sbe-b9b668e5916e3310eacb95496cc0792d819b25f0.zip
FAPI2: Multicast API 1/2: Platform-breaking changes
The Target gains a new template parameter, M, that specifies the multicast type. This is propagated through all affected header files. A new target type is introduced, TARGET_TYPE_MULTICAST, and platform specific assertions put in place to prevent users from creating such targets before the platform supports it. Target also grows a new inline function for updating MC targets. Platforms not supporting MC can provide a dummy implementation. The example platform code in fapi2/include/plat/plat_target.H is updated with minimal example code for platform implementers. Change-Id: Ia0990f26890dc5c719caca608cd134a4964a3acf Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69456 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt K. Light <mklight@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: RAJA DAS <rajadas2@in.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70866 Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/hwpf/plat_target.H')
-rw-r--r--src/hwpf/plat_target.H10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/hwpf/plat_target.H b/src/hwpf/plat_target.H
index 1d32dbb8..8606ffa1 100644
--- a/src/hwpf/plat_target.H
+++ b/src/hwpf/plat_target.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER sbe Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -33,6 +33,7 @@
#include <stdint.h>
#include <target_types.H>
#include <target_states.H>
+#include <multicast_defs.H>
#include <assert.h>
#include <plat_target_parms.H>
#include <vector>
@@ -53,6 +54,13 @@ static const uint8_t PCI0_CHIPLET = 0x0D;
//
namespace fapi2
{
+ template<TargetType K, MulticastType M, typename V>
+ static constexpr void plat_apply_target_limits(void)
+ {
+ static_assert(!(K & TARGET_TYPE_MULTICAST),
+ "Multicast targets are not supported on this platform");
+ }
+
typedef enum plat_target_type
{
PPE_TARGET_TYPE_NONE = 0x00,
OpenPOWER on IntegriCloud