xref: /freebsd/sys/dev/sfxge/common/efx_regs_mcdi_aoe.h (revision 8ddb146abcdf061be9f2c0db7e391697dafad85c)
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3  *
4  * Copyright 2008-2018 Solarflare Communications Inc.  All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25  * SUCH DAMAGE.
26  *
27  * $FreeBSD$
28  */
29 
30 #ifndef _SYS_EFX_REGS_MCDI_AOE_H
31 #define	_SYS_EFX_REGS_MCDI_AOE_H
32 
33 /***********************************/
34 /* MC_CMD_FC
35  * Perform an FC operation
36  */
37 #define	MC_CMD_FC 0x9
38 
39 /* MC_CMD_FC_IN msgrequest */
40 #define	MC_CMD_FC_IN_LEN 4
41 #define	MC_CMD_FC_IN_OP_HDR_OFST 0
42 #define	MC_CMD_FC_IN_OP_HDR_LEN 4
43 #define	MC_CMD_FC_IN_OP_LBN 0
44 #define	MC_CMD_FC_IN_OP_WIDTH 8
45 /* enum: NULL MCDI command to FC. */
46 #define	MC_CMD_FC_OP_NULL 0x1
47 /* enum: Unused opcode */
48 #define	MC_CMD_FC_OP_UNUSED 0x2
49 /* enum: MAC driver commands */
50 #define	MC_CMD_FC_OP_MAC 0x3
51 /* enum: Read FC memory */
52 #define	MC_CMD_FC_OP_READ32 0x4
53 /* enum: Write to FC memory */
54 #define	MC_CMD_FC_OP_WRITE32 0x5
55 /* enum: Read FC memory */
56 #define	MC_CMD_FC_OP_TRC_READ 0x6
57 /* enum: Write to FC memory */
58 #define	MC_CMD_FC_OP_TRC_WRITE 0x7
59 /* enum: FC firmware Version */
60 #define	MC_CMD_FC_OP_GET_VERSION 0x8
61 /* enum: Read FC memory */
62 #define	MC_CMD_FC_OP_TRC_RX_READ 0x9
63 /* enum: Write to FC memory */
64 #define	MC_CMD_FC_OP_TRC_RX_WRITE 0xa
65 /* enum: SFP parameters */
66 #define	MC_CMD_FC_OP_SFP 0xb
67 /* enum: DDR3 test */
68 #define	MC_CMD_FC_OP_DDR_TEST 0xc
69 /* enum: Get Crash context from FC */
70 #define	MC_CMD_FC_OP_GET_ASSERT 0xd
71 /* enum: Get FPGA Build registers */
72 #define	MC_CMD_FC_OP_FPGA_BUILD 0xe
73 /* enum: Read map support commands */
74 #define	MC_CMD_FC_OP_READ_MAP 0xf
75 /* enum: FC Capabilities */
76 #define	MC_CMD_FC_OP_CAPABILITIES 0x10
77 /* enum: FC Global flags */
78 #define	MC_CMD_FC_OP_GLOBAL_FLAGS 0x11
79 /* enum: FC IO using relative addressing modes */
80 #define	MC_CMD_FC_OP_IO_REL 0x12
81 /* enum: FPGA link information */
82 #define	MC_CMD_FC_OP_UHLINK 0x13
83 /* enum: Configure loopbacks and link on FPGA ports */
84 #define	MC_CMD_FC_OP_SET_LINK 0x14
85 /* enum: Licensing operations relating to AOE */
86 #define	MC_CMD_FC_OP_LICENSE 0x15
87 /* enum: Startup information to the FC */
88 #define	MC_CMD_FC_OP_STARTUP 0x16
89 /* enum: Configure a DMA read */
90 #define	MC_CMD_FC_OP_DMA 0x17
91 /* enum: Configure a timed read */
92 #define	MC_CMD_FC_OP_TIMED_READ 0x18
93 /* enum: Control UART logging */
94 #define	MC_CMD_FC_OP_LOG 0x19
95 /* enum: Get the value of a given clock_id */
96 #define	MC_CMD_FC_OP_CLOCK 0x1a
97 /* enum: DDR3/QDR3 parameters */
98 #define	MC_CMD_FC_OP_DDR 0x1b
99 /* enum: PTP and timestamp control */
100 #define	MC_CMD_FC_OP_TIMESTAMP 0x1c
101 /* enum: Commands for SPI Flash interface */
102 #define	MC_CMD_FC_OP_SPI 0x1d
103 /* enum: Commands for diagnostic components */
104 #define	MC_CMD_FC_OP_DIAG 0x1e
105 /* enum: External AOE port. */
106 #define	MC_CMD_FC_IN_PORT_EXT_OFST 0x0
107 /* enum: Internal AOE port. */
108 #define	MC_CMD_FC_IN_PORT_INT_OFST 0x40
109 
110 /* MC_CMD_FC_IN_NULL msgrequest */
111 #define	MC_CMD_FC_IN_NULL_LEN 4
112 #define	MC_CMD_FC_IN_CMD_OFST 0
113 #define	MC_CMD_FC_IN_CMD_LEN 4
114 
115 /* MC_CMD_FC_IN_PHY msgrequest */
116 #define	MC_CMD_FC_IN_PHY_LEN 5
117 /*            MC_CMD_FC_IN_CMD_OFST 0 */
118 /*            MC_CMD_FC_IN_CMD_LEN 4 */
119 /* FC PHY driver operation code */
120 #define	MC_CMD_FC_IN_PHY_OP_OFST 4
121 #define	MC_CMD_FC_IN_PHY_OP_LEN 1
122 /* enum: PHY init handler */
123 #define	MC_CMD_FC_OP_PHY_OP_INIT 0x1
124 /* enum: PHY reconfigure handler */
125 #define	MC_CMD_FC_OP_PHY_OP_RECONFIGURE 0x2
126 /* enum: PHY reboot handler */
127 #define	MC_CMD_FC_OP_PHY_OP_REBOOT 0x3
128 /* enum: PHY get_supported_cap handler */
129 #define	MC_CMD_FC_OP_PHY_OP_GET_SUPPORTED_CAP 0x4
130 /* enum: PHY get_config handler */
131 #define	MC_CMD_FC_OP_PHY_OP_GET_CONFIG 0x5
132 /* enum: PHY get_media_info handler */
133 #define	MC_CMD_FC_OP_PHY_OP_GET_MEDIA_INFO 0x6
134 /* enum: PHY set_led handler */
135 #define	MC_CMD_FC_OP_PHY_OP_SET_LED 0x7
136 /* enum: PHY lasi_interrupt handler */
137 #define	MC_CMD_FC_OP_PHY_OP_LASI_INTERRUPT 0x8
138 /* enum: PHY check_link handler */
139 #define	MC_CMD_FC_OP_PHY_OP_CHECK_LINK 0x9
140 /* enum: PHY fill_stats handler */
141 #define	MC_CMD_FC_OP_PHY_OP_FILL_STATS 0xa
142 /* enum: PHY bpx_link_state_changed handler */
143 #define	MC_CMD_FC_OP_PHY_OP_BPX_LINK_STATE_CHANGED 0xb
144 /* enum: PHY get_state handler */
145 #define	MC_CMD_FC_OP_PHY_OP_GET_STATE 0xc
146 /* enum: PHY start_bist handler */
147 #define	MC_CMD_FC_OP_PHY_OP_START_BIST 0xd
148 /* enum: PHY poll_bist handler */
149 #define	MC_CMD_FC_OP_PHY_OP_POLL_BIST 0xe
150 /* enum: PHY nvram_test handler */
151 #define	MC_CMD_FC_OP_PHY_OP_NVRAM_TEST 0xf
152 /* enum: PHY relinquish handler */
153 #define	MC_CMD_FC_OP_PHY_OP_RELINQUISH_SPI 0x10
154 /* enum: PHY read connection from FC - may be not required */
155 #define	MC_CMD_FC_OP_PHY_OP_GET_CONNECTION 0x11
156 /* enum: PHY read flags from FC - may be not required */
157 #define	MC_CMD_FC_OP_PHY_OP_GET_FLAGS 0x12
158 
159 /* MC_CMD_FC_IN_PHY_INIT msgrequest */
160 #define	MC_CMD_FC_IN_PHY_INIT_LEN 4
161 #define	MC_CMD_FC_IN_PHY_CMD_OFST 0
162 #define	MC_CMD_FC_IN_PHY_CMD_LEN 4
163 
164 /* MC_CMD_FC_IN_MAC msgrequest */
165 #define	MC_CMD_FC_IN_MAC_LEN 8
166 /*            MC_CMD_FC_IN_CMD_OFST 0 */
167 /*            MC_CMD_FC_IN_CMD_LEN 4 */
168 #define	MC_CMD_FC_IN_MAC_HEADER_OFST 4
169 #define	MC_CMD_FC_IN_MAC_HEADER_LEN 4
170 #define	MC_CMD_FC_IN_MAC_OP_LBN 0
171 #define	MC_CMD_FC_IN_MAC_OP_WIDTH 8
172 /* enum: MAC reconfigure handler */
173 #define	MC_CMD_FC_OP_MAC_OP_RECONFIGURE 0x1
174 /* enum: MAC Set command - same as MC_CMD_SET_MAC */
175 #define	MC_CMD_FC_OP_MAC_OP_SET_LINK 0x2
176 /* enum: MAC statistics */
177 #define	MC_CMD_FC_OP_MAC_OP_GET_STATS 0x3
178 /* enum: MAC RX statistics */
179 #define	MC_CMD_FC_OP_MAC_OP_GET_RX_STATS 0x6
180 /* enum: MAC TX statistics */
181 #define	MC_CMD_FC_OP_MAC_OP_GET_TX_STATS 0x7
182 /* enum: MAC Read status */
183 #define	MC_CMD_FC_OP_MAC_OP_READ_STATUS 0x8
184 #define	MC_CMD_FC_IN_MAC_PORT_TYPE_LBN 8
185 #define	MC_CMD_FC_IN_MAC_PORT_TYPE_WIDTH 8
186 /* enum: External FPGA port. */
187 #define	MC_CMD_FC_PORT_EXT 0x0
188 /* enum: Internal Siena-facing FPGA ports. */
189 #define	MC_CMD_FC_PORT_INT 0x1
190 #define	MC_CMD_FC_IN_MAC_PORT_IDX_LBN 16
191 #define	MC_CMD_FC_IN_MAC_PORT_IDX_WIDTH 8
192 #define	MC_CMD_FC_IN_MAC_CMD_FORMAT_LBN 24
193 #define	MC_CMD_FC_IN_MAC_CMD_FORMAT_WIDTH 8
194 /* enum: Default FC command format; the fields PORT_TYPE and PORT_IDX are
195  * irrelevant. Port number is derived from pci_fn; passed in FC header.
196  */
197 #define	MC_CMD_FC_OP_MAC_CMD_FORMAT_DEFAULT 0x0
198 /* enum: Override default port number. Port number determined by fields
199  * PORT_TYPE and PORT_IDX.
200  */
201 #define	MC_CMD_FC_OP_MAC_CMD_FORMAT_PORT_OVERRIDE 0x1
202 
203 /* MC_CMD_FC_IN_MAC_RECONFIGURE msgrequest */
204 #define	MC_CMD_FC_IN_MAC_RECONFIGURE_LEN 8
205 /*            MC_CMD_FC_IN_CMD_OFST 0 */
206 /*            MC_CMD_FC_IN_CMD_LEN 4 */
207 /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
208 /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
209 
210 /* MC_CMD_FC_IN_MAC_SET_LINK msgrequest */
211 #define	MC_CMD_FC_IN_MAC_SET_LINK_LEN 32
212 /*            MC_CMD_FC_IN_CMD_OFST 0 */
213 /*            MC_CMD_FC_IN_CMD_LEN 4 */
214 /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
215 /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
216 /* MTU size */
217 #define	MC_CMD_FC_IN_MAC_SET_LINK_MTU_OFST 8
218 #define	MC_CMD_FC_IN_MAC_SET_LINK_MTU_LEN 4
219 /* Drain Tx FIFO */
220 #define	MC_CMD_FC_IN_MAC_SET_LINK_DRAIN_OFST 12
221 #define	MC_CMD_FC_IN_MAC_SET_LINK_DRAIN_LEN 4
222 #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_OFST 16
223 #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LEN 8
224 #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LO_OFST 16
225 #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_HI_OFST 20
226 #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_OFST 24
227 #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_LEN 4
228 #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_UNICAST_LBN 0
229 #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_UNICAST_WIDTH 1
230 #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_BRDCAST_LBN 1
231 #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_BRDCAST_WIDTH 1
232 #define	MC_CMD_FC_IN_MAC_SET_LINK_FCNTL_OFST 28
233 #define	MC_CMD_FC_IN_MAC_SET_LINK_FCNTL_LEN 4
234 
235 /* MC_CMD_FC_IN_MAC_READ_STATUS msgrequest */
236 #define	MC_CMD_FC_IN_MAC_READ_STATUS_LEN 8
237 /*            MC_CMD_FC_IN_CMD_OFST 0 */
238 /*            MC_CMD_FC_IN_CMD_LEN 4 */
239 /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
240 /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
241 
242 /* MC_CMD_FC_IN_MAC_GET_RX_STATS msgrequest */
243 #define	MC_CMD_FC_IN_MAC_GET_RX_STATS_LEN 8
244 /*            MC_CMD_FC_IN_CMD_OFST 0 */
245 /*            MC_CMD_FC_IN_CMD_LEN 4 */
246 /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
247 /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
248 
249 /* MC_CMD_FC_IN_MAC_GET_TX_STATS msgrequest */
250 #define	MC_CMD_FC_IN_MAC_GET_TX_STATS_LEN 8
251 /*            MC_CMD_FC_IN_CMD_OFST 0 */
252 /*            MC_CMD_FC_IN_CMD_LEN 4 */
253 /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
254 /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
255 
256 /* MC_CMD_FC_IN_MAC_GET_STATS msgrequest */
257 #define	MC_CMD_FC_IN_MAC_GET_STATS_LEN 20
258 /*            MC_CMD_FC_IN_CMD_OFST 0 */
259 /*            MC_CMD_FC_IN_CMD_LEN 4 */
260 /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
261 /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
262 /* MC Statistics index */
263 #define	MC_CMD_FC_IN_MAC_GET_STATS_STATS_INDEX_OFST 8
264 #define	MC_CMD_FC_IN_MAC_GET_STATS_STATS_INDEX_LEN 4
265 #define	MC_CMD_FC_IN_MAC_GET_STATS_FLAGS_OFST 12
266 #define	MC_CMD_FC_IN_MAC_GET_STATS_FLAGS_LEN 4
267 #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_ALL_LBN 0
268 #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_ALL_WIDTH 1
269 #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_LBN 1
270 #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_WIDTH 1
271 #define	MC_CMD_FC_IN_MAC_GET_STATS_UPDATE_LBN 2
272 #define	MC_CMD_FC_IN_MAC_GET_STATS_UPDATE_WIDTH 1
273 /* Number of statistics to read */
274 #define	MC_CMD_FC_IN_MAC_GET_STATS_NUM_OFST 16
275 #define	MC_CMD_FC_IN_MAC_GET_STATS_NUM_LEN 4
276 #define	MC_CMD_FC_MAC_NSTATS_PER_BLOCK 0x1e /* enum */
277 #define	MC_CMD_FC_MAC_NBYTES_PER_STAT 0x8 /* enum */
278 
279 /* MC_CMD_FC_IN_READ32 msgrequest */
280 #define	MC_CMD_FC_IN_READ32_LEN 16
281 /*            MC_CMD_FC_IN_CMD_OFST 0 */
282 /*            MC_CMD_FC_IN_CMD_LEN 4 */
283 #define	MC_CMD_FC_IN_READ32_ADDR_HI_OFST 4
284 #define	MC_CMD_FC_IN_READ32_ADDR_HI_LEN 4
285 #define	MC_CMD_FC_IN_READ32_ADDR_LO_OFST 8
286 #define	MC_CMD_FC_IN_READ32_ADDR_LO_LEN 4
287 #define	MC_CMD_FC_IN_READ32_NUMWORDS_OFST 12
288 #define	MC_CMD_FC_IN_READ32_NUMWORDS_LEN 4
289 
290 /* MC_CMD_FC_IN_WRITE32 msgrequest */
291 #define	MC_CMD_FC_IN_WRITE32_LENMIN 16
292 #define	MC_CMD_FC_IN_WRITE32_LENMAX 252
293 #define	MC_CMD_FC_IN_WRITE32_LEN(num) (12+4*(num))
294 /*            MC_CMD_FC_IN_CMD_OFST 0 */
295 /*            MC_CMD_FC_IN_CMD_LEN 4 */
296 #define	MC_CMD_FC_IN_WRITE32_ADDR_HI_OFST 4
297 #define	MC_CMD_FC_IN_WRITE32_ADDR_HI_LEN 4
298 #define	MC_CMD_FC_IN_WRITE32_ADDR_LO_OFST 8
299 #define	MC_CMD_FC_IN_WRITE32_ADDR_LO_LEN 4
300 #define	MC_CMD_FC_IN_WRITE32_BUFFER_OFST 12
301 #define	MC_CMD_FC_IN_WRITE32_BUFFER_LEN 4
302 #define	MC_CMD_FC_IN_WRITE32_BUFFER_MINNUM 1
303 #define	MC_CMD_FC_IN_WRITE32_BUFFER_MAXNUM 60
304 
305 /* MC_CMD_FC_IN_TRC_READ msgrequest */
306 #define	MC_CMD_FC_IN_TRC_READ_LEN 12
307 /*            MC_CMD_FC_IN_CMD_OFST 0 */
308 /*            MC_CMD_FC_IN_CMD_LEN 4 */
309 #define	MC_CMD_FC_IN_TRC_READ_TRC_OFST 4
310 #define	MC_CMD_FC_IN_TRC_READ_TRC_LEN 4
311 #define	MC_CMD_FC_IN_TRC_READ_CHANNEL_OFST 8
312 #define	MC_CMD_FC_IN_TRC_READ_CHANNEL_LEN 4
313 
314 /* MC_CMD_FC_IN_TRC_WRITE msgrequest */
315 #define	MC_CMD_FC_IN_TRC_WRITE_LEN 28
316 /*            MC_CMD_FC_IN_CMD_OFST 0 */
317 /*            MC_CMD_FC_IN_CMD_LEN 4 */
318 #define	MC_CMD_FC_IN_TRC_WRITE_TRC_OFST 4
319 #define	MC_CMD_FC_IN_TRC_WRITE_TRC_LEN 4
320 #define	MC_CMD_FC_IN_TRC_WRITE_CHANNEL_OFST 8
321 #define	MC_CMD_FC_IN_TRC_WRITE_CHANNEL_LEN 4
322 #define	MC_CMD_FC_IN_TRC_WRITE_DATA_OFST 12
323 #define	MC_CMD_FC_IN_TRC_WRITE_DATA_LEN 4
324 #define	MC_CMD_FC_IN_TRC_WRITE_DATA_NUM 4
325 
326 /* MC_CMD_FC_IN_GET_VERSION msgrequest */
327 #define	MC_CMD_FC_IN_GET_VERSION_LEN 4
328 /*            MC_CMD_FC_IN_CMD_OFST 0 */
329 /*            MC_CMD_FC_IN_CMD_LEN 4 */
330 
331 /* MC_CMD_FC_IN_TRC_RX_READ msgrequest */
332 #define	MC_CMD_FC_IN_TRC_RX_READ_LEN 12
333 /*            MC_CMD_FC_IN_CMD_OFST 0 */
334 /*            MC_CMD_FC_IN_CMD_LEN 4 */
335 #define	MC_CMD_FC_IN_TRC_RX_READ_TRC_OFST 4
336 #define	MC_CMD_FC_IN_TRC_RX_READ_TRC_LEN 4
337 #define	MC_CMD_FC_IN_TRC_RX_READ_CHANNEL_OFST 8
338 #define	MC_CMD_FC_IN_TRC_RX_READ_CHANNEL_LEN 4
339 
340 /* MC_CMD_FC_IN_TRC_RX_WRITE msgrequest */
341 #define	MC_CMD_FC_IN_TRC_RX_WRITE_LEN 20
342 /*            MC_CMD_FC_IN_CMD_OFST 0 */
343 /*            MC_CMD_FC_IN_CMD_LEN 4 */
344 #define	MC_CMD_FC_IN_TRC_RX_WRITE_TRC_OFST 4
345 #define	MC_CMD_FC_IN_TRC_RX_WRITE_TRC_LEN 4
346 #define	MC_CMD_FC_IN_TRC_RX_WRITE_CHANNEL_OFST 8
347 #define	MC_CMD_FC_IN_TRC_RX_WRITE_CHANNEL_LEN 4
348 #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_OFST 12
349 #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_LEN 4
350 #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_NUM 2
351 
352 /* MC_CMD_FC_IN_SFP msgrequest */
353 #define	MC_CMD_FC_IN_SFP_LEN 28
354 /*            MC_CMD_FC_IN_CMD_OFST 0 */
355 /*            MC_CMD_FC_IN_CMD_LEN 4 */
356 /* Link speed is 100, 1000, 10000, 40000 */
357 #define	MC_CMD_FC_IN_SFP_SPEED_OFST 4
358 #define	MC_CMD_FC_IN_SFP_SPEED_LEN 4
359 /* Length of copper cable - zero when not relevant (e.g. if cable is fibre) */
360 #define	MC_CMD_FC_IN_SFP_COPPER_LEN_OFST 8
361 #define	MC_CMD_FC_IN_SFP_COPPER_LEN_LEN 4
362 /* Not relevant for cards with QSFP modules. For older cards, true if module is
363  * a dual speed SFP+ module.
364  */
365 #define	MC_CMD_FC_IN_SFP_DUAL_SPEED_OFST 12
366 #define	MC_CMD_FC_IN_SFP_DUAL_SPEED_LEN 4
367 /* True if an SFP Module is present (other fields valid when true) */
368 #define	MC_CMD_FC_IN_SFP_PRESENT_OFST 16
369 #define	MC_CMD_FC_IN_SFP_PRESENT_LEN 4
370 /* The type of the SFP+ Module. For later cards with QSFP modules, this field
371  * is unused and the type is communicated by other means.
372  */
373 #define	MC_CMD_FC_IN_SFP_TYPE_OFST 20
374 #define	MC_CMD_FC_IN_SFP_TYPE_LEN 4
375 /* Capabilities corresponding to 1 bits. */
376 #define	MC_CMD_FC_IN_SFP_CAPS_OFST 24
377 #define	MC_CMD_FC_IN_SFP_CAPS_LEN 4
378 
379 /* MC_CMD_FC_IN_DDR_TEST msgrequest */
380 #define	MC_CMD_FC_IN_DDR_TEST_LEN 8
381 /*            MC_CMD_FC_IN_CMD_OFST 0 */
382 /*            MC_CMD_FC_IN_CMD_LEN 4 */
383 #define	MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4
384 #define	MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4
385 #define	MC_CMD_FC_IN_DDR_TEST_OP_LBN 0
386 #define	MC_CMD_FC_IN_DDR_TEST_OP_WIDTH 8
387 /* enum: DRAM Test Start */
388 #define	MC_CMD_FC_OP_DDR_TEST_START 0x1
389 /* enum: DRAM Test Poll */
390 #define	MC_CMD_FC_OP_DDR_TEST_POLL 0x2
391 
392 /* MC_CMD_FC_IN_DDR_TEST_START msgrequest */
393 #define	MC_CMD_FC_IN_DDR_TEST_START_LEN 12
394 /*            MC_CMD_FC_IN_CMD_OFST 0 */
395 /*            MC_CMD_FC_IN_CMD_LEN 4 */
396 /*            MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4 */
397 /*            MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4 */
398 #define	MC_CMD_FC_IN_DDR_TEST_START_MASK_OFST 8
399 #define	MC_CMD_FC_IN_DDR_TEST_START_MASK_LEN 4
400 #define	MC_CMD_FC_IN_DDR_TEST_START_T0_LBN 0
401 #define	MC_CMD_FC_IN_DDR_TEST_START_T0_WIDTH 1
402 #define	MC_CMD_FC_IN_DDR_TEST_START_T1_LBN 1
403 #define	MC_CMD_FC_IN_DDR_TEST_START_T1_WIDTH 1
404 #define	MC_CMD_FC_IN_DDR_TEST_START_B0_LBN 2
405 #define	MC_CMD_FC_IN_DDR_TEST_START_B0_WIDTH 1
406 #define	MC_CMD_FC_IN_DDR_TEST_START_B1_LBN 3
407 #define	MC_CMD_FC_IN_DDR_TEST_START_B1_WIDTH 1
408 
409 /* MC_CMD_FC_IN_DDR_TEST_POLL msgrequest */
410 #define	MC_CMD_FC_IN_DDR_TEST_POLL_LEN 12
411 #define	MC_CMD_FC_IN_DDR_TEST_CMD_OFST 0
412 #define	MC_CMD_FC_IN_DDR_TEST_CMD_LEN 4
413 /*            MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4 */
414 /*            MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4 */
415 /* Clear previous test result and prepare for restarting DDR test */
416 #define	MC_CMD_FC_IN_DDR_TEST_POLL_CLEAR_RESULT_FOR_DDR_TEST_OFST 8
417 #define	MC_CMD_FC_IN_DDR_TEST_POLL_CLEAR_RESULT_FOR_DDR_TEST_LEN 4
418 
419 /* MC_CMD_FC_IN_GET_ASSERT msgrequest */
420 #define	MC_CMD_FC_IN_GET_ASSERT_LEN 4
421 /*            MC_CMD_FC_IN_CMD_OFST 0 */
422 /*            MC_CMD_FC_IN_CMD_LEN 4 */
423 
424 /* MC_CMD_FC_IN_FPGA_BUILD msgrequest */
425 #define	MC_CMD_FC_IN_FPGA_BUILD_LEN 8
426 /*            MC_CMD_FC_IN_CMD_OFST 0 */
427 /*            MC_CMD_FC_IN_CMD_LEN 4 */
428 /* FPGA build info operation code */
429 #define	MC_CMD_FC_IN_FPGA_BUILD_OP_OFST 4
430 #define	MC_CMD_FC_IN_FPGA_BUILD_OP_LEN 4
431 /* enum: Get the build registers */
432 #define	MC_CMD_FC_IN_FPGA_BUILD_BUILD 0x1
433 /* enum: Get the services registers */
434 #define	MC_CMD_FC_IN_FPGA_BUILD_SERVICES 0x2
435 /* enum: Get the BSP version */
436 #define	MC_CMD_FC_IN_FPGA_BUILD_BSP_VERSION 0x3
437 /* enum: Get build register for V2 (SFA974X) */
438 #define	MC_CMD_FC_IN_FPGA_BUILD_BUILD_V2 0x4
439 /* enum: GEt the services register for V2 (SFA974X) */
440 #define	MC_CMD_FC_IN_FPGA_BUILD_SERVICES_V2 0x5
441 
442 /* MC_CMD_FC_IN_READ_MAP msgrequest */
443 #define	MC_CMD_FC_IN_READ_MAP_LEN 8
444 /*            MC_CMD_FC_IN_CMD_OFST 0 */
445 /*            MC_CMD_FC_IN_CMD_LEN 4 */
446 #define	MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4
447 #define	MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4
448 #define	MC_CMD_FC_IN_READ_MAP_OP_LBN 0
449 #define	MC_CMD_FC_IN_READ_MAP_OP_WIDTH 8
450 /* enum: Get the number of map regions */
451 #define	MC_CMD_FC_OP_READ_MAP_COUNT 0x1
452 /* enum: Get the specified map */
453 #define	MC_CMD_FC_OP_READ_MAP_INDEX 0x2
454 
455 /* MC_CMD_FC_IN_READ_MAP_COUNT msgrequest */
456 #define	MC_CMD_FC_IN_READ_MAP_COUNT_LEN 8
457 /*            MC_CMD_FC_IN_CMD_OFST 0 */
458 /*            MC_CMD_FC_IN_CMD_LEN 4 */
459 /*            MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4 */
460 /*            MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4 */
461 
462 /* MC_CMD_FC_IN_READ_MAP_INDEX msgrequest */
463 #define	MC_CMD_FC_IN_READ_MAP_INDEX_LEN 12
464 /*            MC_CMD_FC_IN_CMD_OFST 0 */
465 /*            MC_CMD_FC_IN_CMD_LEN 4 */
466 /*            MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4 */
467 /*            MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4 */
468 #define	MC_CMD_FC_IN_MAP_INDEX_OFST 8
469 #define	MC_CMD_FC_IN_MAP_INDEX_LEN 4
470 
471 /* MC_CMD_FC_IN_CAPABILITIES msgrequest */
472 #define	MC_CMD_FC_IN_CAPABILITIES_LEN 4
473 /*            MC_CMD_FC_IN_CMD_OFST 0 */
474 /*            MC_CMD_FC_IN_CMD_LEN 4 */
475 
476 /* MC_CMD_FC_IN_GLOBAL_FLAGS msgrequest */
477 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_LEN 8
478 /*            MC_CMD_FC_IN_CMD_OFST 0 */
479 /*            MC_CMD_FC_IN_CMD_LEN 4 */
480 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_FLAGS_OFST 4
481 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_FLAGS_LEN 4
482 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_CABLE_PLUGGED_IN_LBN 0
483 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_CABLE_PLUGGED_IN_WIDTH 1
484 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_LINK_MONITORING_LBN 1
485 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_LINK_MONITORING_WIDTH 1
486 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_DFE_ENABLE_LBN 2
487 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_DFE_ENABLE_WIDTH 1
488 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_EYE_ENABLE_LBN 3
489 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_EYE_ENABLE_WIDTH 1
490 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_TUNING_ENABLE_LBN 4
491 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_TUNING_ENABLE_WIDTH 1
492 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_OFFCAL_ENABLE_LBN 5
493 #define	MC_CMD_FC_IN_GLOBAL_FLAGS_OFFCAL_ENABLE_WIDTH 1
494 
495 /* MC_CMD_FC_IN_IO_REL msgrequest */
496 #define	MC_CMD_FC_IN_IO_REL_LEN 8
497 /*            MC_CMD_FC_IN_CMD_OFST 0 */
498 /*            MC_CMD_FC_IN_CMD_LEN 4 */
499 #define	MC_CMD_FC_IN_IO_REL_HEADER_OFST 4
500 #define	MC_CMD_FC_IN_IO_REL_HEADER_LEN 4
501 #define	MC_CMD_FC_IN_IO_REL_OP_LBN 0
502 #define	MC_CMD_FC_IN_IO_REL_OP_WIDTH 8
503 /* enum: Get the base address that the FC applies to relative commands */
504 #define	MC_CMD_FC_IN_IO_REL_GET_ADDR 0x1
505 /* enum: Read data */
506 #define	MC_CMD_FC_IN_IO_REL_READ32 0x2
507 /* enum: Write data */
508 #define	MC_CMD_FC_IN_IO_REL_WRITE32 0x3
509 #define	MC_CMD_FC_IN_IO_REL_COMP_TYPE_LBN 8
510 #define	MC_CMD_FC_IN_IO_REL_COMP_TYPE_WIDTH 8
511 /* enum: Application address space */
512 #define	MC_CMD_FC_COMP_TYPE_APP_ADDR_SPACE 0x1
513 /* enum: Flash address space */
514 #define	MC_CMD_FC_COMP_TYPE_FLASH 0x2
515 
516 /* MC_CMD_FC_IN_IO_REL_GET_ADDR msgrequest */
517 #define	MC_CMD_FC_IN_IO_REL_GET_ADDR_LEN 8
518 /*            MC_CMD_FC_IN_CMD_OFST 0 */
519 /*            MC_CMD_FC_IN_CMD_LEN 4 */
520 /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
521 /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
522 
523 /* MC_CMD_FC_IN_IO_REL_READ32 msgrequest */
524 #define	MC_CMD_FC_IN_IO_REL_READ32_LEN 20
525 /*            MC_CMD_FC_IN_CMD_OFST 0 */
526 /*            MC_CMD_FC_IN_CMD_LEN 4 */
527 /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
528 /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
529 #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_HI_OFST 8
530 #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_HI_LEN 4
531 #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_LO_OFST 12
532 #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_LO_LEN 4
533 #define	MC_CMD_FC_IN_IO_REL_READ32_NUMWORDS_OFST 16
534 #define	MC_CMD_FC_IN_IO_REL_READ32_NUMWORDS_LEN 4
535 
536 /* MC_CMD_FC_IN_IO_REL_WRITE32 msgrequest */
537 #define	MC_CMD_FC_IN_IO_REL_WRITE32_LENMIN 20
538 #define	MC_CMD_FC_IN_IO_REL_WRITE32_LENMAX 252
539 #define	MC_CMD_FC_IN_IO_REL_WRITE32_LEN(num) (16+4*(num))
540 /*            MC_CMD_FC_IN_CMD_OFST 0 */
541 /*            MC_CMD_FC_IN_CMD_LEN 4 */
542 /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
543 /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
544 #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_HI_OFST 8
545 #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_HI_LEN 4
546 #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_LO_OFST 12
547 #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_LO_LEN 4
548 #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_OFST 16
549 #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_LEN 4
550 #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_MINNUM 1
551 #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_MAXNUM 59
552 
553 /* MC_CMD_FC_IN_UHLINK msgrequest */
554 #define	MC_CMD_FC_IN_UHLINK_LEN 8
555 /*            MC_CMD_FC_IN_CMD_OFST 0 */
556 /*            MC_CMD_FC_IN_CMD_LEN 4 */
557 #define	MC_CMD_FC_IN_UHLINK_HEADER_OFST 4
558 #define	MC_CMD_FC_IN_UHLINK_HEADER_LEN 4
559 #define	MC_CMD_FC_IN_UHLINK_OP_LBN 0
560 #define	MC_CMD_FC_IN_UHLINK_OP_WIDTH 8
561 /* enum: Get PHY configuration info */
562 #define	MC_CMD_FC_OP_UHLINK_PHY 0x1
563 /* enum: Get MAC configuration info */
564 #define	MC_CMD_FC_OP_UHLINK_MAC 0x2
565 /* enum: Get Rx eye table */
566 #define	MC_CMD_FC_OP_UHLINK_RX_EYE 0x3
567 /* enum: Get Rx eye plot */
568 #define	MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT 0x4
569 /* enum: Get Rx eye plot */
570 #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT 0x5
571 /* enum: Retune Rx settings */
572 #define	MC_CMD_FC_OP_UHLINK_RX_TUNE 0x6
573 /* enum: Set loopback mode on fpga port */
574 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET 0x7
575 /* enum: Get loopback mode config state on fpga port */
576 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET 0x8
577 #define	MC_CMD_FC_IN_UHLINK_PORT_TYPE_LBN 8
578 #define	MC_CMD_FC_IN_UHLINK_PORT_TYPE_WIDTH 8
579 #define	MC_CMD_FC_IN_UHLINK_PORT_IDX_LBN 16
580 #define	MC_CMD_FC_IN_UHLINK_PORT_IDX_WIDTH 8
581 #define	MC_CMD_FC_IN_UHLINK_CMD_FORMAT_LBN 24
582 #define	MC_CMD_FC_IN_UHLINK_CMD_FORMAT_WIDTH 8
583 /* enum: Default FC command format; the fields PORT_TYPE and PORT_IDX are
584  * irrelevant. Port number is derived from pci_fn; passed in FC header.
585  */
586 #define	MC_CMD_FC_OP_UHLINK_CMD_FORMAT_DEFAULT 0x0
587 /* enum: Override default port number. Port number determined by fields
588  * PORT_TYPE and PORT_IDX.
589  */
590 #define	MC_CMD_FC_OP_UHLINK_CMD_FORMAT_PORT_OVERRIDE 0x1
591 
592 /* MC_CMD_FC_OP_UHLINK_PHY msgrequest */
593 #define	MC_CMD_FC_OP_UHLINK_PHY_LEN 8
594 /*            MC_CMD_FC_IN_CMD_OFST 0 */
595 /*            MC_CMD_FC_IN_CMD_LEN 4 */
596 /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
597 /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
598 
599 /* MC_CMD_FC_OP_UHLINK_MAC msgrequest */
600 #define	MC_CMD_FC_OP_UHLINK_MAC_LEN 8
601 /*            MC_CMD_FC_IN_CMD_OFST 0 */
602 /*            MC_CMD_FC_IN_CMD_LEN 4 */
603 /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
604 /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
605 
606 /* MC_CMD_FC_OP_UHLINK_RX_EYE msgrequest */
607 #define	MC_CMD_FC_OP_UHLINK_RX_EYE_LEN 12
608 /*            MC_CMD_FC_IN_CMD_OFST 0 */
609 /*            MC_CMD_FC_IN_CMD_LEN 4 */
610 /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
611 /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
612 #define	MC_CMD_FC_OP_UHLINK_RX_EYE_INDEX_OFST 8
613 #define	MC_CMD_FC_OP_UHLINK_RX_EYE_INDEX_LEN 4
614 #define	MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK 0x30 /* enum */
615 
616 /* MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT msgrequest */
617 #define	MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT_LEN 8
618 /*            MC_CMD_FC_IN_CMD_OFST 0 */
619 /*            MC_CMD_FC_IN_CMD_LEN 4 */
620 /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
621 /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
622 
623 /* MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT msgrequest */
624 #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_LEN 20
625 /*            MC_CMD_FC_IN_CMD_OFST 0 */
626 /*            MC_CMD_FC_IN_CMD_LEN 4 */
627 /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
628 /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
629 #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_DC_GAIN_OFST 8
630 #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_DC_GAIN_LEN 4
631 #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_EQ_CONTROL_OFST 12
632 #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_EQ_CONTROL_LEN 4
633 #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_INDEX_OFST 16
634 #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_INDEX_LEN 4
635 #define	MC_CMD_FC_UHLINK_RX_EYE_PLOT_ROWS_PER_BLOCK 0x1e /* enum */
636 
637 /* MC_CMD_FC_OP_UHLINK_RX_TUNE msgrequest */
638 #define	MC_CMD_FC_OP_UHLINK_RX_TUNE_LEN 8
639 /*            MC_CMD_FC_IN_CMD_OFST 0 */
640 /*            MC_CMD_FC_IN_CMD_LEN 4 */
641 /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
642 /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
643 
644 /* MC_CMD_FC_OP_UHLINK_LOOPBACK_SET msgrequest */
645 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_LEN 16
646 /*            MC_CMD_FC_IN_CMD_OFST 0 */
647 /*            MC_CMD_FC_IN_CMD_LEN 4 */
648 /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
649 /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
650 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_TYPE_OFST 8
651 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_TYPE_LEN 4
652 #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PCS_SERIAL 0x0 /* enum */
653 #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PMA_PRE_CDR 0x1 /* enum */
654 #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PMA_POST_CDR 0x2 /* enum */
655 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_STATE_OFST 12
656 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_STATE_LEN 4
657 #define	MC_CMD_FC_UHLINK_LOOPBACK_STATE_OFF 0x0 /* enum */
658 #define	MC_CMD_FC_UHLINK_LOOPBACK_STATE_ON 0x1 /* enum */
659 
660 /* MC_CMD_FC_OP_UHLINK_LOOPBACK_GET msgrequest */
661 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_LEN 12
662 /*            MC_CMD_FC_IN_CMD_OFST 0 */
663 /*            MC_CMD_FC_IN_CMD_LEN 4 */
664 /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
665 /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
666 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_TYPE_OFST 8
667 #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_TYPE_LEN 4
668 
669 /* MC_CMD_FC_IN_SET_LINK msgrequest */
670 #define	MC_CMD_FC_IN_SET_LINK_LEN 16
671 /*            MC_CMD_FC_IN_CMD_OFST 0 */
672 /*            MC_CMD_FC_IN_CMD_LEN 4 */
673 /* See MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */
674 #define	MC_CMD_FC_IN_SET_LINK_MODE_OFST 4
675 #define	MC_CMD_FC_IN_SET_LINK_MODE_LEN 4
676 #define	MC_CMD_FC_IN_SET_LINK_SPEED_OFST 8
677 #define	MC_CMD_FC_IN_SET_LINK_SPEED_LEN 4
678 #define	MC_CMD_FC_IN_SET_LINK_FLAGS_OFST 12
679 #define	MC_CMD_FC_IN_SET_LINK_FLAGS_LEN 4
680 #define	MC_CMD_FC_IN_SET_LINK_LOWPOWER_LBN 0
681 #define	MC_CMD_FC_IN_SET_LINK_LOWPOWER_WIDTH 1
682 #define	MC_CMD_FC_IN_SET_LINK_POWEROFF_LBN 1
683 #define	MC_CMD_FC_IN_SET_LINK_POWEROFF_WIDTH 1
684 #define	MC_CMD_FC_IN_SET_LINK_TXDIS_LBN 2
685 #define	MC_CMD_FC_IN_SET_LINK_TXDIS_WIDTH 1
686 
687 /* MC_CMD_FC_IN_LICENSE msgrequest */
688 #define	MC_CMD_FC_IN_LICENSE_LEN 8
689 /*            MC_CMD_FC_IN_CMD_OFST 0 */
690 /*            MC_CMD_FC_IN_CMD_LEN 4 */
691 #define	MC_CMD_FC_IN_LICENSE_OP_OFST 4
692 #define	MC_CMD_FC_IN_LICENSE_OP_LEN 4
693 #define	MC_CMD_FC_IN_LICENSE_UPDATE_LICENSE 0x0 /* enum */
694 #define	MC_CMD_FC_IN_LICENSE_GET_KEY_STATS 0x1 /* enum */
695 
696 /* MC_CMD_FC_IN_STARTUP msgrequest */
697 #define	MC_CMD_FC_IN_STARTUP_LEN 40
698 /*            MC_CMD_FC_IN_CMD_OFST 0 */
699 /*            MC_CMD_FC_IN_CMD_LEN 4 */
700 #define	MC_CMD_FC_IN_STARTUP_BASE_OFST 4
701 #define	MC_CMD_FC_IN_STARTUP_BASE_LEN 4
702 #define	MC_CMD_FC_IN_STARTUP_LENGTH_OFST 8
703 #define	MC_CMD_FC_IN_STARTUP_LENGTH_LEN 4
704 /* Length of identifier */
705 #define	MC_CMD_FC_IN_STARTUP_IDLENGTH_OFST 12
706 #define	MC_CMD_FC_IN_STARTUP_IDLENGTH_LEN 4
707 /* Identifier for AOE FPGA */
708 #define	MC_CMD_FC_IN_STARTUP_ID_OFST 16
709 #define	MC_CMD_FC_IN_STARTUP_ID_LEN 1
710 #define	MC_CMD_FC_IN_STARTUP_ID_NUM 24
711 
712 /* MC_CMD_FC_IN_DMA msgrequest */
713 #define	MC_CMD_FC_IN_DMA_LEN 8
714 /*            MC_CMD_FC_IN_CMD_OFST 0 */
715 /*            MC_CMD_FC_IN_CMD_LEN 4 */
716 #define	MC_CMD_FC_IN_DMA_OP_OFST 4
717 #define	MC_CMD_FC_IN_DMA_OP_LEN 4
718 #define	MC_CMD_FC_IN_DMA_STOP 0x0 /* enum */
719 #define	MC_CMD_FC_IN_DMA_READ 0x1 /* enum */
720 
721 /* MC_CMD_FC_IN_DMA_STOP msgrequest */
722 #define	MC_CMD_FC_IN_DMA_STOP_LEN 12
723 /*            MC_CMD_FC_IN_CMD_OFST 0 */
724 /*            MC_CMD_FC_IN_CMD_LEN 4 */
725 /*            MC_CMD_FC_IN_DMA_OP_OFST 4 */
726 /*            MC_CMD_FC_IN_DMA_OP_LEN 4 */
727 /* FC supplied handle */
728 #define	MC_CMD_FC_IN_DMA_STOP_FC_HANDLE_OFST 8
729 #define	MC_CMD_FC_IN_DMA_STOP_FC_HANDLE_LEN 4
730 
731 /* MC_CMD_FC_IN_DMA_READ msgrequest */
732 #define	MC_CMD_FC_IN_DMA_READ_LEN 16
733 /*            MC_CMD_FC_IN_CMD_OFST 0 */
734 /*            MC_CMD_FC_IN_CMD_LEN 4 */
735 /*            MC_CMD_FC_IN_DMA_OP_OFST 4 */
736 /*            MC_CMD_FC_IN_DMA_OP_LEN 4 */
737 #define	MC_CMD_FC_IN_DMA_READ_OFFSET_OFST 8
738 #define	MC_CMD_FC_IN_DMA_READ_OFFSET_LEN 4
739 #define	MC_CMD_FC_IN_DMA_READ_LENGTH_OFST 12
740 #define	MC_CMD_FC_IN_DMA_READ_LENGTH_LEN 4
741 
742 /* MC_CMD_FC_IN_TIMED_READ msgrequest */
743 #define	MC_CMD_FC_IN_TIMED_READ_LEN 8
744 /*            MC_CMD_FC_IN_CMD_OFST 0 */
745 /*            MC_CMD_FC_IN_CMD_LEN 4 */
746 #define	MC_CMD_FC_IN_TIMED_READ_OP_OFST 4
747 #define	MC_CMD_FC_IN_TIMED_READ_OP_LEN 4
748 #define	MC_CMD_FC_IN_TIMED_READ_SET 0x0 /* enum */
749 #define	MC_CMD_FC_IN_TIMED_READ_GET 0x1 /* enum */
750 #define	MC_CMD_FC_IN_TIMED_READ_CLEAR 0x2 /* enum */
751 
752 /* MC_CMD_FC_IN_TIMED_READ_SET msgrequest */
753 #define	MC_CMD_FC_IN_TIMED_READ_SET_LEN 52
754 /*            MC_CMD_FC_IN_CMD_OFST 0 */
755 /*            MC_CMD_FC_IN_CMD_LEN 4 */
756 /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
757 /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
758 /* Host supplied handle (unique) */
759 #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_HANDLE_OFST 8
760 #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_HANDLE_LEN 4
761 /* Address into which to transfer data in host */
762 #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_OFST 12
763 #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LEN 8
764 #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LO_OFST 12
765 #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_HI_OFST 16
766 /* AOE address from which to transfer data */
767 #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_OFST 20
768 #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LEN 8
769 #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LO_OFST 20
770 #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_HI_OFST 24
771 /* Length of AOE transfer (total) */
772 #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_LENGTH_OFST 28
773 #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_LENGTH_LEN 4
774 /* Length of host transfer (total) */
775 #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_LENGTH_OFST 32
776 #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_LENGTH_LEN 4
777 /* Offset back from aoe_address to apply operation to */
778 #define	MC_CMD_FC_IN_TIMED_READ_SET_OFFSET_OFST 36
779 #define	MC_CMD_FC_IN_TIMED_READ_SET_OFFSET_LEN 4
780 /* Data to apply at offset */
781 #define	MC_CMD_FC_IN_TIMED_READ_SET_DATA_OFST 40
782 #define	MC_CMD_FC_IN_TIMED_READ_SET_DATA_LEN 4
783 #define	MC_CMD_FC_IN_TIMED_READ_SET_FLAGS_OFST 44
784 #define	MC_CMD_FC_IN_TIMED_READ_SET_FLAGS_LEN 4
785 #define	MC_CMD_FC_IN_TIMED_READ_SET_INDIRECT_LBN 0
786 #define	MC_CMD_FC_IN_TIMED_READ_SET_INDIRECT_WIDTH 1
787 #define	MC_CMD_FC_IN_TIMED_READ_SET_DOUBLE_LBN 1
788 #define	MC_CMD_FC_IN_TIMED_READ_SET_DOUBLE_WIDTH 1
789 #define	MC_CMD_FC_IN_TIMED_READ_SET_EVENT_LBN 2
790 #define	MC_CMD_FC_IN_TIMED_READ_SET_EVENT_WIDTH 1
791 #define	MC_CMD_FC_IN_TIMED_READ_SET_PREREAD_LBN 3
792 #define	MC_CMD_FC_IN_TIMED_READ_SET_PREREAD_WIDTH 2
793 #define	MC_CMD_FC_IN_TIMED_READ_SET_NONE 0x0 /* enum */
794 #define	MC_CMD_FC_IN_TIMED_READ_SET_READ 0x1 /* enum */
795 #define	MC_CMD_FC_IN_TIMED_READ_SET_WRITE 0x2 /* enum */
796 #define	MC_CMD_FC_IN_TIMED_READ_SET_READWRITE 0x3 /* enum */
797 /* Period at which reads are performed (100ms units) */
798 #define	MC_CMD_FC_IN_TIMED_READ_SET_PERIOD_OFST 48
799 #define	MC_CMD_FC_IN_TIMED_READ_SET_PERIOD_LEN 4
800 
801 /* MC_CMD_FC_IN_TIMED_READ_GET msgrequest */
802 #define	MC_CMD_FC_IN_TIMED_READ_GET_LEN 12
803 /*            MC_CMD_FC_IN_CMD_OFST 0 */
804 /*            MC_CMD_FC_IN_CMD_LEN 4 */
805 /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
806 /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
807 /* FC supplied handle */
808 #define	MC_CMD_FC_IN_TIMED_READ_GET_FC_HANDLE_OFST 8
809 #define	MC_CMD_FC_IN_TIMED_READ_GET_FC_HANDLE_LEN 4
810 
811 /* MC_CMD_FC_IN_TIMED_READ_CLEAR msgrequest */
812 #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_LEN 12
813 /*            MC_CMD_FC_IN_CMD_OFST 0 */
814 /*            MC_CMD_FC_IN_CMD_LEN 4 */
815 /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
816 /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
817 /* FC supplied handle */
818 #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_FC_HANDLE_OFST 8
819 #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_FC_HANDLE_LEN 4
820 
821 /* MC_CMD_FC_IN_LOG msgrequest */
822 #define	MC_CMD_FC_IN_LOG_LEN 8
823 /*            MC_CMD_FC_IN_CMD_OFST 0 */
824 /*            MC_CMD_FC_IN_CMD_LEN 4 */
825 #define	MC_CMD_FC_IN_LOG_OP_OFST 4
826 #define	MC_CMD_FC_IN_LOG_OP_LEN 4
827 #define	MC_CMD_FC_IN_LOG_ADDR_RANGE 0x0 /* enum */
828 #define	MC_CMD_FC_IN_LOG_JTAG_UART 0x1 /* enum */
829 
830 /* MC_CMD_FC_IN_LOG_ADDR_RANGE msgrequest */
831 #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LEN 20
832 /*            MC_CMD_FC_IN_CMD_OFST 0 */
833 /*            MC_CMD_FC_IN_CMD_LEN 4 */
834 /*            MC_CMD_FC_IN_LOG_OP_OFST 4 */
835 /*            MC_CMD_FC_IN_LOG_OP_LEN 4 */
836 /* Partition offset into flash */
837 #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_OFFSET_OFST 8
838 #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_OFFSET_LEN 4
839 /* Partition length */
840 #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LENGTH_OFST 12
841 #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LENGTH_LEN 4
842 /* Partition erase size */
843 #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_ERASE_SIZE_OFST 16
844 #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_ERASE_SIZE_LEN 4
845 
846 /* MC_CMD_FC_IN_LOG_JTAG_UART msgrequest */
847 #define	MC_CMD_FC_IN_LOG_JTAG_UART_LEN 12
848 /*            MC_CMD_FC_IN_CMD_OFST 0 */
849 /*            MC_CMD_FC_IN_CMD_LEN 4 */
850 /*            MC_CMD_FC_IN_LOG_OP_OFST 4 */
851 /*            MC_CMD_FC_IN_LOG_OP_LEN 4 */
852 /* Enable/disable printing to JTAG UART */
853 #define	MC_CMD_FC_IN_LOG_JTAG_UART_ENABLE_OFST 8
854 #define	MC_CMD_FC_IN_LOG_JTAG_UART_ENABLE_LEN 4
855 
856 /* MC_CMD_FC_IN_CLOCK msgrequest: Perform a clock operation */
857 #define	MC_CMD_FC_IN_CLOCK_LEN 12
858 /*            MC_CMD_FC_IN_CMD_OFST 0 */
859 /*            MC_CMD_FC_IN_CMD_LEN 4 */
860 #define	MC_CMD_FC_IN_CLOCK_OP_OFST 4
861 #define	MC_CMD_FC_IN_CLOCK_OP_LEN 4
862 #define	MC_CMD_FC_IN_CLOCK_GET_TIME 0x0 /* enum */
863 #define	MC_CMD_FC_IN_CLOCK_SET_TIME 0x1 /* enum */
864 #define	MC_CMD_FC_IN_CLOCK_ID_OFST 8
865 #define	MC_CMD_FC_IN_CLOCK_ID_LEN 4
866 #define	MC_CMD_FC_IN_CLOCK_STATS 0x0 /* enum */
867 #define	MC_CMD_FC_IN_CLOCK_MAC 0x1 /* enum */
868 
869 /* MC_CMD_FC_IN_CLOCK_GET_TIME msgrequest: Retrieve the clock value of the
870  * specified clock
871  */
872 #define	MC_CMD_FC_IN_CLOCK_GET_TIME_LEN 12
873 /*            MC_CMD_FC_IN_CMD_OFST 0 */
874 /*            MC_CMD_FC_IN_CMD_LEN 4 */
875 /*            MC_CMD_FC_IN_CLOCK_OP_OFST 4 */
876 /*            MC_CMD_FC_IN_CLOCK_OP_LEN 4 */
877 /*            MC_CMD_FC_IN_CLOCK_ID_OFST 8 */
878 /*            MC_CMD_FC_IN_CLOCK_ID_LEN 4 */
879 
880 /* MC_CMD_FC_IN_CLOCK_SET_TIME msgrequest: Set the clock value of the specified
881  * clock
882  */
883 #define	MC_CMD_FC_IN_CLOCK_SET_TIME_LEN 24
884 /*            MC_CMD_FC_IN_CMD_OFST 0 */
885 /*            MC_CMD_FC_IN_CMD_LEN 4 */
886 /*            MC_CMD_FC_IN_CLOCK_OP_OFST 4 */
887 /*            MC_CMD_FC_IN_CLOCK_OP_LEN 4 */
888 /*            MC_CMD_FC_IN_CLOCK_ID_OFST 8 */
889 /*            MC_CMD_FC_IN_CLOCK_ID_LEN 4 */
890 #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_OFST 12
891 #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LEN 8
892 #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LO_OFST 12
893 #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_HI_OFST 16
894 #define	MC_CMD_FC_IN_CLOCK_SET_TIME_NANOSECONDS_OFST 20
895 #define	MC_CMD_FC_IN_CLOCK_SET_TIME_NANOSECONDS_LEN 4
896 
897 /* MC_CMD_FC_IN_DDR msgrequest */
898 #define	MC_CMD_FC_IN_DDR_LEN 12
899 /*            MC_CMD_FC_IN_CMD_OFST 0 */
900 /*            MC_CMD_FC_IN_CMD_LEN 4 */
901 #define	MC_CMD_FC_IN_DDR_OP_OFST 4
902 #define	MC_CMD_FC_IN_DDR_OP_LEN 4
903 #define	MC_CMD_FC_IN_DDR_SET_SPD 0x0 /* enum */
904 #define	MC_CMD_FC_IN_DDR_GET_STATUS 0x1 /* enum */
905 #define	MC_CMD_FC_IN_DDR_SET_INFO 0x2 /* enum */
906 #define	MC_CMD_FC_IN_DDR_BANK_OFST 8
907 #define	MC_CMD_FC_IN_DDR_BANK_LEN 4
908 #define	MC_CMD_FC_IN_DDR_BANK_B0 0x0 /* enum */
909 #define	MC_CMD_FC_IN_DDR_BANK_B1 0x1 /* enum */
910 #define	MC_CMD_FC_IN_DDR_BANK_T0 0x2 /* enum */
911 #define	MC_CMD_FC_IN_DDR_BANK_T1 0x3 /* enum */
912 #define	MC_CMD_FC_IN_DDR_NUM_BANKS 0x4 /* enum */
913 
914 /* MC_CMD_FC_IN_DDR_SET_SPD msgrequest */
915 #define	MC_CMD_FC_IN_DDR_SET_SPD_LEN 148
916 /*            MC_CMD_FC_IN_CMD_OFST 0 */
917 /*            MC_CMD_FC_IN_CMD_LEN 4 */
918 /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
919 /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
920 /* Affected bank */
921 /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
922 /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
923 /* Flags */
924 #define	MC_CMD_FC_IN_DDR_FLAGS_OFST 12
925 #define	MC_CMD_FC_IN_DDR_FLAGS_LEN 4
926 #define	MC_CMD_FC_IN_DDR_SET_SPD_ACTIVE 0x1 /* enum */
927 /* 128-byte page of serial presence detect data read from module's EEPROM */
928 #define	MC_CMD_FC_IN_DDR_SPD_OFST 16
929 #define	MC_CMD_FC_IN_DDR_SPD_LEN 1
930 #define	MC_CMD_FC_IN_DDR_SPD_NUM 128
931 /* Page index of the spd data copied into MC_CMD_FC_IN_DDR_SPD */
932 #define	MC_CMD_FC_IN_DDR_SPD_PAGE_ID_OFST 144
933 #define	MC_CMD_FC_IN_DDR_SPD_PAGE_ID_LEN 4
934 
935 /* MC_CMD_FC_IN_DDR_SET_INFO msgrequest */
936 #define	MC_CMD_FC_IN_DDR_SET_INFO_LEN 16
937 /*            MC_CMD_FC_IN_CMD_OFST 0 */
938 /*            MC_CMD_FC_IN_CMD_LEN 4 */
939 /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
940 /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
941 /* Affected bank */
942 /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
943 /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
944 /* Size of DDR */
945 #define	MC_CMD_FC_IN_DDR_SIZE_OFST 12
946 #define	MC_CMD_FC_IN_DDR_SIZE_LEN 4
947 
948 /* MC_CMD_FC_IN_DDR_GET_STATUS msgrequest */
949 #define	MC_CMD_FC_IN_DDR_GET_STATUS_LEN 12
950 /*            MC_CMD_FC_IN_CMD_OFST 0 */
951 /*            MC_CMD_FC_IN_CMD_LEN 4 */
952 /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
953 /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
954 /* Affected bank */
955 /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
956 /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
957 
958 /* MC_CMD_FC_IN_TIMESTAMP msgrequest */
959 #define	MC_CMD_FC_IN_TIMESTAMP_LEN 8
960 /*            MC_CMD_FC_IN_CMD_OFST 0 */
961 /*            MC_CMD_FC_IN_CMD_LEN 4 */
962 /* FC timestamp operation code */
963 #define	MC_CMD_FC_IN_TIMESTAMP_OP_OFST 4
964 #define	MC_CMD_FC_IN_TIMESTAMP_OP_LEN 4
965 /* enum: Read transmit timestamp(s) */
966 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT 0x0
967 /* enum: Read snapshot timestamps */
968 #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT 0x1
969 /* enum: Clear all transmit timestamps */
970 #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT 0x2
971 
972 /* MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT msgrequest */
973 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_LEN 28
974 /*            MC_CMD_FC_IN_CMD_OFST 0 */
975 /*            MC_CMD_FC_IN_CMD_LEN 4 */
976 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_OP_OFST 4
977 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_OP_LEN 4
978 /* Control filtering of the returned timestamp and sequence number specified
979  * here
980  */
981 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_FILTER_OFST 8
982 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_FILTER_LEN 4
983 /* enum: Return most recent timestamp. No filtering */
984 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_LATEST 0x0
985 /* enum: Match timestamp against the PTP clock ID, port number and sequence
986  * number specified
987  */
988 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_MATCH 0x1
989 /* Clock identity of PTP packet for which timestamp required */
990 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_OFST 12
991 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LEN 8
992 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LO_OFST 12
993 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_HI_OFST 16
994 /* Port number of PTP packet for which timestamp required */
995 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_PORT_NUM_OFST 20
996 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_PORT_NUM_LEN 4
997 /* Sequence number of PTP packet for which timestamp required */
998 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_SEQ_NUM_OFST 24
999 #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_SEQ_NUM_LEN 4
1000 
1001 /* MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT msgrequest */
1002 #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_LEN 8
1003 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1004 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1005 #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_OP_OFST 4
1006 #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_OP_LEN 4
1007 
1008 /* MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT msgrequest */
1009 #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_LEN 8
1010 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1011 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1012 #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_OP_OFST 4
1013 #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_OP_LEN 4
1014 
1015 /* MC_CMD_FC_IN_SPI msgrequest */
1016 #define	MC_CMD_FC_IN_SPI_LEN 8
1017 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1018 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1019 /* Basic commands for SPI Flash. */
1020 #define	MC_CMD_FC_IN_SPI_OP_OFST 4
1021 #define	MC_CMD_FC_IN_SPI_OP_LEN 4
1022 /* enum: SPI Flash read */
1023 #define	MC_CMD_FC_IN_SPI_READ 0x0
1024 /* enum: SPI Flash write */
1025 #define	MC_CMD_FC_IN_SPI_WRITE 0x1
1026 /* enum: SPI Flash erase */
1027 #define	MC_CMD_FC_IN_SPI_ERASE 0x2
1028 
1029 /* MC_CMD_FC_IN_SPI_READ msgrequest */
1030 #define	MC_CMD_FC_IN_SPI_READ_LEN 16
1031 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1032 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1033 #define	MC_CMD_FC_IN_SPI_READ_OP_OFST 4
1034 #define	MC_CMD_FC_IN_SPI_READ_OP_LEN 4
1035 #define	MC_CMD_FC_IN_SPI_READ_ADDR_OFST 8
1036 #define	MC_CMD_FC_IN_SPI_READ_ADDR_LEN 4
1037 #define	MC_CMD_FC_IN_SPI_READ_NUMBYTES_OFST 12
1038 #define	MC_CMD_FC_IN_SPI_READ_NUMBYTES_LEN 4
1039 
1040 /* MC_CMD_FC_IN_SPI_WRITE msgrequest */
1041 #define	MC_CMD_FC_IN_SPI_WRITE_LENMIN 16
1042 #define	MC_CMD_FC_IN_SPI_WRITE_LENMAX 252
1043 #define	MC_CMD_FC_IN_SPI_WRITE_LEN(num) (12+4*(num))
1044 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1045 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1046 #define	MC_CMD_FC_IN_SPI_WRITE_OP_OFST 4
1047 #define	MC_CMD_FC_IN_SPI_WRITE_OP_LEN 4
1048 #define	MC_CMD_FC_IN_SPI_WRITE_ADDR_OFST 8
1049 #define	MC_CMD_FC_IN_SPI_WRITE_ADDR_LEN 4
1050 #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_OFST 12
1051 #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_LEN 4
1052 #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_MINNUM 1
1053 #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_MAXNUM 60
1054 
1055 /* MC_CMD_FC_IN_SPI_ERASE msgrequest */
1056 #define	MC_CMD_FC_IN_SPI_ERASE_LEN 16
1057 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1058 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1059 #define	MC_CMD_FC_IN_SPI_ERASE_OP_OFST 4
1060 #define	MC_CMD_FC_IN_SPI_ERASE_OP_LEN 4
1061 #define	MC_CMD_FC_IN_SPI_ERASE_ADDR_OFST 8
1062 #define	MC_CMD_FC_IN_SPI_ERASE_ADDR_LEN 4
1063 #define	MC_CMD_FC_IN_SPI_ERASE_NUMBYTES_OFST 12
1064 #define	MC_CMD_FC_IN_SPI_ERASE_NUMBYTES_LEN 4
1065 
1066 /* MC_CMD_FC_IN_DIAG msgrequest */
1067 #define	MC_CMD_FC_IN_DIAG_LEN 8
1068 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1069 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1070 /* Operation code indicating component type */
1071 #define	MC_CMD_FC_IN_DIAG_OP_OFST 4
1072 #define	MC_CMD_FC_IN_DIAG_OP_LEN 4
1073 /* enum: Power noise generator. */
1074 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE 0x0
1075 /* enum: DDR soak test component. */
1076 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK 0x1
1077 /* enum: Diagnostics datapath control component. */
1078 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL 0x2
1079 
1080 /* MC_CMD_FC_IN_DIAG_POWER_NOISE msgrequest */
1081 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_LEN 12
1082 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1083 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1084 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_OP_OFST 4
1085 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_OP_LEN 4
1086 /* Sub-opcode describing the operation to be carried out */
1087 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_SUB_OP_OFST 8
1088 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_SUB_OP_LEN 4
1089 /* enum: Read the configuration (the 32-bit values in each of the clock enable
1090  * count and toggle count registers)
1091  */
1092 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG 0x0
1093 /* enum: Write a new configuration to the clock enable count and toggle count
1094  * registers
1095  */
1096 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG 0x1
1097 
1098 /* MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG msgrequest */
1099 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_LEN 12
1100 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1101 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1102 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_OP_OFST 4
1103 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_OP_LEN 4
1104 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_SUB_OP_OFST 8
1105 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_SUB_OP_LEN 4
1106 
1107 /* MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG msgrequest */
1108 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_LEN 20
1109 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1110 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1111 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_OP_OFST 4
1112 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_OP_LEN 4
1113 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_SUB_OP_OFST 8
1114 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_SUB_OP_LEN 4
1115 /* The 32-bit value to be written to the toggle count register */
1116 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_TOGGLE_COUNT_OFST 12
1117 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_TOGGLE_COUNT_LEN 4
1118 /* The 32-bit value to be written to the clock enable count register */
1119 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_CLKEN_COUNT_OFST 16
1120 #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_CLKEN_COUNT_LEN 4
1121 
1122 /* MC_CMD_FC_IN_DIAG_DDR_SOAK msgrequest */
1123 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_LEN 12
1124 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1125 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1126 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_OP_OFST 4
1127 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_OP_LEN 4
1128 /* Sub-opcode describing the operation to be carried out */
1129 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_SUB_OP_OFST 8
1130 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_SUB_OP_LEN 4
1131 /* enum: Starts DDR soak test on selected banks */
1132 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START 0x0
1133 /* enum: Read status of DDR soak test */
1134 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT 0x1
1135 /* enum: Stop test */
1136 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP 0x2
1137 /* enum: Set or clear bit that triggers fake errors. These cause subsequent
1138  * tests to fail until the bit is cleared.
1139  */
1140 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR 0x3
1141 
1142 /* MC_CMD_FC_IN_DIAG_DDR_SOAK_START msgrequest */
1143 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_LEN 24
1144 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1145 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1146 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_OP_OFST 4
1147 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_OP_LEN 4
1148 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SUB_OP_OFST 8
1149 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SUB_OP_LEN 4
1150 /* Mask of DDR banks to be tested */
1151 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_BANK_MASK_OFST 12
1152 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_BANK_MASK_LEN 4
1153 /* Pattern to use in the soak test */
1154 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_PATTERN_OFST 16
1155 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_PATTERN_LEN 4
1156 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ZEROS 0x0 /* enum */
1157 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ONES 0x1 /* enum */
1158 /* Either multiple automatic tests until a STOP command is issued, or one
1159  * single test
1160  */
1161 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_TYPE_OFST 20
1162 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_TYPE_LEN 4
1163 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ONGOING_TEST 0x0 /* enum */
1164 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SINGLE_TEST 0x1 /* enum */
1165 
1166 /* MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT msgrequest */
1167 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_LEN 16
1168 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1169 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1170 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_OP_OFST 4
1171 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_OP_LEN 4
1172 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_SUB_OP_OFST 8
1173 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_SUB_OP_LEN 4
1174 /* DDR bank to read status from */
1175 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_BANK_ID_OFST 12
1176 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_BANK_ID_LEN 4
1177 #define	MC_CMD_FC_DDR_BANK0 0x0 /* enum */
1178 #define	MC_CMD_FC_DDR_BANK1 0x1 /* enum */
1179 #define	MC_CMD_FC_DDR_BANK2 0x2 /* enum */
1180 #define	MC_CMD_FC_DDR_BANK3 0x3 /* enum */
1181 #define	MC_CMD_FC_DDR_AOEMEM_MAX_BANKS 0x4 /* enum */
1182 
1183 /* MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP msgrequest */
1184 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_LEN 16
1185 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1186 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1187 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_OP_OFST 4
1188 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_OP_LEN 4
1189 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_SUB_OP_OFST 8
1190 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_SUB_OP_LEN 4
1191 /* Mask of DDR banks to be tested */
1192 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_BANK_MASK_OFST 12
1193 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_BANK_MASK_LEN 4
1194 
1195 /* MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR msgrequest */
1196 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_LEN 20
1197 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1198 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1199 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_OP_OFST 4
1200 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_OP_LEN 4
1201 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SUB_OP_OFST 8
1202 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SUB_OP_LEN 4
1203 /* Mask of DDR banks to set/clear error flag on */
1204 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_BANK_MASK_OFST 12
1205 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_BANK_MASK_LEN 4
1206 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_FLAG_ACTION_OFST 16
1207 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_FLAG_ACTION_LEN 4
1208 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_CLEAR 0x0 /* enum */
1209 #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SET 0x1 /* enum */
1210 
1211 /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL msgrequest */
1212 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_LEN 12
1213 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1214 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1215 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_OP_OFST 4
1216 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_OP_LEN 4
1217 /* Sub-opcode describing the operation to be carried out */
1218 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SUB_OP_OFST 8
1219 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SUB_OP_LEN 4
1220 /* enum: Set a known datapath configuration */
1221 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE 0x0
1222 /* enum: Apply raw config to datapath control registers */
1223 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG 0x1
1224 
1225 /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE msgrequest */
1226 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_LEN 16
1227 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1228 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1229 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_OP_OFST 4
1230 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_OP_LEN 4
1231 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SUB_OP_OFST 8
1232 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SUB_OP_LEN 4
1233 /* Datapath configuration identifier */
1234 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_MODE_OFST 12
1235 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_MODE_LEN 4
1236 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_PASSTHROUGH 0x0 /* enum */
1237 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SNAKE 0x1 /* enum */
1238 
1239 /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG msgrequest */
1240 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_LEN 24
1241 /*            MC_CMD_FC_IN_CMD_OFST 0 */
1242 /*            MC_CMD_FC_IN_CMD_LEN 4 */
1243 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_OP_OFST 4
1244 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_OP_LEN 4
1245 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_SUB_OP_OFST 8
1246 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_SUB_OP_LEN 4
1247 /* Value to write into control register 1 */
1248 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL1_OFST 12
1249 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL1_LEN 4
1250 /* Value to write into control register 2 */
1251 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL2_OFST 16
1252 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL2_LEN 4
1253 /* Value to write into control register 3 */
1254 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL3_OFST 20
1255 #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL3_LEN 4
1256 
1257 /* MC_CMD_FC_OUT msgresponse */
1258 #define	MC_CMD_FC_OUT_LEN 0
1259 
1260 /* MC_CMD_FC_OUT_NULL msgresponse */
1261 #define	MC_CMD_FC_OUT_NULL_LEN 0
1262 
1263 /* MC_CMD_FC_OUT_READ32 msgresponse */
1264 #define	MC_CMD_FC_OUT_READ32_LENMIN 4
1265 #define	MC_CMD_FC_OUT_READ32_LENMAX 252
1266 #define	MC_CMD_FC_OUT_READ32_LEN(num) (0+4*(num))
1267 #define	MC_CMD_FC_OUT_READ32_BUFFER_OFST 0
1268 #define	MC_CMD_FC_OUT_READ32_BUFFER_LEN 4
1269 #define	MC_CMD_FC_OUT_READ32_BUFFER_MINNUM 1
1270 #define	MC_CMD_FC_OUT_READ32_BUFFER_MAXNUM 63
1271 
1272 /* MC_CMD_FC_OUT_WRITE32 msgresponse */
1273 #define	MC_CMD_FC_OUT_WRITE32_LEN 0
1274 
1275 /* MC_CMD_FC_OUT_TRC_READ msgresponse */
1276 #define	MC_CMD_FC_OUT_TRC_READ_LEN 16
1277 #define	MC_CMD_FC_OUT_TRC_READ_DATA_OFST 0
1278 #define	MC_CMD_FC_OUT_TRC_READ_DATA_LEN 4
1279 #define	MC_CMD_FC_OUT_TRC_READ_DATA_NUM 4
1280 
1281 /* MC_CMD_FC_OUT_TRC_WRITE msgresponse */
1282 #define	MC_CMD_FC_OUT_TRC_WRITE_LEN 0
1283 
1284 /* MC_CMD_FC_OUT_GET_VERSION msgresponse */
1285 #define	MC_CMD_FC_OUT_GET_VERSION_LEN 12
1286 #define	MC_CMD_FC_OUT_GET_VERSION_FIRMWARE_OFST 0
1287 #define	MC_CMD_FC_OUT_GET_VERSION_FIRMWARE_LEN 4
1288 #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_OFST 4
1289 #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LEN 8
1290 #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LO_OFST 4
1291 #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_HI_OFST 8
1292 
1293 /* MC_CMD_FC_OUT_TRC_RX_READ msgresponse */
1294 #define	MC_CMD_FC_OUT_TRC_RX_READ_LEN 8
1295 #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_OFST 0
1296 #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_LEN 4
1297 #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_NUM 2
1298 
1299 /* MC_CMD_FC_OUT_TRC_RX_WRITE msgresponse */
1300 #define	MC_CMD_FC_OUT_TRC_RX_WRITE_LEN 0
1301 
1302 /* MC_CMD_FC_OUT_MAC_RECONFIGURE msgresponse */
1303 #define	MC_CMD_FC_OUT_MAC_RECONFIGURE_LEN 0
1304 
1305 /* MC_CMD_FC_OUT_MAC_SET_LINK msgresponse */
1306 #define	MC_CMD_FC_OUT_MAC_SET_LINK_LEN 0
1307 
1308 /* MC_CMD_FC_OUT_MAC_READ_STATUS msgresponse */
1309 #define	MC_CMD_FC_OUT_MAC_READ_STATUS_LEN 4
1310 #define	MC_CMD_FC_OUT_MAC_READ_STATUS_STATUS_OFST 0
1311 #define	MC_CMD_FC_OUT_MAC_READ_STATUS_STATUS_LEN 4
1312 
1313 /* MC_CMD_FC_OUT_MAC_GET_RX_STATS msgresponse */
1314 #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_RX_NSTATS))+1))>>3)
1315 #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_OFST 0
1316 #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LEN 8
1317 #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LO_OFST 0
1318 #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_HI_OFST 4
1319 #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_NUM MC_CMD_FC_MAC_RX_NSTATS
1320 #define	MC_CMD_FC_MAC_RX_STATS_OCTETS 0x0 /* enum */
1321 #define	MC_CMD_FC_MAC_RX_OCTETS_OK 0x1 /* enum */
1322 #define	MC_CMD_FC_MAC_RX_ALIGNMENT_ERRORS 0x2 /* enum */
1323 #define	MC_CMD_FC_MAC_RX_PAUSE_MAC_CTRL_FRAMES 0x3 /* enum */
1324 #define	MC_CMD_FC_MAC_RX_FRAMES_OK 0x4 /* enum */
1325 #define	MC_CMD_FC_MAC_RX_CRC_ERRORS 0x5 /* enum */
1326 #define	MC_CMD_FC_MAC_RX_VLAN_OK 0x6 /* enum */
1327 #define	MC_CMD_FC_MAC_RX_ERRORS 0x7 /* enum */
1328 #define	MC_CMD_FC_MAC_RX_UCAST_PKTS 0x8 /* enum */
1329 #define	MC_CMD_FC_MAC_RX_MULTICAST_PKTS 0x9 /* enum */
1330 #define	MC_CMD_FC_MAC_RX_BROADCAST_PKTS 0xa /* enum */
1331 #define	MC_CMD_FC_MAC_RX_STATS_DROP_EVENTS 0xb /* enum */
1332 #define	MC_CMD_FC_MAC_RX_STATS_PKTS 0xc /* enum */
1333 #define	MC_CMD_FC_MAC_RX_STATS_UNDERSIZE_PKTS 0xd /* enum */
1334 #define	MC_CMD_FC_MAC_RX_STATS_PKTS_64 0xe /* enum */
1335 #define	MC_CMD_FC_MAC_RX_STATS_PKTS_65_127 0xf /* enum */
1336 #define	MC_CMD_FC_MAC_RX_STATS_PKTS_128_255 0x10 /* enum */
1337 #define	MC_CMD_FC_MAC_RX_STATS_PKTS_256_511 0x11 /* enum */
1338 #define	MC_CMD_FC_MAC_RX_STATS_PKTS_512_1023 0x12 /* enum */
1339 #define	MC_CMD_FC_MAC_RX_STATS_PKTS_1024_1518 0x13 /* enum */
1340 #define	MC_CMD_FC_MAC_RX_STATS_PKTS_1519_MAX 0x14 /* enum */
1341 #define	MC_CMD_FC_MAC_RX_STATS_OVERSIZE_PKTS 0x15 /* enum */
1342 #define	MC_CMD_FC_MAC_RX_STATS_JABBERS 0x16 /* enum */
1343 #define	MC_CMD_FC_MAC_RX_STATS_FRAGMENTS 0x17 /* enum */
1344 #define	MC_CMD_FC_MAC_RX_MAC_CONTROL_FRAMES 0x18 /* enum */
1345 /* enum: (Last entry) */
1346 #define	MC_CMD_FC_MAC_RX_NSTATS 0x19
1347 
1348 /* MC_CMD_FC_OUT_MAC_GET_TX_STATS msgresponse */
1349 #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_TX_NSTATS))+1))>>3)
1350 #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_OFST 0
1351 #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LEN 8
1352 #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LO_OFST 0
1353 #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_HI_OFST 4
1354 #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_NUM MC_CMD_FC_MAC_TX_NSTATS
1355 #define	MC_CMD_FC_MAC_TX_STATS_OCTETS 0x0 /* enum */
1356 #define	MC_CMD_FC_MAC_TX_OCTETS_OK 0x1 /* enum */
1357 #define	MC_CMD_FC_MAC_TX_ALIGNMENT_ERRORS 0x2 /* enum */
1358 #define	MC_CMD_FC_MAC_TX_PAUSE_MAC_CTRL_FRAMES 0x3 /* enum */
1359 #define	MC_CMD_FC_MAC_TX_FRAMES_OK 0x4 /* enum */
1360 #define	MC_CMD_FC_MAC_TX_CRC_ERRORS 0x5 /* enum */
1361 #define	MC_CMD_FC_MAC_TX_VLAN_OK 0x6 /* enum */
1362 #define	MC_CMD_FC_MAC_TX_ERRORS 0x7 /* enum */
1363 #define	MC_CMD_FC_MAC_TX_UCAST_PKTS 0x8 /* enum */
1364 #define	MC_CMD_FC_MAC_TX_MULTICAST_PKTS 0x9 /* enum */
1365 #define	MC_CMD_FC_MAC_TX_BROADCAST_PKTS 0xa /* enum */
1366 #define	MC_CMD_FC_MAC_TX_STATS_DROP_EVENTS 0xb /* enum */
1367 #define	MC_CMD_FC_MAC_TX_STATS_PKTS 0xc /* enum */
1368 #define	MC_CMD_FC_MAC_TX_STATS_UNDERSIZE_PKTS 0xd /* enum */
1369 #define	MC_CMD_FC_MAC_TX_STATS_PKTS_64 0xe /* enum */
1370 #define	MC_CMD_FC_MAC_TX_STATS_PKTS_65_127 0xf /* enum */
1371 #define	MC_CMD_FC_MAC_TX_STATS_PKTS_128_255 0x10 /* enum */
1372 #define	MC_CMD_FC_MAC_TX_STATS_PKTS_256_511 0x11 /* enum */
1373 #define	MC_CMD_FC_MAC_TX_STATS_PKTS_512_1023 0x12 /* enum */
1374 #define	MC_CMD_FC_MAC_TX_STATS_PKTS_1024_1518 0x13 /* enum */
1375 #define	MC_CMD_FC_MAC_TX_STATS_PKTS_1519_TX_MTU 0x14 /* enum */
1376 #define	MC_CMD_FC_MAC_TX_MAC_CONTROL_FRAMES 0x15 /* enum */
1377 /* enum: (Last entry) */
1378 #define	MC_CMD_FC_MAC_TX_NSTATS 0x16
1379 
1380 /* MC_CMD_FC_OUT_MAC_GET_STATS msgresponse */
1381 #define	MC_CMD_FC_OUT_MAC_GET_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_NSTATS_PER_BLOCK))+1))>>3)
1382 /* MAC Statistics */
1383 #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_OFST 0
1384 #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LEN 8
1385 #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LO_OFST 0
1386 #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_HI_OFST 4
1387 #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_NUM MC_CMD_FC_MAC_NSTATS_PER_BLOCK
1388 
1389 /* MC_CMD_FC_OUT_MAC msgresponse */
1390 #define	MC_CMD_FC_OUT_MAC_LEN 0
1391 
1392 /* MC_CMD_FC_OUT_SFP msgresponse */
1393 #define	MC_CMD_FC_OUT_SFP_LEN 0
1394 
1395 /* MC_CMD_FC_OUT_DDR_TEST_START msgresponse */
1396 #define	MC_CMD_FC_OUT_DDR_TEST_START_LEN 0
1397 
1398 /* MC_CMD_FC_OUT_DDR_TEST_POLL msgresponse */
1399 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_LEN 8
1400 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_STATUS_OFST 0
1401 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_STATUS_LEN 4
1402 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CODE_LBN 0
1403 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CODE_WIDTH 8
1404 /* enum: Test not yet initiated */
1405 #define	MC_CMD_FC_OP_DDR_TEST_NONE 0x0
1406 /* enum: Test is in progress */
1407 #define	MC_CMD_FC_OP_DDR_TEST_INPROGRESS 0x1
1408 /* enum: Timed completed */
1409 #define	MC_CMD_FC_OP_DDR_TEST_SUCCESS 0x2
1410 /* enum: Test did not complete in specified time */
1411 #define	MC_CMD_FC_OP_DDR_TEST_TIMER_EXPIRED 0x3
1412 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T0_LBN 11
1413 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T0_WIDTH 1
1414 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T1_LBN 10
1415 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T1_WIDTH 1
1416 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B0_LBN 9
1417 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B0_WIDTH 1
1418 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B1_LBN 8
1419 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B1_WIDTH 1
1420 /* Test result from FPGA */
1421 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_RESULT_OFST 4
1422 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_RESULT_LEN 4
1423 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T0_LBN 31
1424 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T0_WIDTH 1
1425 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T1_LBN 30
1426 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T1_WIDTH 1
1427 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B0_LBN 29
1428 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B0_WIDTH 1
1429 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B1_LBN 28
1430 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B1_WIDTH 1
1431 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T0_LBN 15
1432 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T0_WIDTH 5
1433 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T1_LBN 10
1434 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T1_WIDTH 5
1435 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B0_LBN 5
1436 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B0_WIDTH 5
1437 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B1_LBN 0
1438 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B1_WIDTH 5
1439 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_COMPLETE 0x0 /* enum */
1440 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_FAIL 0x1 /* enum */
1441 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_PASS 0x2 /* enum */
1442 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CAL_FAIL 0x3 /* enum */
1443 #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CAL_SUCCESS 0x4 /* enum */
1444 
1445 /* MC_CMD_FC_OUT_DDR_TEST msgresponse */
1446 #define	MC_CMD_FC_OUT_DDR_TEST_LEN 0
1447 
1448 /* MC_CMD_FC_OUT_GET_ASSERT msgresponse */
1449 #define	MC_CMD_FC_OUT_GET_ASSERT_LEN 144
1450 /* Assertion status flag. */
1451 #define	MC_CMD_FC_OUT_GET_ASSERT_GLOBAL_FLAGS_OFST 0
1452 #define	MC_CMD_FC_OUT_GET_ASSERT_GLOBAL_FLAGS_LEN 4
1453 #define	MC_CMD_FC_OUT_GET_ASSERT_STATE_LBN 8
1454 #define	MC_CMD_FC_OUT_GET_ASSERT_STATE_WIDTH 8
1455 /* enum: No crash data available */
1456 #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_CLEAR 0x0
1457 /* enum: New crash data available */
1458 #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NEW 0x1
1459 /* enum: Crash data has been sent */
1460 #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NOTIFIED 0x2
1461 #define	MC_CMD_FC_OUT_GET_ASSERT_TYPE_LBN 0
1462 #define	MC_CMD_FC_OUT_GET_ASSERT_TYPE_WIDTH 8
1463 /* enum: No crash has been recorded. */
1464 #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_NONE 0x0
1465 /* enum: Crash due to exception. */
1466 #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_EXCEPTION 0x1
1467 /* enum: Crash due to assertion. */
1468 #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_ASSERTION 0x2
1469 /* Failing PC value */
1470 #define	MC_CMD_FC_OUT_GET_ASSERT_SAVED_PC_OFFS_OFST 4
1471 #define	MC_CMD_FC_OUT_GET_ASSERT_SAVED_PC_OFFS_LEN 4
1472 /* Saved GP regs */
1473 #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_OFST 8
1474 #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_LEN 4
1475 #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_NUM 31
1476 /* Exception Type */
1477 #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_TYPE_OFFS_OFST 132
1478 #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_TYPE_OFFS_LEN 4
1479 /* Instruction at which exception occurred */
1480 #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_PC_ADDR_OFFS_OFST 136
1481 #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_PC_ADDR_OFFS_LEN 4
1482 /* BAD Address that triggered address-based exception */
1483 #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_BAD_ADDR_OFFS_OFST 140
1484 #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_BAD_ADDR_OFFS_LEN 4
1485 
1486 /* MC_CMD_FC_OUT_FPGA_BUILD msgresponse */
1487 #define	MC_CMD_FC_OUT_FPGA_BUILD_LEN 32
1488 #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_INFO_OFST 0
1489 #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_INFO_LEN 4
1490 #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_APPLICATION_LBN 31
1491 #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_APPLICATION_WIDTH 1
1492 #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_LICENSED_LBN 30
1493 #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_LICENSED_WIDTH 1
1494 #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_ID_LBN 16
1495 #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_ID_WIDTH 14
1496 #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MAJOR_LBN 12
1497 #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MAJOR_WIDTH 4
1498 #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MINOR_LBN 4
1499 #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MINOR_WIDTH 8
1500 #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_NUM_LBN 0
1501 #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_NUM_WIDTH 4
1502 /* Build timestamp (seconds since epoch) */
1503 #define	MC_CMD_FC_OUT_FPGA_BUILD_TIMESTAMP_OFST 4
1504 #define	MC_CMD_FC_OUT_FPGA_BUILD_TIMESTAMP_LEN 4
1505 #define	MC_CMD_FC_OUT_FPGA_BUILD_PARAMETERS_OFST 8
1506 #define	MC_CMD_FC_OUT_FPGA_BUILD_PARAMETERS_LEN 4
1507 #define	MC_CMD_FC_OUT_FPGA_BUILD_FPGA_TYPE_LBN 0
1508 #define	MC_CMD_FC_OUT_FPGA_BUILD_FPGA_TYPE_WIDTH 8
1509 #define	MC_CMD_FC_FPGA_TYPE_A7 0xa7 /* enum */
1510 #define	MC_CMD_FC_FPGA_TYPE_A5 0xa5 /* enum */
1511 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED1_LBN 8
1512 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED1_WIDTH 10
1513 #define	MC_CMD_FC_OUT_FPGA_BUILD_PTP_ENABLED_LBN 18
1514 #define	MC_CMD_FC_OUT_FPGA_BUILD_PTP_ENABLED_WIDTH 1
1515 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM1_RLDRAM_DEF_LBN 19
1516 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM1_RLDRAM_DEF_WIDTH 1
1517 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM2_RLDRAM_DEF_LBN 20
1518 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM2_RLDRAM_DEF_WIDTH 1
1519 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM3_RLDRAM_DEF_LBN 21
1520 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM3_RLDRAM_DEF_WIDTH 1
1521 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM4_RLDRAM_DEF_LBN 22
1522 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM4_RLDRAM_DEF_WIDTH 1
1523 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T0_DDR3_DEF_LBN 23
1524 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T0_DDR3_DEF_WIDTH 1
1525 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_DDR3_DEF_LBN 24
1526 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_DDR3_DEF_WIDTH 1
1527 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B0_DDR3_DEF_LBN 25
1528 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B0_DDR3_DEF_WIDTH 1
1529 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B1_DDR3_DEF_LBN 26
1530 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B1_DDR3_DEF_WIDTH 1
1531 #define	MC_CMD_FC_OUT_FPGA_BUILD_DDR3_ECC_ENABLED_LBN 27
1532 #define	MC_CMD_FC_OUT_FPGA_BUILD_DDR3_ECC_ENABLED_WIDTH 1
1533 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_QDR_DEF_LBN 28
1534 #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_QDR_DEF_WIDTH 1
1535 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED2_LBN 29
1536 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED2_WIDTH 2
1537 #define	MC_CMD_FC_OUT_FPGA_BUILD_CRC_APPEND_LBN 31
1538 #define	MC_CMD_FC_OUT_FPGA_BUILD_CRC_APPEND_WIDTH 1
1539 #define	MC_CMD_FC_OUT_FPGA_BUILD_IDENTIFIER_OFST 12
1540 #define	MC_CMD_FC_OUT_FPGA_BUILD_IDENTIFIER_LEN 4
1541 #define	MC_CMD_FC_OUT_FPGA_BUILD_CHANGESET_LBN 0
1542 #define	MC_CMD_FC_OUT_FPGA_BUILD_CHANGESET_WIDTH 16
1543 #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_FLAG_LBN 16
1544 #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_FLAG_WIDTH 1
1545 #define	MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 /* enum */
1546 #define	MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 /* enum */
1547 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED3_LBN 17
1548 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED3_WIDTH 15
1549 #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_HI_OFST 16
1550 #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_HI_LEN 4
1551 #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MINOR_LBN 0
1552 #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MINOR_WIDTH 16
1553 #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MAJOR_LBN 16
1554 #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MAJOR_WIDTH 16
1555 #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_LO_OFST 20
1556 #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_LO_LEN 4
1557 #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_BUILD_LBN 0
1558 #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_BUILD_WIDTH 16
1559 #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MICRO_LBN 16
1560 #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MICRO_WIDTH 16
1561 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_OFST 16
1562 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LEN 8
1563 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LO_OFST 16
1564 #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_HI_OFST 20
1565 #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_LO_OFST 24
1566 #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_LO_LEN 4
1567 #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HI_OFST 28
1568 #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HI_LEN 4
1569 #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HIGH_LBN 0
1570 #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HIGH_WIDTH 16
1571 
1572 /* MC_CMD_FC_OUT_FPGA_BUILD_V2 msgresponse */
1573 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_LEN 32
1574 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_INFO_OFST 0
1575 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_INFO_LEN 4
1576 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_APPLICATION_LBN 31
1577 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_APPLICATION_WIDTH 1
1578 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_LICENSED_LBN 30
1579 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_LICENSED_WIDTH 1
1580 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_ID_LBN 16
1581 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_ID_WIDTH 14
1582 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MAJOR_LBN 12
1583 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MAJOR_WIDTH 4
1584 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MINOR_LBN 4
1585 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MINOR_WIDTH 8
1586 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_NUM_LBN 0
1587 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_NUM_WIDTH 4
1588 /* Build timestamp (seconds since epoch) */
1589 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_TIMESTAMP_OFST 4
1590 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_TIMESTAMP_LEN 4
1591 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PARAMETERS_OFST 8
1592 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PARAMETERS_LEN 4
1593 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PMA_PASSTHROUGH_LBN 31
1594 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PMA_PASSTHROUGH_WIDTH 1
1595 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_QDR_DEF_LBN 29
1596 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_QDR_DEF_WIDTH 1
1597 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_QDR_DEF_LBN 28
1598 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_QDR_DEF_WIDTH 1
1599 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DDR3_ECC_ENABLED_LBN 27
1600 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DDR3_ECC_ENABLED_WIDTH 1
1601 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_DDR3_DEF_LBN 26
1602 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_DDR3_DEF_WIDTH 1
1603 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_DDR3_DEF_LBN 25
1604 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_DDR3_DEF_WIDTH 1
1605 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_TO_DDR3_DEF_LBN 24
1606 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_TO_DDR3_DEF_WIDTH 1
1607 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_T0_DDR3_DEF_LBN 23
1608 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_T0_DDR3_DEF_WIDTH 1
1609 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_RLDRAM_DEF_LBN 22
1610 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_RLDRAM_DEF_WIDTH 1
1611 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_RLDRAM_DEF_LBN 21
1612 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_RLDRAM_DEF_WIDTH 1
1613 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_RLDRAM_DEF_LBN 20
1614 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_RLDRAM_DEF_WIDTH 1
1615 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_RLDRAM_DEF_LBN 19
1616 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_RLDRAM_DEF_WIDTH 1
1617 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_LBN 18
1618 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_WIDTH 1
1619 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_10G 0x0 /* enum */
1620 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_40G 0x1 /* enum */
1621 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_LBN 17
1622 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_WIDTH 1
1623 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_10G 0x0 /* enum */
1624 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_40G 0x1 /* enum */
1625 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_LBN 16
1626 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_WIDTH 1
1627 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_10G 0x0 /* enum */
1628 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_40G 0x1 /* enum */
1629 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP7_DEF_LBN 15
1630 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP7_DEF_WIDTH 1
1631 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP6_DEF_LBN 14
1632 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP6_DEF_WIDTH 1
1633 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP5_DEF_LBN 13
1634 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP5_DEF_WIDTH 1
1635 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_DEF_LBN 12
1636 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_DEF_WIDTH 1
1637 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP3_DEF_LBN 11
1638 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP3_DEF_WIDTH 1
1639 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP2_DEF_LBN 10
1640 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP2_DEF_WIDTH 1
1641 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP1_DEF_LBN 9
1642 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP1_DEF_WIDTH 1
1643 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_DEF_LBN 8
1644 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_DEF_WIDTH 1
1645 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC3_DEF_LBN 7
1646 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC3_DEF_WIDTH 1
1647 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC2_DEF_LBN 6
1648 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC2_DEF_WIDTH 1
1649 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC1_DEF_LBN 5
1650 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC1_DEF_WIDTH 1
1651 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_DEF_LBN 4
1652 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_DEF_WIDTH 1
1653 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_FPGA_TYPE_LBN 0
1654 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_FPGA_TYPE_WIDTH 4
1655 #define	MC_CMD_FC_FPGA_V2_TYPE_A3 0x0 /* enum */
1656 #define	MC_CMD_FC_FPGA_V2_TYPE_A4 0x1 /* enum */
1657 #define	MC_CMD_FC_FPGA_V2_TYPE_A5 0x2 /* enum */
1658 #define	MC_CMD_FC_FPGA_V2_TYPE_A7 0x3 /* enum */
1659 #define	MC_CMD_FC_FPGA_V2_TYPE_D3 0x8 /* enum */
1660 #define	MC_CMD_FC_FPGA_V2_TYPE_D4 0x9 /* enum */
1661 #define	MC_CMD_FC_FPGA_V2_TYPE_D5 0xa /* enum */
1662 #define	MC_CMD_FC_FPGA_V2_TYPE_D7 0xb /* enum */
1663 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IDENTIFIER_OFST 12
1664 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IDENTIFIER_LEN 4
1665 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_CHANGESET_LBN 0
1666 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_CHANGESET_WIDTH 16
1667 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_FLAG_LBN 16
1668 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_FLAG_WIDTH 1
1669 /*               MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 */
1670 /*               MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 */
1671 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_HI_OFST 16
1672 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_HI_LEN 4
1673 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MINOR_LBN 0
1674 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MINOR_WIDTH 16
1675 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MAJOR_LBN 16
1676 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MAJOR_WIDTH 16
1677 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_LO_OFST 20
1678 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_LO_LEN 4
1679 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_BUILD_LBN 0
1680 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_BUILD_WIDTH 16
1681 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MICRO_LBN 16
1682 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MICRO_WIDTH 16
1683 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_LO_OFST 24
1684 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_LO_LEN 4
1685 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HI_OFST 28
1686 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HI_LEN 4
1687 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HIGH_LBN 0
1688 #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HIGH_WIDTH 16
1689 
1690 /* MC_CMD_FC_OUT_FPGA_SERVICES msgresponse */
1691 #define	MC_CMD_FC_OUT_FPGA_SERVICES_LEN 32
1692 #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_INFO_OFST 0
1693 #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_INFO_LEN 4
1694 #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_APPLICATION_LBN 31
1695 #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_APPLICATION_WIDTH 1
1696 #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_LICENSED_LBN 30
1697 #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_LICENSED_WIDTH 1
1698 #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_ID_LBN 16
1699 #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_ID_WIDTH 14
1700 #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MAJOR_LBN 12
1701 #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MAJOR_WIDTH 4
1702 #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MINOR_LBN 4
1703 #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MINOR_WIDTH 8
1704 #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_NUM_LBN 0
1705 #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_NUM_WIDTH 4
1706 /* Build timestamp (seconds since epoch) */
1707 #define	MC_CMD_FC_OUT_FPGA_SERVICES_TIMESTAMP_OFST 4
1708 #define	MC_CMD_FC_OUT_FPGA_SERVICES_TIMESTAMP_LEN 4
1709 #define	MC_CMD_FC_OUT_FPGA_SERVICES_PARAMETERS_OFST 8
1710 #define	MC_CMD_FC_OUT_FPGA_SERVICES_PARAMETERS_LEN 4
1711 #define	MC_CMD_FC_OUT_FPGA_SERVICES_FC_FLASH_BOOTED_LBN 8
1712 #define	MC_CMD_FC_OUT_FPGA_SERVICES_FC_FLASH_BOOTED_WIDTH 1
1713 #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC0_DEF_LBN 27
1714 #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC0_DEF_WIDTH 1
1715 #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC1_DEF_LBN 28
1716 #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC1_DEF_WIDTH 1
1717 #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP0_DEF_LBN 29
1718 #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP0_DEF_WIDTH 1
1719 #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP1_DEF_LBN 30
1720 #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP1_DEF_WIDTH 1
1721 #define	MC_CMD_FC_OUT_FPGA_SERVICES_RESERVED_LBN 31
1722 #define	MC_CMD_FC_OUT_FPGA_SERVICES_RESERVED_WIDTH 1
1723 #define	MC_CMD_FC_OUT_FPGA_SERVICES_IDENTIFIER_OFST 12
1724 #define	MC_CMD_FC_OUT_FPGA_SERVICES_IDENTIFIER_LEN 4
1725 #define	MC_CMD_FC_OUT_FPGA_SERVICES_CHANGESET_LBN 0
1726 #define	MC_CMD_FC_OUT_FPGA_SERVICES_CHANGESET_WIDTH 16
1727 #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_FLAG_LBN 16
1728 #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_FLAG_WIDTH 1
1729 #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_OFST 16
1730 #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_LEN 4
1731 #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_WIDTH_LBN 0
1732 #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_WIDTH_WIDTH 16
1733 #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_COUNT_LBN 16
1734 #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_COUNT_WIDTH 16
1735 #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_OFST 20
1736 #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_LEN 4
1737 #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_WIDTH_LBN 0
1738 #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_WIDTH_WIDTH 16
1739 #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_COUNT_LBN 16
1740 #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_COUNT_WIDTH 16
1741 #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_LO_OFST 24
1742 #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_LO_LEN 4
1743 #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HI_OFST 28
1744 #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HI_LEN 4
1745 #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HIGH_LBN 0
1746 #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HIGH_WIDTH 16
1747 
1748 /* MC_CMD_FC_OUT_FPGA_SERVICES_V2 msgresponse */
1749 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_LEN 32
1750 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_INFO_OFST 0
1751 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_INFO_LEN 4
1752 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_APPLICATION_LBN 31
1753 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_APPLICATION_WIDTH 1
1754 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_LICENSED_LBN 30
1755 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_LICENSED_WIDTH 1
1756 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_ID_LBN 16
1757 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_ID_WIDTH 14
1758 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MAJOR_LBN 12
1759 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MAJOR_WIDTH 4
1760 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MINOR_LBN 4
1761 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MINOR_WIDTH 8
1762 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_NUM_LBN 0
1763 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_NUM_WIDTH 4
1764 /* Build timestamp (seconds since epoch) */
1765 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_TIMESTAMP_OFST 4
1766 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_TIMESTAMP_LEN 4
1767 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PARAMETERS_OFST 8
1768 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PARAMETERS_LEN 4
1769 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PTP_ENABLED_LBN 0
1770 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PTP_ENABLED_WIDTH 1
1771 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_FC_FLASH_BOOTED_LBN 8
1772 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_FC_FLASH_BOOTED_WIDTH 1
1773 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IDENTIFIER_OFST 12
1774 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IDENTIFIER_LEN 4
1775 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_CHANGESET_LBN 0
1776 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_CHANGESET_WIDTH 16
1777 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_FLAG_LBN 16
1778 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_FLAG_WIDTH 1
1779 /*               MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 */
1780 /*               MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 */
1781 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_LO_OFST 24
1782 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_LO_LEN 4
1783 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HI_OFST 28
1784 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HI_LEN 4
1785 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HIGH_LBN 0
1786 #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HIGH_WIDTH 16
1787 
1788 /* MC_CMD_FC_OUT_BSP_VERSION msgresponse */
1789 #define	MC_CMD_FC_OUT_BSP_VERSION_LEN 4
1790 /* Qsys system ID */
1791 #define	MC_CMD_FC_OUT_BSP_VERSION_SYSID_OFST 0
1792 #define	MC_CMD_FC_OUT_BSP_VERSION_SYSID_LEN 4
1793 #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MAJOR_LBN 12
1794 #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MAJOR_WIDTH 4
1795 #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MINOR_LBN 4
1796 #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MINOR_WIDTH 8
1797 #define	MC_CMD_FC_OUT_BSP_VERSION_BUILD_NUM_LBN 0
1798 #define	MC_CMD_FC_OUT_BSP_VERSION_BUILD_NUM_WIDTH 4
1799 
1800 /* MC_CMD_FC_OUT_READ_MAP_COUNT msgresponse */
1801 #define	MC_CMD_FC_OUT_READ_MAP_COUNT_LEN 4
1802 /* Number of maps */
1803 #define	MC_CMD_FC_OUT_READ_MAP_COUNT_NUM_MAPS_OFST 0
1804 #define	MC_CMD_FC_OUT_READ_MAP_COUNT_NUM_MAPS_LEN 4
1805 
1806 /* MC_CMD_FC_OUT_READ_MAP_INDEX msgresponse */
1807 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN 164
1808 /* Index of the map */
1809 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_INDEX_OFST 0
1810 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_INDEX_LEN 4
1811 /* Options for the map */
1812 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_OPTIONS_OFST 4
1813 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_OPTIONS_LEN 4
1814 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_8 0x0 /* enum */
1815 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_16 0x1 /* enum */
1816 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_32 0x2 /* enum */
1817 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_64 0x3 /* enum */
1818 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_MASK 0x3 /* enum */
1819 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PATH_FC 0x4 /* enum */
1820 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PATH_MEM 0x8 /* enum */
1821 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PERM_READ 0x10 /* enum */
1822 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PERM_WRITE 0x20 /* enum */
1823 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_FREE 0x0 /* enum */
1824 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_LICENSED 0x40 /* enum */
1825 /* Address of start of map */
1826 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_OFST 8
1827 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LEN 8
1828 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LO_OFST 8
1829 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_HI_OFST 12
1830 /* Length of address map */
1831 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_OFST 16
1832 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LEN 8
1833 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LO_OFST 16
1834 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_HI_OFST 20
1835 /* Component information field */
1836 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_COMP_INFO_OFST 24
1837 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_COMP_INFO_LEN 4
1838 /* License expiry data for map */
1839 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_OFST 28
1840 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LEN 8
1841 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LO_OFST 28
1842 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_HI_OFST 32
1843 /* Name of the component */
1844 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_OFST 36
1845 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_LEN 1
1846 #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_NUM 128
1847 
1848 /* MC_CMD_FC_OUT_READ_MAP msgresponse */
1849 #define	MC_CMD_FC_OUT_READ_MAP_LEN 0
1850 
1851 /* MC_CMD_FC_OUT_CAPABILITIES msgresponse */
1852 #define	MC_CMD_FC_OUT_CAPABILITIES_LEN 8
1853 /* Number of internal ports */
1854 #define	MC_CMD_FC_OUT_CAPABILITIES_INTERNAL_OFST 0
1855 #define	MC_CMD_FC_OUT_CAPABILITIES_INTERNAL_LEN 4
1856 /* Number of external ports */
1857 #define	MC_CMD_FC_OUT_CAPABILITIES_EXTERNAL_OFST 4
1858 #define	MC_CMD_FC_OUT_CAPABILITIES_EXTERNAL_LEN 4
1859 
1860 /* MC_CMD_FC_OUT_GLOBAL_FLAGS msgresponse */
1861 #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_LEN 4
1862 #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_FLAGS_OFST 0
1863 #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_FLAGS_LEN 4
1864 
1865 /* MC_CMD_FC_OUT_IO_REL msgresponse */
1866 #define	MC_CMD_FC_OUT_IO_REL_LEN 0
1867 
1868 /* MC_CMD_FC_OUT_IO_REL_GET_ADDR msgresponse */
1869 #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_LEN 8
1870 #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_HI_OFST 0
1871 #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_HI_LEN 4
1872 #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_LO_OFST 4
1873 #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_LO_LEN 4
1874 
1875 /* MC_CMD_FC_OUT_IO_REL_READ32 msgresponse */
1876 #define	MC_CMD_FC_OUT_IO_REL_READ32_LENMIN 4
1877 #define	MC_CMD_FC_OUT_IO_REL_READ32_LENMAX 252
1878 #define	MC_CMD_FC_OUT_IO_REL_READ32_LEN(num) (0+4*(num))
1879 #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_OFST 0
1880 #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_LEN 4
1881 #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_MINNUM 1
1882 #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_MAXNUM 63
1883 
1884 /* MC_CMD_FC_OUT_IO_REL_WRITE32 msgresponse */
1885 #define	MC_CMD_FC_OUT_IO_REL_WRITE32_LEN 0
1886 
1887 /* MC_CMD_FC_OUT_UHLINK_PHY msgresponse */
1888 #define	MC_CMD_FC_OUT_UHLINK_PHY_LEN 48
1889 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_0_OFST 0
1890 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_0_LEN 4
1891 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_VOD_LBN 0
1892 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_VOD_WIDTH 16
1893 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_1STPOSTTAP_LBN 16
1894 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_1STPOSTTAP_WIDTH 16
1895 /* Transceiver Transmit settings */
1896 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_1_OFST 4
1897 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_1_LEN 4
1898 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_PRETAP_LBN 0
1899 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_PRETAP_WIDTH 16
1900 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_2NDPOSTTAP_LBN 16
1901 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_2NDPOSTTAP_WIDTH 16
1902 /* Transceiver Receive settings */
1903 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_SETTINGS_OFST 8
1904 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_SETTINGS_LEN 4
1905 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_DC_GAIN_LBN 0
1906 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_DC_GAIN_WIDTH 16
1907 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_EQ_CONTROL_LBN 16
1908 #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_EQ_CONTROL_WIDTH 16
1909 /* Rx eye opening */
1910 #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_OFST 12
1911 #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_LEN 4
1912 #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_WIDTH_LBN 0
1913 #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_WIDTH_WIDTH 16
1914 #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_HEIGHT_LBN 16
1915 #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_HEIGHT_WIDTH 16
1916 /* PCS status word */
1917 #define	MC_CMD_FC_OUT_UHLINK_PHY_PCS_STATUS_OFST 16
1918 #define	MC_CMD_FC_OUT_UHLINK_PHY_PCS_STATUS_LEN 4
1919 /* Link status word */
1920 #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WORD_OFST 20
1921 #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WORD_LEN 4
1922 #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_LBN 0
1923 #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WIDTH 1
1924 #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_CONFIGURED_LBN 1
1925 #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_CONFIGURED_WIDTH 1
1926 /* Current SFp parameters applied */
1927 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PARAMS_OFST 24
1928 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PARAMS_LEN 20
1929 /* Link speed is 100, 1000, 10000 */
1930 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_SPEED_OFST 24
1931 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_SPEED_LEN 4
1932 /* Length of copper cable - zero when not relevant */
1933 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_COPPER_LEN_OFST 28
1934 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_COPPER_LEN_LEN 4
1935 /* True if a dual speed SFP+ module */
1936 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_DUAL_SPEED_OFST 32
1937 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_DUAL_SPEED_LEN 4
1938 /* True if an SFP Module is present (other fields valid when true) */
1939 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PRESENT_OFST 36
1940 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PRESENT_LEN 4
1941 /* The type of the SFP+ Module */
1942 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_TYPE_OFST 40
1943 #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_TYPE_LEN 4
1944 /* PHY config flags */
1945 #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_OFST 44
1946 #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_LEN 4
1947 #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_DFE_LBN 0
1948 #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_DFE_WIDTH 1
1949 #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_AEQ_LBN 1
1950 #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_AEQ_WIDTH 1
1951 #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_RX_TUNING_LBN 2
1952 #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_RX_TUNING_WIDTH 1
1953 
1954 /* MC_CMD_FC_OUT_UHLINK_MAC msgresponse */
1955 #define	MC_CMD_FC_OUT_UHLINK_MAC_LEN 20
1956 /* MAC configuration applied */
1957 #define	MC_CMD_FC_OUT_UHLINK_MAC_CONFIG_OFST 0
1958 #define	MC_CMD_FC_OUT_UHLINK_MAC_CONFIG_LEN 4
1959 /* MTU size */
1960 #define	MC_CMD_FC_OUT_UHLINK_MAC_MTU_OFST 4
1961 #define	MC_CMD_FC_OUT_UHLINK_MAC_MTU_LEN 4
1962 /* IF Mode status */
1963 #define	MC_CMD_FC_OUT_UHLINK_MAC_IF_STATUS_OFST 8
1964 #define	MC_CMD_FC_OUT_UHLINK_MAC_IF_STATUS_LEN 4
1965 /* MAC address configured */
1966 #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_OFST 12
1967 #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LEN 8
1968 #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LO_OFST 12
1969 #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_HI_OFST 16
1970 
1971 /* MC_CMD_FC_OUT_UHLINK_RX_EYE msgresponse */
1972 #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_LEN ((((0-1+(32*MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK))+1))>>3)
1973 /* Rx Eye measurements */
1974 #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_OFST 0
1975 #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_LEN 4
1976 #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_NUM MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK
1977 
1978 /* MC_CMD_FC_OUT_UHLINK_DUMP_RX_EYE_PLOT msgresponse */
1979 #define	MC_CMD_FC_OUT_UHLINK_DUMP_RX_EYE_PLOT_LEN 0
1980 
1981 /* MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT msgresponse */
1982 #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_LEN ((((32-1+(64*MC_CMD_FC_UHLINK_RX_EYE_PLOT_ROWS_PER_BLOCK))+1))>>3)
1983 /* Has the eye plot dump completed and data returned is valid? */
1984 #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_VALID_OFST 0
1985 #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_VALID_LEN 4
1986 /* Rx Eye binary plot */
1987 #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_OFST 4
1988 #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LEN 8
1989 #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LO_OFST 4
1990 #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_HI_OFST 8
1991 #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_NUM MC_CMD_FC_UHLINK_RX_EYE_PLOT_ROWS_PER_BLOCK
1992 
1993 /* MC_CMD_FC_OUT_UHLINK_RX_TUNE msgresponse */
1994 #define	MC_CMD_FC_OUT_UHLINK_RX_TUNE_LEN 0
1995 
1996 /* MC_CMD_FC_OUT_UHLINK_LOOPBACK_SET msgresponse */
1997 #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_SET_LEN 0
1998 
1999 /* MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET msgresponse */
2000 #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_LEN 4
2001 #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_STATE_OFST 0
2002 #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_STATE_LEN 4
2003 
2004 /* MC_CMD_FC_OUT_UHLINK msgresponse */
2005 #define	MC_CMD_FC_OUT_UHLINK_LEN 0
2006 
2007 /* MC_CMD_FC_OUT_SET_LINK msgresponse */
2008 #define	MC_CMD_FC_OUT_SET_LINK_LEN 0
2009 
2010 /* MC_CMD_FC_OUT_LICENSE msgresponse */
2011 #define	MC_CMD_FC_OUT_LICENSE_LEN 12
2012 /* Count of valid keys */
2013 #define	MC_CMD_FC_OUT_LICENSE_VALID_KEYS_OFST 0
2014 #define	MC_CMD_FC_OUT_LICENSE_VALID_KEYS_LEN 4
2015 /* Count of invalid keys */
2016 #define	MC_CMD_FC_OUT_LICENSE_INVALID_KEYS_OFST 4
2017 #define	MC_CMD_FC_OUT_LICENSE_INVALID_KEYS_LEN 4
2018 /* Count of blacklisted keys */
2019 #define	MC_CMD_FC_OUT_LICENSE_BLACKLISTED_KEYS_OFST 8
2020 #define	MC_CMD_FC_OUT_LICENSE_BLACKLISTED_KEYS_LEN 4
2021 
2022 /* MC_CMD_FC_OUT_STARTUP msgresponse */
2023 #define	MC_CMD_FC_OUT_STARTUP_LEN 4
2024 /* Capabilities of the FPGA/FC */
2025 #define	MC_CMD_FC_OUT_STARTUP_CAPABILITIES_OFST 0
2026 #define	MC_CMD_FC_OUT_STARTUP_CAPABILITIES_LEN 4
2027 #define	MC_CMD_FC_OUT_STARTUP_CAN_ACCESS_FLASH_LBN 0
2028 #define	MC_CMD_FC_OUT_STARTUP_CAN_ACCESS_FLASH_WIDTH 1
2029 
2030 /* MC_CMD_FC_OUT_DMA_READ msgresponse */
2031 #define	MC_CMD_FC_OUT_DMA_READ_LENMIN 1
2032 #define	MC_CMD_FC_OUT_DMA_READ_LENMAX 252
2033 #define	MC_CMD_FC_OUT_DMA_READ_LEN(num) (0+1*(num))
2034 /* The data read */
2035 #define	MC_CMD_FC_OUT_DMA_READ_DATA_OFST 0
2036 #define	MC_CMD_FC_OUT_DMA_READ_DATA_LEN 1
2037 #define	MC_CMD_FC_OUT_DMA_READ_DATA_MINNUM 1
2038 #define	MC_CMD_FC_OUT_DMA_READ_DATA_MAXNUM 252
2039 
2040 /* MC_CMD_FC_OUT_TIMED_READ_SET msgresponse */
2041 #define	MC_CMD_FC_OUT_TIMED_READ_SET_LEN 4
2042 /* Timer handle */
2043 #define	MC_CMD_FC_OUT_TIMED_READ_SET_FC_HANDLE_OFST 0
2044 #define	MC_CMD_FC_OUT_TIMED_READ_SET_FC_HANDLE_LEN 4
2045 
2046 /* MC_CMD_FC_OUT_TIMED_READ_GET msgresponse */
2047 #define	MC_CMD_FC_OUT_TIMED_READ_GET_LEN 52
2048 /* Host supplied handle (unique) */
2049 #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_HANDLE_OFST 0
2050 #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_HANDLE_LEN 4
2051 /* Address into which to transfer data in host */
2052 #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_OFST 4
2053 #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LEN 8
2054 #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LO_OFST 4
2055 #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_HI_OFST 8
2056 /* AOE address from which to transfer data */
2057 #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_OFST 12
2058 #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LEN 8
2059 #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LO_OFST 12
2060 #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_HI_OFST 16
2061 /* Length of AOE transfer (total) */
2062 #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_LENGTH_OFST 20
2063 #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_LENGTH_LEN 4
2064 /* Length of host transfer (total) */
2065 #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_LENGTH_OFST 24
2066 #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_LENGTH_LEN 4
2067 /* See FLAGS entry for MC_CMD_FC_IN_TIMED_READ_SET */
2068 #define	MC_CMD_FC_OUT_TIMED_READ_GET_FLAGS_OFST 28
2069 #define	MC_CMD_FC_OUT_TIMED_READ_GET_FLAGS_LEN 4
2070 #define	MC_CMD_FC_OUT_TIMED_READ_GET_PERIOD_OFST 32
2071 #define	MC_CMD_FC_OUT_TIMED_READ_GET_PERIOD_LEN 4
2072 /* When active, start read time */
2073 #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_OFST 36
2074 #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LEN 8
2075 #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LO_OFST 36
2076 #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_HI_OFST 40
2077 /* When active, end read time */
2078 #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_OFST 44
2079 #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LEN 8
2080 #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LO_OFST 44
2081 #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_HI_OFST 48
2082 
2083 /* MC_CMD_FC_OUT_LOG_ADDR_RANGE msgresponse */
2084 #define	MC_CMD_FC_OUT_LOG_ADDR_RANGE_LEN 0
2085 
2086 /* MC_CMD_FC_OUT_LOG msgresponse */
2087 #define	MC_CMD_FC_OUT_LOG_LEN 0
2088 
2089 /* MC_CMD_FC_OUT_CLOCK_GET_TIME msgresponse */
2090 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_LEN 24
2091 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_CLOCK_ID_OFST 0
2092 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_CLOCK_ID_LEN 4
2093 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_OFST 4
2094 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LEN 8
2095 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LO_OFST 4
2096 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_HI_OFST 8
2097 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_NANOSECONDS_OFST 12
2098 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_NANOSECONDS_LEN 4
2099 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_RANGE_OFST 16
2100 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_RANGE_LEN 4
2101 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_PRECISION_OFST 20
2102 #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_PRECISION_LEN 4
2103 
2104 /* MC_CMD_FC_OUT_CLOCK_SET_TIME msgresponse */
2105 #define	MC_CMD_FC_OUT_CLOCK_SET_TIME_LEN 0
2106 
2107 /* MC_CMD_FC_OUT_DDR_SET_SPD msgresponse */
2108 #define	MC_CMD_FC_OUT_DDR_SET_SPD_LEN 0
2109 
2110 /* MC_CMD_FC_OUT_DDR_SET_INFO msgresponse */
2111 #define	MC_CMD_FC_OUT_DDR_SET_INFO_LEN 0
2112 
2113 /* MC_CMD_FC_OUT_DDR_GET_STATUS msgresponse */
2114 #define	MC_CMD_FC_OUT_DDR_GET_STATUS_LEN 4
2115 #define	MC_CMD_FC_OUT_DDR_GET_STATUS_FLAGS_OFST 0
2116 #define	MC_CMD_FC_OUT_DDR_GET_STATUS_FLAGS_LEN 4
2117 #define	MC_CMD_FC_OUT_DDR_GET_STATUS_READY_LBN 0
2118 #define	MC_CMD_FC_OUT_DDR_GET_STATUS_READY_WIDTH 1
2119 #define	MC_CMD_FC_OUT_DDR_GET_STATUS_CALIBRATED_LBN 1
2120 #define	MC_CMD_FC_OUT_DDR_GET_STATUS_CALIBRATED_WIDTH 1
2121 
2122 /* MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT msgresponse */
2123 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_LEN 8
2124 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_SECONDS_OFST 0
2125 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_SECONDS_LEN 4
2126 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_NANOSECONDS_OFST 4
2127 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_NANOSECONDS_LEN 4
2128 
2129 /* MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT msgresponse */
2130 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LENMIN 8
2131 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LENMAX 248
2132 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LEN(num) (0+8*(num))
2133 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_SECONDS_OFST 0
2134 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_SECONDS_LEN 4
2135 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_NANOSECONDS_OFST 4
2136 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_NANOSECONDS_LEN 4
2137 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_OFST 0
2138 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LEN 8
2139 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LO_OFST 0
2140 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_HI_OFST 4
2141 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_MINNUM 0
2142 #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_MAXNUM 31
2143 
2144 /* MC_CMD_FC_OUT_SPI_READ msgresponse */
2145 #define	MC_CMD_FC_OUT_SPI_READ_LENMIN 4
2146 #define	MC_CMD_FC_OUT_SPI_READ_LENMAX 252
2147 #define	MC_CMD_FC_OUT_SPI_READ_LEN(num) (0+4*(num))
2148 #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_OFST 0
2149 #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_LEN 4
2150 #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_MINNUM 1
2151 #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_MAXNUM 63
2152 
2153 /* MC_CMD_FC_OUT_SPI_WRITE msgresponse */
2154 #define	MC_CMD_FC_OUT_SPI_WRITE_LEN 0
2155 
2156 /* MC_CMD_FC_OUT_SPI_ERASE msgresponse */
2157 #define	MC_CMD_FC_OUT_SPI_ERASE_LEN 0
2158 
2159 /* MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG msgresponse */
2160 #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_LEN 8
2161 /* The 32-bit value read from the toggle count register */
2162 #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_TOGGLE_COUNT_OFST 0
2163 #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_TOGGLE_COUNT_LEN 4
2164 /* The 32-bit value read from the clock enable count register */
2165 #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_CLKEN_COUNT_OFST 4
2166 #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_CLKEN_COUNT_LEN 4
2167 
2168 /* MC_CMD_FC_OUT_DIAG_POWER_NOISE_WRITE_CONFIG msgresponse */
2169 #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_WRITE_CONFIG_LEN 0
2170 
2171 /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_START msgresponse */
2172 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_START_LEN 0
2173 
2174 /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT msgresponse */
2175 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_LEN 8
2176 /* DDR soak test status word; bits [4:0] are relevant. */
2177 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_STATUS_OFST 0
2178 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_STATUS_LEN 4
2179 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PASSED_LBN 0
2180 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PASSED_WIDTH 1
2181 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_FAILED_LBN 1
2182 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_FAILED_WIDTH 1
2183 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_COMPLETED_LBN 2
2184 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_COMPLETED_WIDTH 1
2185 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_TIMEOUT_LBN 3
2186 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_TIMEOUT_WIDTH 1
2187 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PNF_LBN 4
2188 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PNF_WIDTH 1
2189 /* DDR soak test error count */
2190 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_ERR_COUNT_OFST 4
2191 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_ERR_COUNT_LEN 4
2192 
2193 /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_STOP msgresponse */
2194 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_STOP_LEN 0
2195 
2196 /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_ERROR msgresponse */
2197 #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_ERROR_LEN 0
2198 
2199 /* MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_SET_MODE msgresponse */
2200 #define	MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_SET_MODE_LEN 0
2201 
2202 /* MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_RAW_CONFIG msgresponse */
2203 #define	MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_RAW_CONFIG_LEN 0
2204 
2205 /***********************************/
2206 /* MC_CMD_AOE
2207  * AOE operations on MC
2208  */
2209 #define	MC_CMD_AOE 0xa
2210 
2211 /* MC_CMD_AOE_IN msgrequest */
2212 #define	MC_CMD_AOE_IN_LEN 4
2213 #define	MC_CMD_AOE_IN_OP_HDR_OFST 0
2214 #define	MC_CMD_AOE_IN_OP_HDR_LEN 4
2215 #define	MC_CMD_AOE_IN_OP_LBN 0
2216 #define	MC_CMD_AOE_IN_OP_WIDTH 8
2217 /* enum: FPGA and CPLD information */
2218 #define	MC_CMD_AOE_OP_INFO 0x1
2219 /* enum: Currents and voltages read from MCP3424s; DEBUG */
2220 #define	MC_CMD_AOE_OP_CURRENTS 0x2
2221 /* enum: Temperatures at locations around the PCB; DEBUG */
2222 #define	MC_CMD_AOE_OP_TEMPERATURES 0x3
2223 /* enum: Set CPLD to idle */
2224 #define	MC_CMD_AOE_OP_CPLD_IDLE 0x4
2225 /* enum: Read from CPLD register */
2226 #define	MC_CMD_AOE_OP_CPLD_READ 0x5
2227 /* enum: Write to CPLD register */
2228 #define	MC_CMD_AOE_OP_CPLD_WRITE 0x6
2229 /* enum: Execute CPLD instruction */
2230 #define	MC_CMD_AOE_OP_CPLD_INSTRUCTION 0x7
2231 /* enum: Reprogram the CPLD on the AOE device */
2232 #define	MC_CMD_AOE_OP_CPLD_REPROGRAM 0x8
2233 /* enum: AOE power control */
2234 #define	MC_CMD_AOE_OP_POWER 0x9
2235 /* enum: AOE image loading */
2236 #define	MC_CMD_AOE_OP_LOAD 0xa
2237 /* enum: Fan monitoring */
2238 #define	MC_CMD_AOE_OP_FAN_CONTROL 0xb
2239 /* enum: Fan failures since last reset */
2240 #define	MC_CMD_AOE_OP_FAN_FAILURES 0xc
2241 /* enum: Get generic AOE MAC statistics */
2242 #define	MC_CMD_AOE_OP_MAC_STATS 0xd
2243 /* enum: Retrieve PHY specific information */
2244 #define	MC_CMD_AOE_OP_GET_PHY_MEDIA_INFO 0xe
2245 /* enum: Write a number of JTAG primitive commands, return will give data */
2246 #define	MC_CMD_AOE_OP_JTAG_WRITE 0xf
2247 /* enum: Control access to the FPGA via the Siena JTAG Chain */
2248 #define	MC_CMD_AOE_OP_FPGA_ACCESS 0x10
2249 /* enum: Set the MTU offset between Siena and AOE MACs */
2250 #define	MC_CMD_AOE_OP_SET_MTU_OFFSET 0x11
2251 /* enum: How link state is handled */
2252 #define	MC_CMD_AOE_OP_LINK_STATE 0x12
2253 /* enum: How Siena MAC statistics are reported (deprecated - use
2254  * MC_CMD_AOE_OP_ASIC_STATS)
2255  */
2256 #define	MC_CMD_AOE_OP_SIENA_STATS 0x13
2257 /* enum: How native ASIC MAC statistics are reported - replaces the deprecated
2258  * command MC_CMD_AOE_OP_SIENA_STATS
2259  */
2260 #define	MC_CMD_AOE_OP_ASIC_STATS 0x13
2261 /* enum: DDR memory information */
2262 #define	MC_CMD_AOE_OP_DDR 0x14
2263 /* enum: FC control */
2264 #define	MC_CMD_AOE_OP_FC 0x15
2265 /* enum: DDR ECC status reads */
2266 #define	MC_CMD_AOE_OP_DDR_ECC_STATUS 0x16
2267 /* enum: Commands for MC-SPI Master emulation */
2268 #define	MC_CMD_AOE_OP_MC_SPI_MASTER 0x17
2269 /* enum: Commands for FC boot control */
2270 #define	MC_CMD_AOE_OP_FC_BOOT 0x18
2271 /* enum: Get number of internal ports */
2272 #define	MC_CMD_AOE_OP_GET_ASIC_PORTS 0x19
2273 /* enum: Get FC assert information and register dump */
2274 #define	MC_CMD_AOE_OP_GET_FC_ASSERT_INFO 0x1a
2275 
2276 /* MC_CMD_AOE_OUT msgresponse */
2277 #define	MC_CMD_AOE_OUT_LEN 0
2278 
2279 /* MC_CMD_AOE_IN_INFO msgrequest */
2280 #define	MC_CMD_AOE_IN_INFO_LEN 4
2281 #define	MC_CMD_AOE_IN_CMD_OFST 0
2282 #define	MC_CMD_AOE_IN_CMD_LEN 4
2283 
2284 /* MC_CMD_AOE_IN_CURRENTS msgrequest */
2285 #define	MC_CMD_AOE_IN_CURRENTS_LEN 4
2286 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2287 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2288 
2289 /* MC_CMD_AOE_IN_TEMPERATURES msgrequest */
2290 #define	MC_CMD_AOE_IN_TEMPERATURES_LEN 4
2291 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2292 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2293 
2294 /* MC_CMD_AOE_IN_CPLD_IDLE msgrequest */
2295 #define	MC_CMD_AOE_IN_CPLD_IDLE_LEN 4
2296 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2297 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2298 
2299 /* MC_CMD_AOE_IN_CPLD_READ msgrequest */
2300 #define	MC_CMD_AOE_IN_CPLD_READ_LEN 12
2301 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2302 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2303 #define	MC_CMD_AOE_IN_CPLD_READ_REGISTER_OFST 4
2304 #define	MC_CMD_AOE_IN_CPLD_READ_REGISTER_LEN 4
2305 #define	MC_CMD_AOE_IN_CPLD_READ_WIDTH_OFST 8
2306 #define	MC_CMD_AOE_IN_CPLD_READ_WIDTH_LEN 4
2307 
2308 /* MC_CMD_AOE_IN_CPLD_WRITE msgrequest */
2309 #define	MC_CMD_AOE_IN_CPLD_WRITE_LEN 16
2310 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2311 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2312 #define	MC_CMD_AOE_IN_CPLD_WRITE_REGISTER_OFST 4
2313 #define	MC_CMD_AOE_IN_CPLD_WRITE_REGISTER_LEN 4
2314 #define	MC_CMD_AOE_IN_CPLD_WRITE_WIDTH_OFST 8
2315 #define	MC_CMD_AOE_IN_CPLD_WRITE_WIDTH_LEN 4
2316 #define	MC_CMD_AOE_IN_CPLD_WRITE_VALUE_OFST 12
2317 #define	MC_CMD_AOE_IN_CPLD_WRITE_VALUE_LEN 4
2318 
2319 /* MC_CMD_AOE_IN_CPLD_INSTRUCTION msgrequest */
2320 #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_LEN 8
2321 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2322 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2323 #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_INSTRUCTION_OFST 4
2324 #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_INSTRUCTION_LEN 4
2325 
2326 /* MC_CMD_AOE_IN_CPLD_REPROGRAM msgrequest */
2327 #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_LEN 8
2328 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2329 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2330 #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_OP_OFST 4
2331 #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_OP_LEN 4
2332 /* enum: Reprogram CPLD, poll for completion */
2333 #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_REPROGRAM 0x1
2334 /* enum: Reprogram CPLD, send event on completion */
2335 #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_REPROGRAM_EVENT 0x3
2336 /* enum: Get status of reprogramming operation */
2337 #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_STATUS 0x4
2338 
2339 /* MC_CMD_AOE_IN_POWER msgrequest */
2340 #define	MC_CMD_AOE_IN_POWER_LEN 8
2341 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2342 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2343 /* Turn on or off AOE power */
2344 #define	MC_CMD_AOE_IN_POWER_OP_OFST 4
2345 #define	MC_CMD_AOE_IN_POWER_OP_LEN 4
2346 /* enum: Turn off FPGA power */
2347 #define	MC_CMD_AOE_IN_POWER_OFF 0x0
2348 /* enum: Turn on FPGA power */
2349 #define	MC_CMD_AOE_IN_POWER_ON 0x1
2350 /* enum: Clear peak power measurement */
2351 #define	MC_CMD_AOE_IN_POWER_CLEAR 0x2
2352 /* enum: Show current power in sensors output */
2353 #define	MC_CMD_AOE_IN_POWER_SHOW_CURRENT 0x3
2354 /* enum: Show peak power in sensors output */
2355 #define	MC_CMD_AOE_IN_POWER_SHOW_PEAK 0x4
2356 /* enum: Show current DDR current */
2357 #define	MC_CMD_AOE_IN_POWER_DDR_LAST 0x5
2358 /* enum: Show peak DDR current */
2359 #define	MC_CMD_AOE_IN_POWER_DDR_PEAK 0x6
2360 /* enum: Clear peak DDR current */
2361 #define	MC_CMD_AOE_IN_POWER_DDR_CLEAR 0x7
2362 
2363 /* MC_CMD_AOE_IN_LOAD msgrequest */
2364 #define	MC_CMD_AOE_IN_LOAD_LEN 8
2365 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2366 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2367 /* Image to be loaded (0 - main or 1 - diagnostic) to load in normal sequence
2368  */
2369 #define	MC_CMD_AOE_IN_LOAD_IMAGE_OFST 4
2370 #define	MC_CMD_AOE_IN_LOAD_IMAGE_LEN 4
2371 
2372 /* MC_CMD_AOE_IN_FAN_CONTROL msgrequest */
2373 #define	MC_CMD_AOE_IN_FAN_CONTROL_LEN 8
2374 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2375 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2376 /* If non zero report measured fan RPM rather than nominal */
2377 #define	MC_CMD_AOE_IN_FAN_CONTROL_REAL_RPM_OFST 4
2378 #define	MC_CMD_AOE_IN_FAN_CONTROL_REAL_RPM_LEN 4
2379 
2380 /* MC_CMD_AOE_IN_FAN_FAILURES msgrequest */
2381 #define	MC_CMD_AOE_IN_FAN_FAILURES_LEN 4
2382 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2383 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2384 
2385 /* MC_CMD_AOE_IN_MAC_STATS msgrequest */
2386 #define	MC_CMD_AOE_IN_MAC_STATS_LEN 24
2387 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2388 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2389 /* AOE port */
2390 #define	MC_CMD_AOE_IN_MAC_STATS_PORT_OFST 4
2391 #define	MC_CMD_AOE_IN_MAC_STATS_PORT_LEN 4
2392 /* Host memory address for statistics */
2393 #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_OFST 8
2394 #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LEN 8
2395 #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LO_OFST 8
2396 #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_HI_OFST 12
2397 #define	MC_CMD_AOE_IN_MAC_STATS_CMD_OFST 16
2398 #define	MC_CMD_AOE_IN_MAC_STATS_CMD_LEN 4
2399 #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LBN 0
2400 #define	MC_CMD_AOE_IN_MAC_STATS_DMA_WIDTH 1
2401 #define	MC_CMD_AOE_IN_MAC_STATS_CLEAR_LBN 1
2402 #define	MC_CMD_AOE_IN_MAC_STATS_CLEAR_WIDTH 1
2403 #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CHANGE_LBN 2
2404 #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CHANGE_WIDTH 1
2405 #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_ENABLE_LBN 3
2406 #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_ENABLE_WIDTH 1
2407 #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CLEAR_LBN 4
2408 #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CLEAR_WIDTH 1
2409 #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_NOEVENT_LBN 5
2410 #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_NOEVENT_WIDTH 1
2411 #define	MC_CMD_AOE_IN_MAC_STATS_PERIOD_MS_LBN 16
2412 #define	MC_CMD_AOE_IN_MAC_STATS_PERIOD_MS_WIDTH 16
2413 /* Length of DMA data (optional) */
2414 #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LEN_OFST 20
2415 #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LEN_LEN 4
2416 
2417 /* MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO msgrequest */
2418 #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_LEN 12
2419 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2420 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2421 /* AOE port */
2422 #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PORT_OFST 4
2423 #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PORT_LEN 4
2424 #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PAGE_OFST 8
2425 #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PAGE_LEN 4
2426 
2427 /* MC_CMD_AOE_IN_JTAG_WRITE msgrequest */
2428 #define	MC_CMD_AOE_IN_JTAG_WRITE_LENMIN 12
2429 #define	MC_CMD_AOE_IN_JTAG_WRITE_LENMAX 252
2430 #define	MC_CMD_AOE_IN_JTAG_WRITE_LEN(num) (8+4*(num))
2431 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2432 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2433 #define	MC_CMD_AOE_IN_JTAG_WRITE_DATALEN_OFST 4
2434 #define	MC_CMD_AOE_IN_JTAG_WRITE_DATALEN_LEN 4
2435 #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_OFST 8
2436 #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_LEN 4
2437 #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_MINNUM 1
2438 #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_MAXNUM 61
2439 
2440 /* MC_CMD_AOE_IN_FPGA_ACCESS msgrequest */
2441 #define	MC_CMD_AOE_IN_FPGA_ACCESS_LEN 8
2442 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2443 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2444 /* Enable or disable access */
2445 #define	MC_CMD_AOE_IN_FPGA_ACCESS_OP_OFST 4
2446 #define	MC_CMD_AOE_IN_FPGA_ACCESS_OP_LEN 4
2447 /* enum: Enable access */
2448 #define	MC_CMD_AOE_IN_FPGA_ACCESS_ENABLE 0x1
2449 /* enum: Disable access */
2450 #define	MC_CMD_AOE_IN_FPGA_ACCESS_DISABLE 0x2
2451 
2452 /* MC_CMD_AOE_IN_SET_MTU_OFFSET msgrequest */
2453 #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_LEN 12
2454 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2455 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2456 /* AOE port - when not ALL_EXTERNAL or ALL_INTERNAL specifies port number */
2457 #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_PORT_OFST 4
2458 #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_PORT_LEN 4
2459 /* enum: Apply to all external ports */
2460 #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_ALL_EXTERNAL 0x8000
2461 /* enum: Apply to all internal ports */
2462 #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_ALL_INTERNAL 0x4000
2463 /* The MTU offset to be applied to the external ports */
2464 #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_OFFSET_OFST 8
2465 #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_OFFSET_LEN 4
2466 
2467 /* MC_CMD_AOE_IN_LINK_STATE msgrequest */
2468 #define	MC_CMD_AOE_IN_LINK_STATE_LEN 8
2469 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2470 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2471 #define	MC_CMD_AOE_IN_LINK_STATE_MODE_OFST 4
2472 #define	MC_CMD_AOE_IN_LINK_STATE_MODE_LEN 4
2473 #define	MC_CMD_AOE_IN_LINK_STATE_CONFIG_MODE_LBN 0
2474 #define	MC_CMD_AOE_IN_LINK_STATE_CONFIG_MODE_WIDTH 8
2475 /* enum: AOE and associated external port */
2476 #define	MC_CMD_AOE_IN_LINK_STATE_SIMPLE_SEPARATE 0x0
2477 /* enum: AOE and OR of all external ports */
2478 #define	MC_CMD_AOE_IN_LINK_STATE_SIMPLE_COMBINED 0x1
2479 /* enum: Individual ports */
2480 #define	MC_CMD_AOE_IN_LINK_STATE_DIAGNOSTIC 0x2
2481 /* enum: Configure link state mode on given AOE port */
2482 #define	MC_CMD_AOE_IN_LINK_STATE_CUSTOM 0x3
2483 #define	MC_CMD_AOE_IN_LINK_STATE_OPERATION_LBN 8
2484 #define	MC_CMD_AOE_IN_LINK_STATE_OPERATION_WIDTH 8
2485 /* enum: No-op */
2486 #define	MC_CMD_AOE_IN_LINK_STATE_OP_NONE 0x0
2487 /* enum: logical OR of all SFP ports link status */
2488 #define	MC_CMD_AOE_IN_LINK_STATE_OP_OR 0x1
2489 /* enum: logical AND of all SFP ports link status */
2490 #define	MC_CMD_AOE_IN_LINK_STATE_OP_AND 0x2
2491 #define	MC_CMD_AOE_IN_LINK_STATE_SFP_MASK_LBN 16
2492 #define	MC_CMD_AOE_IN_LINK_STATE_SFP_MASK_WIDTH 16
2493 
2494 /* MC_CMD_AOE_IN_GET_ASIC_PORTS msgrequest */
2495 #define	MC_CMD_AOE_IN_GET_ASIC_PORTS_LEN 4
2496 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2497 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2498 
2499 /* MC_CMD_AOE_IN_GET_FC_ASSERT_INFO msgrequest */
2500 #define	MC_CMD_AOE_IN_GET_FC_ASSERT_INFO_LEN 4
2501 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2502 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2503 
2504 /* MC_CMD_AOE_IN_SIENA_STATS msgrequest */
2505 #define	MC_CMD_AOE_IN_SIENA_STATS_LEN 8
2506 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2507 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2508 /* How MAC statistics are reported */
2509 #define	MC_CMD_AOE_IN_SIENA_STATS_MODE_OFST 4
2510 #define	MC_CMD_AOE_IN_SIENA_STATS_MODE_LEN 4
2511 /* enum: Statistics from Siena (default) */
2512 #define	MC_CMD_AOE_IN_SIENA_STATS_STATS_SIENA 0x0
2513 /* enum: Statistics from AOE external ports */
2514 #define	MC_CMD_AOE_IN_SIENA_STATS_STATS_AOE 0x1
2515 
2516 /* MC_CMD_AOE_IN_ASIC_STATS msgrequest */
2517 #define	MC_CMD_AOE_IN_ASIC_STATS_LEN 8
2518 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2519 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2520 /* How MAC statistics are reported */
2521 #define	MC_CMD_AOE_IN_ASIC_STATS_MODE_OFST 4
2522 #define	MC_CMD_AOE_IN_ASIC_STATS_MODE_LEN 4
2523 /* enum: Statistics from the ASIC (default) */
2524 #define	MC_CMD_AOE_IN_ASIC_STATS_STATS_ASIC 0x0
2525 /* enum: Statistics from AOE external ports */
2526 #define	MC_CMD_AOE_IN_ASIC_STATS_STATS_AOE 0x1
2527 
2528 /* MC_CMD_AOE_IN_DDR msgrequest */
2529 #define	MC_CMD_AOE_IN_DDR_LEN 12
2530 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2531 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2532 #define	MC_CMD_AOE_IN_DDR_BANK_OFST 4
2533 #define	MC_CMD_AOE_IN_DDR_BANK_LEN 4
2534 /*            Enum values, see field(s): */
2535 /*               MC_CMD_FC/MC_CMD_FC_IN_DDR/MC_CMD_FC_IN_DDR_BANK */
2536 /* Page index of SPD data */
2537 #define	MC_CMD_AOE_IN_DDR_SPD_PAGE_ID_OFST 8
2538 #define	MC_CMD_AOE_IN_DDR_SPD_PAGE_ID_LEN 4
2539 
2540 /* MC_CMD_AOE_IN_FC msgrequest */
2541 #define	MC_CMD_AOE_IN_FC_LEN 4
2542 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2543 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2544 
2545 /* MC_CMD_AOE_IN_DDR_ECC_STATUS msgrequest */
2546 #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_LEN 8
2547 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2548 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2549 #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_BANK_OFST 4
2550 #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_BANK_LEN 4
2551 /*            Enum values, see field(s): */
2552 /*               MC_CMD_FC/MC_CMD_FC_IN_DDR/MC_CMD_FC_IN_DDR_BANK */
2553 
2554 /* MC_CMD_AOE_IN_MC_SPI_MASTER msgrequest */
2555 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_LEN 8
2556 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2557 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2558 /* Basic commands for MC SPI Master emulation. */
2559 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_OP_OFST 4
2560 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_OP_LEN 4
2561 /* enum: MC SPI read */
2562 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ 0x0
2563 /* enum: MC SPI write */
2564 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE 0x1
2565 
2566 /* MC_CMD_AOE_IN_MC_SPI_MASTER_READ msgrequest */
2567 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_LEN 12
2568 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2569 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2570 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OP_OFST 4
2571 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OP_LEN 4
2572 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OFFSET_OFST 8
2573 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OFFSET_LEN 4
2574 
2575 /* MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE msgrequest */
2576 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_LEN 16
2577 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2578 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2579 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OP_OFST 4
2580 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OP_LEN 4
2581 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OFFSET_OFST 8
2582 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OFFSET_LEN 4
2583 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_DATA_OFST 12
2584 #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_DATA_LEN 4
2585 
2586 /* MC_CMD_AOE_IN_FC_BOOT msgrequest */
2587 #define	MC_CMD_AOE_IN_FC_BOOT_LEN 8
2588 /*            MC_CMD_AOE_IN_CMD_OFST 0 */
2589 /*            MC_CMD_AOE_IN_CMD_LEN 4 */
2590 /* FC boot control flags */
2591 #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_OFST 4
2592 #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_LEN 4
2593 #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_BOOT_ENABLE_LBN 0
2594 #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_BOOT_ENABLE_WIDTH 1
2595 
2596 /* MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO msgresponse */
2597 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_LEN 144
2598 /* Assertion status flag. */
2599 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GLOBAL_FLAGS_OFST 0
2600 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GLOBAL_FLAGS_LEN 4
2601 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_STATE_LBN 8
2602 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_STATE_WIDTH 8
2603 /* enum: No crash data available */
2604 /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_CLEAR 0x0 */
2605 /* enum: New crash data available */
2606 /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NEW 0x1 */
2607 /* enum: Crash data has been sent */
2608 /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NOTIFIED 0x2 */
2609 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_TYPE_LBN 0
2610 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_TYPE_WIDTH 8
2611 /* enum: No crash has been recorded. */
2612 /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_NONE 0x0 */
2613 /* enum: Crash due to exception. */
2614 /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_EXCEPTION 0x1 */
2615 /* enum: Crash due to assertion. */
2616 /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_ASSERTION 0x2 */
2617 /* Failing PC value */
2618 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_SAVED_PC_OFFS_OFST 4
2619 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_SAVED_PC_OFFS_LEN 4
2620 /* Saved GP regs */
2621 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_OFST 8
2622 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_LEN 4
2623 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_NUM 31
2624 /* Exception Type */
2625 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_TYPE_OFFS_OFST 132
2626 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_TYPE_OFFS_LEN 4
2627 /* Instruction at which exception occurred */
2628 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_PC_ADDR_OFFS_OFST 136
2629 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_PC_ADDR_OFFS_LEN 4
2630 /* BAD Address that triggered address-based exception */
2631 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_BAD_ADDR_OFFS_OFST 140
2632 #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_BAD_ADDR_OFFS_LEN 4
2633 
2634 /* MC_CMD_AOE_OUT_INFO msgresponse */
2635 #define	MC_CMD_AOE_OUT_INFO_LEN 44
2636 /* JTAG IDCODE of CPLD */
2637 #define	MC_CMD_AOE_OUT_INFO_CPLD_IDCODE_OFST 0
2638 #define	MC_CMD_AOE_OUT_INFO_CPLD_IDCODE_LEN 4
2639 /* Version of CPLD */
2640 #define	MC_CMD_AOE_OUT_INFO_CPLD_VERSION_OFST 4
2641 #define	MC_CMD_AOE_OUT_INFO_CPLD_VERSION_LEN 4
2642 /* JTAG IDCODE of FPGA */
2643 #define	MC_CMD_AOE_OUT_INFO_FPGA_IDCODE_OFST 8
2644 #define	MC_CMD_AOE_OUT_INFO_FPGA_IDCODE_LEN 4
2645 /* JTAG USERCODE of FPGA */
2646 #define	MC_CMD_AOE_OUT_INFO_FPGA_VERSION_OFST 12
2647 #define	MC_CMD_AOE_OUT_INFO_FPGA_VERSION_LEN 4
2648 /* FPGA type - read from CPLD straps */
2649 #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_OFST 16
2650 #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_LEN 4
2651 #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_A5_C2 0x1 /* enum */
2652 #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_A7_C2 0x2 /* enum */
2653 /* FPGA state (debug) */
2654 #define	MC_CMD_AOE_OUT_INFO_FPGA_STATE_OFST 20
2655 #define	MC_CMD_AOE_OUT_INFO_FPGA_STATE_LEN 4
2656 /* FPGA image - partition from which loaded */
2657 #define	MC_CMD_AOE_OUT_INFO_FPGA_IMAGE_OFST 24
2658 #define	MC_CMD_AOE_OUT_INFO_FPGA_IMAGE_LEN 4
2659 /* FC state */
2660 #define	MC_CMD_AOE_OUT_INFO_FC_STATE_OFST 28
2661 #define	MC_CMD_AOE_OUT_INFO_FC_STATE_LEN 4
2662 /* enum: Set if watchdog working */
2663 #define	MC_CMD_AOE_OUT_INFO_WATCHDOG 0x1
2664 /* enum: Set if MC-FC communications working */
2665 #define	MC_CMD_AOE_OUT_INFO_COMMS 0x2
2666 /* Random pieces of information */
2667 #define	MC_CMD_AOE_OUT_INFO_FLAGS_OFST 32
2668 #define	MC_CMD_AOE_OUT_INFO_FLAGS_LEN 4
2669 /* enum: Power to FPGA supplied by PEG connector, not PCIe bus */
2670 #define	MC_CMD_AOE_OUT_INFO_PEG_POWER 0x1
2671 /* enum: CPLD apparently good */
2672 #define	MC_CMD_AOE_OUT_INFO_CPLD_GOOD 0x2
2673 /* enum: FPGA working normally */
2674 #define	MC_CMD_AOE_OUT_INFO_FPGA_GOOD 0x4
2675 /* enum: FPGA is powered */
2676 #define	MC_CMD_AOE_OUT_INFO_FPGA_POWER 0x8
2677 /* enum: Board has incompatible SODIMMs fitted */
2678 #define	MC_CMD_AOE_OUT_INFO_BAD_SODIMM 0x10
2679 /* enum: Board has ByteBlaster connected */
2680 #define	MC_CMD_AOE_OUT_INFO_HAS_BYTEBLASTER 0x20
2681 /* enum: FPGA Boot flash has an invalid header. */
2682 #define	MC_CMD_AOE_OUT_INFO_FPGA_BAD_BOOT_HDR 0x40
2683 /* enum: FPGA Application flash is accessible. */
2684 #define	MC_CMD_AOE_OUT_INFO_FPGA_APP_FLASH_GOOD 0x80
2685 /* Revision of Modena and Sorrento boards. Sorrento can be R1_2 or R1_3. */
2686 #define	MC_CMD_AOE_OUT_INFO_BOARD_REVISION_OFST 36
2687 #define	MC_CMD_AOE_OUT_INFO_BOARD_REVISION_LEN 4
2688 #define	MC_CMD_AOE_OUT_INFO_UNKNOWN 0x0 /* enum */
2689 #define	MC_CMD_AOE_OUT_INFO_R1_0 0x10 /* enum */
2690 #define	MC_CMD_AOE_OUT_INFO_R1_1 0x11 /* enum */
2691 #define	MC_CMD_AOE_OUT_INFO_R1_2 0x12 /* enum */
2692 #define	MC_CMD_AOE_OUT_INFO_R1_3 0x13 /* enum */
2693 /* Result of FC booting - not valid while a ByteBlaster is connected. */
2694 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_RESULT_OFST 40
2695 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_RESULT_LEN 4
2696 /* enum: No error */
2697 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_NO_ERROR 0x0
2698 /* enum: Bad address set in CPLD */
2699 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_ADDRESS 0x1
2700 /* enum: Bad header */
2701 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_MAGIC 0x2
2702 /* enum: Bad text section details */
2703 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_TEXT 0x3
2704 /* enum: Bad checksum */
2705 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_CHECKSUM 0x4
2706 /* enum: Bad BSP */
2707 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_BSP 0x5
2708 /* enum: Flash mode is invalid */
2709 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_INVALID_FLASH_MODE 0x6
2710 /* enum: FC application loaded and execution attempted */
2711 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_APP_EXECUTE 0x80
2712 /* enum: FC application Started */
2713 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_APP_STARTED 0x81
2714 /* enum: No bootrom in FPGA */
2715 #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_NO_BOOTROM 0xff
2716 
2717 /* MC_CMD_AOE_OUT_CURRENTS msgresponse */
2718 #define	MC_CMD_AOE_OUT_CURRENTS_LEN 68
2719 /* Set of currents and voltages (mA or mV as appropriate) */
2720 #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_OFST 0
2721 #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_LEN 4
2722 #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_NUM 17
2723 #define	MC_CMD_AOE_OUT_CURRENTS_I_2V5 0x0 /* enum */
2724 #define	MC_CMD_AOE_OUT_CURRENTS_I_1V8 0x1 /* enum */
2725 #define	MC_CMD_AOE_OUT_CURRENTS_I_GXB 0x2 /* enum */
2726 #define	MC_CMD_AOE_OUT_CURRENTS_I_PGM 0x3 /* enum */
2727 #define	MC_CMD_AOE_OUT_CURRENTS_I_XCVR 0x4 /* enum */
2728 #define	MC_CMD_AOE_OUT_CURRENTS_I_1V5 0x5 /* enum */
2729 #define	MC_CMD_AOE_OUT_CURRENTS_V_3V3 0x6 /* enum */
2730 #define	MC_CMD_AOE_OUT_CURRENTS_V_1V5 0x7 /* enum */
2731 #define	MC_CMD_AOE_OUT_CURRENTS_I_IN 0x8 /* enum */
2732 #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT 0x9 /* enum */
2733 #define	MC_CMD_AOE_OUT_CURRENTS_V_IN 0xa /* enum */
2734 #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR1 0xb /* enum */
2735 #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR1 0xc /* enum */
2736 #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR2 0xd /* enum */
2737 #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR2 0xe /* enum */
2738 #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR3 0xf /* enum */
2739 #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR3 0x10 /* enum */
2740 
2741 /* MC_CMD_AOE_OUT_TEMPERATURES msgresponse */
2742 #define	MC_CMD_AOE_OUT_TEMPERATURES_LEN 40
2743 /* Set of temperatures */
2744 #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_OFST 0
2745 #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_LEN 4
2746 #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_NUM 10
2747 /* enum: The first set of enum values are for Modena code. */
2748 #define	MC_CMD_AOE_OUT_TEMPERATURES_MAIN_0 0x0
2749 #define	MC_CMD_AOE_OUT_TEMPERATURES_MAIN_1 0x1 /* enum */
2750 #define	MC_CMD_AOE_OUT_TEMPERATURES_IND_0 0x2 /* enum */
2751 #define	MC_CMD_AOE_OUT_TEMPERATURES_IND_1 0x3 /* enum */
2752 #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO1 0x4 /* enum */
2753 #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO2 0x5 /* enum */
2754 #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO3 0x6 /* enum */
2755 #define	MC_CMD_AOE_OUT_TEMPERATURES_PSU 0x7 /* enum */
2756 #define	MC_CMD_AOE_OUT_TEMPERATURES_FPGA 0x8 /* enum */
2757 #define	MC_CMD_AOE_OUT_TEMPERATURES_SIENA 0x9 /* enum */
2758 /* enum: The second set of enum values are for Sorrento code. */
2759 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_MAIN_0 0x0
2760 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_MAIN_1 0x1 /* enum */
2761 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_IND_0 0x2 /* enum */
2762 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_IND_1 0x3 /* enum */
2763 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_SODIMM_0 0x4 /* enum */
2764 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_SODIMM_1 0x5 /* enum */
2765 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_FPGA 0x6 /* enum */
2766 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_PHY0 0x7 /* enum */
2767 #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_PHY1 0x8 /* enum */
2768 
2769 /* MC_CMD_AOE_OUT_CPLD_READ msgresponse */
2770 #define	MC_CMD_AOE_OUT_CPLD_READ_LEN 4
2771 /* The value read from the CPLD */
2772 #define	MC_CMD_AOE_OUT_CPLD_READ_VALUE_OFST 0
2773 #define	MC_CMD_AOE_OUT_CPLD_READ_VALUE_LEN 4
2774 
2775 /* MC_CMD_AOE_OUT_FAN_FAILURES msgresponse */
2776 #define	MC_CMD_AOE_OUT_FAN_FAILURES_LENMIN 4
2777 #define	MC_CMD_AOE_OUT_FAN_FAILURES_LENMAX 252
2778 #define	MC_CMD_AOE_OUT_FAN_FAILURES_LEN(num) (0+4*(num))
2779 /* Failure counts for each fan */
2780 #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_OFST 0
2781 #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_LEN 4
2782 #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_MINNUM 1
2783 #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_MAXNUM 63
2784 
2785 /* MC_CMD_AOE_OUT_CPLD_REPROGRAM msgresponse */
2786 #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_LEN 4
2787 /* Results of status command (only) */
2788 #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_STATUS_OFST 0
2789 #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_STATUS_LEN 4
2790 
2791 /* MC_CMD_AOE_OUT_POWER_OFF msgresponse */
2792 #define	MC_CMD_AOE_OUT_POWER_OFF_LEN 0
2793 
2794 /* MC_CMD_AOE_OUT_POWER_ON msgresponse */
2795 #define	MC_CMD_AOE_OUT_POWER_ON_LEN 0
2796 
2797 /* MC_CMD_AOE_OUT_LOAD msgresponse */
2798 #define	MC_CMD_AOE_OUT_LOAD_LEN 0
2799 
2800 /* MC_CMD_AOE_OUT_MAC_STATS_DMA msgresponse */
2801 #define	MC_CMD_AOE_OUT_MAC_STATS_DMA_LEN 0
2802 
2803 /* MC_CMD_AOE_OUT_MAC_STATS_NO_DMA msgresponse: See MC_CMD_MAC_STATS_OUT_NO_DMA
2804  * for details
2805  */
2806 #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_LEN (((MC_CMD_MAC_NSTATS*64))>>3)
2807 #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_OFST 0
2808 #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LEN 8
2809 #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LO_OFST 0
2810 #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_HI_OFST 4
2811 #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS
2812 
2813 /* MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO msgresponse */
2814 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LENMIN 5
2815 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LENMAX 252
2816 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LEN(num) (4+1*(num))
2817 /* in bytes */
2818 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATALEN_OFST 0
2819 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATALEN_LEN 4
2820 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_OFST 4
2821 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_LEN 1
2822 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_MINNUM 1
2823 #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_MAXNUM 248
2824 
2825 /* MC_CMD_AOE_OUT_JTAG_WRITE msgresponse */
2826 #define	MC_CMD_AOE_OUT_JTAG_WRITE_LENMIN 12
2827 #define	MC_CMD_AOE_OUT_JTAG_WRITE_LENMAX 252
2828 #define	MC_CMD_AOE_OUT_JTAG_WRITE_LEN(num) (8+4*(num))
2829 /* Used to align the in and out data blocks so the MC can re-use the cmd */
2830 #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATALEN_OFST 0
2831 #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATALEN_LEN 4
2832 /* out bytes */
2833 #define	MC_CMD_AOE_OUT_JTAG_WRITE_PAD_OFST 4
2834 #define	MC_CMD_AOE_OUT_JTAG_WRITE_PAD_LEN 4
2835 #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_OFST 8
2836 #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_LEN 4
2837 #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_MINNUM 1
2838 #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_MAXNUM 61
2839 
2840 /* MC_CMD_AOE_OUT_FPGA_ACCESS msgresponse */
2841 #define	MC_CMD_AOE_OUT_FPGA_ACCESS_LEN 0
2842 
2843 /* MC_CMD_AOE_OUT_DDR msgresponse */
2844 #define	MC_CMD_AOE_OUT_DDR_LENMIN 17
2845 #define	MC_CMD_AOE_OUT_DDR_LENMAX 252
2846 #define	MC_CMD_AOE_OUT_DDR_LEN(num) (16+1*(num))
2847 /* Information on the module. */
2848 #define	MC_CMD_AOE_OUT_DDR_FLAGS_OFST 0
2849 #define	MC_CMD_AOE_OUT_DDR_FLAGS_LEN 4
2850 #define	MC_CMD_AOE_OUT_DDR_PRESENT_LBN 0
2851 #define	MC_CMD_AOE_OUT_DDR_PRESENT_WIDTH 1
2852 #define	MC_CMD_AOE_OUT_DDR_POWERED_LBN 1
2853 #define	MC_CMD_AOE_OUT_DDR_POWERED_WIDTH 1
2854 #define	MC_CMD_AOE_OUT_DDR_OPERATIONAL_LBN 2
2855 #define	MC_CMD_AOE_OUT_DDR_OPERATIONAL_WIDTH 1
2856 #define	MC_CMD_AOE_OUT_DDR_NOT_REACHABLE_LBN 3
2857 #define	MC_CMD_AOE_OUT_DDR_NOT_REACHABLE_WIDTH 1
2858 /* Memory size, in MB. */
2859 #define	MC_CMD_AOE_OUT_DDR_CAPACITY_OFST 4
2860 #define	MC_CMD_AOE_OUT_DDR_CAPACITY_LEN 4
2861 /* The memory type, as reported from SPD information */
2862 #define	MC_CMD_AOE_OUT_DDR_TYPE_OFST 8
2863 #define	MC_CMD_AOE_OUT_DDR_TYPE_LEN 4
2864 /* Nominal voltage of the module (as applied) */
2865 #define	MC_CMD_AOE_OUT_DDR_VOLTAGE_OFST 12
2866 #define	MC_CMD_AOE_OUT_DDR_VOLTAGE_LEN 4
2867 /* SPD data read from the module */
2868 #define	MC_CMD_AOE_OUT_DDR_SPD_OFST 16
2869 #define	MC_CMD_AOE_OUT_DDR_SPD_LEN 1
2870 #define	MC_CMD_AOE_OUT_DDR_SPD_MINNUM 1
2871 #define	MC_CMD_AOE_OUT_DDR_SPD_MAXNUM 236
2872 
2873 /* MC_CMD_AOE_OUT_SET_MTU_OFFSET msgresponse */
2874 #define	MC_CMD_AOE_OUT_SET_MTU_OFFSET_LEN 0
2875 
2876 /* MC_CMD_AOE_OUT_LINK_STATE msgresponse */
2877 #define	MC_CMD_AOE_OUT_LINK_STATE_LEN 0
2878 
2879 /* MC_CMD_AOE_OUT_SIENA_STATS msgresponse */
2880 #define	MC_CMD_AOE_OUT_SIENA_STATS_LEN 0
2881 
2882 /* MC_CMD_AOE_OUT_ASIC_STATS msgresponse */
2883 #define	MC_CMD_AOE_OUT_ASIC_STATS_LEN 0
2884 
2885 /* MC_CMD_AOE_OUT_FC msgresponse */
2886 #define	MC_CMD_AOE_OUT_FC_LEN 0
2887 
2888 /* MC_CMD_AOE_OUT_GET_ASIC_PORTS msgresponse */
2889 #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_LEN 4
2890 /* get the number of internal ports */
2891 #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_COUNT_PORTS_OFST 0
2892 #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_COUNT_PORTS_LEN 4
2893 
2894 /* MC_CMD_AOE_OUT_DDR_ECC_STATUS msgresponse */
2895 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_LEN 8
2896 /* Flags describing status info on the module. */
2897 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_FLAGS_OFST 0
2898 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_FLAGS_LEN 4
2899 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_VALID_LBN 0
2900 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_VALID_WIDTH 1
2901 /* DDR ECC status on the module. */
2902 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_STATUS_OFST 4
2903 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_STATUS_LEN 4
2904 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_LBN 0
2905 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_WIDTH 1
2906 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_LBN 1
2907 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_WIDTH 1
2908 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_LBN 2
2909 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_WIDTH 1
2910 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_COUNT_LBN 8
2911 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_COUNT_WIDTH 8
2912 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_COUNT_LBN 16
2913 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_COUNT_WIDTH 8
2914 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_COUNT_LBN 24
2915 #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_COUNT_WIDTH 8
2916 
2917 /* MC_CMD_AOE_OUT_MC_SPI_MASTER_READ msgresponse */
2918 #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_LEN 4
2919 #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_DATA_OFST 0
2920 #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_DATA_LEN 4
2921 
2922 /* MC_CMD_AOE_OUT_MC_SPI_MASTER_WRITE msgresponse */
2923 #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_WRITE_LEN 0
2924 
2925 /* MC_CMD_AOE_OUT_MC_SPI_MASTER msgresponse */
2926 #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_LEN 0
2927 
2928 /* MC_CMD_AOE_OUT_FC_BOOT msgresponse */
2929 #define	MC_CMD_AOE_OUT_FC_BOOT_LEN 0
2930 
2931 #endif	/* _SYS_EFX_REGS_MCDI_AOE_H */
2932