1b4a63e60SHemant Agrawal /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0) 2b4a63e60SHemant Agrawal * 3b4a63e60SHemant Agrawal * Copyright 2013-2015 Freescale Semiconductor Inc. 4*2cb2abf3SHemant Agrawal * Copyright 2018-2021 NXP 5b4a63e60SHemant Agrawal * 6b4a63e60SHemant Agrawal */ 7b4a63e60SHemant Agrawal #ifndef __FSL_DPOPR_H_ 8b4a63e60SHemant Agrawal #define __FSL_DPOPR_H_ 9b4a63e60SHemant Agrawal 10b4a63e60SHemant Agrawal /** @addtogroup dpopr Data Path Order Restoration API 11b4a63e60SHemant Agrawal * Contains initialization APIs and runtime APIs for the Order Restoration 12b4a63e60SHemant Agrawal * @{ 13b4a63e60SHemant Agrawal */ 14b4a63e60SHemant Agrawal 15b4a63e60SHemant Agrawal /** Order Restoration properties */ 16b4a63e60SHemant Agrawal 17b4a63e60SHemant Agrawal /** 18b4a63e60SHemant Agrawal * Create a new Order Point Record option 19b4a63e60SHemant Agrawal */ 20b4a63e60SHemant Agrawal #define OPR_OPT_CREATE 0x1 21b4a63e60SHemant Agrawal /** 22b4a63e60SHemant Agrawal * Retire an existing Order Point Record option 23b4a63e60SHemant Agrawal */ 24b4a63e60SHemant Agrawal #define OPR_OPT_RETIRE 0x2 25*2cb2abf3SHemant Agrawal /** 26*2cb2abf3SHemant Agrawal * Assign an existing Order Point Record to a queue 27*2cb2abf3SHemant Agrawal */ 28*2cb2abf3SHemant Agrawal #define OPR_OPT_ASSIGN 0x4 29b4a63e60SHemant Agrawal /** 30b4a63e60SHemant Agrawal * struct opr_cfg - Structure representing OPR configuration 31b4a63e60SHemant Agrawal * @oprrws: Order point record (OPR) restoration window size (0 to 5) 32b4a63e60SHemant Agrawal * 0 - Window size is 32 frames. 33b4a63e60SHemant Agrawal * 1 - Window size is 64 frames. 34b4a63e60SHemant Agrawal * 2 - Window size is 128 frames. 35b4a63e60SHemant Agrawal * 3 - Window size is 256 frames. 36b4a63e60SHemant Agrawal * 4 - Window size is 512 frames. 37b4a63e60SHemant Agrawal * 5 - Window size is 1024 frames. 38b4a63e60SHemant Agrawal *@oa: OPR auto advance NESN window size (0 disabled, 1 enabled) 39b4a63e60SHemant Agrawal *@olws: OPR acceptable late arrival window size (0 to 3) 40b4a63e60SHemant Agrawal * 0 - Disabled. Late arrivals are always rejected. 41b4a63e60SHemant Agrawal * 1 - Window size is 32 frames. 42b4a63e60SHemant Agrawal * 2 - Window size is the same as the OPR restoration 43b4a63e60SHemant Agrawal * window size configured in the OPRRWS field. 44b4a63e60SHemant Agrawal * 3 - Window size is 8192 frames. 45b4a63e60SHemant Agrawal * Late arrivals are always accepted. 46b4a63e60SHemant Agrawal *@oeane: Order restoration list (ORL) resource exhaustion 47b4a63e60SHemant Agrawal * advance NESN enable (0 disabled, 1 enabled) 48b4a63e60SHemant Agrawal *@oloe: OPR loose ordering enable (0 disabled, 1 enabled) 49b4a63e60SHemant Agrawal */ 50b4a63e60SHemant Agrawal struct opr_cfg { 51b4a63e60SHemant Agrawal uint8_t oprrws; 52b4a63e60SHemant Agrawal uint8_t oa; 53b4a63e60SHemant Agrawal uint8_t olws; 54b4a63e60SHemant Agrawal uint8_t oeane; 55b4a63e60SHemant Agrawal uint8_t oloe; 56b4a63e60SHemant Agrawal }; 57b4a63e60SHemant Agrawal 58b4a63e60SHemant Agrawal /** 59b4a63e60SHemant Agrawal * struct opr_qry - Structure representing OPR configuration 60b4a63e60SHemant Agrawal * @enable: Enabled state 61b4a63e60SHemant Agrawal * @rip: Retirement In Progress 62b4a63e60SHemant Agrawal * @ndsn: Next dispensed sequence number 63b4a63e60SHemant Agrawal * @nesn: Next expected sequence number 64b4a63e60SHemant Agrawal * @ea_hseq: Early arrival head sequence number 65b4a63e60SHemant Agrawal * @hseq_nlis: HSEQ not last in sequence 66b4a63e60SHemant Agrawal * @ea_tseq: Early arrival tail sequence number 67b4a63e60SHemant Agrawal * @tseq_nlis: TSEQ not last in sequence 68b4a63e60SHemant Agrawal * @ea_tptr: Early arrival tail pointer 69b4a63e60SHemant Agrawal * @ea_hptr: Early arrival head pointer 70b4a63e60SHemant Agrawal * @opr_id: Order Point Record ID 71b4a63e60SHemant Agrawal * @opr_vid: Order Point Record Virtual ID 72b4a63e60SHemant Agrawal */ 73b4a63e60SHemant Agrawal struct opr_qry { 74b4a63e60SHemant Agrawal char enable; 75b4a63e60SHemant Agrawal char rip; 76b4a63e60SHemant Agrawal uint16_t ndsn; 77b4a63e60SHemant Agrawal uint16_t nesn; 78b4a63e60SHemant Agrawal uint16_t ea_hseq; 79b4a63e60SHemant Agrawal char hseq_nlis; 80b4a63e60SHemant Agrawal uint16_t ea_tseq; 81b4a63e60SHemant Agrawal char tseq_nlis; 82b4a63e60SHemant Agrawal uint16_t ea_tptr; 83b4a63e60SHemant Agrawal uint16_t ea_hptr; 84b4a63e60SHemant Agrawal uint16_t opr_id; 85b4a63e60SHemant Agrawal uint16_t opr_vid; 86b4a63e60SHemant Agrawal }; 87b4a63e60SHemant Agrawal 88b4a63e60SHemant Agrawal #endif /* __FSL_DPOPR_H_ */ 89