19ed106d0SAndrew Rybchenko /*-
24d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
39ed106d0SAndrew Rybchenko  *
49ed106d0SAndrew Rybchenko  * Copyright 2008-2018 Solarflare Communications Inc.  All rights reserved.
59ed106d0SAndrew Rybchenko  *
69ed106d0SAndrew Rybchenko  * Redistribution and use in source and binary forms, with or without
79ed106d0SAndrew Rybchenko  * modification, are permitted provided that the following conditions
89ed106d0SAndrew Rybchenko  * are met:
99ed106d0SAndrew Rybchenko  * 1. Redistributions of source code must retain the above copyright
109ed106d0SAndrew Rybchenko  *    notice, this list of conditions and the following disclaimer.
119ed106d0SAndrew Rybchenko  * 2. Redistributions in binary form must reproduce the above copyright
129ed106d0SAndrew Rybchenko  *    notice, this list of conditions and the following disclaimer in the
139ed106d0SAndrew Rybchenko  *    documentation and/or other materials provided with the distribution.
149ed106d0SAndrew Rybchenko  *
159ed106d0SAndrew Rybchenko  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS AND
169ed106d0SAndrew Rybchenko  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
179ed106d0SAndrew Rybchenko  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
189ed106d0SAndrew Rybchenko  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
199ed106d0SAndrew Rybchenko  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
209ed106d0SAndrew Rybchenko  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
219ed106d0SAndrew Rybchenko  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
229ed106d0SAndrew Rybchenko  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
239ed106d0SAndrew Rybchenko  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
249ed106d0SAndrew Rybchenko  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
259ed106d0SAndrew Rybchenko  * SUCH DAMAGE.
269ed106d0SAndrew Rybchenko  */
279ed106d0SAndrew Rybchenko 
289ed106d0SAndrew Rybchenko #ifndef _SYS_EFX_REGS_MCDI_AOE_H
299ed106d0SAndrew Rybchenko #define	_SYS_EFX_REGS_MCDI_AOE_H
309ed106d0SAndrew Rybchenko 
319ed106d0SAndrew Rybchenko /***********************************/
329ed106d0SAndrew Rybchenko /* MC_CMD_FC
339ed106d0SAndrew Rybchenko  * Perform an FC operation
349ed106d0SAndrew Rybchenko  */
359ed106d0SAndrew Rybchenko #define	MC_CMD_FC 0x9
369ed106d0SAndrew Rybchenko 
379ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN msgrequest */
389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LEN 4
399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_OP_HDR_OFST 0
409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_OP_HDR_LEN 4
419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_OP_LBN 0
429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_OP_WIDTH 8
439ed106d0SAndrew Rybchenko /* enum: NULL MCDI command to FC. */
449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_NULL 0x1
459ed106d0SAndrew Rybchenko /* enum: Unused opcode */
469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UNUSED 0x2
479ed106d0SAndrew Rybchenko /* enum: MAC driver commands */
489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC 0x3
499ed106d0SAndrew Rybchenko /* enum: Read FC memory */
509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_READ32 0x4
519ed106d0SAndrew Rybchenko /* enum: Write to FC memory */
529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_WRITE32 0x5
539ed106d0SAndrew Rybchenko /* enum: Read FC memory */
549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_TRC_READ 0x6
559ed106d0SAndrew Rybchenko /* enum: Write to FC memory */
569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_TRC_WRITE 0x7
579ed106d0SAndrew Rybchenko /* enum: FC firmware Version */
589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_GET_VERSION 0x8
599ed106d0SAndrew Rybchenko /* enum: Read FC memory */
609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_TRC_RX_READ 0x9
619ed106d0SAndrew Rybchenko /* enum: Write to FC memory */
629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_TRC_RX_WRITE 0xa
639ed106d0SAndrew Rybchenko /* enum: SFP parameters */
649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_SFP 0xb
659ed106d0SAndrew Rybchenko /* enum: DDR3 test */
669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST 0xc
679ed106d0SAndrew Rybchenko /* enum: Get Crash context from FC */
689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_GET_ASSERT 0xd
699ed106d0SAndrew Rybchenko /* enum: Get FPGA Build registers */
709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_FPGA_BUILD 0xe
719ed106d0SAndrew Rybchenko /* enum: Read map support commands */
729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_READ_MAP 0xf
739ed106d0SAndrew Rybchenko /* enum: FC Capabilities */
749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_CAPABILITIES 0x10
759ed106d0SAndrew Rybchenko /* enum: FC Global flags */
769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_GLOBAL_FLAGS 0x11
779ed106d0SAndrew Rybchenko /* enum: FC IO using relative addressing modes */
789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_IO_REL 0x12
799ed106d0SAndrew Rybchenko /* enum: FPGA link information */
809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK 0x13
819ed106d0SAndrew Rybchenko /* enum: Configure loopbacks and link on FPGA ports */
829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_SET_LINK 0x14
839ed106d0SAndrew Rybchenko /* enum: Licensing operations relating to AOE */
849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_LICENSE 0x15
859ed106d0SAndrew Rybchenko /* enum: Startup information to the FC */
869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_STARTUP 0x16
879ed106d0SAndrew Rybchenko /* enum: Configure a DMA read */
889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DMA 0x17
899ed106d0SAndrew Rybchenko /* enum: Configure a timed read */
909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_TIMED_READ 0x18
919ed106d0SAndrew Rybchenko /* enum: Control UART logging */
929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_LOG 0x19
939ed106d0SAndrew Rybchenko /* enum: Get the value of a given clock_id */
949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_CLOCK 0x1a
959ed106d0SAndrew Rybchenko /* enum: DDR3/QDR3 parameters */
969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR 0x1b
979ed106d0SAndrew Rybchenko /* enum: PTP and timestamp control */
989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_TIMESTAMP 0x1c
999ed106d0SAndrew Rybchenko /* enum: Commands for SPI Flash interface */
1009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_SPI 0x1d
1019ed106d0SAndrew Rybchenko /* enum: Commands for diagnostic components */
1029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DIAG 0x1e
1039ed106d0SAndrew Rybchenko /* enum: External AOE port. */
1049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_PORT_EXT_OFST 0x0
1059ed106d0SAndrew Rybchenko /* enum: Internal AOE port. */
1069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_PORT_INT_OFST 0x40
1079ed106d0SAndrew Rybchenko 
1089ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_NULL msgrequest */
1099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_NULL_LEN 4
1109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CMD_OFST 0
1119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CMD_LEN 4
1129ed106d0SAndrew Rybchenko 
1139ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_PHY msgrequest */
1149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_LEN 5
1159ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
1169ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
1179ed106d0SAndrew Rybchenko /* FC PHY driver operation code */
1189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_OP_OFST 4
1199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_OP_LEN 1
1209ed106d0SAndrew Rybchenko /* enum: PHY init handler */
1219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_INIT 0x1
1229ed106d0SAndrew Rybchenko /* enum: PHY reconfigure handler */
1239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_RECONFIGURE 0x2
1249ed106d0SAndrew Rybchenko /* enum: PHY reboot handler */
1259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_REBOOT 0x3
1269ed106d0SAndrew Rybchenko /* enum: PHY get_supported_cap handler */
1279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_SUPPORTED_CAP 0x4
1289ed106d0SAndrew Rybchenko /* enum: PHY get_config handler */
1299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_CONFIG 0x5
1309ed106d0SAndrew Rybchenko /* enum: PHY get_media_info handler */
1319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_MEDIA_INFO 0x6
1329ed106d0SAndrew Rybchenko /* enum: PHY set_led handler */
1339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_SET_LED 0x7
1349ed106d0SAndrew Rybchenko /* enum: PHY lasi_interrupt handler */
1359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_LASI_INTERRUPT 0x8
1369ed106d0SAndrew Rybchenko /* enum: PHY check_link handler */
1379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_CHECK_LINK 0x9
1389ed106d0SAndrew Rybchenko /* enum: PHY fill_stats handler */
1399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_FILL_STATS 0xa
1409ed106d0SAndrew Rybchenko /* enum: PHY bpx_link_state_changed handler */
1419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_BPX_LINK_STATE_CHANGED 0xb
1429ed106d0SAndrew Rybchenko /* enum: PHY get_state handler */
1439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_STATE 0xc
1449ed106d0SAndrew Rybchenko /* enum: PHY start_bist handler */
1459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_START_BIST 0xd
1469ed106d0SAndrew Rybchenko /* enum: PHY poll_bist handler */
1479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_POLL_BIST 0xe
1489ed106d0SAndrew Rybchenko /* enum: PHY nvram_test handler */
1499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_NVRAM_TEST 0xf
1509ed106d0SAndrew Rybchenko /* enum: PHY relinquish handler */
1519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_RELINQUISH_SPI 0x10
1529ed106d0SAndrew Rybchenko /* enum: PHY read connection from FC - may be not required */
1539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_CONNECTION 0x11
1549ed106d0SAndrew Rybchenko /* enum: PHY read flags from FC - may be not required */
1559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_FLAGS 0x12
1569ed106d0SAndrew Rybchenko 
1579ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_PHY_INIT msgrequest */
1589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_INIT_LEN 4
1599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_CMD_OFST 0
1609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_CMD_LEN 4
1619ed106d0SAndrew Rybchenko 
1629ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_MAC msgrequest */
1639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_LEN 8
1649ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
1659ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
1669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_HEADER_OFST 4
1679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_HEADER_LEN 4
1689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_OP_LBN 0
1699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_OP_WIDTH 8
1709ed106d0SAndrew Rybchenko /* enum: MAC reconfigure handler */
1719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_RECONFIGURE 0x1
1729ed106d0SAndrew Rybchenko /* enum: MAC Set command - same as MC_CMD_SET_MAC */
1739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_SET_LINK 0x2
1749ed106d0SAndrew Rybchenko /* enum: MAC statistics */
1759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_GET_STATS 0x3
1769ed106d0SAndrew Rybchenko /* enum: MAC RX statistics */
1779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_GET_RX_STATS 0x6
1789ed106d0SAndrew Rybchenko /* enum: MAC TX statistics */
1799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_GET_TX_STATS 0x7
1809ed106d0SAndrew Rybchenko /* enum: MAC Read status */
1819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_READ_STATUS 0x8
1829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_TYPE_LBN 8
1839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_TYPE_WIDTH 8
1849ed106d0SAndrew Rybchenko /* enum: External FPGA port. */
1859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_PORT_EXT 0x0
1869ed106d0SAndrew Rybchenko /* enum: Internal Siena-facing FPGA ports. */
1879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_PORT_INT 0x1
1889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_IDX_LBN 16
1899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_IDX_WIDTH 8
1909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_CMD_FORMAT_LBN 24
1919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_CMD_FORMAT_WIDTH 8
1929ed106d0SAndrew Rybchenko /* enum: Default FC command format; the fields PORT_TYPE and PORT_IDX are
1939ed106d0SAndrew Rybchenko  * irrelevant. Port number is derived from pci_fn; passed in FC header.
1949ed106d0SAndrew Rybchenko  */
1959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_CMD_FORMAT_DEFAULT 0x0
1969ed106d0SAndrew Rybchenko /* enum: Override default port number. Port number determined by fields
1979ed106d0SAndrew Rybchenko  * PORT_TYPE and PORT_IDX.
1989ed106d0SAndrew Rybchenko  */
1999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_CMD_FORMAT_PORT_OVERRIDE 0x1
2009ed106d0SAndrew Rybchenko 
2019ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_RECONFIGURE msgrequest */
2029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_RECONFIGURE_LEN 8
2039ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2049ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2059ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2069ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2079ed106d0SAndrew Rybchenko 
2089ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_SET_LINK msgrequest */
2099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_LEN 32
2109ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2119ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2129ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2139ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2149ed106d0SAndrew Rybchenko /* MTU size */
2159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_MTU_OFST 8
2169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_MTU_LEN 4
2179ed106d0SAndrew Rybchenko /* Drain Tx FIFO */
2189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_DRAIN_OFST 12
2199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_DRAIN_LEN 4
2209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_OFST 16
2219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LEN 8
2229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LO_OFST 16
2239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_HI_OFST 20
2249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_OFST 24
2259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_LEN 4
2269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_UNICAST_LBN 0
2279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_UNICAST_WIDTH 1
2289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_BRDCAST_LBN 1
2299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_BRDCAST_WIDTH 1
2309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_FCNTL_OFST 28
2319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_FCNTL_LEN 4
2329ed106d0SAndrew Rybchenko 
2339ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_READ_STATUS msgrequest */
2349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_READ_STATUS_LEN 8
2359ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2369ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2379ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2389ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2399ed106d0SAndrew Rybchenko 
2409ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_GET_RX_STATS msgrequest */
2419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_RX_STATS_LEN 8
2429ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2439ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2449ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2459ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2469ed106d0SAndrew Rybchenko 
2479ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_GET_TX_STATS msgrequest */
2489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_TX_STATS_LEN 8
2499ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2509ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2519ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2529ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2539ed106d0SAndrew Rybchenko 
2549ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_GET_STATS msgrequest */
2559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_LEN 20
2569ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2579ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2589ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2599ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2609ed106d0SAndrew Rybchenko /* MC Statistics index */
2619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_STATS_INDEX_OFST 8
2629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_STATS_INDEX_LEN 4
2639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_FLAGS_OFST 12
2649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_FLAGS_LEN 4
2659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_ALL_LBN 0
2669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_ALL_WIDTH 1
2679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_LBN 1
2689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_WIDTH 1
2699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_UPDATE_LBN 2
2709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_UPDATE_WIDTH 1
2719ed106d0SAndrew Rybchenko /* Number of statistics to read */
2729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_NUM_OFST 16
2739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_NUM_LEN 4
2749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_NSTATS_PER_BLOCK 0x1e /* enum */
2759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_NBYTES_PER_STAT 0x8 /* enum */
2769ed106d0SAndrew Rybchenko 
2779ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_READ32 msgrequest */
2789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_LEN 16
2799ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2809ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_ADDR_HI_OFST 4
2829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_ADDR_HI_LEN 4
2839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_ADDR_LO_OFST 8
2849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_ADDR_LO_LEN 4
2859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_NUMWORDS_OFST 12
2869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_NUMWORDS_LEN 4
2879ed106d0SAndrew Rybchenko 
2889ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_WRITE32 msgrequest */
2899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_LENMIN 16
2909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_LENMAX 252
2919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_LEN(num) (12+4*(num))
2929ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2939ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_ADDR_HI_OFST 4
2959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_ADDR_HI_LEN 4
2969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_ADDR_LO_OFST 8
2979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_ADDR_LO_LEN 4
2989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_OFST 12
2999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_LEN 4
3009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_MINNUM 1
3019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_MAXNUM 60
3029ed106d0SAndrew Rybchenko 
3039ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TRC_READ msgrequest */
3049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_LEN 12
3059ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3069ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_TRC_OFST 4
3089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_TRC_LEN 4
3099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_CHANNEL_OFST 8
3109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_CHANNEL_LEN 4
3119ed106d0SAndrew Rybchenko 
3129ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TRC_WRITE msgrequest */
3139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_LEN 28
3149ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3159ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_TRC_OFST 4
3179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_TRC_LEN 4
3189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_CHANNEL_OFST 8
3199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_CHANNEL_LEN 4
3209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_DATA_OFST 12
3219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_DATA_LEN 4
3229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_DATA_NUM 4
3239ed106d0SAndrew Rybchenko 
3249ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_GET_VERSION msgrequest */
3259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GET_VERSION_LEN 4
3269ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3279ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3289ed106d0SAndrew Rybchenko 
3299ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TRC_RX_READ msgrequest */
3309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_LEN 12
3319ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3329ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_TRC_OFST 4
3349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_TRC_LEN 4
3359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_CHANNEL_OFST 8
3369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_CHANNEL_LEN 4
3379ed106d0SAndrew Rybchenko 
3389ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TRC_RX_WRITE msgrequest */
3399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_LEN 20
3409ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3419ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_TRC_OFST 4
3439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_TRC_LEN 4
3449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_CHANNEL_OFST 8
3459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_CHANNEL_LEN 4
3469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_OFST 12
3479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_LEN 4
3489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_NUM 2
3499ed106d0SAndrew Rybchenko 
3509ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_SFP msgrequest */
3519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_LEN 28
3529ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3539ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3549ed106d0SAndrew Rybchenko /* Link speed is 100, 1000, 10000, 40000 */
3559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_SPEED_OFST 4
3569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_SPEED_LEN 4
3579ed106d0SAndrew Rybchenko /* Length of copper cable - zero when not relevant (e.g. if cable is fibre) */
3589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_COPPER_LEN_OFST 8
3599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_COPPER_LEN_LEN 4
3609ed106d0SAndrew Rybchenko /* Not relevant for cards with QSFP modules. For older cards, true if module is
3619ed106d0SAndrew Rybchenko  * a dual speed SFP+ module.
3629ed106d0SAndrew Rybchenko  */
3639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_DUAL_SPEED_OFST 12
3649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_DUAL_SPEED_LEN 4
3659ed106d0SAndrew Rybchenko /* True if an SFP Module is present (other fields valid when true) */
3669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_PRESENT_OFST 16
3679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_PRESENT_LEN 4
3689ed106d0SAndrew Rybchenko /* The type of the SFP+ Module. For later cards with QSFP modules, this field
3699ed106d0SAndrew Rybchenko  * is unused and the type is communicated by other means.
3709ed106d0SAndrew Rybchenko  */
3719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_TYPE_OFST 20
3729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_TYPE_LEN 4
3739ed106d0SAndrew Rybchenko /* Capabilities corresponding to 1 bits. */
3749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_CAPS_OFST 24
3759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_CAPS_LEN 4
3769ed106d0SAndrew Rybchenko 
3779ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_TEST msgrequest */
3789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_LEN 8
3799ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3809ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4
3829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4
3839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_OP_LBN 0
3849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_OP_WIDTH 8
3859ed106d0SAndrew Rybchenko /* enum: DRAM Test Start */
3869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_START 0x1
3879ed106d0SAndrew Rybchenko /* enum: DRAM Test Poll */
3889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_POLL 0x2
3899ed106d0SAndrew Rybchenko 
3909ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_TEST_START msgrequest */
3919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_LEN 12
3929ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3939ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3949ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4 */
3959ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4 */
3969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_MASK_OFST 8
3979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_MASK_LEN 4
3989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T0_LBN 0
3999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T0_WIDTH 1
4009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T1_LBN 1
4019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T1_WIDTH 1
4029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B0_LBN 2
4039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B0_WIDTH 1
4049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B1_LBN 3
4059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B1_WIDTH 1
4069ed106d0SAndrew Rybchenko 
4079ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_TEST_POLL msgrequest */
4089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_POLL_LEN 12
4099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_CMD_OFST 0
4109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_CMD_LEN 4
4119ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4 */
4129ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4 */
4139ed106d0SAndrew Rybchenko /* Clear previous test result and prepare for restarting DDR test */
4149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_POLL_CLEAR_RESULT_FOR_DDR_TEST_OFST 8
4159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_POLL_CLEAR_RESULT_FOR_DDR_TEST_LEN 4
4169ed106d0SAndrew Rybchenko 
4179ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_GET_ASSERT msgrequest */
4189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GET_ASSERT_LEN 4
4199ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4209ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4219ed106d0SAndrew Rybchenko 
4229ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_FPGA_BUILD msgrequest */
4239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_LEN 8
4249ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4259ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4269ed106d0SAndrew Rybchenko /* FPGA build info operation code */
4279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_OP_OFST 4
4289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_OP_LEN 4
4299ed106d0SAndrew Rybchenko /* enum: Get the build registers */
4309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_BUILD 0x1
4319ed106d0SAndrew Rybchenko /* enum: Get the services registers */
4329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_SERVICES 0x2
4339ed106d0SAndrew Rybchenko /* enum: Get the BSP version */
4349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_BSP_VERSION 0x3
4359ed106d0SAndrew Rybchenko /* enum: Get build register for V2 (SFA974X) */
4369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_BUILD_V2 0x4
4379ed106d0SAndrew Rybchenko /* enum: GEt the services register for V2 (SFA974X) */
4389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_SERVICES_V2 0x5
4399ed106d0SAndrew Rybchenko 
4409ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_READ_MAP msgrequest */
4419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_LEN 8
4429ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4439ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4
4459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4
4469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_OP_LBN 0
4479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_OP_WIDTH 8
4489ed106d0SAndrew Rybchenko /* enum: Get the number of map regions */
4499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_READ_MAP_COUNT 0x1
4509ed106d0SAndrew Rybchenko /* enum: Get the specified map */
4519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_READ_MAP_INDEX 0x2
4529ed106d0SAndrew Rybchenko 
4539ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_READ_MAP_COUNT msgrequest */
4549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_COUNT_LEN 8
4559ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4569ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4579ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4 */
4589ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4 */
4599ed106d0SAndrew Rybchenko 
4609ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_READ_MAP_INDEX msgrequest */
4619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_INDEX_LEN 12
4629ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4639ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4649ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4 */
4659ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4 */
4669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAP_INDEX_OFST 8
4679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_MAP_INDEX_LEN 4
4689ed106d0SAndrew Rybchenko 
4699ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_CAPABILITIES msgrequest */
4709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CAPABILITIES_LEN 4
4719ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4729ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4739ed106d0SAndrew Rybchenko 
4749ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_GLOBAL_FLAGS msgrequest */
4759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_LEN 8
4769ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4779ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_FLAGS_OFST 4
4799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_FLAGS_LEN 4
4809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_CABLE_PLUGGED_IN_LBN 0
4819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_CABLE_PLUGGED_IN_WIDTH 1
4829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_LINK_MONITORING_LBN 1
4839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_LINK_MONITORING_WIDTH 1
4849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_DFE_ENABLE_LBN 2
4859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_DFE_ENABLE_WIDTH 1
4869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_EYE_ENABLE_LBN 3
4879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_EYE_ENABLE_WIDTH 1
4889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_TUNING_ENABLE_LBN 4
4899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_TUNING_ENABLE_WIDTH 1
4909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_OFFCAL_ENABLE_LBN 5
4919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_OFFCAL_ENABLE_WIDTH 1
4929ed106d0SAndrew Rybchenko 
4939ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_IO_REL msgrequest */
4949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_LEN 8
4959ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4969ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_HEADER_OFST 4
4989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_HEADER_LEN 4
4999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_OP_LBN 0
5009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_OP_WIDTH 8
5019ed106d0SAndrew Rybchenko /* enum: Get the base address that the FC applies to relative commands */
5029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_GET_ADDR 0x1
5039ed106d0SAndrew Rybchenko /* enum: Read data */
5049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32 0x2
5059ed106d0SAndrew Rybchenko /* enum: Write data */
5069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32 0x3
5079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_COMP_TYPE_LBN 8
5089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_COMP_TYPE_WIDTH 8
5099ed106d0SAndrew Rybchenko /* enum: Application address space */
5109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_COMP_TYPE_APP_ADDR_SPACE 0x1
5119ed106d0SAndrew Rybchenko /* enum: Flash address space */
5129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_COMP_TYPE_FLASH 0x2
5139ed106d0SAndrew Rybchenko 
5149ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_IO_REL_GET_ADDR msgrequest */
5159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_GET_ADDR_LEN 8
5169ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5179ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5189ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
5199ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
5209ed106d0SAndrew Rybchenko 
5219ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_IO_REL_READ32 msgrequest */
5229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_LEN 20
5239ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5249ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5259ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
5269ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
5279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_HI_OFST 8
5289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_HI_LEN 4
5299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_LO_OFST 12
5309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_LO_LEN 4
5319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_NUMWORDS_OFST 16
5329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_NUMWORDS_LEN 4
5339ed106d0SAndrew Rybchenko 
5349ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_IO_REL_WRITE32 msgrequest */
5359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_LENMIN 20
5369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_LENMAX 252
5379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_LEN(num) (16+4*(num))
5389ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5399ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5409ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
5419ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
5429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_HI_OFST 8
5439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_HI_LEN 4
5449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_LO_OFST 12
5459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_LO_LEN 4
5469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_OFST 16
5479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_LEN 4
5489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_MINNUM 1
5499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_MAXNUM 59
5509ed106d0SAndrew Rybchenko 
5519ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_UHLINK msgrequest */
5529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_LEN 8
5539ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5549ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_HEADER_OFST 4
5569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_HEADER_LEN 4
5579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_OP_LBN 0
5589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_OP_WIDTH 8
5599ed106d0SAndrew Rybchenko /* enum: Get PHY configuration info */
5609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_PHY 0x1
5619ed106d0SAndrew Rybchenko /* enum: Get MAC configuration info */
5629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_MAC 0x2
5639ed106d0SAndrew Rybchenko /* enum: Get Rx eye table */
5649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_EYE 0x3
5659ed106d0SAndrew Rybchenko /* enum: Get Rx eye plot */
5669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT 0x4
5679ed106d0SAndrew Rybchenko /* enum: Get Rx eye plot */
5689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT 0x5
5699ed106d0SAndrew Rybchenko /* enum: Retune Rx settings */
5709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_TUNE 0x6
5719ed106d0SAndrew Rybchenko /* enum: Set loopback mode on fpga port */
5729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET 0x7
5739ed106d0SAndrew Rybchenko /* enum: Get loopback mode config state on fpga port */
5749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET 0x8
5759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_TYPE_LBN 8
5769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_TYPE_WIDTH 8
5779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_IDX_LBN 16
5789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_IDX_WIDTH 8
5799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_CMD_FORMAT_LBN 24
5809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_CMD_FORMAT_WIDTH 8
5819ed106d0SAndrew Rybchenko /* enum: Default FC command format; the fields PORT_TYPE and PORT_IDX are
5829ed106d0SAndrew Rybchenko  * irrelevant. Port number is derived from pci_fn; passed in FC header.
5839ed106d0SAndrew Rybchenko  */
5849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_CMD_FORMAT_DEFAULT 0x0
5859ed106d0SAndrew Rybchenko /* enum: Override default port number. Port number determined by fields
5869ed106d0SAndrew Rybchenko  * PORT_TYPE and PORT_IDX.
5879ed106d0SAndrew Rybchenko  */
5889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_CMD_FORMAT_PORT_OVERRIDE 0x1
5899ed106d0SAndrew Rybchenko 
5909ed106d0SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_PHY msgrequest */
5919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_PHY_LEN 8
5929ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5939ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5949ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
5959ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
5969ed106d0SAndrew Rybchenko 
5979ed106d0SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_MAC msgrequest */
5989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_MAC_LEN 8
5999ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6009ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6019ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6029ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6039ed106d0SAndrew Rybchenko 
6049ed106d0SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_RX_EYE msgrequest */
6059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_EYE_LEN 12
6069ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6079ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6089ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6099ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_EYE_INDEX_OFST 8
6119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_EYE_INDEX_LEN 4
6129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK 0x30 /* enum */
6139ed106d0SAndrew Rybchenko 
6149ed106d0SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT msgrequest */
6159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT_LEN 8
6169ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6179ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6189ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6199ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6209ed106d0SAndrew Rybchenko 
6219ed106d0SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT msgrequest */
6229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_LEN 20
6239ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6249ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6259ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6269ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_DC_GAIN_OFST 8
6289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_DC_GAIN_LEN 4
6299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_EQ_CONTROL_OFST 12
6309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_EQ_CONTROL_LEN 4
6319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_INDEX_OFST 16
6329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_INDEX_LEN 4
6339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_RX_EYE_PLOT_ROWS_PER_BLOCK 0x1e /* enum */
6349ed106d0SAndrew Rybchenko 
6359ed106d0SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_RX_TUNE msgrequest */
6369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_TUNE_LEN 8
6379ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6389ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6399ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6409ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6419ed106d0SAndrew Rybchenko 
6429ed106d0SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_LOOPBACK_SET msgrequest */
6439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_LEN 16
6449ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6459ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6469ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6479ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_TYPE_OFST 8
6499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_TYPE_LEN 4
6509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PCS_SERIAL 0x0 /* enum */
6519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PMA_PRE_CDR 0x1 /* enum */
6529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PMA_POST_CDR 0x2 /* enum */
6539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_STATE_OFST 12
6549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_STATE_LEN 4
6559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_STATE_OFF 0x0 /* enum */
6569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_STATE_ON 0x1 /* enum */
6579ed106d0SAndrew Rybchenko 
6589ed106d0SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_LOOPBACK_GET msgrequest */
6599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_LEN 12
6609ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6619ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6629ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6639ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_TYPE_OFST 8
6659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_TYPE_LEN 4
6669ed106d0SAndrew Rybchenko 
6679ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_SET_LINK msgrequest */
6689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_LEN 16
6699ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6709ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6719ed106d0SAndrew Rybchenko /* See MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */
6729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_MODE_OFST 4
6739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_MODE_LEN 4
6749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_SPEED_OFST 8
6759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_SPEED_LEN 4
6769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_FLAGS_OFST 12
6779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_FLAGS_LEN 4
6789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_LOWPOWER_LBN 0
6799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_LOWPOWER_WIDTH 1
6809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_POWEROFF_LBN 1
6819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_POWEROFF_WIDTH 1
6829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_TXDIS_LBN 2
6839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_TXDIS_WIDTH 1
6849ed106d0SAndrew Rybchenko 
6859ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_LICENSE msgrequest */
6869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_LEN 8
6879ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6889ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_OP_OFST 4
6909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_OP_LEN 4
6919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_UPDATE_LICENSE 0x0 /* enum */
6929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_GET_KEY_STATS 0x1 /* enum */
6939ed106d0SAndrew Rybchenko 
6949ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_STARTUP msgrequest */
6959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_LEN 40
6969ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6979ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_BASE_OFST 4
6999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_BASE_LEN 4
7009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_LENGTH_OFST 8
7019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_LENGTH_LEN 4
7029ed106d0SAndrew Rybchenko /* Length of identifier */
7039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_IDLENGTH_OFST 12
7049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_IDLENGTH_LEN 4
7059ed106d0SAndrew Rybchenko /* Identifier for AOE FPGA */
7069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_ID_OFST 16
7079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_ID_LEN 1
7089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_ID_NUM 24
7099ed106d0SAndrew Rybchenko 
7109ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DMA msgrequest */
7119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_LEN 8
7129ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7139ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_OP_OFST 4
7159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_OP_LEN 4
7169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_STOP 0x0 /* enum */
7179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ 0x1 /* enum */
7189ed106d0SAndrew Rybchenko 
7199ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DMA_STOP msgrequest */
7209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_STOP_LEN 12
7219ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7229ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7239ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DMA_OP_OFST 4 */
7249ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DMA_OP_LEN 4 */
7259ed106d0SAndrew Rybchenko /* FC supplied handle */
7269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_STOP_FC_HANDLE_OFST 8
7279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_STOP_FC_HANDLE_LEN 4
7289ed106d0SAndrew Rybchenko 
7299ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DMA_READ msgrequest */
7309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_LEN 16
7319ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7329ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7339ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DMA_OP_OFST 4 */
7349ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DMA_OP_LEN 4 */
7359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_OFFSET_OFST 8
7369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_OFFSET_LEN 4
7379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_LENGTH_OFST 12
7389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_LENGTH_LEN 4
7399ed106d0SAndrew Rybchenko 
7409ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TIMED_READ msgrequest */
7419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_LEN 8
7429ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7439ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_OP_OFST 4
7459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_OP_LEN 4
7469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET 0x0 /* enum */
7479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_GET 0x1 /* enum */
7489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_CLEAR 0x2 /* enum */
7499ed106d0SAndrew Rybchenko 
7509ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TIMED_READ_SET msgrequest */
7519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_LEN 52
7529ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7539ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7549ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
7559ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
7569ed106d0SAndrew Rybchenko /* Host supplied handle (unique) */
7579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_HANDLE_OFST 8
7589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_HANDLE_LEN 4
7599ed106d0SAndrew Rybchenko /* Address into which to transfer data in host */
7609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_OFST 12
7619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LEN 8
7629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LO_OFST 12
7639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_HI_OFST 16
7649ed106d0SAndrew Rybchenko /* AOE address from which to transfer data */
7659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_OFST 20
7669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LEN 8
7679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LO_OFST 20
7689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_HI_OFST 24
7699ed106d0SAndrew Rybchenko /* Length of AOE transfer (total) */
7709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_LENGTH_OFST 28
7719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_LENGTH_LEN 4
7729ed106d0SAndrew Rybchenko /* Length of host transfer (total) */
7739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_LENGTH_OFST 32
7749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_LENGTH_LEN 4
7759ed106d0SAndrew Rybchenko /* Offset back from aoe_address to apply operation to */
7769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_OFFSET_OFST 36
7779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_OFFSET_LEN 4
7789ed106d0SAndrew Rybchenko /* Data to apply at offset */
7799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DATA_OFST 40
7809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DATA_LEN 4
7819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_FLAGS_OFST 44
7829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_FLAGS_LEN 4
7839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_INDIRECT_LBN 0
7849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_INDIRECT_WIDTH 1
7859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DOUBLE_LBN 1
7869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DOUBLE_WIDTH 1
7879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_EVENT_LBN 2
7889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_EVENT_WIDTH 1
7899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PREREAD_LBN 3
7909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PREREAD_WIDTH 2
7919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_NONE 0x0 /* enum */
7929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_READ 0x1 /* enum */
7939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_WRITE 0x2 /* enum */
7949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_READWRITE 0x3 /* enum */
7959ed106d0SAndrew Rybchenko /* Period at which reads are performed (100ms units) */
7969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PERIOD_OFST 48
7979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PERIOD_LEN 4
7989ed106d0SAndrew Rybchenko 
7999ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TIMED_READ_GET msgrequest */
8009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_GET_LEN 12
8019ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8029ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8039ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
8049ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
8059ed106d0SAndrew Rybchenko /* FC supplied handle */
8069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_GET_FC_HANDLE_OFST 8
8079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_GET_FC_HANDLE_LEN 4
8089ed106d0SAndrew Rybchenko 
8099ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TIMED_READ_CLEAR msgrequest */
8109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_LEN 12
8119ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8129ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8139ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
8149ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
8159ed106d0SAndrew Rybchenko /* FC supplied handle */
8169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_FC_HANDLE_OFST 8
8179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_FC_HANDLE_LEN 4
8189ed106d0SAndrew Rybchenko 
8199ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_LOG msgrequest */
8209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_LEN 8
8219ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8229ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_OP_OFST 4
8249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_OP_LEN 4
8259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE 0x0 /* enum */
8269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_JTAG_UART 0x1 /* enum */
8279ed106d0SAndrew Rybchenko 
8289ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_LOG_ADDR_RANGE msgrequest */
8299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LEN 20
8309ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8319ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8329ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_LOG_OP_OFST 4 */
8339ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_LOG_OP_LEN 4 */
8349ed106d0SAndrew Rybchenko /* Partition offset into flash */
8359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_OFFSET_OFST 8
8369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_OFFSET_LEN 4
8379ed106d0SAndrew Rybchenko /* Partition length */
8389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LENGTH_OFST 12
8399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LENGTH_LEN 4
8409ed106d0SAndrew Rybchenko /* Partition erase size */
8419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_ERASE_SIZE_OFST 16
8429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_ERASE_SIZE_LEN 4
8439ed106d0SAndrew Rybchenko 
8449ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_LOG_JTAG_UART msgrequest */
8459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_JTAG_UART_LEN 12
8469ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8479ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8489ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_LOG_OP_OFST 4 */
8499ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_LOG_OP_LEN 4 */
8509ed106d0SAndrew Rybchenko /* Enable/disable printing to JTAG UART */
8519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_JTAG_UART_ENABLE_OFST 8
8529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_JTAG_UART_ENABLE_LEN 4
8539ed106d0SAndrew Rybchenko 
8546da6b6c7SAndrew Rybchenko /* MC_CMD_FC_IN_CLOCK msgrequest: Perform a clock operation */
8559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_LEN 12
8569ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8579ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_OP_OFST 4
8599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_OP_LEN 4
8609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_GET_TIME 0x0 /* enum */
8619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME 0x1 /* enum */
8629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_ID_OFST 8
8639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_ID_LEN 4
8649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_STATS 0x0 /* enum */
8659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_MAC 0x1 /* enum */
8669ed106d0SAndrew Rybchenko 
8676da6b6c7SAndrew Rybchenko /* MC_CMD_FC_IN_CLOCK_GET_TIME msgrequest: Retrieve the clock value of the
8686da6b6c7SAndrew Rybchenko  * specified clock
8696da6b6c7SAndrew Rybchenko  */
8709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_GET_TIME_LEN 12
8719ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8729ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8739ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_OP_OFST 4 */
8749ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_OP_LEN 4 */
8759ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_ID_OFST 8 */
8769ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_ID_LEN 4 */
8779ed106d0SAndrew Rybchenko 
8786da6b6c7SAndrew Rybchenko /* MC_CMD_FC_IN_CLOCK_SET_TIME msgrequest: Set the clock value of the specified
8796da6b6c7SAndrew Rybchenko  * clock
8806da6b6c7SAndrew Rybchenko  */
8819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_LEN 24
8829ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8839ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8849ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_OP_OFST 4 */
8859ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_OP_LEN 4 */
8869ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_ID_OFST 8 */
8879ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_ID_LEN 4 */
8889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_OFST 12
8899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LEN 8
8909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LO_OFST 12
8919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_HI_OFST 16
8929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_NANOSECONDS_OFST 20
8939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_NANOSECONDS_LEN 4
8949ed106d0SAndrew Rybchenko 
8959ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DDR msgrequest */
8969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_LEN 12
8979ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8989ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_OP_OFST 4
9009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_OP_LEN 4
9019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_SPD 0x0 /* enum */
9029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_GET_STATUS 0x1 /* enum */
9039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_INFO 0x2 /* enum */
9049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_OFST 8
9059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_LEN 4
9069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_B0 0x0 /* enum */
9079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_B1 0x1 /* enum */
9089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_T0 0x2 /* enum */
9099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_T1 0x3 /* enum */
9109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_NUM_BANKS 0x4 /* enum */
9119ed106d0SAndrew Rybchenko 
9129ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_SET_SPD msgrequest */
9139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_SPD_LEN 148
9149ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9159ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9169ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
9179ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
9189ed106d0SAndrew Rybchenko /* Affected bank */
9199ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
9209ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
9219ed106d0SAndrew Rybchenko /* Flags */
9229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_FLAGS_OFST 12
9239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_FLAGS_LEN 4
9249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_SPD_ACTIVE 0x1 /* enum */
9259ed106d0SAndrew Rybchenko /* 128-byte page of serial presence detect data read from module's EEPROM */
9269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_OFST 16
9279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_LEN 1
9289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_NUM 128
9299ed106d0SAndrew Rybchenko /* Page index of the spd data copied into MC_CMD_FC_IN_DDR_SPD */
9309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_PAGE_ID_OFST 144
9319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_PAGE_ID_LEN 4
9329ed106d0SAndrew Rybchenko 
9339ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_SET_INFO msgrequest */
9349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_INFO_LEN 16
9359ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9369ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9379ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
9389ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
9399ed106d0SAndrew Rybchenko /* Affected bank */
9409ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
9419ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
9429ed106d0SAndrew Rybchenko /* Size of DDR */
9439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SIZE_OFST 12
9449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SIZE_LEN 4
9459ed106d0SAndrew Rybchenko 
9469ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_GET_STATUS msgrequest */
9479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_GET_STATUS_LEN 12
9489ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9499ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9509ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
9519ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
9529ed106d0SAndrew Rybchenko /* Affected bank */
9539ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
9549ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
9559ed106d0SAndrew Rybchenko 
9569ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TIMESTAMP msgrequest */
9579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_LEN 8
9589ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9599ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9609ed106d0SAndrew Rybchenko /* FC timestamp operation code */
9619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_OP_OFST 4
9629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_OP_LEN 4
9639ed106d0SAndrew Rybchenko /* enum: Read transmit timestamp(s) */
9649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT 0x0
9659ed106d0SAndrew Rybchenko /* enum: Read snapshot timestamps */
9669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT 0x1
9679ed106d0SAndrew Rybchenko /* enum: Clear all transmit timestamps */
9689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT 0x2
9699ed106d0SAndrew Rybchenko 
9709ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT msgrequest */
9719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_LEN 28
9729ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9739ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_OP_OFST 4
9759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_OP_LEN 4
9769ed106d0SAndrew Rybchenko /* Control filtering of the returned timestamp and sequence number specified
9779ed106d0SAndrew Rybchenko  * here
9789ed106d0SAndrew Rybchenko  */
9799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_FILTER_OFST 8
9809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_FILTER_LEN 4
9819ed106d0SAndrew Rybchenko /* enum: Return most recent timestamp. No filtering */
9829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_LATEST 0x0
9839ed106d0SAndrew Rybchenko /* enum: Match timestamp against the PTP clock ID, port number and sequence
9849ed106d0SAndrew Rybchenko  * number specified
9859ed106d0SAndrew Rybchenko  */
9869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_MATCH 0x1
9879ed106d0SAndrew Rybchenko /* Clock identity of PTP packet for which timestamp required */
9889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_OFST 12
9899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LEN 8
9909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LO_OFST 12
9919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_HI_OFST 16
9929ed106d0SAndrew Rybchenko /* Port number of PTP packet for which timestamp required */
9939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_PORT_NUM_OFST 20
9949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_PORT_NUM_LEN 4
9959ed106d0SAndrew Rybchenko /* Sequence number of PTP packet for which timestamp required */
9969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_SEQ_NUM_OFST 24
9979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_SEQ_NUM_LEN 4
9989ed106d0SAndrew Rybchenko 
9999ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT msgrequest */
10009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_LEN 8
10019ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10029ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_OP_OFST 4
10049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_OP_LEN 4
10059ed106d0SAndrew Rybchenko 
10069ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT msgrequest */
10079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_LEN 8
10089ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10099ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_OP_OFST 4
10119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_OP_LEN 4
10129ed106d0SAndrew Rybchenko 
10139ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_SPI msgrequest */
10149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_LEN 8
10159ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10169ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10179ed106d0SAndrew Rybchenko /* Basic commands for SPI Flash. */
10189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_OP_OFST 4
10199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_OP_LEN 4
10209ed106d0SAndrew Rybchenko /* enum: SPI Flash read */
10219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ 0x0
10229ed106d0SAndrew Rybchenko /* enum: SPI Flash write */
10239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE 0x1
10249ed106d0SAndrew Rybchenko /* enum: SPI Flash erase */
10259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE 0x2
10269ed106d0SAndrew Rybchenko 
10279ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_SPI_READ msgrequest */
10289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_LEN 16
10299ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10309ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_OP_OFST 4
10329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_OP_LEN 4
10339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_ADDR_OFST 8
10349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_ADDR_LEN 4
10359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_NUMBYTES_OFST 12
10369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_NUMBYTES_LEN 4
10379ed106d0SAndrew Rybchenko 
10389ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_SPI_WRITE msgrequest */
10399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_LENMIN 16
10409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_LENMAX 252
10419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_LEN(num) (12+4*(num))
10429ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10439ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_OP_OFST 4
10459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_OP_LEN 4
10469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_ADDR_OFST 8
10479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_ADDR_LEN 4
10489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_OFST 12
10499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_LEN 4
10509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_MINNUM 1
10519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_MAXNUM 60
10529ed106d0SAndrew Rybchenko 
10539ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_SPI_ERASE msgrequest */
10549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_LEN 16
10559ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10569ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_OP_OFST 4
10589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_OP_LEN 4
10599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_ADDR_OFST 8
10609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_ADDR_LEN 4
10619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_NUMBYTES_OFST 12
10629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_NUMBYTES_LEN 4
10639ed106d0SAndrew Rybchenko 
10649ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG msgrequest */
10659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_LEN 8
10669ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10679ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10689ed106d0SAndrew Rybchenko /* Operation code indicating component type */
10699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_OP_OFST 4
10709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_OP_LEN 4
10719ed106d0SAndrew Rybchenko /* enum: Power noise generator. */
10729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE 0x0
10739ed106d0SAndrew Rybchenko /* enum: DDR soak test component. */
10749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK 0x1
10759ed106d0SAndrew Rybchenko /* enum: Diagnostics datapath control component. */
10769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL 0x2
10779ed106d0SAndrew Rybchenko 
10789ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_POWER_NOISE msgrequest */
10799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_LEN 12
10809ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10819ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_OP_OFST 4
10839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_OP_LEN 4
10849ed106d0SAndrew Rybchenko /* Sub-opcode describing the operation to be carried out */
10859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_SUB_OP_OFST 8
10869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_SUB_OP_LEN 4
10879ed106d0SAndrew Rybchenko /* enum: Read the configuration (the 32-bit values in each of the clock enable
10889ed106d0SAndrew Rybchenko  * count and toggle count registers)
10899ed106d0SAndrew Rybchenko  */
10909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG 0x0
10919ed106d0SAndrew Rybchenko /* enum: Write a new configuration to the clock enable count and toggle count
10929ed106d0SAndrew Rybchenko  * registers
10939ed106d0SAndrew Rybchenko  */
10949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG 0x1
10959ed106d0SAndrew Rybchenko 
10969ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG msgrequest */
10979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_LEN 12
10989ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10999ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_OP_OFST 4
11019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_OP_LEN 4
11029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_SUB_OP_OFST 8
11039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_SUB_OP_LEN 4
11049ed106d0SAndrew Rybchenko 
11059ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG msgrequest */
11069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_LEN 20
11079ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11089ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_OP_OFST 4
11109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_OP_LEN 4
11119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_SUB_OP_OFST 8
11129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_SUB_OP_LEN 4
11139ed106d0SAndrew Rybchenko /* The 32-bit value to be written to the toggle count register */
11149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_TOGGLE_COUNT_OFST 12
11159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_TOGGLE_COUNT_LEN 4
11169ed106d0SAndrew Rybchenko /* The 32-bit value to be written to the clock enable count register */
11179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_CLKEN_COUNT_OFST 16
11189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_CLKEN_COUNT_LEN 4
11199ed106d0SAndrew Rybchenko 
11209ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK msgrequest */
11219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_LEN 12
11229ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11239ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_OP_OFST 4
11259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_OP_LEN 4
11269ed106d0SAndrew Rybchenko /* Sub-opcode describing the operation to be carried out */
11279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_SUB_OP_OFST 8
11289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_SUB_OP_LEN 4
11299ed106d0SAndrew Rybchenko /* enum: Starts DDR soak test on selected banks */
11309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START 0x0
11319ed106d0SAndrew Rybchenko /* enum: Read status of DDR soak test */
11329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT 0x1
11339ed106d0SAndrew Rybchenko /* enum: Stop test */
11349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP 0x2
11359ed106d0SAndrew Rybchenko /* enum: Set or clear bit that triggers fake errors. These cause subsequent
11369ed106d0SAndrew Rybchenko  * tests to fail until the bit is cleared.
11379ed106d0SAndrew Rybchenko  */
11389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR 0x3
11399ed106d0SAndrew Rybchenko 
11409ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK_START msgrequest */
11419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_LEN 24
11429ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11439ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_OP_OFST 4
11459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_OP_LEN 4
11469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SUB_OP_OFST 8
11479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SUB_OP_LEN 4
11489ed106d0SAndrew Rybchenko /* Mask of DDR banks to be tested */
11499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_BANK_MASK_OFST 12
11509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_BANK_MASK_LEN 4
11519ed106d0SAndrew Rybchenko /* Pattern to use in the soak test */
11529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_PATTERN_OFST 16
11539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_PATTERN_LEN 4
11549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ZEROS 0x0 /* enum */
11559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ONES 0x1 /* enum */
11569ed106d0SAndrew Rybchenko /* Either multiple automatic tests until a STOP command is issued, or one
11579ed106d0SAndrew Rybchenko  * single test
11589ed106d0SAndrew Rybchenko  */
11599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_TYPE_OFST 20
11609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_TYPE_LEN 4
11619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ONGOING_TEST 0x0 /* enum */
11629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SINGLE_TEST 0x1 /* enum */
11639ed106d0SAndrew Rybchenko 
11649ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT msgrequest */
11659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_LEN 16
11669ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11679ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_OP_OFST 4
11699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_OP_LEN 4
11709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_SUB_OP_OFST 8
11719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_SUB_OP_LEN 4
11729ed106d0SAndrew Rybchenko /* DDR bank to read status from */
11739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_BANK_ID_OFST 12
11749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_BANK_ID_LEN 4
11759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_DDR_BANK0 0x0 /* enum */
11769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_DDR_BANK1 0x1 /* enum */
11779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_DDR_BANK2 0x2 /* enum */
11789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_DDR_BANK3 0x3 /* enum */
11799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_DDR_AOEMEM_MAX_BANKS 0x4 /* enum */
11809ed106d0SAndrew Rybchenko 
11819ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP msgrequest */
11829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_LEN 16
11839ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11849ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_OP_OFST 4
11869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_OP_LEN 4
11879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_SUB_OP_OFST 8
11889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_SUB_OP_LEN 4
11899ed106d0SAndrew Rybchenko /* Mask of DDR banks to be tested */
11909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_BANK_MASK_OFST 12
11919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_BANK_MASK_LEN 4
11929ed106d0SAndrew Rybchenko 
11939ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR msgrequest */
11949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_LEN 20
11959ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11969ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_OP_OFST 4
11989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_OP_LEN 4
11999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SUB_OP_OFST 8
12009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SUB_OP_LEN 4
12019ed106d0SAndrew Rybchenko /* Mask of DDR banks to set/clear error flag on */
12029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_BANK_MASK_OFST 12
12039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_BANK_MASK_LEN 4
12049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_FLAG_ACTION_OFST 16
12059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_FLAG_ACTION_LEN 4
12069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_CLEAR 0x0 /* enum */
12079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SET 0x1 /* enum */
12089ed106d0SAndrew Rybchenko 
12099ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL msgrequest */
12109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_LEN 12
12119ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12129ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_OP_OFST 4
12149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_OP_LEN 4
12159ed106d0SAndrew Rybchenko /* Sub-opcode describing the operation to be carried out */
12169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SUB_OP_OFST 8
12179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SUB_OP_LEN 4
12189ed106d0SAndrew Rybchenko /* enum: Set a known datapath configuration */
12199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE 0x0
12209ed106d0SAndrew Rybchenko /* enum: Apply raw config to datapath control registers */
12219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG 0x1
12229ed106d0SAndrew Rybchenko 
12239ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE msgrequest */
12249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_LEN 16
12259ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12269ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_OP_OFST 4
12289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_OP_LEN 4
12299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SUB_OP_OFST 8
12309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SUB_OP_LEN 4
12319ed106d0SAndrew Rybchenko /* Datapath configuration identifier */
12329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_MODE_OFST 12
12339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_MODE_LEN 4
12349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_PASSTHROUGH 0x0 /* enum */
12359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SNAKE 0x1 /* enum */
12369ed106d0SAndrew Rybchenko 
12379ed106d0SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG msgrequest */
12389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_LEN 24
12399ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12409ed106d0SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_OP_OFST 4
12429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_OP_LEN 4
12439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_SUB_OP_OFST 8
12449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_SUB_OP_LEN 4
12459ed106d0SAndrew Rybchenko /* Value to write into control register 1 */
12469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL1_OFST 12
12479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL1_LEN 4
12489ed106d0SAndrew Rybchenko /* Value to write into control register 2 */
12499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL2_OFST 16
12509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL2_LEN 4
12519ed106d0SAndrew Rybchenko /* Value to write into control register 3 */
12529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL3_OFST 20
12539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL3_LEN 4
12549ed106d0SAndrew Rybchenko 
12559ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT msgresponse */
12569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LEN 0
12579ed106d0SAndrew Rybchenko 
12589ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_NULL msgresponse */
12599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_NULL_LEN 0
12609ed106d0SAndrew Rybchenko 
12619ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_READ32 msgresponse */
12629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_LENMIN 4
12639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_LENMAX 252
12649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_LEN(num) (0+4*(num))
12659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_OFST 0
12669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_LEN 4
12679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_MINNUM 1
12689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_MAXNUM 63
12699ed106d0SAndrew Rybchenko 
12709ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_WRITE32 msgresponse */
12719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_WRITE32_LEN 0
12729ed106d0SAndrew Rybchenko 
12739ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_TRC_READ msgresponse */
12749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_READ_LEN 16
12759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_READ_DATA_OFST 0
12769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_READ_DATA_LEN 4
12779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_READ_DATA_NUM 4
12789ed106d0SAndrew Rybchenko 
12799ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_TRC_WRITE msgresponse */
12809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_WRITE_LEN 0
12819ed106d0SAndrew Rybchenko 
12829ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_GET_VERSION msgresponse */
12839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_LEN 12
12849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_FIRMWARE_OFST 0
12859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_FIRMWARE_LEN 4
12869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_OFST 4
12879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LEN 8
12889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LO_OFST 4
12899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_HI_OFST 8
12909ed106d0SAndrew Rybchenko 
12919ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_TRC_RX_READ msgresponse */
12929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_READ_LEN 8
12939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_OFST 0
12949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_LEN 4
12959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_NUM 2
12969ed106d0SAndrew Rybchenko 
12979ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_TRC_RX_WRITE msgresponse */
12989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_WRITE_LEN 0
12999ed106d0SAndrew Rybchenko 
13009ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_RECONFIGURE msgresponse */
13019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_RECONFIGURE_LEN 0
13029ed106d0SAndrew Rybchenko 
13039ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_SET_LINK msgresponse */
13049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_SET_LINK_LEN 0
13059ed106d0SAndrew Rybchenko 
13069ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_READ_STATUS msgresponse */
13079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_READ_STATUS_LEN 4
13089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_READ_STATUS_STATUS_OFST 0
13099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_READ_STATUS_STATUS_LEN 4
13109ed106d0SAndrew Rybchenko 
13119ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_GET_RX_STATS msgresponse */
13129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_RX_NSTATS))+1))>>3)
13139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_OFST 0
13149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LEN 8
13159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LO_OFST 0
13169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_HI_OFST 4
13179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_NUM MC_CMD_FC_MAC_RX_NSTATS
13189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_OCTETS 0x0 /* enum */
13199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_OCTETS_OK 0x1 /* enum */
13209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_ALIGNMENT_ERRORS 0x2 /* enum */
13219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_PAUSE_MAC_CTRL_FRAMES 0x3 /* enum */
13229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_FRAMES_OK 0x4 /* enum */
13239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_CRC_ERRORS 0x5 /* enum */
13249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_VLAN_OK 0x6 /* enum */
13259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_ERRORS 0x7 /* enum */
13269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_UCAST_PKTS 0x8 /* enum */
13279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_MULTICAST_PKTS 0x9 /* enum */
13289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_BROADCAST_PKTS 0xa /* enum */
13299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_DROP_EVENTS 0xb /* enum */
13309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS 0xc /* enum */
13319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_UNDERSIZE_PKTS 0xd /* enum */
13329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_64 0xe /* enum */
13339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_65_127 0xf /* enum */
13349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_128_255 0x10 /* enum */
13359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_256_511 0x11 /* enum */
13369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_512_1023 0x12 /* enum */
13379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_1024_1518 0x13 /* enum */
13389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_1519_MAX 0x14 /* enum */
13399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_OVERSIZE_PKTS 0x15 /* enum */
13409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_JABBERS 0x16 /* enum */
13419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_FRAGMENTS 0x17 /* enum */
13429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_MAC_CONTROL_FRAMES 0x18 /* enum */
13439ed106d0SAndrew Rybchenko /* enum: (Last entry) */
13449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_NSTATS 0x19
13459ed106d0SAndrew Rybchenko 
13469ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_GET_TX_STATS msgresponse */
13479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_TX_NSTATS))+1))>>3)
13489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_OFST 0
13499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LEN 8
13509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LO_OFST 0
13519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_HI_OFST 4
13529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_NUM MC_CMD_FC_MAC_TX_NSTATS
13539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_OCTETS 0x0 /* enum */
13549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_OCTETS_OK 0x1 /* enum */
13559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_ALIGNMENT_ERRORS 0x2 /* enum */
13569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_PAUSE_MAC_CTRL_FRAMES 0x3 /* enum */
13579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_FRAMES_OK 0x4 /* enum */
13589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_CRC_ERRORS 0x5 /* enum */
13599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_VLAN_OK 0x6 /* enum */
13609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_ERRORS 0x7 /* enum */
13619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_UCAST_PKTS 0x8 /* enum */
13629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_MULTICAST_PKTS 0x9 /* enum */
13639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_BROADCAST_PKTS 0xa /* enum */
13649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_DROP_EVENTS 0xb /* enum */
13659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS 0xc /* enum */
13669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_UNDERSIZE_PKTS 0xd /* enum */
13679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_64 0xe /* enum */
13689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_65_127 0xf /* enum */
13699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_128_255 0x10 /* enum */
13709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_256_511 0x11 /* enum */
13719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_512_1023 0x12 /* enum */
13729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_1024_1518 0x13 /* enum */
13739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_1519_TX_MTU 0x14 /* enum */
13749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_MAC_CONTROL_FRAMES 0x15 /* enum */
13759ed106d0SAndrew Rybchenko /* enum: (Last entry) */
13769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_NSTATS 0x16
13779ed106d0SAndrew Rybchenko 
13789ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_GET_STATS msgresponse */
13799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_NSTATS_PER_BLOCK))+1))>>3)
13809ed106d0SAndrew Rybchenko /* MAC Statistics */
13819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_OFST 0
13829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LEN 8
13839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LO_OFST 0
13849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_HI_OFST 4
13859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_NUM MC_CMD_FC_MAC_NSTATS_PER_BLOCK
13869ed106d0SAndrew Rybchenko 
13879ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC msgresponse */
13889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_LEN 0
13899ed106d0SAndrew Rybchenko 
13909ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_SFP msgresponse */
13919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SFP_LEN 0
13929ed106d0SAndrew Rybchenko 
13939ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_TEST_START msgresponse */
13949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_START_LEN 0
13959ed106d0SAndrew Rybchenko 
13969ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_TEST_POLL msgresponse */
13979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_LEN 8
13989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_STATUS_OFST 0
13999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_STATUS_LEN 4
14009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CODE_LBN 0
14019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CODE_WIDTH 8
14029ed106d0SAndrew Rybchenko /* enum: Test not yet initiated */
14039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_NONE 0x0
14049ed106d0SAndrew Rybchenko /* enum: Test is in progress */
14059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_INPROGRESS 0x1
14069ed106d0SAndrew Rybchenko /* enum: Timed completed */
14079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_SUCCESS 0x2
14089ed106d0SAndrew Rybchenko /* enum: Test did not complete in specified time */
14099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_TIMER_EXPIRED 0x3
14109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T0_LBN 11
14119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T0_WIDTH 1
14129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T1_LBN 10
14139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T1_WIDTH 1
14149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B0_LBN 9
14159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B0_WIDTH 1
14169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B1_LBN 8
14179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B1_WIDTH 1
14189ed106d0SAndrew Rybchenko /* Test result from FPGA */
14199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_RESULT_OFST 4
14209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_RESULT_LEN 4
14219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T0_LBN 31
14229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T0_WIDTH 1
14239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T1_LBN 30
14249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T1_WIDTH 1
14259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B0_LBN 29
14269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B0_WIDTH 1
14279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B1_LBN 28
14289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B1_WIDTH 1
14299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T0_LBN 15
14309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T0_WIDTH 5
14319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T1_LBN 10
14329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T1_WIDTH 5
14339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B0_LBN 5
14349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B0_WIDTH 5
14359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B1_LBN 0
14369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B1_WIDTH 5
14379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_COMPLETE 0x0 /* enum */
14389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_FAIL 0x1 /* enum */
14399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_PASS 0x2 /* enum */
14409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CAL_FAIL 0x3 /* enum */
14419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CAL_SUCCESS 0x4 /* enum */
14429ed106d0SAndrew Rybchenko 
14439ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_TEST msgresponse */
14449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_LEN 0
14459ed106d0SAndrew Rybchenko 
14469ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_GET_ASSERT msgresponse */
14479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_LEN 144
14489ed106d0SAndrew Rybchenko /* Assertion status flag. */
14499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GLOBAL_FLAGS_OFST 0
14509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GLOBAL_FLAGS_LEN 4
14519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_STATE_LBN 8
14529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_STATE_WIDTH 8
14539ed106d0SAndrew Rybchenko /* enum: No crash data available */
14549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_CLEAR 0x0
14559ed106d0SAndrew Rybchenko /* enum: New crash data available */
14569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NEW 0x1
14579ed106d0SAndrew Rybchenko /* enum: Crash data has been sent */
14589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NOTIFIED 0x2
14599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_TYPE_LBN 0
14609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_TYPE_WIDTH 8
14619ed106d0SAndrew Rybchenko /* enum: No crash has been recorded. */
14629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_NONE 0x0
14639ed106d0SAndrew Rybchenko /* enum: Crash due to exception. */
14649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_EXCEPTION 0x1
14659ed106d0SAndrew Rybchenko /* enum: Crash due to assertion. */
14669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_ASSERTION 0x2
14679ed106d0SAndrew Rybchenko /* Failing PC value */
14689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_SAVED_PC_OFFS_OFST 4
14699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_SAVED_PC_OFFS_LEN 4
14709ed106d0SAndrew Rybchenko /* Saved GP regs */
14719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_OFST 8
14729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_LEN 4
14739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_NUM 31
14749ed106d0SAndrew Rybchenko /* Exception Type */
14759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_TYPE_OFFS_OFST 132
14769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_TYPE_OFFS_LEN 4
14779ed106d0SAndrew Rybchenko /* Instruction at which exception occurred */
14789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_PC_ADDR_OFFS_OFST 136
14799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_PC_ADDR_OFFS_LEN 4
14809ed106d0SAndrew Rybchenko /* BAD Address that triggered address-based exception */
14819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_BAD_ADDR_OFFS_OFST 140
14829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_BAD_ADDR_OFFS_LEN 4
14839ed106d0SAndrew Rybchenko 
14849ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_FPGA_BUILD msgresponse */
14859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_LEN 32
14869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_INFO_OFST 0
14879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_INFO_LEN 4
14889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_APPLICATION_LBN 31
14899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_APPLICATION_WIDTH 1
14909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_LICENSED_LBN 30
14919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_LICENSED_WIDTH 1
14929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_ID_LBN 16
14939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_ID_WIDTH 14
14949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MAJOR_LBN 12
14959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MAJOR_WIDTH 4
14969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MINOR_LBN 4
14979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MINOR_WIDTH 8
14989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_NUM_LBN 0
14999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_NUM_WIDTH 4
15009ed106d0SAndrew Rybchenko /* Build timestamp (seconds since epoch) */
15019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_TIMESTAMP_OFST 4
15029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_TIMESTAMP_LEN 4
15039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PARAMETERS_OFST 8
15049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PARAMETERS_LEN 4
15059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_FPGA_TYPE_LBN 0
15069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_FPGA_TYPE_WIDTH 8
15079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_TYPE_A7 0xa7 /* enum */
15089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_TYPE_A5 0xa5 /* enum */
15099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED1_LBN 8
15109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED1_WIDTH 10
15119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PTP_ENABLED_LBN 18
15129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PTP_ENABLED_WIDTH 1
15139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM1_RLDRAM_DEF_LBN 19
15149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM1_RLDRAM_DEF_WIDTH 1
15159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM2_RLDRAM_DEF_LBN 20
15169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM2_RLDRAM_DEF_WIDTH 1
15179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM3_RLDRAM_DEF_LBN 21
15189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM3_RLDRAM_DEF_WIDTH 1
15199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM4_RLDRAM_DEF_LBN 22
15209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM4_RLDRAM_DEF_WIDTH 1
15219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T0_DDR3_DEF_LBN 23
15229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T0_DDR3_DEF_WIDTH 1
15239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_DDR3_DEF_LBN 24
15249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_DDR3_DEF_WIDTH 1
15259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B0_DDR3_DEF_LBN 25
15269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B0_DDR3_DEF_WIDTH 1
15279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B1_DDR3_DEF_LBN 26
15289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B1_DDR3_DEF_WIDTH 1
15299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DDR3_ECC_ENABLED_LBN 27
15309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DDR3_ECC_ENABLED_WIDTH 1
15319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_QDR_DEF_LBN 28
15329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_QDR_DEF_WIDTH 1
15339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED2_LBN 29
15349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED2_WIDTH 2
15359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CRC_APPEND_LBN 31
15369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CRC_APPEND_WIDTH 1
15379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IDENTIFIER_OFST 12
15389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IDENTIFIER_LEN 4
15399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CHANGESET_LBN 0
15409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CHANGESET_WIDTH 16
15419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_FLAG_LBN 16
15429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_FLAG_WIDTH 1
15439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 /* enum */
15449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 /* enum */
15459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED3_LBN 17
15469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED3_WIDTH 15
15479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_HI_OFST 16
15489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_HI_LEN 4
15499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MINOR_LBN 0
15509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MINOR_WIDTH 16
15519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MAJOR_LBN 16
15529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MAJOR_WIDTH 16
15539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_LO_OFST 20
15549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_LO_LEN 4
15559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_BUILD_LBN 0
15569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_BUILD_WIDTH 16
15579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MICRO_LBN 16
15589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MICRO_WIDTH 16
15599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_OFST 16
15609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LEN 8
15619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LO_OFST 16
15629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_HI_OFST 20
15639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_LO_OFST 24
15649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_LO_LEN 4
15659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HI_OFST 28
15669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HI_LEN 4
15679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HIGH_LBN 0
15689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HIGH_WIDTH 16
15699ed106d0SAndrew Rybchenko 
15709ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_FPGA_BUILD_V2 msgresponse */
15719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_LEN 32
15729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_INFO_OFST 0
15739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_INFO_LEN 4
15749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_APPLICATION_LBN 31
15759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_APPLICATION_WIDTH 1
15769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_LICENSED_LBN 30
15779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_LICENSED_WIDTH 1
15789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_ID_LBN 16
15799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_ID_WIDTH 14
15809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MAJOR_LBN 12
15819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MAJOR_WIDTH 4
15829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MINOR_LBN 4
15839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MINOR_WIDTH 8
15849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_NUM_LBN 0
15859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_NUM_WIDTH 4
15869ed106d0SAndrew Rybchenko /* Build timestamp (seconds since epoch) */
15879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_TIMESTAMP_OFST 4
15889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_TIMESTAMP_LEN 4
15899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PARAMETERS_OFST 8
15909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PARAMETERS_LEN 4
15919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PMA_PASSTHROUGH_LBN 31
15929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PMA_PASSTHROUGH_WIDTH 1
15939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_QDR_DEF_LBN 29
15949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_QDR_DEF_WIDTH 1
15959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_QDR_DEF_LBN 28
15969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_QDR_DEF_WIDTH 1
15979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DDR3_ECC_ENABLED_LBN 27
15989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DDR3_ECC_ENABLED_WIDTH 1
15999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_DDR3_DEF_LBN 26
16009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_DDR3_DEF_WIDTH 1
16019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_DDR3_DEF_LBN 25
16029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_DDR3_DEF_WIDTH 1
16039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_TO_DDR3_DEF_LBN 24
16049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_TO_DDR3_DEF_WIDTH 1
16059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_T0_DDR3_DEF_LBN 23
16069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_T0_DDR3_DEF_WIDTH 1
16079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_RLDRAM_DEF_LBN 22
16089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_RLDRAM_DEF_WIDTH 1
16099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_RLDRAM_DEF_LBN 21
16109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_RLDRAM_DEF_WIDTH 1
16119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_RLDRAM_DEF_LBN 20
16129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_RLDRAM_DEF_WIDTH 1
16139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_RLDRAM_DEF_LBN 19
16149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_RLDRAM_DEF_WIDTH 1
16159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_LBN 18
16169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_WIDTH 1
16179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_10G 0x0 /* enum */
16189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_40G 0x1 /* enum */
16199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_LBN 17
16209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_WIDTH 1
16219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_10G 0x0 /* enum */
16229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_40G 0x1 /* enum */
16239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_LBN 16
16249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_WIDTH 1
16259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_10G 0x0 /* enum */
16269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_40G 0x1 /* enum */
16279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP7_DEF_LBN 15
16289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP7_DEF_WIDTH 1
16299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP6_DEF_LBN 14
16309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP6_DEF_WIDTH 1
16319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP5_DEF_LBN 13
16329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP5_DEF_WIDTH 1
16339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_DEF_LBN 12
16349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_DEF_WIDTH 1
16359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP3_DEF_LBN 11
16369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP3_DEF_WIDTH 1
16379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP2_DEF_LBN 10
16389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP2_DEF_WIDTH 1
16399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP1_DEF_LBN 9
16409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP1_DEF_WIDTH 1
16419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_DEF_LBN 8
16429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_DEF_WIDTH 1
16439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC3_DEF_LBN 7
16449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC3_DEF_WIDTH 1
16459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC2_DEF_LBN 6
16469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC2_DEF_WIDTH 1
16479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC1_DEF_LBN 5
16489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC1_DEF_WIDTH 1
16499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_DEF_LBN 4
16509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_DEF_WIDTH 1
16519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_FPGA_TYPE_LBN 0
16529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_FPGA_TYPE_WIDTH 4
16539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_A3 0x0 /* enum */
16549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_A4 0x1 /* enum */
16559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_A5 0x2 /* enum */
16569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_A7 0x3 /* enum */
16579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_D3 0x8 /* enum */
16589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_D4 0x9 /* enum */
16599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_D5 0xa /* enum */
16609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_D7 0xb /* enum */
16619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IDENTIFIER_OFST 12
16629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IDENTIFIER_LEN 4
16639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_CHANGESET_LBN 0
16649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_CHANGESET_WIDTH 16
16659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_FLAG_LBN 16
16669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_FLAG_WIDTH 1
16679ed106d0SAndrew Rybchenko /*               MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 */
16689ed106d0SAndrew Rybchenko /*               MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 */
16699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_HI_OFST 16
16709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_HI_LEN 4
16719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MINOR_LBN 0
16729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MINOR_WIDTH 16
16739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MAJOR_LBN 16
16749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MAJOR_WIDTH 16
16759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_LO_OFST 20
16769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_LO_LEN 4
16779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_BUILD_LBN 0
16789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_BUILD_WIDTH 16
16799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MICRO_LBN 16
16809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MICRO_WIDTH 16
16819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_LO_OFST 24
16829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_LO_LEN 4
16839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HI_OFST 28
16849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HI_LEN 4
16859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HIGH_LBN 0
16869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HIGH_WIDTH 16
16879ed106d0SAndrew Rybchenko 
16889ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_FPGA_SERVICES msgresponse */
16899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_LEN 32
16909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_INFO_OFST 0
16919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_INFO_LEN 4
16929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_APPLICATION_LBN 31
16939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_APPLICATION_WIDTH 1
16949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_LICENSED_LBN 30
16959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_LICENSED_WIDTH 1
16969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_ID_LBN 16
16979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_ID_WIDTH 14
16989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MAJOR_LBN 12
16999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MAJOR_WIDTH 4
17009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MINOR_LBN 4
17019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MINOR_WIDTH 8
17029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_NUM_LBN 0
17039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_NUM_WIDTH 4
17049ed106d0SAndrew Rybchenko /* Build timestamp (seconds since epoch) */
17059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_TIMESTAMP_OFST 4
17069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_TIMESTAMP_LEN 4
17079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_PARAMETERS_OFST 8
17089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_PARAMETERS_LEN 4
17099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_FC_FLASH_BOOTED_LBN 8
17109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_FC_FLASH_BOOTED_WIDTH 1
17119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC0_DEF_LBN 27
17129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC0_DEF_WIDTH 1
17139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC1_DEF_LBN 28
17149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC1_DEF_WIDTH 1
17159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP0_DEF_LBN 29
17169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP0_DEF_WIDTH 1
17179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP1_DEF_LBN 30
17189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP1_DEF_WIDTH 1
17199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_RESERVED_LBN 31
17209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_RESERVED_WIDTH 1
17219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IDENTIFIER_OFST 12
17229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IDENTIFIER_LEN 4
17239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_CHANGESET_LBN 0
17249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_CHANGESET_WIDTH 16
17259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_FLAG_LBN 16
17269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_FLAG_WIDTH 1
17279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_OFST 16
17289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_LEN 4
17299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_WIDTH_LBN 0
17309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_WIDTH_WIDTH 16
17319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_COUNT_LBN 16
17329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_COUNT_WIDTH 16
17339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_OFST 20
17349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_LEN 4
17359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_WIDTH_LBN 0
17369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_WIDTH_WIDTH 16
17379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_COUNT_LBN 16
17389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_COUNT_WIDTH 16
17399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_LO_OFST 24
17409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_LO_LEN 4
17419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HI_OFST 28
17429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HI_LEN 4
17439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HIGH_LBN 0
17449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HIGH_WIDTH 16
17459ed106d0SAndrew Rybchenko 
17469ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_FPGA_SERVICES_V2 msgresponse */
17479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_LEN 32
17489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_INFO_OFST 0
17499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_INFO_LEN 4
17509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_APPLICATION_LBN 31
17519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_APPLICATION_WIDTH 1
17529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_LICENSED_LBN 30
17539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_LICENSED_WIDTH 1
17549ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_ID_LBN 16
17559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_ID_WIDTH 14
17569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MAJOR_LBN 12
17579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MAJOR_WIDTH 4
17589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MINOR_LBN 4
17599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MINOR_WIDTH 8
17609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_NUM_LBN 0
17619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_NUM_WIDTH 4
17629ed106d0SAndrew Rybchenko /* Build timestamp (seconds since epoch) */
17639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_TIMESTAMP_OFST 4
17649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_TIMESTAMP_LEN 4
17659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PARAMETERS_OFST 8
17669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PARAMETERS_LEN 4
17679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PTP_ENABLED_LBN 0
17689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PTP_ENABLED_WIDTH 1
17699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_FC_FLASH_BOOTED_LBN 8
17709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_FC_FLASH_BOOTED_WIDTH 1
17719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IDENTIFIER_OFST 12
17729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IDENTIFIER_LEN 4
17739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_CHANGESET_LBN 0
17749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_CHANGESET_WIDTH 16
17759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_FLAG_LBN 16
17769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_FLAG_WIDTH 1
17779ed106d0SAndrew Rybchenko /*               MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 */
17789ed106d0SAndrew Rybchenko /*               MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 */
17799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_LO_OFST 24
17809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_LO_LEN 4
17819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HI_OFST 28
17829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HI_LEN 4
17839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HIGH_LBN 0
17849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HIGH_WIDTH 16
17859ed106d0SAndrew Rybchenko 
17869ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_BSP_VERSION msgresponse */
17879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_LEN 4
17889ed106d0SAndrew Rybchenko /* Qsys system ID */
17899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_SYSID_OFST 0
17909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_SYSID_LEN 4
17919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MAJOR_LBN 12
17929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MAJOR_WIDTH 4
17939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MINOR_LBN 4
17949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MINOR_WIDTH 8
17959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_BUILD_NUM_LBN 0
17969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_BUILD_NUM_WIDTH 4
17979ed106d0SAndrew Rybchenko 
17989ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_READ_MAP_COUNT msgresponse */
17999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_COUNT_LEN 4
18009ed106d0SAndrew Rybchenko /* Number of maps */
18019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_COUNT_NUM_MAPS_OFST 0
18029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_COUNT_NUM_MAPS_LEN 4
18039ed106d0SAndrew Rybchenko 
18049ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_READ_MAP_INDEX msgresponse */
18059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN 164
18069ed106d0SAndrew Rybchenko /* Index of the map */
18079ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_INDEX_OFST 0
18089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_INDEX_LEN 4
18099ed106d0SAndrew Rybchenko /* Options for the map */
18109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_OPTIONS_OFST 4
18119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_OPTIONS_LEN 4
18129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_8 0x0 /* enum */
18139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_16 0x1 /* enum */
18149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_32 0x2 /* enum */
18159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_64 0x3 /* enum */
18169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_MASK 0x3 /* enum */
18179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PATH_FC 0x4 /* enum */
18189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PATH_MEM 0x8 /* enum */
18199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PERM_READ 0x10 /* enum */
18209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PERM_WRITE 0x20 /* enum */
18219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_FREE 0x0 /* enum */
18229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_LICENSED 0x40 /* enum */
18239ed106d0SAndrew Rybchenko /* Address of start of map */
18249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_OFST 8
18259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LEN 8
18269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LO_OFST 8
18279ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_HI_OFST 12
18289ed106d0SAndrew Rybchenko /* Length of address map */
18299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_OFST 16
18309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LEN 8
18319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LO_OFST 16
18329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_HI_OFST 20
18339ed106d0SAndrew Rybchenko /* Component information field */
18349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_COMP_INFO_OFST 24
18359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_COMP_INFO_LEN 4
18369ed106d0SAndrew Rybchenko /* License expiry data for map */
18379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_OFST 28
18389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LEN 8
18399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LO_OFST 28
18409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_HI_OFST 32
18419ed106d0SAndrew Rybchenko /* Name of the component */
18429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_OFST 36
18439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_LEN 1
18449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_NUM 128
18459ed106d0SAndrew Rybchenko 
18469ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_READ_MAP msgresponse */
18479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_LEN 0
18489ed106d0SAndrew Rybchenko 
18499ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_CAPABILITIES msgresponse */
18509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_LEN 8
18519ed106d0SAndrew Rybchenko /* Number of internal ports */
18529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_INTERNAL_OFST 0
18539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_INTERNAL_LEN 4
18549ed106d0SAndrew Rybchenko /* Number of external ports */
18559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_EXTERNAL_OFST 4
18569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_EXTERNAL_LEN 4
18579ed106d0SAndrew Rybchenko 
18589ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_GLOBAL_FLAGS msgresponse */
18599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_LEN 4
18609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_FLAGS_OFST 0
18619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_FLAGS_LEN 4
18629ed106d0SAndrew Rybchenko 
18639ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_IO_REL msgresponse */
18649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_LEN 0
18659ed106d0SAndrew Rybchenko 
18669ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_IO_REL_GET_ADDR msgresponse */
18679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_LEN 8
18689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_HI_OFST 0
18699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_HI_LEN 4
18709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_LO_OFST 4
18719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_LO_LEN 4
18729ed106d0SAndrew Rybchenko 
18739ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_IO_REL_READ32 msgresponse */
18749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_LENMIN 4
18759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_LENMAX 252
18769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_LEN(num) (0+4*(num))
18779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_OFST 0
18789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_LEN 4
18799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_MINNUM 1
18809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_MAXNUM 63
18819ed106d0SAndrew Rybchenko 
18829ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_IO_REL_WRITE32 msgresponse */
18839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_WRITE32_LEN 0
18849ed106d0SAndrew Rybchenko 
18859ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_PHY msgresponse */
18869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LEN 48
18879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_0_OFST 0
18889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_0_LEN 4
18899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_VOD_LBN 0
18909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_VOD_WIDTH 16
18919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_1STPOSTTAP_LBN 16
18929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_1STPOSTTAP_WIDTH 16
18939ed106d0SAndrew Rybchenko /* Transceiver Transmit settings */
18949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_1_OFST 4
18959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_1_LEN 4
18969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_PRETAP_LBN 0
18979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_PRETAP_WIDTH 16
18989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_2NDPOSTTAP_LBN 16
18999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_2NDPOSTTAP_WIDTH 16
19009ed106d0SAndrew Rybchenko /* Transceiver Receive settings */
19019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_SETTINGS_OFST 8
19029ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_SETTINGS_LEN 4
19039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_DC_GAIN_LBN 0
19049ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_DC_GAIN_WIDTH 16
19059ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_EQ_CONTROL_LBN 16
19069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_EQ_CONTROL_WIDTH 16
19079ed106d0SAndrew Rybchenko /* Rx eye opening */
19089ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_OFST 12
19099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_LEN 4
19109ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_WIDTH_LBN 0
19119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_WIDTH_WIDTH 16
19129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_HEIGHT_LBN 16
19139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_HEIGHT_WIDTH 16
19149ed106d0SAndrew Rybchenko /* PCS status word */
19159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PCS_STATUS_OFST 16
19169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PCS_STATUS_LEN 4
19179ed106d0SAndrew Rybchenko /* Link status word */
19189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WORD_OFST 20
19199ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WORD_LEN 4
19209ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_LBN 0
19219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WIDTH 1
19229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_CONFIGURED_LBN 1
19239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_CONFIGURED_WIDTH 1
19249ed106d0SAndrew Rybchenko /* Current SFp parameters applied */
19259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PARAMS_OFST 24
19269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PARAMS_LEN 20
19279ed106d0SAndrew Rybchenko /* Link speed is 100, 1000, 10000 */
19289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_SPEED_OFST 24
19299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_SPEED_LEN 4
19309ed106d0SAndrew Rybchenko /* Length of copper cable - zero when not relevant */
19319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_COPPER_LEN_OFST 28
19329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_COPPER_LEN_LEN 4
19339ed106d0SAndrew Rybchenko /* True if a dual speed SFP+ module */
19349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_DUAL_SPEED_OFST 32
19359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_DUAL_SPEED_LEN 4
19369ed106d0SAndrew Rybchenko /* True if an SFP Module is present (other fields valid when true) */
19379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PRESENT_OFST 36
19389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PRESENT_LEN 4
19399ed106d0SAndrew Rybchenko /* The type of the SFP+ Module */
19409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_TYPE_OFST 40
19419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_TYPE_LEN 4
19429ed106d0SAndrew Rybchenko /* PHY config flags */
19439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_OFST 44
19449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_LEN 4
19459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_DFE_LBN 0
19469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_DFE_WIDTH 1
19479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_AEQ_LBN 1
19489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_AEQ_WIDTH 1
19499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_RX_TUNING_LBN 2
19509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_RX_TUNING_WIDTH 1
19519ed106d0SAndrew Rybchenko 
19529ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_MAC msgresponse */
19539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_LEN 20
19549ed106d0SAndrew Rybchenko /* MAC configuration applied */
19559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_CONFIG_OFST 0
19569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_CONFIG_LEN 4
19579ed106d0SAndrew Rybchenko /* MTU size */
19589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_MTU_OFST 4
19599ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_MTU_LEN 4
19609ed106d0SAndrew Rybchenko /* IF Mode status */
19619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_IF_STATUS_OFST 8
19629ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_IF_STATUS_LEN 4
19639ed106d0SAndrew Rybchenko /* MAC address configured */
19649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_OFST 12
19659ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LEN 8
19669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LO_OFST 12
19679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_HI_OFST 16
19689ed106d0SAndrew Rybchenko 
19699ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_RX_EYE msgresponse */
19709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_LEN ((((0-1+(32*MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK))+1))>>3)
19719ed106d0SAndrew Rybchenko /* Rx Eye measurements */
19729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_OFST 0
19739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_LEN 4
19749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_NUM MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK
19759ed106d0SAndrew Rybchenko 
19769ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_DUMP_RX_EYE_PLOT msgresponse */
19779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_DUMP_RX_EYE_PLOT_LEN 0
19789ed106d0SAndrew Rybchenko 
19799ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT msgresponse */
19809ed106d0SAndrew Rybchenko #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)
19819ed106d0SAndrew Rybchenko /* Has the eye plot dump completed and data returned is valid? */
19829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_VALID_OFST 0
19839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_VALID_LEN 4
19849ed106d0SAndrew Rybchenko /* Rx Eye binary plot */
19859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_OFST 4
19869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LEN 8
19879ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LO_OFST 4
19889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_HI_OFST 8
19899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_NUM MC_CMD_FC_UHLINK_RX_EYE_PLOT_ROWS_PER_BLOCK
19909ed106d0SAndrew Rybchenko 
19919ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_RX_TUNE msgresponse */
19929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_TUNE_LEN 0
19939ed106d0SAndrew Rybchenko 
19949ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_LOOPBACK_SET msgresponse */
19959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_SET_LEN 0
19969ed106d0SAndrew Rybchenko 
19979ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET msgresponse */
19989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_LEN 4
19999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_STATE_OFST 0
20009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_STATE_LEN 4
20019ed106d0SAndrew Rybchenko 
20029ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK msgresponse */
20039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LEN 0
20049ed106d0SAndrew Rybchenko 
20059ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_SET_LINK msgresponse */
20069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SET_LINK_LEN 0
20079ed106d0SAndrew Rybchenko 
20089ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_LICENSE msgresponse */
20099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_LEN 12
20109ed106d0SAndrew Rybchenko /* Count of valid keys */
20119ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_VALID_KEYS_OFST 0
20129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_VALID_KEYS_LEN 4
20139ed106d0SAndrew Rybchenko /* Count of invalid keys */
20149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_INVALID_KEYS_OFST 4
20159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_INVALID_KEYS_LEN 4
20169ed106d0SAndrew Rybchenko /* Count of blacklisted keys */
20179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_BLACKLISTED_KEYS_OFST 8
20189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_BLACKLISTED_KEYS_LEN 4
20199ed106d0SAndrew Rybchenko 
20209ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_STARTUP msgresponse */
20219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_LEN 4
20229ed106d0SAndrew Rybchenko /* Capabilities of the FPGA/FC */
20239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAPABILITIES_OFST 0
20249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAPABILITIES_LEN 4
20259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAN_ACCESS_FLASH_LBN 0
20269ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAN_ACCESS_FLASH_WIDTH 1
20279ed106d0SAndrew Rybchenko 
20289ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DMA_READ msgresponse */
20299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_LENMIN 1
20309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_LENMAX 252
20319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_LEN(num) (0+1*(num))
20329ed106d0SAndrew Rybchenko /* The data read */
20339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_OFST 0
20349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_LEN 1
20359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_MINNUM 1
20369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_MAXNUM 252
20379ed106d0SAndrew Rybchenko 
20389ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_TIMED_READ_SET msgresponse */
20399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_SET_LEN 4
20409ed106d0SAndrew Rybchenko /* Timer handle */
20419ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_SET_FC_HANDLE_OFST 0
20429ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_SET_FC_HANDLE_LEN 4
20439ed106d0SAndrew Rybchenko 
20449ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_TIMED_READ_GET msgresponse */
20459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_LEN 52
20469ed106d0SAndrew Rybchenko /* Host supplied handle (unique) */
20479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_HANDLE_OFST 0
20489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_HANDLE_LEN 4
20499ed106d0SAndrew Rybchenko /* Address into which to transfer data in host */
20509ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_OFST 4
20519ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LEN 8
20529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LO_OFST 4
20539ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_HI_OFST 8
20549ed106d0SAndrew Rybchenko /* AOE address from which to transfer data */
20559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_OFST 12
20569ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LEN 8
20579ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LO_OFST 12
20589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_HI_OFST 16
20599ed106d0SAndrew Rybchenko /* Length of AOE transfer (total) */
20609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_LENGTH_OFST 20
20619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_LENGTH_LEN 4
20629ed106d0SAndrew Rybchenko /* Length of host transfer (total) */
20639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_LENGTH_OFST 24
20649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_LENGTH_LEN 4
20659ed106d0SAndrew Rybchenko /* See FLAGS entry for MC_CMD_FC_IN_TIMED_READ_SET */
20669ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_FLAGS_OFST 28
20679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_FLAGS_LEN 4
20689ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_PERIOD_OFST 32
20699ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_PERIOD_LEN 4
20709ed106d0SAndrew Rybchenko /* When active, start read time */
20719ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_OFST 36
20729ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LEN 8
20739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LO_OFST 36
20749ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_HI_OFST 40
20759ed106d0SAndrew Rybchenko /* When active, end read time */
20769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_OFST 44
20779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LEN 8
20789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LO_OFST 44
20799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_HI_OFST 48
20809ed106d0SAndrew Rybchenko 
20819ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_LOG_ADDR_RANGE msgresponse */
20829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LOG_ADDR_RANGE_LEN 0
20839ed106d0SAndrew Rybchenko 
20849ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_LOG msgresponse */
20859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_LOG_LEN 0
20869ed106d0SAndrew Rybchenko 
20879ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_CLOCK_GET_TIME msgresponse */
20889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_LEN 24
20899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_CLOCK_ID_OFST 0
20909ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_CLOCK_ID_LEN 4
20919ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_OFST 4
20929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LEN 8
20939ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LO_OFST 4
20949ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_HI_OFST 8
20959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_NANOSECONDS_OFST 12
20969ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_NANOSECONDS_LEN 4
20979ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_RANGE_OFST 16
20989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_RANGE_LEN 4
20999ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_PRECISION_OFST 20
21009ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_PRECISION_LEN 4
21019ed106d0SAndrew Rybchenko 
21029ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_CLOCK_SET_TIME msgresponse */
21039ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_SET_TIME_LEN 0
21049ed106d0SAndrew Rybchenko 
21059ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_SET_SPD msgresponse */
21069ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_SET_SPD_LEN 0
21079ed106d0SAndrew Rybchenko 
21089ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_SET_INFO msgresponse */
21099ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_SET_INFO_LEN 0
21109ed106d0SAndrew Rybchenko 
21119ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_GET_STATUS msgresponse */
21129ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_LEN 4
21139ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_FLAGS_OFST 0
21149ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_FLAGS_LEN 4
21159ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_READY_LBN 0
21169ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_READY_WIDTH 1
21179ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_CALIBRATED_LBN 1
21189ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_CALIBRATED_WIDTH 1
21199ed106d0SAndrew Rybchenko 
21209ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT msgresponse */
21219ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_LEN 8
21229ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_SECONDS_OFST 0
21239ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_SECONDS_LEN 4
21249ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_NANOSECONDS_OFST 4
21259ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_NANOSECONDS_LEN 4
21269ed106d0SAndrew Rybchenko 
21279ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT msgresponse */
21289ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LENMIN 8
21299ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LENMAX 248
21309ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LEN(num) (0+8*(num))
21319ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_SECONDS_OFST 0
21329ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_SECONDS_LEN 4
21339ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_NANOSECONDS_OFST 4
21349ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_NANOSECONDS_LEN 4
21359ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_OFST 0
21369ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LEN 8
21379ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LO_OFST 0
21389ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_HI_OFST 4
21399ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_MINNUM 0
21409ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_MAXNUM 31
21419ed106d0SAndrew Rybchenko 
21429ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_SPI_READ msgresponse */
21439ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_LENMIN 4
21449ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_LENMAX 252
21459ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_LEN(num) (0+4*(num))
21469ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_OFST 0
21479ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_LEN 4
21489ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_MINNUM 1
21499ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_MAXNUM 63
21509ed106d0SAndrew Rybchenko 
21519ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_SPI_WRITE msgresponse */
21529ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_WRITE_LEN 0
21539ed106d0SAndrew Rybchenko 
21549ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_SPI_ERASE msgresponse */
21559ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_ERASE_LEN 0
21569ed106d0SAndrew Rybchenko 
21579ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG msgresponse */
21589ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_LEN 8
21599ed106d0SAndrew Rybchenko /* The 32-bit value read from the toggle count register */
21609ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_TOGGLE_COUNT_OFST 0
21619ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_TOGGLE_COUNT_LEN 4
21629ed106d0SAndrew Rybchenko /* The 32-bit value read from the clock enable count register */
21639ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_CLKEN_COUNT_OFST 4
21649ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_CLKEN_COUNT_LEN 4
21659ed106d0SAndrew Rybchenko 
21669ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_POWER_NOISE_WRITE_CONFIG msgresponse */
21679ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_WRITE_CONFIG_LEN 0
21689ed106d0SAndrew Rybchenko 
21699ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_START msgresponse */
21709ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_START_LEN 0
21719ed106d0SAndrew Rybchenko 
21729ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT msgresponse */
21739ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_LEN 8
21749ed106d0SAndrew Rybchenko /* DDR soak test status word; bits [4:0] are relevant. */
21759ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_STATUS_OFST 0
21769ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_STATUS_LEN 4
21779ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PASSED_LBN 0
21789ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PASSED_WIDTH 1
21799ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_FAILED_LBN 1
21809ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_FAILED_WIDTH 1
21819ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_COMPLETED_LBN 2
21829ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_COMPLETED_WIDTH 1
21839ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_TIMEOUT_LBN 3
21849ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_TIMEOUT_WIDTH 1
21859ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PNF_LBN 4
21869ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PNF_WIDTH 1
21879ed106d0SAndrew Rybchenko /* DDR soak test error count */
21889ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_ERR_COUNT_OFST 4
21899ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_ERR_COUNT_LEN 4
21909ed106d0SAndrew Rybchenko 
21919ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_STOP msgresponse */
21929ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_STOP_LEN 0
21939ed106d0SAndrew Rybchenko 
21949ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_ERROR msgresponse */
21959ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_ERROR_LEN 0
21969ed106d0SAndrew Rybchenko 
21979ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_SET_MODE msgresponse */
21989ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_SET_MODE_LEN 0
21999ed106d0SAndrew Rybchenko 
22009ed106d0SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_RAW_CONFIG msgresponse */
22019ed106d0SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_RAW_CONFIG_LEN 0
22029ed106d0SAndrew Rybchenko 
22039ed106d0SAndrew Rybchenko /***********************************/
22049ed106d0SAndrew Rybchenko /* MC_CMD_AOE
22059ed106d0SAndrew Rybchenko  * AOE operations on MC
22069ed106d0SAndrew Rybchenko  */
22079ed106d0SAndrew Rybchenko #define	MC_CMD_AOE 0xa
22089ed106d0SAndrew Rybchenko 
22099ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN msgrequest */
22109ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LEN 4
22119ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_HDR_OFST 0
22129ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_HDR_LEN 4
22139ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_LBN 0
22149ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_WIDTH 8
22159ed106d0SAndrew Rybchenko /* enum: FPGA and CPLD information */
22169ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_INFO 0x1
22179ed106d0SAndrew Rybchenko /* enum: Currents and voltages read from MCP3424s; DEBUG */
22189ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_CURRENTS 0x2
22199ed106d0SAndrew Rybchenko /* enum: Temperatures at locations around the PCB; DEBUG */
22209ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_TEMPERATURES 0x3
22219ed106d0SAndrew Rybchenko /* enum: Set CPLD to idle */
22229ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_IDLE 0x4
22239ed106d0SAndrew Rybchenko /* enum: Read from CPLD register */
22249ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_READ 0x5
22259ed106d0SAndrew Rybchenko /* enum: Write to CPLD register */
22269ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_WRITE 0x6
22279ed106d0SAndrew Rybchenko /* enum: Execute CPLD instruction */
22289ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_INSTRUCTION 0x7
22299ed106d0SAndrew Rybchenko /* enum: Reprogram the CPLD on the AOE device */
22309ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_REPROGRAM 0x8
22319ed106d0SAndrew Rybchenko /* enum: AOE power control */
22329ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_POWER 0x9
22339ed106d0SAndrew Rybchenko /* enum: AOE image loading */
22349ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_LOAD 0xa
22359ed106d0SAndrew Rybchenko /* enum: Fan monitoring */
22369ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_FAN_CONTROL 0xb
22379ed106d0SAndrew Rybchenko /* enum: Fan failures since last reset */
22389ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_FAN_FAILURES 0xc
22399ed106d0SAndrew Rybchenko /* enum: Get generic AOE MAC statistics */
22409ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_MAC_STATS 0xd
22419ed106d0SAndrew Rybchenko /* enum: Retrieve PHY specific information */
22429ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_GET_PHY_MEDIA_INFO 0xe
22439ed106d0SAndrew Rybchenko /* enum: Write a number of JTAG primitive commands, return will give data */
22449ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_JTAG_WRITE 0xf
22459ed106d0SAndrew Rybchenko /* enum: Control access to the FPGA via the Siena JTAG Chain */
22469ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_FPGA_ACCESS 0x10
22479ed106d0SAndrew Rybchenko /* enum: Set the MTU offset between Siena and AOE MACs */
22489ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_SET_MTU_OFFSET 0x11
22499ed106d0SAndrew Rybchenko /* enum: How link state is handled */
22509ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_LINK_STATE 0x12
22519ed106d0SAndrew Rybchenko /* enum: How Siena MAC statistics are reported (deprecated - use
22529ed106d0SAndrew Rybchenko  * MC_CMD_AOE_OP_ASIC_STATS)
22539ed106d0SAndrew Rybchenko  */
22549ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_SIENA_STATS 0x13
22559ed106d0SAndrew Rybchenko /* enum: How native ASIC MAC statistics are reported - replaces the deprecated
22569ed106d0SAndrew Rybchenko  * command MC_CMD_AOE_OP_SIENA_STATS
22579ed106d0SAndrew Rybchenko  */
22589ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_ASIC_STATS 0x13
22599ed106d0SAndrew Rybchenko /* enum: DDR memory information */
22609ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_DDR 0x14
22619ed106d0SAndrew Rybchenko /* enum: FC control */
22629ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_FC 0x15
22639ed106d0SAndrew Rybchenko /* enum: DDR ECC status reads */
22649ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_DDR_ECC_STATUS 0x16
22659ed106d0SAndrew Rybchenko /* enum: Commands for MC-SPI Master emulation */
22669ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_MC_SPI_MASTER 0x17
22679ed106d0SAndrew Rybchenko /* enum: Commands for FC boot control */
22689ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_FC_BOOT 0x18
22699ed106d0SAndrew Rybchenko /* enum: Get number of internal ports */
22709ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_GET_ASIC_PORTS 0x19
22719ed106d0SAndrew Rybchenko /* enum: Get FC assert information and register dump */
22729ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OP_GET_FC_ASSERT_INFO 0x1a
22739ed106d0SAndrew Rybchenko 
22749ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT msgresponse */
22759ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_LEN 0
22769ed106d0SAndrew Rybchenko 
22779ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_INFO msgrequest */
22789ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_INFO_LEN 4
22799ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CMD_OFST 0
22809ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CMD_LEN 4
22819ed106d0SAndrew Rybchenko 
22829ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_CURRENTS msgrequest */
22839ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CURRENTS_LEN 4
22849ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
22859ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
22869ed106d0SAndrew Rybchenko 
22879ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_TEMPERATURES msgrequest */
22889ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_TEMPERATURES_LEN 4
22899ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
22909ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
22919ed106d0SAndrew Rybchenko 
22929ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_IDLE msgrequest */
22939ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_IDLE_LEN 4
22949ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
22959ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
22969ed106d0SAndrew Rybchenko 
22979ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_READ msgrequest */
22989ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_LEN 12
22999ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23009ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23019ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_REGISTER_OFST 4
23029ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_REGISTER_LEN 4
23039ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_WIDTH_OFST 8
23049ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_WIDTH_LEN 4
23059ed106d0SAndrew Rybchenko 
23069ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_WRITE msgrequest */
23079ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_LEN 16
23089ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23099ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23109ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_REGISTER_OFST 4
23119ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_REGISTER_LEN 4
23129ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_WIDTH_OFST 8
23139ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_WIDTH_LEN 4
23149ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_VALUE_OFST 12
23159ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_VALUE_LEN 4
23169ed106d0SAndrew Rybchenko 
23179ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_INSTRUCTION msgrequest */
23189ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_LEN 8
23199ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23209ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23219ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_INSTRUCTION_OFST 4
23229ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_INSTRUCTION_LEN 4
23239ed106d0SAndrew Rybchenko 
23249ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_REPROGRAM msgrequest */
23259ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_LEN 8
23269ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23279ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23289ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_OP_OFST 4
23299ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_OP_LEN 4
23309ed106d0SAndrew Rybchenko /* enum: Reprogram CPLD, poll for completion */
23319ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_REPROGRAM 0x1
23329ed106d0SAndrew Rybchenko /* enum: Reprogram CPLD, send event on completion */
23339ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_REPROGRAM_EVENT 0x3
23349ed106d0SAndrew Rybchenko /* enum: Get status of reprogramming operation */
23359ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_STATUS 0x4
23369ed106d0SAndrew Rybchenko 
23379ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_POWER msgrequest */
23389ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_LEN 8
23399ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23409ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23419ed106d0SAndrew Rybchenko /* Turn on or off AOE power */
23429ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_OP_OFST 4
23439ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_OP_LEN 4
23449ed106d0SAndrew Rybchenko /* enum: Turn off FPGA power */
23459ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_OFF 0x0
23469ed106d0SAndrew Rybchenko /* enum: Turn on FPGA power */
23479ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_ON 0x1
23489ed106d0SAndrew Rybchenko /* enum: Clear peak power measurement */
23499ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_CLEAR 0x2
23509ed106d0SAndrew Rybchenko /* enum: Show current power in sensors output */
23519ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_SHOW_CURRENT 0x3
23529ed106d0SAndrew Rybchenko /* enum: Show peak power in sensors output */
23539ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_SHOW_PEAK 0x4
23549ed106d0SAndrew Rybchenko /* enum: Show current DDR current */
23559ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_DDR_LAST 0x5
23569ed106d0SAndrew Rybchenko /* enum: Show peak DDR current */
23579ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_DDR_PEAK 0x6
23589ed106d0SAndrew Rybchenko /* enum: Clear peak DDR current */
23599ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_DDR_CLEAR 0x7
23609ed106d0SAndrew Rybchenko 
23619ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_LOAD msgrequest */
23629ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LOAD_LEN 8
23639ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23649ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23659ed106d0SAndrew Rybchenko /* Image to be loaded (0 - main or 1 - diagnostic) to load in normal sequence
23669ed106d0SAndrew Rybchenko  */
23679ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LOAD_IMAGE_OFST 4
23689ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LOAD_IMAGE_LEN 4
23699ed106d0SAndrew Rybchenko 
23709ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_FAN_CONTROL msgrequest */
23719ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FAN_CONTROL_LEN 8
23729ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23739ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23749ed106d0SAndrew Rybchenko /* If non zero report measured fan RPM rather than nominal */
23759ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FAN_CONTROL_REAL_RPM_OFST 4
23769ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FAN_CONTROL_REAL_RPM_LEN 4
23779ed106d0SAndrew Rybchenko 
23789ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_FAN_FAILURES msgrequest */
23799ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FAN_FAILURES_LEN 4
23809ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23819ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23829ed106d0SAndrew Rybchenko 
23839ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_MAC_STATS msgrequest */
23849ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_LEN 24
23859ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
23869ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
23879ed106d0SAndrew Rybchenko /* AOE port */
23889ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PORT_OFST 4
23899ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PORT_LEN 4
23909ed106d0SAndrew Rybchenko /* Host memory address for statistics */
23919ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_OFST 8
23929ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LEN 8
23939ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LO_OFST 8
23949ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_HI_OFST 12
23959ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CMD_OFST 16
23969ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CMD_LEN 4
23979ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LBN 0
23989ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_WIDTH 1
23999ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CLEAR_LBN 1
24009ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CLEAR_WIDTH 1
24019ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CHANGE_LBN 2
24029ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CHANGE_WIDTH 1
24039ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_ENABLE_LBN 3
24049ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_ENABLE_WIDTH 1
24059ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CLEAR_LBN 4
24069ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CLEAR_WIDTH 1
24079ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_NOEVENT_LBN 5
24089ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_NOEVENT_WIDTH 1
24099ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIOD_MS_LBN 16
24109ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIOD_MS_WIDTH 16
24119ed106d0SAndrew Rybchenko /* Length of DMA data (optional) */
24129ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LEN_OFST 20
24139ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LEN_LEN 4
24149ed106d0SAndrew Rybchenko 
24159ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO msgrequest */
24169ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_LEN 12
24179ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
24189ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
24199ed106d0SAndrew Rybchenko /* AOE port */
24209ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PORT_OFST 4
24219ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PORT_LEN 4
24229ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PAGE_OFST 8
24239ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PAGE_LEN 4
24249ed106d0SAndrew Rybchenko 
24259ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_JTAG_WRITE msgrequest */
24269ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_LENMIN 12
24279ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_LENMAX 252
24289ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_LEN(num) (8+4*(num))
24299ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
24309ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
24319ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATALEN_OFST 4
24329ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATALEN_LEN 4
24339ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_OFST 8
24349ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_LEN 4
24359ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_MINNUM 1
24369ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_MAXNUM 61
24379ed106d0SAndrew Rybchenko 
24389ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_FPGA_ACCESS msgrequest */
24399ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_LEN 8
24409ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
24419ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
24429ed106d0SAndrew Rybchenko /* Enable or disable access */
24439ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_OP_OFST 4
24449ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_OP_LEN 4
24459ed106d0SAndrew Rybchenko /* enum: Enable access */
24469ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_ENABLE 0x1
24479ed106d0SAndrew Rybchenko /* enum: Disable access */
24489ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_DISABLE 0x2
24499ed106d0SAndrew Rybchenko 
24509ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_SET_MTU_OFFSET msgrequest */
24519ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_LEN 12
24529ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
24539ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
24549ed106d0SAndrew Rybchenko /* AOE port - when not ALL_EXTERNAL or ALL_INTERNAL specifies port number */
24559ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_PORT_OFST 4
24569ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_PORT_LEN 4
24579ed106d0SAndrew Rybchenko /* enum: Apply to all external ports */
24589ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_ALL_EXTERNAL 0x8000
24599ed106d0SAndrew Rybchenko /* enum: Apply to all internal ports */
24609ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_ALL_INTERNAL 0x4000
24619ed106d0SAndrew Rybchenko /* The MTU offset to be applied to the external ports */
24629ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_OFFSET_OFST 8
24639ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_OFFSET_LEN 4
24649ed106d0SAndrew Rybchenko 
24659ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_LINK_STATE msgrequest */
24669ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_LEN 8
24679ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
24689ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
24699ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_MODE_OFST 4
24709ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_MODE_LEN 4
24719ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_CONFIG_MODE_LBN 0
24729ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_CONFIG_MODE_WIDTH 8
24739ed106d0SAndrew Rybchenko /* enum: AOE and associated external port */
24749ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SIMPLE_SEPARATE 0x0
24759ed106d0SAndrew Rybchenko /* enum: AOE and OR of all external ports */
24769ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SIMPLE_COMBINED 0x1
24779ed106d0SAndrew Rybchenko /* enum: Individual ports */
24789ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_DIAGNOSTIC 0x2
24799ed106d0SAndrew Rybchenko /* enum: Configure link state mode on given AOE port */
24809ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_CUSTOM 0x3
24819ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OPERATION_LBN 8
24829ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OPERATION_WIDTH 8
24839ed106d0SAndrew Rybchenko /* enum: No-op */
24849ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OP_NONE 0x0
24859ed106d0SAndrew Rybchenko /* enum: logical OR of all SFP ports link status */
24869ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OP_OR 0x1
24879ed106d0SAndrew Rybchenko /* enum: logical AND of all SFP ports link status */
24889ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OP_AND 0x2
24899ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SFP_MASK_LBN 16
24909ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SFP_MASK_WIDTH 16
24919ed106d0SAndrew Rybchenko 
24929ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_GET_ASIC_PORTS msgrequest */
24939ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_ASIC_PORTS_LEN 4
24949ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
24959ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
24969ed106d0SAndrew Rybchenko 
24979ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_GET_FC_ASSERT_INFO msgrequest */
24989ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_FC_ASSERT_INFO_LEN 4
24999ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25009ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25019ed106d0SAndrew Rybchenko 
25029ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_SIENA_STATS msgrequest */
25039ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_LEN 8
25049ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25059ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25069ed106d0SAndrew Rybchenko /* How MAC statistics are reported */
25079ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_MODE_OFST 4
25089ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_MODE_LEN 4
25099ed106d0SAndrew Rybchenko /* enum: Statistics from Siena (default) */
25109ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_STATS_SIENA 0x0
25119ed106d0SAndrew Rybchenko /* enum: Statistics from AOE external ports */
25129ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_STATS_AOE 0x1
25139ed106d0SAndrew Rybchenko 
25149ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_ASIC_STATS msgrequest */
25159ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_LEN 8
25169ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25179ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25189ed106d0SAndrew Rybchenko /* How MAC statistics are reported */
25199ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_MODE_OFST 4
25209ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_MODE_LEN 4
25219ed106d0SAndrew Rybchenko /* enum: Statistics from the ASIC (default) */
25229ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_STATS_ASIC 0x0
25239ed106d0SAndrew Rybchenko /* enum: Statistics from AOE external ports */
25249ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_STATS_AOE 0x1
25259ed106d0SAndrew Rybchenko 
25269ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_DDR msgrequest */
25279ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_LEN 12
25289ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25299ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25309ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_BANK_OFST 4
25319ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_BANK_LEN 4
25329ed106d0SAndrew Rybchenko /*            Enum values, see field(s): */
25339ed106d0SAndrew Rybchenko /*               MC_CMD_FC/MC_CMD_FC_IN_DDR/MC_CMD_FC_IN_DDR_BANK */
25349ed106d0SAndrew Rybchenko /* Page index of SPD data */
25359ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_SPD_PAGE_ID_OFST 8
25369ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_SPD_PAGE_ID_LEN 4
25379ed106d0SAndrew Rybchenko 
25389ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_FC msgrequest */
25399ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_LEN 4
25409ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25419ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25429ed106d0SAndrew Rybchenko 
25439ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_DDR_ECC_STATUS msgrequest */
25449ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_LEN 8
25459ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25469ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25479ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_BANK_OFST 4
25489ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_BANK_LEN 4
25499ed106d0SAndrew Rybchenko /*            Enum values, see field(s): */
25509ed106d0SAndrew Rybchenko /*               MC_CMD_FC/MC_CMD_FC_IN_DDR/MC_CMD_FC_IN_DDR_BANK */
25519ed106d0SAndrew Rybchenko 
25529ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_MC_SPI_MASTER msgrequest */
25539ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_LEN 8
25549ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25559ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25569ed106d0SAndrew Rybchenko /* Basic commands for MC SPI Master emulation. */
25579ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_OP_OFST 4
25589ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_OP_LEN 4
25599ed106d0SAndrew Rybchenko /* enum: MC SPI read */
25609ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ 0x0
25619ed106d0SAndrew Rybchenko /* enum: MC SPI write */
25629ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE 0x1
25639ed106d0SAndrew Rybchenko 
25649ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_MC_SPI_MASTER_READ msgrequest */
25659ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_LEN 12
25669ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25679ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25689ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OP_OFST 4
25699ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OP_LEN 4
25709ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OFFSET_OFST 8
25719ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OFFSET_LEN 4
25729ed106d0SAndrew Rybchenko 
25739ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE msgrequest */
25749ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_LEN 16
25759ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25769ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25779ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OP_OFST 4
25789ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OP_LEN 4
25799ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OFFSET_OFST 8
25809ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OFFSET_LEN 4
25819ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_DATA_OFST 12
25829ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_DATA_LEN 4
25839ed106d0SAndrew Rybchenko 
25849ed106d0SAndrew Rybchenko /* MC_CMD_AOE_IN_FC_BOOT msgrequest */
25859ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_LEN 8
25869ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
25879ed106d0SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
25889ed106d0SAndrew Rybchenko /* FC boot control flags */
25899ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_OFST 4
25909ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_LEN 4
25919ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_BOOT_ENABLE_LBN 0
25929ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_BOOT_ENABLE_WIDTH 1
25939ed106d0SAndrew Rybchenko 
25949ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO msgresponse */
25959ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_LEN 144
25969ed106d0SAndrew Rybchenko /* Assertion status flag. */
25979ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GLOBAL_FLAGS_OFST 0
25989ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GLOBAL_FLAGS_LEN 4
25999ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_STATE_LBN 8
26009ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_STATE_WIDTH 8
26019ed106d0SAndrew Rybchenko /* enum: No crash data available */
26029ed106d0SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_CLEAR 0x0 */
26039ed106d0SAndrew Rybchenko /* enum: New crash data available */
26049ed106d0SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NEW 0x1 */
26059ed106d0SAndrew Rybchenko /* enum: Crash data has been sent */
26069ed106d0SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NOTIFIED 0x2 */
26079ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_TYPE_LBN 0
26089ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_TYPE_WIDTH 8
26099ed106d0SAndrew Rybchenko /* enum: No crash has been recorded. */
26109ed106d0SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_NONE 0x0 */
26119ed106d0SAndrew Rybchenko /* enum: Crash due to exception. */
26129ed106d0SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_EXCEPTION 0x1 */
26139ed106d0SAndrew Rybchenko /* enum: Crash due to assertion. */
26149ed106d0SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_ASSERTION 0x2 */
26159ed106d0SAndrew Rybchenko /* Failing PC value */
26169ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_SAVED_PC_OFFS_OFST 4
26179ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_SAVED_PC_OFFS_LEN 4
26189ed106d0SAndrew Rybchenko /* Saved GP regs */
26199ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_OFST 8
26209ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_LEN 4
26219ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_NUM 31
26229ed106d0SAndrew Rybchenko /* Exception Type */
26239ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_TYPE_OFFS_OFST 132
26249ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_TYPE_OFFS_LEN 4
26259ed106d0SAndrew Rybchenko /* Instruction at which exception occurred */
26269ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_PC_ADDR_OFFS_OFST 136
26279ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_PC_ADDR_OFFS_LEN 4
26289ed106d0SAndrew Rybchenko /* BAD Address that triggered address-based exception */
26299ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_BAD_ADDR_OFFS_OFST 140
26309ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_BAD_ADDR_OFFS_LEN 4
26319ed106d0SAndrew Rybchenko 
26329ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_INFO msgresponse */
26339ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_LEN 44
26349ed106d0SAndrew Rybchenko /* JTAG IDCODE of CPLD */
26359ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_IDCODE_OFST 0
26369ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_IDCODE_LEN 4
26379ed106d0SAndrew Rybchenko /* Version of CPLD */
26389ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_VERSION_OFST 4
26399ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_VERSION_LEN 4
26409ed106d0SAndrew Rybchenko /* JTAG IDCODE of FPGA */
26419ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_IDCODE_OFST 8
26429ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_IDCODE_LEN 4
26439ed106d0SAndrew Rybchenko /* JTAG USERCODE of FPGA */
26449ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_VERSION_OFST 12
26459ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_VERSION_LEN 4
26469ed106d0SAndrew Rybchenko /* FPGA type - read from CPLD straps */
26479ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_OFST 16
26489ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_LEN 4
26499ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_A5_C2 0x1 /* enum */
26509ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_A7_C2 0x2 /* enum */
26519ed106d0SAndrew Rybchenko /* FPGA state (debug) */
26529ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_STATE_OFST 20
26539ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_STATE_LEN 4
26549ed106d0SAndrew Rybchenko /* FPGA image - partition from which loaded */
26559ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_IMAGE_OFST 24
26569ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_IMAGE_LEN 4
26579ed106d0SAndrew Rybchenko /* FC state */
26589ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_STATE_OFST 28
26599ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_STATE_LEN 4
26609ed106d0SAndrew Rybchenko /* enum: Set if watchdog working */
26619ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_WATCHDOG 0x1
26629ed106d0SAndrew Rybchenko /* enum: Set if MC-FC communications working */
26639ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_COMMS 0x2
26649ed106d0SAndrew Rybchenko /* Random pieces of information */
26659ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FLAGS_OFST 32
26669ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FLAGS_LEN 4
26679ed106d0SAndrew Rybchenko /* enum: Power to FPGA supplied by PEG connector, not PCIe bus */
26689ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_PEG_POWER 0x1
26699ed106d0SAndrew Rybchenko /* enum: CPLD apparently good */
26709ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_GOOD 0x2
26719ed106d0SAndrew Rybchenko /* enum: FPGA working normally */
26729ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_GOOD 0x4
26739ed106d0SAndrew Rybchenko /* enum: FPGA is powered */
26749ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_POWER 0x8
26759ed106d0SAndrew Rybchenko /* enum: Board has incompatible SODIMMs fitted */
26769ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_BAD_SODIMM 0x10
26779ed106d0SAndrew Rybchenko /* enum: Board has ByteBlaster connected */
26789ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_HAS_BYTEBLASTER 0x20
26799ed106d0SAndrew Rybchenko /* enum: FPGA Boot flash has an invalid header. */
26809ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_BAD_BOOT_HDR 0x40
26819ed106d0SAndrew Rybchenko /* enum: FPGA Application flash is accessible. */
26829ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_APP_FLASH_GOOD 0x80
26839ed106d0SAndrew Rybchenko /* Revision of Modena and Sorrento boards. Sorrento can be R1_2 or R1_3. */
26849ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_BOARD_REVISION_OFST 36
26859ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_BOARD_REVISION_LEN 4
26869ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_UNKNOWN 0x0 /* enum */
26879ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_R1_0 0x10 /* enum */
26889ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_R1_1 0x11 /* enum */
26899ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_R1_2 0x12 /* enum */
26909ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_R1_3 0x13 /* enum */
26919ed106d0SAndrew Rybchenko /* Result of FC booting - not valid while a ByteBlaster is connected. */
26929ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_RESULT_OFST 40
26939ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_RESULT_LEN 4
26949ed106d0SAndrew Rybchenko /* enum: No error */
26959ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_NO_ERROR 0x0
26969ed106d0SAndrew Rybchenko /* enum: Bad address set in CPLD */
26979ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_ADDRESS 0x1
26989ed106d0SAndrew Rybchenko /* enum: Bad header */
26999ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_MAGIC 0x2
27009ed106d0SAndrew Rybchenko /* enum: Bad text section details */
27019ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_TEXT 0x3
27029ed106d0SAndrew Rybchenko /* enum: Bad checksum */
27039ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_CHECKSUM 0x4
27049ed106d0SAndrew Rybchenko /* enum: Bad BSP */
27059ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_BSP 0x5
27069ed106d0SAndrew Rybchenko /* enum: Flash mode is invalid */
27079ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_INVALID_FLASH_MODE 0x6
27089ed106d0SAndrew Rybchenko /* enum: FC application loaded and execution attempted */
27099ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_APP_EXECUTE 0x80
27109ed106d0SAndrew Rybchenko /* enum: FC application Started */
27119ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_APP_STARTED 0x81
27129ed106d0SAndrew Rybchenko /* enum: No bootrom in FPGA */
27139ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_NO_BOOTROM 0xff
27149ed106d0SAndrew Rybchenko 
27159ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_CURRENTS msgresponse */
27169ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_LEN 68
27179ed106d0SAndrew Rybchenko /* Set of currents and voltages (mA or mV as appropriate) */
27189ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_OFST 0
27199ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_LEN 4
27209ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_NUM 17
27219ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_2V5 0x0 /* enum */
27229ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_1V8 0x1 /* enum */
27239ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_GXB 0x2 /* enum */
27249ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_PGM 0x3 /* enum */
27259ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_XCVR 0x4 /* enum */
27269ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_1V5 0x5 /* enum */
27279ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_3V3 0x6 /* enum */
27289ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_1V5 0x7 /* enum */
27299ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_IN 0x8 /* enum */
27309ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT 0x9 /* enum */
27319ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_IN 0xa /* enum */
27329ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR1 0xb /* enum */
27339ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR1 0xc /* enum */
27349ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR2 0xd /* enum */
27359ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR2 0xe /* enum */
27369ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR3 0xf /* enum */
27379ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR3 0x10 /* enum */
27389ed106d0SAndrew Rybchenko 
27399ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_TEMPERATURES msgresponse */
27409ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_LEN 40
27419ed106d0SAndrew Rybchenko /* Set of temperatures */
27429ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_OFST 0
27439ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_LEN 4
27449ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_NUM 10
27459ed106d0SAndrew Rybchenko /* enum: The first set of enum values are for Modena code. */
27469ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_MAIN_0 0x0
27479ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_MAIN_1 0x1 /* enum */
27489ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_IND_0 0x2 /* enum */
27499ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_IND_1 0x3 /* enum */
27509ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO1 0x4 /* enum */
27519ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO2 0x5 /* enum */
27529ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO3 0x6 /* enum */
27539ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_PSU 0x7 /* enum */
27549ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_FPGA 0x8 /* enum */
27559ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SIENA 0x9 /* enum */
27569ed106d0SAndrew Rybchenko /* enum: The second set of enum values are for Sorrento code. */
27579ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_MAIN_0 0x0
27589ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_MAIN_1 0x1 /* enum */
27599ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_IND_0 0x2 /* enum */
27609ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_IND_1 0x3 /* enum */
27619ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_SODIMM_0 0x4 /* enum */
27629ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_SODIMM_1 0x5 /* enum */
27639ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_FPGA 0x6 /* enum */
27649ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_PHY0 0x7 /* enum */
27659ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_PHY1 0x8 /* enum */
27669ed106d0SAndrew Rybchenko 
27679ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_CPLD_READ msgresponse */
27689ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_READ_LEN 4
27699ed106d0SAndrew Rybchenko /* The value read from the CPLD */
27709ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_READ_VALUE_OFST 0
27719ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_READ_VALUE_LEN 4
27729ed106d0SAndrew Rybchenko 
27739ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_FAN_FAILURES msgresponse */
27749ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_LENMIN 4
27759ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_LENMAX 252
27769ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_LEN(num) (0+4*(num))
27779ed106d0SAndrew Rybchenko /* Failure counts for each fan */
27789ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_OFST 0
27799ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_LEN 4
27809ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_MINNUM 1
27819ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_MAXNUM 63
27829ed106d0SAndrew Rybchenko 
27839ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_CPLD_REPROGRAM msgresponse */
27849ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_LEN 4
27859ed106d0SAndrew Rybchenko /* Results of status command (only) */
27869ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_STATUS_OFST 0
27879ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_STATUS_LEN 4
27889ed106d0SAndrew Rybchenko 
27899ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_POWER_OFF msgresponse */
27909ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_POWER_OFF_LEN 0
27919ed106d0SAndrew Rybchenko 
27929ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_POWER_ON msgresponse */
27939ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_POWER_ON_LEN 0
27949ed106d0SAndrew Rybchenko 
27959ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_LOAD msgresponse */
27969ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_LOAD_LEN 0
27979ed106d0SAndrew Rybchenko 
27989ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_MAC_STATS_DMA msgresponse */
27999ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_DMA_LEN 0
28009ed106d0SAndrew Rybchenko 
28019ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_MAC_STATS_NO_DMA msgresponse: See MC_CMD_MAC_STATS_OUT_NO_DMA
28029ed106d0SAndrew Rybchenko  * for details
28039ed106d0SAndrew Rybchenko  */
28049ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_LEN (((MC_CMD_MAC_NSTATS*64))>>3)
28059ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_OFST 0
28069ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LEN 8
28079ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LO_OFST 0
28089ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_HI_OFST 4
28099ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS
28109ed106d0SAndrew Rybchenko 
28119ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO msgresponse */
28129ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LENMIN 5
28139ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LENMAX 252
28149ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LEN(num) (4+1*(num))
28159ed106d0SAndrew Rybchenko /* in bytes */
28169ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATALEN_OFST 0
28179ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATALEN_LEN 4
28189ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_OFST 4
28199ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_LEN 1
28209ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_MINNUM 1
28219ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_MAXNUM 248
28229ed106d0SAndrew Rybchenko 
28239ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_JTAG_WRITE msgresponse */
28249ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_LENMIN 12
28259ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_LENMAX 252
28269ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_LEN(num) (8+4*(num))
28279ed106d0SAndrew Rybchenko /* Used to align the in and out data blocks so the MC can re-use the cmd */
28289ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATALEN_OFST 0
28299ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATALEN_LEN 4
28309ed106d0SAndrew Rybchenko /* out bytes */
28319ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_PAD_OFST 4
28329ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_PAD_LEN 4
28339ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_OFST 8
28349ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_LEN 4
28359ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_MINNUM 1
28369ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_MAXNUM 61
28379ed106d0SAndrew Rybchenko 
28389ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_FPGA_ACCESS msgresponse */
28399ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FPGA_ACCESS_LEN 0
28409ed106d0SAndrew Rybchenko 
28419ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_DDR msgresponse */
28429ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_LENMIN 17
28439ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_LENMAX 252
28449ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_LEN(num) (16+1*(num))
28459ed106d0SAndrew Rybchenko /* Information on the module. */
28469ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_FLAGS_OFST 0
28479ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_FLAGS_LEN 4
28489ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_PRESENT_LBN 0
28499ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_PRESENT_WIDTH 1
28509ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_POWERED_LBN 1
28519ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_POWERED_WIDTH 1
28529ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_OPERATIONAL_LBN 2
28539ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_OPERATIONAL_WIDTH 1
28549ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_NOT_REACHABLE_LBN 3
28559ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_NOT_REACHABLE_WIDTH 1
28569ed106d0SAndrew Rybchenko /* Memory size, in MB. */
28579ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_CAPACITY_OFST 4
28589ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_CAPACITY_LEN 4
28599ed106d0SAndrew Rybchenko /* The memory type, as reported from SPD information */
28609ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_TYPE_OFST 8
28619ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_TYPE_LEN 4
28629ed106d0SAndrew Rybchenko /* Nominal voltage of the module (as applied) */
28639ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_VOLTAGE_OFST 12
28649ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_VOLTAGE_LEN 4
28659ed106d0SAndrew Rybchenko /* SPD data read from the module */
28669ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_OFST 16
28679ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_LEN 1
28689ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_MINNUM 1
28699ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_MAXNUM 236
28709ed106d0SAndrew Rybchenko 
28719ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_SET_MTU_OFFSET msgresponse */
28729ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_SET_MTU_OFFSET_LEN 0
28739ed106d0SAndrew Rybchenko 
28749ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_LINK_STATE msgresponse */
28759ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_LINK_STATE_LEN 0
28769ed106d0SAndrew Rybchenko 
28779ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_SIENA_STATS msgresponse */
28789ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_SIENA_STATS_LEN 0
28799ed106d0SAndrew Rybchenko 
28809ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_ASIC_STATS msgresponse */
28819ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_ASIC_STATS_LEN 0
28829ed106d0SAndrew Rybchenko 
28839ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_FC msgresponse */
28849ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FC_LEN 0
28859ed106d0SAndrew Rybchenko 
28869ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_GET_ASIC_PORTS msgresponse */
28879ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_LEN 4
28889ed106d0SAndrew Rybchenko /* get the number of internal ports */
28899ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_COUNT_PORTS_OFST 0
28909ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_COUNT_PORTS_LEN 4
28919ed106d0SAndrew Rybchenko 
28929ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_DDR_ECC_STATUS msgresponse */
28939ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_LEN 8
28949ed106d0SAndrew Rybchenko /* Flags describing status info on the module. */
28959ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_FLAGS_OFST 0
28969ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_FLAGS_LEN 4
28979ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_VALID_LBN 0
28989ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_VALID_WIDTH 1
28999ed106d0SAndrew Rybchenko /* DDR ECC status on the module. */
29009ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_STATUS_OFST 4
29019ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_STATUS_LEN 4
29029ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_LBN 0
29039ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_WIDTH 1
29049ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_LBN 1
29059ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_WIDTH 1
29069ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_LBN 2
29079ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_WIDTH 1
29089ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_COUNT_LBN 8
29099ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_COUNT_WIDTH 8
29109ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_COUNT_LBN 16
29119ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_COUNT_WIDTH 8
29129ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_COUNT_LBN 24
29139ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_COUNT_WIDTH 8
29149ed106d0SAndrew Rybchenko 
29159ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_MC_SPI_MASTER_READ msgresponse */
29169ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_LEN 4
29179ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_DATA_OFST 0
29189ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_DATA_LEN 4
29199ed106d0SAndrew Rybchenko 
29209ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_MC_SPI_MASTER_WRITE msgresponse */
29219ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_WRITE_LEN 0
29229ed106d0SAndrew Rybchenko 
29239ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_MC_SPI_MASTER msgresponse */
29249ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_LEN 0
29259ed106d0SAndrew Rybchenko 
29269ed106d0SAndrew Rybchenko /* MC_CMD_AOE_OUT_FC_BOOT msgresponse */
29279ed106d0SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FC_BOOT_LEN 0
29289ed106d0SAndrew Rybchenko 
29299ed106d0SAndrew Rybchenko #endif	/* _SYS_EFX_REGS_MCDI_AOE_H */
2930