common/cnxk: support setting channel mask for SDP interfaces
[dpdk.git] / drivers / common / cnxk / roc_model.h
index a54f435..cee0677 100644 (file)
@@ -23,10 +23,15 @@ struct roc_model {
 #define ROC_MODEL_CN106xx_A0   BIT_ULL(20)
 #define ROC_MODEL_CNF105xx_A0  BIT_ULL(21)
 #define ROC_MODEL_CNF105xxN_A0 BIT_ULL(22)
+/* Following flags describe platform code is running on */
+#define ROC_ENV_HW   BIT_ULL(61)
+#define ROC_ENV_EMUL BIT_ULL(62)
+#define ROC_ENV_ASIM BIT_ULL(63)
 
        uint64_t flag;
 #define ROC_MODEL_STR_LEN_MAX 128
        char name[ROC_MODEL_STR_LEN_MAX];
+       char env[ROC_MODEL_STR_LEN_MAX];
 } __plt_cache_aligned;
 
 #define ROC_MODEL_CN96xx_Ax (ROC_MODEL_CN96xx_A0 | ROC_MODEL_CN96xx_B0)
@@ -35,12 +40,17 @@ struct roc_model {
         ROC_MODEL_CNF95xx_B0 | ROC_MODEL_CNF95xxMM_A0 |                       \
         ROC_MODEL_CNF95xxO_A0 | ROC_MODEL_CNF95xxN_A0 | ROC_MODEL_CN98xx_A0 | \
         ROC_MODEL_CNF95xxN_A1)
+#define ROC_MODEL_CNF9K                                                        \
+       (ROC_MODEL_CNF95xx_A0 | ROC_MODEL_CNF95xx_B0 |                         \
+        ROC_MODEL_CNF95xxMM_A0 | ROC_MODEL_CNF95xxO_A0 |                      \
+        ROC_MODEL_CNF95xxN_A0 | ROC_MODEL_CNF95xxN_A1)
 
 #define ROC_MODEL_CN106xx   (ROC_MODEL_CN106xx_A0)
 #define ROC_MODEL_CNF105xx  (ROC_MODEL_CNF105xx_A0)
 #define ROC_MODEL_CNF105xxN (ROC_MODEL_CNF105xxN_A0)
 #define ROC_MODEL_CN10K                                                        \
        (ROC_MODEL_CN106xx | ROC_MODEL_CNF105xx | ROC_MODEL_CNF105xxN)
+#define ROC_MODEL_CNF10K (ROC_MODEL_CNF105xx | ROC_MODEL_CNF105xxN)
 
 /* Runtime variants */
 static inline uint64_t
@@ -158,6 +168,30 @@ roc_model_is_cnf10kb_a0(void)
        return roc_model->flag & ROC_MODEL_CNF105xxN_A0;
 }
 
+static inline bool
+roc_env_is_hw(void)
+{
+       return roc_model->flag & ROC_ENV_HW;
+}
+
+static inline bool
+roc_env_is_emulator(void)
+{
+       return roc_model->flag & ROC_ENV_EMUL;
+}
+
+static inline bool
+roc_env_is_asim(void)
+{
+       return roc_model->flag & ROC_ENV_ASIM;
+}
+
+static inline const char *
+roc_env_get(void)
+{
+       return roc_model->env;
+}
+
 int roc_model_init(struct roc_model *model);
 
 #endif