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;