summaryrefslogtreecommitdiff
path: root/include/soc
diff options
context:
space:
mode:
authorHoria Geantă <horia.geanta@nxp.com>2018-10-10 15:59:55 +0300
committerDong Aisheng <aisheng.dong@nxp.com>2019-12-02 18:03:47 +0800
commitb462bd28f680edadc1a10887d3f82cf341b2188e (patch)
tree623cc98640098cbe56f720a272b9e1dc76788832 /include/soc
parent2ebf4f082163c425553a55070aa59f3cc2d19e62 (diff)
soc: fsl: dpio: add support for opr
Order preservation is a feature that will be supported in dpni, dpseci and dpci devices. This is a preliminary patch for the changes to be introduced in the corresponding drivers. Signed-off-by: Radu Alexe <radu.alexe@nxp.com> Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Diffstat (limited to 'include/soc')
-rw-r--r--include/soc/fsl/dpaa2-global.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/include/soc/fsl/dpaa2-global.h b/include/soc/fsl/dpaa2-global.h
index 2bfc379d3dc9..632b73bd59b6 100644
--- a/include/soc/fsl/dpaa2-global.h
+++ b/include/soc/fsl/dpaa2-global.h
@@ -189,4 +189,78 @@ static inline bool dpaa2_cscn_state_congested(struct dpaa2_dq *cscn)
return !!(cscn->scn.state & DPAA2_CSCN_STATE_CG);
}
+/* Data Path Order Restoration API
+ * Contains initialization APIs and runtime APIs for the Order Restoration
+ */
+
+/** Order Restoration properties */
+
+/**
+ * Create a new Order Point Record option
+ */
+#define OPR_OPT_CREATE 0x1
+/**
+ * Retire an existing Order Point Record option
+ */
+#define OPR_OPT_RETIRE 0x2
+
+/**
+ * struct opr_cfg - Structure representing OPR configuration
+ * @oprrws: Order point record (OPR) restoration window size (0 to 5)
+ * 0 - Window size is 32 frames.
+ * 1 - Window size is 64 frames.
+ * 2 - Window size is 128 frames.
+ * 3 - Window size is 256 frames.
+ * 4 - Window size is 512 frames.
+ * 5 - Window size is 1024 frames.
+ * @oa: OPR auto advance NESN window size (0 disabled, 1 enabled)
+ * @olws: OPR acceptable late arrival window size (0 to 3)
+ * 0 - Disabled. Late arrivals are always rejected.
+ * 1 - Window size is 32 frames.
+ * 2 - Window size is the same as the OPR restoration
+ * window size configured in the OPRRWS field.
+ * 3 - Window size is 8192 frames. Late arrivals are
+ * always accepted.
+ * @oeane: Order restoration list (ORL) resource exhaustion
+ * advance NESN enable (0 disabled, 1 enabled)
+ * @oloe: OPR loose ordering enable (0 disabled, 1 enabled)
+ */
+struct opr_cfg {
+ u8 oprrws;
+ u8 oa;
+ u8 olws;
+ u8 oeane;
+ u8 oloe;
+};
+
+/**
+ * struct opr_qry - Structure representing OPR configuration
+ * @enable: Enabled state
+ * @rip: Retirement In Progress
+ * @ndsn: Next dispensed sequence number
+ * @nesn: Next expected sequence number
+ * @ea_hseq: Early arrival head sequence number
+ * @hseq_nlis: HSEQ not last in sequence
+ * @ea_tseq: Early arrival tail sequence number
+ * @tseq_nlis: TSEQ not last in sequence
+ * @ea_tptr: Early arrival tail pointer
+ * @ea_hptr: Early arrival head pointer
+ * @opr_id: Order Point Record ID
+ * @opr_vid: Order Point Record Virtual ID
+ */
+struct opr_qry {
+ char enable;
+ char rip;
+ u16 ndsn;
+ u16 nesn;
+ u16 ea_hseq;
+ char hseq_nlis;
+ u16 ea_tseq;
+ char tseq_nlis;
+ u16 ea_tptr;
+ u16 ea_hptr;
+ u16 opr_id;
+ u16 opr_vid;
+};
+
#endif /* __FSL_DPAA2_GLOBAL_H */