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