xref: /freebsd/sys/contrib/ncsw/inc/Peripherals/dpaa_ext.h (revision 0aeed3e99367bed5755068d9218cd8041644ff2b)
1*0aeed3e9SJustin Hibbits /* Copyright (c) 2008-2011 Freescale Semiconductor, Inc.
2*0aeed3e9SJustin Hibbits  * All rights reserved.
3*0aeed3e9SJustin Hibbits  *
4*0aeed3e9SJustin Hibbits  * Redistribution and use in source and binary forms, with or without
5*0aeed3e9SJustin Hibbits  * modification, are permitted provided that the following conditions are met:
6*0aeed3e9SJustin Hibbits  *     * Redistributions of source code must retain the above copyright
7*0aeed3e9SJustin Hibbits  *       notice, this list of conditions and the following disclaimer.
8*0aeed3e9SJustin Hibbits  *     * Redistributions in binary form must reproduce the above copyright
9*0aeed3e9SJustin Hibbits  *       notice, this list of conditions and the following disclaimer in the
10*0aeed3e9SJustin Hibbits  *       documentation and/or other materials provided with the distribution.
11*0aeed3e9SJustin Hibbits  *     * Neither the name of Freescale Semiconductor nor the
12*0aeed3e9SJustin Hibbits  *       names of its contributors may be used to endorse or promote products
13*0aeed3e9SJustin Hibbits  *       derived from this software without specific prior written permission.
14*0aeed3e9SJustin Hibbits  *
15*0aeed3e9SJustin Hibbits  *
16*0aeed3e9SJustin Hibbits  * ALTERNATIVELY, this software may be distributed under the terms of the
17*0aeed3e9SJustin Hibbits  * GNU General Public License ("GPL") as published by the Free Software
18*0aeed3e9SJustin Hibbits  * Foundation, either version 2 of that License or (at your option) any
19*0aeed3e9SJustin Hibbits  * later version.
20*0aeed3e9SJustin Hibbits  *
21*0aeed3e9SJustin Hibbits  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
22*0aeed3e9SJustin Hibbits  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23*0aeed3e9SJustin Hibbits  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24*0aeed3e9SJustin Hibbits  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
25*0aeed3e9SJustin Hibbits  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26*0aeed3e9SJustin Hibbits  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27*0aeed3e9SJustin Hibbits  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28*0aeed3e9SJustin Hibbits  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29*0aeed3e9SJustin Hibbits  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30*0aeed3e9SJustin Hibbits  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31*0aeed3e9SJustin Hibbits  */
32*0aeed3e9SJustin Hibbits 
33*0aeed3e9SJustin Hibbits /******************************************************************************
34*0aeed3e9SJustin Hibbits  @File          dpaa_ext.h
35*0aeed3e9SJustin Hibbits 
36*0aeed3e9SJustin Hibbits  @Description   DPAA Application Programming Interface.
37*0aeed3e9SJustin Hibbits *//***************************************************************************/
38*0aeed3e9SJustin Hibbits #ifndef __DPAA_EXT_H
39*0aeed3e9SJustin Hibbits #define __DPAA_EXT_H
40*0aeed3e9SJustin Hibbits 
41*0aeed3e9SJustin Hibbits #include "std_ext.h"
42*0aeed3e9SJustin Hibbits #include "error_ext.h"
43*0aeed3e9SJustin Hibbits 
44*0aeed3e9SJustin Hibbits 
45*0aeed3e9SJustin Hibbits /**************************************************************************//**
46*0aeed3e9SJustin Hibbits  @Group         DPAA_grp Data Path Acceleration Architecture API
47*0aeed3e9SJustin Hibbits 
48*0aeed3e9SJustin Hibbits  @Description   DPAA API functions, definitions and enums.
49*0aeed3e9SJustin Hibbits 
50*0aeed3e9SJustin Hibbits  @{
51*0aeed3e9SJustin Hibbits *//***************************************************************************/
52*0aeed3e9SJustin Hibbits 
53*0aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__)
54*0aeed3e9SJustin Hibbits #pragma pack(push,1)
55*0aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */
56*0aeed3e9SJustin Hibbits #define MEM_MAP_START
57*0aeed3e9SJustin Hibbits 
58*0aeed3e9SJustin Hibbits /**************************************************************************//**
59*0aeed3e9SJustin Hibbits  @Description   Frame descriptor
60*0aeed3e9SJustin Hibbits *//***************************************************************************/
61*0aeed3e9SJustin Hibbits typedef _Packed struct t_DpaaFD {
62*0aeed3e9SJustin Hibbits     volatile uint32_t    id;                /**< FD id */
63*0aeed3e9SJustin Hibbits     volatile uint32_t    addrl;             /**< Data Address */
64*0aeed3e9SJustin Hibbits     volatile uint32_t    length;            /**< Frame length */
65*0aeed3e9SJustin Hibbits     volatile uint32_t    status;            /**< FD status */
66*0aeed3e9SJustin Hibbits } _PackedType t_DpaaFD;
67*0aeed3e9SJustin Hibbits 
68*0aeed3e9SJustin Hibbits /**************************************************************************//**
69*0aeed3e9SJustin Hibbits  @Description   enum for defining frame format
70*0aeed3e9SJustin Hibbits *//***************************************************************************/
71*0aeed3e9SJustin Hibbits typedef enum e_DpaaFDFormatType {
72*0aeed3e9SJustin Hibbits     e_DPAA_FD_FORMAT_TYPE_SHORT_SBSF  = 0x0,   /**< Simple frame Single buffer; Offset and
73*0aeed3e9SJustin Hibbits                                                     small length (9b OFFSET, 20b LENGTH) */
74*0aeed3e9SJustin Hibbits     e_DPAA_FD_FORMAT_TYPE_LONG_SBSF   = 0x2,   /**< Simple frame, single buffer; big length
75*0aeed3e9SJustin Hibbits                                                     (29b LENGTH ,No OFFSET) */
76*0aeed3e9SJustin Hibbits     e_DPAA_FD_FORMAT_TYPE_SHORT_MBSF  = 0x4,   /**< Simple frame, Scatter Gather table; Offset
77*0aeed3e9SJustin Hibbits                                                     and small length (9b OFFSET, 20b LENGTH) */
78*0aeed3e9SJustin Hibbits     e_DPAA_FD_FORMAT_TYPE_LONG_MBSF   = 0x6,   /**< Simple frame, Scatter Gather table;
79*0aeed3e9SJustin Hibbits                                                     big length (29b LENGTH ,No OFFSET) */
80*0aeed3e9SJustin Hibbits     e_DPAA_FD_FORMAT_TYPE_COMPOUND    = 0x1,   /**< Compound Frame (29b CONGESTION-WEIGHT
81*0aeed3e9SJustin Hibbits                                                     No LENGTH or OFFSET) */
82*0aeed3e9SJustin Hibbits     e_DPAA_FD_FORMAT_TYPE_DUMMY
83*0aeed3e9SJustin Hibbits } e_DpaaFDFormatType;
84*0aeed3e9SJustin Hibbits 
85*0aeed3e9SJustin Hibbits /**************************************************************************//**
86*0aeed3e9SJustin Hibbits  @Collection   Frame descriptor macros
87*0aeed3e9SJustin Hibbits *//***************************************************************************/
88*0aeed3e9SJustin Hibbits #define DPAA_FD_DD_MASK       0xc0000000           /**< FD DD field mask */
89*0aeed3e9SJustin Hibbits #define DPAA_FD_PID_MASK      0x3f000000           /**< FD PID field mask */
90*0aeed3e9SJustin Hibbits #define DPAA_FD_ELIODN_MASK   0x0000f000           /**< FD ELIODN field mask */
91*0aeed3e9SJustin Hibbits #define DPAA_FD_BPID_MASK     0x00ff0000           /**< FD BPID field mask */
92*0aeed3e9SJustin Hibbits #define DPAA_FD_ADDRH_MASK    0x000000ff           /**< FD ADDRH field mask */
93*0aeed3e9SJustin Hibbits #define DPAA_FD_ADDRL_MASK    0xffffffff           /**< FD ADDRL field mask */
94*0aeed3e9SJustin Hibbits #define DPAA_FD_FORMAT_MASK   0xe0000000           /**< FD FORMAT field mask */
95*0aeed3e9SJustin Hibbits #define DPAA_FD_OFFSET_MASK   0x1ff00000           /**< FD OFFSET field mask */
96*0aeed3e9SJustin Hibbits #define DPAA_FD_LENGTH_MASK   0x000fffff           /**< FD LENGTH field mask */
97*0aeed3e9SJustin Hibbits 
98*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_DD(fd)            ((((t_DpaaFD *)fd)->id & DPAA_FD_DD_MASK) >> (31-1))              /**< Macro to get FD DD field */
99*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_PID(fd)           (((((t_DpaaFD *)fd)->id & DPAA_FD_PID_MASK) >> (31-7)) | \
100*0aeed3e9SJustin Hibbits                                         ((((t_DpaaFD *)fd)->id & DPAA_FD_ELIODN_MASK) >> (31-19-6)))    /**< Macro to get FD PID field */
101*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_BPID(fd)          ((((t_DpaaFD *)fd)->id & DPAA_FD_BPID_MASK) >> (31-15))           /**< Macro to get FD BPID field */
102*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_ADDRH(fd)         (((t_DpaaFD *)fd)->id & DPAA_FD_ADDRH_MASK)                       /**< Macro to get FD ADDRH field */
103*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_ADDRL(fd)         ((t_DpaaFD *)fd)->addrl                                           /**< Macro to get FD ADDRL field */
104*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_PHYS_ADDR(fd)     ((physAddress_t)(((uint64_t)DPAA_FD_GET_ADDRH(fd) << 32) | (uint64_t)DPAA_FD_GET_ADDRL(fd))) /**< Macro to get FD ADDR field */
105*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_FORMAT(fd)        ((((t_DpaaFD *)fd)->length & DPAA_FD_FORMAT_MASK) >> (31-2))      /**< Macro to get FD FORMAT field */
106*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_OFFSET(fd)        ((((t_DpaaFD *)fd)->length & DPAA_FD_OFFSET_MASK) >> (31-11))     /**< Macro to get FD OFFSET field */
107*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_LENGTH(fd)        (((t_DpaaFD *)fd)->length & DPAA_FD_LENGTH_MASK)                  /**< Macro to get FD LENGTH field */
108*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_STATUS(fd)        ((t_DpaaFD *)fd)->status                                          /**< Macro to get FD STATUS field */
109*0aeed3e9SJustin Hibbits #define DPAA_FD_GET_ADDR(fd)          XX_PhysToVirt(DPAA_FD_GET_PHYS_ADDR(fd))
110*0aeed3e9SJustin Hibbits 
111*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_DD(fd,val)        (((t_DpaaFD *)fd)->id = ((((t_DpaaFD *)fd)->id & ~DPAA_FD_DD_MASK) | (((val) << (31-1)) & DPAA_FD_DD_MASK )))      /**< Macro to set FD DD field */
112*0aeed3e9SJustin Hibbits                                                                                                         /**< Macro to set FD PID field or LIODN offset*/
113*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_PID(fd,val)       (((t_DpaaFD *)fd)->id = ((((t_DpaaFD *)fd)->id & ~(DPAA_FD_PID_MASK|DPAA_FD_ELIODN_MASK)) | ((((val) << (31-7)) & DPAA_FD_PID_MASK) | ((((val)>>6) << (31-19)) & DPAA_FD_ELIODN_MASK))))
114*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_BPID(fd,val)      (((t_DpaaFD *)fd)->id = ((((t_DpaaFD *)fd)->id & ~DPAA_FD_BPID_MASK) | (((val)  << (31-15)) & DPAA_FD_BPID_MASK))) /**< Macro to set FD BPID field */
115*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_ADDRH(fd,val)     (((t_DpaaFD *)fd)->id = ((((t_DpaaFD *)fd)->id & ~DPAA_FD_ADDRH_MASK) | ((val) & DPAA_FD_ADDRH_MASK)))            /**< Macro to set FD ADDRH field */
116*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_ADDRL(fd,val)     ((t_DpaaFD *)fd)->addrl = (val)                                     /**< Macro to set FD ADDRL field */
117*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_ADDR(fd,val)                            \
118*0aeed3e9SJustin Hibbits do {                                                        \
119*0aeed3e9SJustin Hibbits     uint64_t physAddr = (uint64_t)(XX_VirtToPhys(val));     \
120*0aeed3e9SJustin Hibbits     DPAA_FD_SET_ADDRH(fd, ((uint32_t)(physAddr >> 32)));    \
121*0aeed3e9SJustin Hibbits     DPAA_FD_SET_ADDRL(fd, (uint32_t)physAddr);              \
122*0aeed3e9SJustin Hibbits } while (0)                                                                                             /**< Macro to set FD ADDR field */
123*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_FORMAT(fd,val)    (((t_DpaaFD *)fd)->length = ((((t_DpaaFD *)fd)->length & ~DPAA_FD_FORMAT_MASK) | (((val)  << (31-2))& DPAA_FD_FORMAT_MASK)))  /**< Macro to set FD FORMAT field */
124*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_OFFSET(fd,val)    (((t_DpaaFD *)fd)->length = ((((t_DpaaFD *)fd)->length & ~DPAA_FD_OFFSET_MASK) | (((val) << (31-11))& DPAA_FD_OFFSET_MASK) )) /**< Macro to set FD OFFSET field */
125*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_LENGTH(fd,val)    (((t_DpaaFD *)fd)->length = (((t_DpaaFD *)fd)->length & ~DPAA_FD_LENGTH_MASK) | ((val) & DPAA_FD_LENGTH_MASK))                /**< Macro to set FD LENGTH field */
126*0aeed3e9SJustin Hibbits #define DPAA_FD_SET_STATUS(fd,val)    ((t_DpaaFD *)fd)->status = (val)                                    /**< Macro to set FD STATUS field */
127*0aeed3e9SJustin Hibbits /* @} */
128*0aeed3e9SJustin Hibbits 
129*0aeed3e9SJustin Hibbits /**************************************************************************//**
130*0aeed3e9SJustin Hibbits  @Description   Frame Scatter/Gather Table Entry
131*0aeed3e9SJustin Hibbits *//***************************************************************************/
132*0aeed3e9SJustin Hibbits typedef _Packed struct t_DpaaSGTE {
133*0aeed3e9SJustin Hibbits     volatile uint32_t    addrh;        /**< Buffer Address high */
134*0aeed3e9SJustin Hibbits     volatile uint32_t    addrl;        /**< Buffer Address low */
135*0aeed3e9SJustin Hibbits     volatile uint32_t    length;       /**< Buffer length */
136*0aeed3e9SJustin Hibbits     volatile uint32_t    offset;       /**< SGTE offset */
137*0aeed3e9SJustin Hibbits } _PackedType t_DpaaSGTE;
138*0aeed3e9SJustin Hibbits 
139*0aeed3e9SJustin Hibbits #define DPAA_NUM_OF_SG_TABLE_ENTRY 16
140*0aeed3e9SJustin Hibbits 
141*0aeed3e9SJustin Hibbits /**************************************************************************//**
142*0aeed3e9SJustin Hibbits  @Description   Frame Scatter/Gather Table
143*0aeed3e9SJustin Hibbits *//***************************************************************************/
144*0aeed3e9SJustin Hibbits typedef _Packed struct t_DpaaSGT {
145*0aeed3e9SJustin Hibbits     t_DpaaSGTE    tableEntry[DPAA_NUM_OF_SG_TABLE_ENTRY];
146*0aeed3e9SJustin Hibbits                                     /**< structure that hold the information about
147*0aeed3e9SJustin Hibbits                                          a single S/G entry. */
148*0aeed3e9SJustin Hibbits } _PackedType t_DpaaSGT;
149*0aeed3e9SJustin Hibbits 
150*0aeed3e9SJustin Hibbits /**************************************************************************//**
151*0aeed3e9SJustin Hibbits  @Description   Compound Frame Table
152*0aeed3e9SJustin Hibbits *//***************************************************************************/
153*0aeed3e9SJustin Hibbits typedef _Packed struct t_DpaaCompTbl {
154*0aeed3e9SJustin Hibbits     t_DpaaSGTE    outputBuffInfo;   /**< structure that holds the information about
155*0aeed3e9SJustin Hibbits                                          the compound-frame output buffer;
156*0aeed3e9SJustin Hibbits                                          NOTE: this may point to a S/G table */
157*0aeed3e9SJustin Hibbits     t_DpaaSGTE    inputBuffInfo;    /**< structure that holds the information about
158*0aeed3e9SJustin Hibbits                                          the compound-frame input buffer;
159*0aeed3e9SJustin Hibbits                                          NOTE: this may point to a S/G table */
160*0aeed3e9SJustin Hibbits } _PackedType t_DpaaCompTbl;
161*0aeed3e9SJustin Hibbits 
162*0aeed3e9SJustin Hibbits /**************************************************************************//**
163*0aeed3e9SJustin Hibbits  @Collection   Frame Scatter/Gather Table Entry macros
164*0aeed3e9SJustin Hibbits *//***************************************************************************/
165*0aeed3e9SJustin Hibbits #define DPAA_SGTE_ADDRH_MASK    0x000000ff           /**< SGTE ADDRH field mask */
166*0aeed3e9SJustin Hibbits #define DPAA_SGTE_ADDRL_MASK    0xffffffff           /**< SGTE ADDRL field mask */
167*0aeed3e9SJustin Hibbits #define DPAA_SGTE_E_MASK        0x80000000           /**< SGTE Extension field mask */
168*0aeed3e9SJustin Hibbits #define DPAA_SGTE_F_MASK        0x40000000           /**< SGTE Final field mask */
169*0aeed3e9SJustin Hibbits #define DPAA_SGTE_LENGTH_MASK   0x3fffffff           /**< SGTE LENGTH field mask */
170*0aeed3e9SJustin Hibbits #define DPAA_SGTE_BPID_MASK     0x00ff0000           /**< SGTE BPID field mask */
171*0aeed3e9SJustin Hibbits #define DPAA_SGTE_OFFSET_MASK   0x00001fff           /**< SGTE OFFSET field mask */
172*0aeed3e9SJustin Hibbits 
173*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_ADDRH(sgte)         (((t_DpaaSGTE *)sgte)->addrh & DPAA_SGTE_ADDRH_MASK)              /**< Macro to get SGTE ADDRH field */
174*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_ADDRL(sgte)         ((t_DpaaSGTE *)sgte)->addrl                                       /**< Macro to get SGTE ADDRL field */
175*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_PHYS_ADDR(sgte)     ((physAddress_t)(((uint64_t)DPAA_SGTE_GET_ADDRH(sgte) << 32) | (uint64_t)DPAA_SGTE_GET_ADDRL(sgte))) /**< Macro to get FD ADDR field */
176*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_EXTENSION(sgte)     ((((t_DpaaSGTE *)sgte)->length & DPAA_SGTE_E_MASK) >> (31-0))     /**< Macro to get SGTE EXTENSION field */
177*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_FINAL(sgte)         ((((t_DpaaSGTE *)sgte)->length & DPAA_SGTE_F_MASK) >> (31-1))     /**< Macro to get SGTE FINAL field */
178*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_LENGTH(sgte)        (((t_DpaaSGTE *)sgte)->length & DPAA_SGTE_LENGTH_MASK)            /**< Macro to get SGTE LENGTH field */
179*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_BPID(sgte)          ((((t_DpaaSGTE *)sgte)->offset & DPAA_SGTE_BPID_MASK) >> (31-15)) /**< Macro to get SGTE BPID field */
180*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_OFFSET(sgte)        (((t_DpaaSGTE *)sgte)->offset & DPAA_SGTE_OFFSET_MASK)            /**< Macro to get SGTE OFFSET field */
181*0aeed3e9SJustin Hibbits #define DPAA_SGTE_GET_ADDR(sgte)          XX_PhysToVirt(DPAA_SGTE_GET_PHYS_ADDR(sgte))
182*0aeed3e9SJustin Hibbits 
183*0aeed3e9SJustin Hibbits #define DPAA_SGTE_SET_ADDRH(sgte,val)     (((t_DpaaSGTE *)sgte)->addrh = ((((t_DpaaSGTE *)sgte)->addrh & ~DPAA_SGTE_ADDRH_MASK) | ((val) & DPAA_SGTE_ADDRH_MASK))) /**< Macro to set SGTE ADDRH field */
184*0aeed3e9SJustin Hibbits #define DPAA_SGTE_SET_ADDRL(sgte,val)     ((t_DpaaSGTE *)sgte)->addrl = (val)                                 /**< Macro to set SGTE ADDRL field */
185*0aeed3e9SJustin Hibbits #define DPAA_SGTE_SET_ADDR(sgte,val)                            \
186*0aeed3e9SJustin Hibbits do {                                                            \
187*0aeed3e9SJustin Hibbits     uint64_t physAddr = (uint64_t)(XX_VirtToPhys(val));         \
188*0aeed3e9SJustin Hibbits     DPAA_SGTE_SET_ADDRH(sgte, ((uint32_t)(physAddr >> 32)));    \
189*0aeed3e9SJustin Hibbits     DPAA_SGTE_SET_ADDRL(sgte, (uint32_t)physAddr);              \
190*0aeed3e9SJustin Hibbits } while (0)                                                                                                 /**< Macro to set SGTE ADDR field */
191*0aeed3e9SJustin Hibbits #define DPAA_SGTE_SET_EXTENSION(sgte,val) (((t_DpaaSGTE *)sgte)->length = ((((t_DpaaSGTE *)sgte)->length & ~DPAA_SGTE_E_MASK) | (((val)  << (31-0))& DPAA_SGTE_E_MASK)))            /**< Macro to set SGTE EXTENSION field */
192*0aeed3e9SJustin Hibbits #define DPAA_SGTE_SET_FINAL(sgte,val)     (((t_DpaaSGTE *)sgte)->length = ((((t_DpaaSGTE *)sgte)->length & ~DPAA_SGTE_F_MASK) | (((val)  << (31-1))& DPAA_SGTE_F_MASK)))            /**< Macro to set SGTE FINAL field */
193*0aeed3e9SJustin Hibbits #define DPAA_SGTE_SET_LENGTH(sgte,val)    (((t_DpaaSGTE *)sgte)->length = (((t_DpaaSGTE *)sgte)->length & ~DPAA_SGTE_LENGTH_MASK) | ((val) & DPAA_SGTE_LENGTH_MASK))                /**< Macro to set SGTE LENGTH field */
194*0aeed3e9SJustin Hibbits #define DPAA_SGTE_SET_BPID(sgte,val)      (((t_DpaaSGTE *)sgte)->offset = ((((t_DpaaSGTE *)sgte)->offset & ~DPAA_SGTE_BPID_MASK) | (((val)  << (31-15))& DPAA_SGTE_BPID_MASK)))     /**< Macro to set SGTE BPID field */
195*0aeed3e9SJustin Hibbits #define DPAA_SGTE_SET_OFFSET(sgte,val)    (((t_DpaaSGTE *)sgte)->offset = ((((t_DpaaSGTE *)sgte)->offset & ~DPAA_SGTE_OFFSET_MASK) | (((val) << (31-31))& DPAA_SGTE_OFFSET_MASK) )) /**< Macro to set SGTE OFFSET field */
196*0aeed3e9SJustin Hibbits /* @} */
197*0aeed3e9SJustin Hibbits 
198*0aeed3e9SJustin Hibbits #define MEM_MAP_END
199*0aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__)
200*0aeed3e9SJustin Hibbits #pragma pack(pop)
201*0aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */
202*0aeed3e9SJustin Hibbits 
203*0aeed3e9SJustin Hibbits /** @} */ /* end of DPAA_grp group */
204*0aeed3e9SJustin Hibbits 
205*0aeed3e9SJustin Hibbits 
206*0aeed3e9SJustin Hibbits #endif /* __DPAA_EXT_H */
207