1 /* MPI register descriptions */
3 #define CVMX_MPI_CFG (CVMX_ADD_IO_SEG(0x0001070000001000ull))
4 #define CVMX_MPI_DATX(offset) (CVMX_ADD_IO_SEG(0x0001070000001080ull) + ((offset) & 15) * 8)
5 #define CVMX_MPI_STS (CVMX_ADD_IO_SEG(0x0001070000001008ull))
6 #define CVMX_MPI_TX (CVMX_ADD_IO_SEG(0x0001070000001010ull))
10 struct cvmx_mpi_cfg_s
{
11 #ifdef __BIG_ENDIAN_BITFIELD
12 uint64_t reserved_29_63
:35;
46 uint64_t reserved_29_63
:35;
49 struct cvmx_mpi_cfg_cn30xx
{
50 #ifdef __BIG_ENDIAN_BITFIELD
51 uint64_t reserved_29_63
:35;
53 uint64_t reserved_12_15
:4;
77 uint64_t reserved_12_15
:4;
79 uint64_t reserved_29_63
:35;
82 struct cvmx_mpi_cfg_cn31xx
{
83 #ifdef __BIG_ENDIAN_BITFIELD
84 uint64_t reserved_29_63
:35;
86 uint64_t reserved_11_15
:5;
108 uint64_t reserved_11_15
:5;
110 uint64_t reserved_29_63
:35;
113 struct cvmx_mpi_cfg_cn30xx cn50xx
;
114 struct cvmx_mpi_cfg_cn61xx
{
115 #ifdef __BIG_ENDIAN_BITFIELD
116 uint64_t reserved_29_63
:35;
118 uint64_t reserved_14_15
:2;
125 uint64_t reserved_6_6
:1;
139 uint64_t reserved_6_6
:1;
146 uint64_t reserved_14_15
:2;
148 uint64_t reserved_29_63
:35;
151 struct cvmx_mpi_cfg_cn66xx
{
152 #ifdef __BIG_ENDIAN_BITFIELD
153 uint64_t reserved_29_63
:35;
157 uint64_t reserved_12_13
:2;
162 uint64_t reserved_6_6
:1;
176 uint64_t reserved_6_6
:1;
181 uint64_t reserved_12_13
:2;
185 uint64_t reserved_29_63
:35;
188 struct cvmx_mpi_cfg_cn61xx cnf71xx
;
191 union cvmx_mpi_datx
{
193 struct cvmx_mpi_datx_s
{
194 #ifdef __BIG_ENDIAN_BITFIELD
195 uint64_t reserved_8_63
:56;
199 uint64_t reserved_8_63
:56;
202 struct cvmx_mpi_datx_s cn30xx
;
203 struct cvmx_mpi_datx_s cn31xx
;
204 struct cvmx_mpi_datx_s cn50xx
;
205 struct cvmx_mpi_datx_s cn61xx
;
206 struct cvmx_mpi_datx_s cn66xx
;
207 struct cvmx_mpi_datx_s cnf71xx
;
212 struct cvmx_mpi_sts_s
{
213 #ifdef __BIG_ENDIAN_BITFIELD
214 uint64_t reserved_13_63
:51;
216 uint64_t reserved_1_7
:7;
220 uint64_t reserved_1_7
:7;
222 uint64_t reserved_13_63
:51;
225 struct cvmx_mpi_sts_s cn30xx
;
226 struct cvmx_mpi_sts_s cn31xx
;
227 struct cvmx_mpi_sts_s cn50xx
;
228 struct cvmx_mpi_sts_s cn61xx
;
229 struct cvmx_mpi_sts_s cn66xx
;
230 struct cvmx_mpi_sts_s cnf71xx
;
235 struct cvmx_mpi_tx_s
{
236 #ifdef __BIG_ENDIAN_BITFIELD
237 uint64_t reserved_22_63
:42;
239 uint64_t reserved_17_19
:3;
241 uint64_t reserved_13_15
:3;
243 uint64_t reserved_5_7
:3;
247 uint64_t reserved_5_7
:3;
249 uint64_t reserved_13_15
:3;
251 uint64_t reserved_17_19
:3;
253 uint64_t reserved_22_63
:42;
256 struct cvmx_mpi_tx_cn30xx
{
257 #ifdef __BIG_ENDIAN_BITFIELD
258 uint64_t reserved_17_63
:47;
260 uint64_t reserved_13_15
:3;
262 uint64_t reserved_5_7
:3;
266 uint64_t reserved_5_7
:3;
268 uint64_t reserved_13_15
:3;
270 uint64_t reserved_17_63
:47;
273 struct cvmx_mpi_tx_cn30xx cn31xx
;
274 struct cvmx_mpi_tx_cn30xx cn50xx
;
275 struct cvmx_mpi_tx_cn61xx
{
276 #ifdef __BIG_ENDIAN_BITFIELD
277 uint64_t reserved_21_63
:43;
279 uint64_t reserved_17_19
:3;
281 uint64_t reserved_13_15
:3;
283 uint64_t reserved_5_7
:3;
287 uint64_t reserved_5_7
:3;
289 uint64_t reserved_13_15
:3;
291 uint64_t reserved_17_19
:3;
293 uint64_t reserved_21_63
:43;
296 struct cvmx_mpi_tx_s cn66xx
;
297 struct cvmx_mpi_tx_cn61xx cnf71xx
;