xref: /dpdk/drivers/common/sfc_efx/base/efx_regs_mcdi_aoe.h (revision fd893e8944c09db27407ea622f953ef5103fadae)
15e111ed8SAndrew Rybchenko /* SPDX-License-Identifier: BSD-3-Clause
25e111ed8SAndrew Rybchenko  *
3672386c1SAndrew Rybchenko  * Copyright(c) 2019-2021 Xilinx, Inc.
45e111ed8SAndrew Rybchenko  * Copyright(c) 2008-2019 Solarflare Communications Inc.
55e111ed8SAndrew Rybchenko  */
65e111ed8SAndrew Rybchenko 
75e111ed8SAndrew Rybchenko /*
85e111ed8SAndrew Rybchenko  * This file is automatically generated. DO NOT EDIT IT.
9*fd893e89SAndrew Rybchenko  * To make changes, edit the .yml files in smartnic_registry under doc/mcdi/ and
10bb01a80eSAndrew Rybchenko  * rebuild this file with "make mcdi_headers_v5".
115e111ed8SAndrew Rybchenko  */
125e111ed8SAndrew Rybchenko 
135e111ed8SAndrew Rybchenko #ifndef _SIENA_MC_DRIVER_PCOL_AOE_H
145e111ed8SAndrew Rybchenko #define	_SIENA_MC_DRIVER_PCOL_AOE_H
155e111ed8SAndrew Rybchenko 
165e111ed8SAndrew Rybchenko 
175e111ed8SAndrew Rybchenko 
185e111ed8SAndrew Rybchenko /***********************************/
195e111ed8SAndrew Rybchenko /* MC_CMD_FC
205e111ed8SAndrew Rybchenko  * Perform an FC operation
215e111ed8SAndrew Rybchenko  */
225e111ed8SAndrew Rybchenko #define	MC_CMD_FC 0x9
23*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_MSGSET 0x9
245e111ed8SAndrew Rybchenko 
255e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN msgrequest */
265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LEN 4
275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_OP_HDR_OFST 0
285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_OP_HDR_LEN 4
29bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_OP_OFST 0
305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_OP_LBN 0
315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_OP_WIDTH 8
325e111ed8SAndrew Rybchenko /* enum: NULL MCDI command to FC. */
335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_NULL 0x1
345e111ed8SAndrew Rybchenko /* enum: Unused opcode */
355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UNUSED 0x2
365e111ed8SAndrew Rybchenko /* enum: MAC driver commands */
375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC 0x3
385e111ed8SAndrew Rybchenko /* enum: Read FC memory */
395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_READ32 0x4
405e111ed8SAndrew Rybchenko /* enum: Write to FC memory */
415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_WRITE32 0x5
425e111ed8SAndrew Rybchenko /* enum: Read FC memory */
435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_TRC_READ 0x6
445e111ed8SAndrew Rybchenko /* enum: Write to FC memory */
455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_TRC_WRITE 0x7
465e111ed8SAndrew Rybchenko /* enum: FC firmware Version */
475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_GET_VERSION 0x8
485e111ed8SAndrew Rybchenko /* enum: Read FC memory */
495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_TRC_RX_READ 0x9
505e111ed8SAndrew Rybchenko /* enum: Write to FC memory */
515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_TRC_RX_WRITE 0xa
525e111ed8SAndrew Rybchenko /* enum: SFP parameters */
535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_SFP 0xb
545e111ed8SAndrew Rybchenko /* enum: DDR3 test */
555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST 0xc
565e111ed8SAndrew Rybchenko /* enum: Get Crash context from FC */
575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_GET_ASSERT 0xd
585e111ed8SAndrew Rybchenko /* enum: Get FPGA Build registers */
595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_FPGA_BUILD 0xe
605e111ed8SAndrew Rybchenko /* enum: Read map support commands */
615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_READ_MAP 0xf
625e111ed8SAndrew Rybchenko /* enum: FC Capabilities */
635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_CAPABILITIES 0x10
645e111ed8SAndrew Rybchenko /* enum: FC Global flags */
655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_GLOBAL_FLAGS 0x11
665e111ed8SAndrew Rybchenko /* enum: FC IO using relative addressing modes */
675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_IO_REL 0x12
685e111ed8SAndrew Rybchenko /* enum: FPGA link information */
695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK 0x13
705e111ed8SAndrew Rybchenko /* enum: Configure loopbacks and link on FPGA ports */
715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_SET_LINK 0x14
725e111ed8SAndrew Rybchenko /* enum: Licensing operations relating to AOE */
735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_LICENSE 0x15
745e111ed8SAndrew Rybchenko /* enum: Startup information to the FC */
755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_STARTUP 0x16
765e111ed8SAndrew Rybchenko /* enum: Configure a DMA read */
775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DMA 0x17
785e111ed8SAndrew Rybchenko /* enum: Configure a timed read */
795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_TIMED_READ 0x18
805e111ed8SAndrew Rybchenko /* enum: Control UART logging */
815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_LOG 0x19
825e111ed8SAndrew Rybchenko /* enum: Get the value of a given clock_id */
835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_CLOCK 0x1a
845e111ed8SAndrew Rybchenko /* enum: DDR3/QDR3 parameters */
855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR 0x1b
865e111ed8SAndrew Rybchenko /* enum: PTP and timestamp control */
875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_TIMESTAMP 0x1c
885e111ed8SAndrew Rybchenko /* enum: Commands for SPI Flash interface */
895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_SPI 0x1d
905e111ed8SAndrew Rybchenko /* enum: Commands for diagnostic components */
915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DIAG 0x1e
925e111ed8SAndrew Rybchenko /* enum: External AOE port. */
935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_PORT_EXT_OFST 0x0
945e111ed8SAndrew Rybchenko /* enum: Internal AOE port. */
955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_PORT_INT_OFST 0x40
965e111ed8SAndrew Rybchenko 
975e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_NULL msgrequest */
985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_NULL_LEN 4
995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CMD_OFST 0
1005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CMD_LEN 4
1015e111ed8SAndrew Rybchenko 
1025e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_PHY msgrequest */
1035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_LEN 5
1045e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
1055e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
1065e111ed8SAndrew Rybchenko /* FC PHY driver operation code */
1075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_OP_OFST 4
1085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_OP_LEN 1
1095e111ed8SAndrew Rybchenko /* enum: PHY init handler */
1105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_INIT 0x1
1115e111ed8SAndrew Rybchenko /* enum: PHY reconfigure handler */
1125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_RECONFIGURE 0x2
1135e111ed8SAndrew Rybchenko /* enum: PHY reboot handler */
1145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_REBOOT 0x3
1155e111ed8SAndrew Rybchenko /* enum: PHY get_supported_cap handler */
1165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_SUPPORTED_CAP 0x4
1175e111ed8SAndrew Rybchenko /* enum: PHY get_config handler */
1185e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_CONFIG 0x5
1195e111ed8SAndrew Rybchenko /* enum: PHY get_media_info handler */
1205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_MEDIA_INFO 0x6
1215e111ed8SAndrew Rybchenko /* enum: PHY set_led handler */
1225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_SET_LED 0x7
1235e111ed8SAndrew Rybchenko /* enum: PHY lasi_interrupt handler */
1245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_LASI_INTERRUPT 0x8
1255e111ed8SAndrew Rybchenko /* enum: PHY check_link handler */
1265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_CHECK_LINK 0x9
1275e111ed8SAndrew Rybchenko /* enum: PHY fill_stats handler */
1285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_FILL_STATS 0xa
1295e111ed8SAndrew Rybchenko /* enum: PHY bpx_link_state_changed handler */
1305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_BPX_LINK_STATE_CHANGED 0xb
1315e111ed8SAndrew Rybchenko /* enum: PHY get_state handler */
1325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_STATE 0xc
1335e111ed8SAndrew Rybchenko /* enum: PHY start_bist handler */
1345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_START_BIST 0xd
1355e111ed8SAndrew Rybchenko /* enum: PHY poll_bist handler */
1365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_POLL_BIST 0xe
1375e111ed8SAndrew Rybchenko /* enum: PHY nvram_test handler */
1385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_NVRAM_TEST 0xf
1395e111ed8SAndrew Rybchenko /* enum: PHY relinquish handler */
1405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_RELINQUISH_SPI 0x10
1415e111ed8SAndrew Rybchenko /* enum: PHY read connection from FC - may be not required */
1425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_CONNECTION 0x11
1435e111ed8SAndrew Rybchenko /* enum: PHY read flags from FC - may be not required */
1445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_PHY_OP_GET_FLAGS 0x12
1455e111ed8SAndrew Rybchenko 
1465e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_PHY_INIT msgrequest */
1475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_INIT_LEN 4
1485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_CMD_OFST 0
1495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_PHY_CMD_LEN 4
1505e111ed8SAndrew Rybchenko 
1515e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_MAC msgrequest */
1525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_LEN 8
1535e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
1545e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
1555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_HEADER_OFST 4
1565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_HEADER_LEN 4
157bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_OP_OFST 4
1585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_OP_LBN 0
1595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_OP_WIDTH 8
1605e111ed8SAndrew Rybchenko /* enum: MAC reconfigure handler */
1615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_RECONFIGURE 0x1
1625e111ed8SAndrew Rybchenko /* enum: MAC Set command - same as MC_CMD_SET_MAC */
1635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_SET_LINK 0x2
1645e111ed8SAndrew Rybchenko /* enum: MAC statistics */
1655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_GET_STATS 0x3
1665e111ed8SAndrew Rybchenko /* enum: MAC RX statistics */
1675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_GET_RX_STATS 0x6
1685e111ed8SAndrew Rybchenko /* enum: MAC TX statistics */
1695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_GET_TX_STATS 0x7
1705e111ed8SAndrew Rybchenko /* enum: MAC Read status */
1715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_OP_READ_STATUS 0x8
172bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_TYPE_OFST 4
1735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_TYPE_LBN 8
1745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_TYPE_WIDTH 8
1755e111ed8SAndrew Rybchenko /* enum: External FPGA port. */
1765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_PORT_EXT 0x0
1775e111ed8SAndrew Rybchenko /* enum: Internal Siena-facing FPGA ports. */
1785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_PORT_INT 0x1
179bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_IDX_OFST 4
1805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_IDX_LBN 16
1815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_PORT_IDX_WIDTH 8
182bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_CMD_FORMAT_OFST 4
1835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_CMD_FORMAT_LBN 24
1845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_CMD_FORMAT_WIDTH 8
1855e111ed8SAndrew Rybchenko /* enum: Default FC command format; the fields PORT_TYPE and PORT_IDX are
1865e111ed8SAndrew Rybchenko  * irrelevant. Port number is derived from pci_fn; passed in FC header.
1875e111ed8SAndrew Rybchenko  */
1885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_CMD_FORMAT_DEFAULT 0x0
1895e111ed8SAndrew Rybchenko /* enum: Override default port number. Port number determined by fields
1905e111ed8SAndrew Rybchenko  * PORT_TYPE and PORT_IDX.
1915e111ed8SAndrew Rybchenko  */
1925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_MAC_CMD_FORMAT_PORT_OVERRIDE 0x1
1935e111ed8SAndrew Rybchenko 
1945e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_RECONFIGURE msgrequest */
1955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_RECONFIGURE_LEN 8
1965e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
1975e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
1985e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
1995e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2005e111ed8SAndrew Rybchenko 
2015e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_SET_LINK msgrequest */
2025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_LEN 32
2035e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2045e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2055e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2065e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2075e111ed8SAndrew Rybchenko /* MTU size */
2085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_MTU_OFST 8
2095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_MTU_LEN 4
2105e111ed8SAndrew Rybchenko /* Drain Tx FIFO */
2115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_DRAIN_OFST 12
2125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_DRAIN_LEN 4
2135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_OFST 16
2145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LEN 8
2155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LO_OFST 16
216*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LO_LEN 4
217*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LO_LBN 128
218*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_LO_WIDTH 32
2195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_HI_OFST 20
220*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_HI_LEN 4
221*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_HI_LBN 160
222*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_ADDR_HI_WIDTH 32
2235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_OFST 24
2245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_LEN 4
225bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_UNICAST_OFST 24
2265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_UNICAST_LBN 0
2275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_UNICAST_WIDTH 1
228bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_BRDCAST_OFST 24
2295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_BRDCAST_LBN 1
2305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_REJECT_BRDCAST_WIDTH 1
2315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_FCNTL_OFST 28
2325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_SET_LINK_FCNTL_LEN 4
2335e111ed8SAndrew Rybchenko 
2345e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_READ_STATUS msgrequest */
2355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_READ_STATUS_LEN 8
2365e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2375e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2385e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2395e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2405e111ed8SAndrew Rybchenko 
2415e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_GET_RX_STATS msgrequest */
2425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_RX_STATS_LEN 8
2435e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2445e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2455e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2465e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2475e111ed8SAndrew Rybchenko 
2485e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_GET_TX_STATS msgrequest */
2495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_TX_STATS_LEN 8
2505e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2515e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2525e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2535e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2545e111ed8SAndrew Rybchenko 
2555e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_MAC_GET_STATS msgrequest */
2565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_LEN 20
2575e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2585e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2595e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_OFST 4 */
2605e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_MAC_HEADER_LEN 4 */
2615e111ed8SAndrew Rybchenko /* MC Statistics index */
2625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_STATS_INDEX_OFST 8
2635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_STATS_INDEX_LEN 4
2645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_FLAGS_OFST 12
2655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_FLAGS_LEN 4
266bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_ALL_OFST 12
2675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_ALL_LBN 0
2685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_ALL_WIDTH 1
269bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_OFST 12
2705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_LBN 1
2715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_CLEAR_WIDTH 1
272bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_UPDATE_OFST 12
2735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_UPDATE_LBN 2
2745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_UPDATE_WIDTH 1
2755e111ed8SAndrew Rybchenko /* Number of statistics to read */
2765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_NUM_OFST 16
2775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAC_GET_STATS_NUM_LEN 4
2785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_NSTATS_PER_BLOCK 0x1e /* enum */
2795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_NBYTES_PER_STAT 0x8 /* enum */
2805e111ed8SAndrew Rybchenko 
2815e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_READ32 msgrequest */
2825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_LEN 16
2835e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2845e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
2855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_ADDR_HI_OFST 4
2865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_ADDR_HI_LEN 4
2875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_ADDR_LO_OFST 8
2885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_ADDR_LO_LEN 4
2895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_NUMWORDS_OFST 12
2905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ32_NUMWORDS_LEN 4
2915e111ed8SAndrew Rybchenko 
2925e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_WRITE32 msgrequest */
2935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_LENMIN 16
2945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_LENMAX 252
2955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_LENMAX_MCDI2 1020
2965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_LEN(num) (12+4*(num))
2975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_NUM(len) (((len)-12)/4)
2985e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
2995e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_ADDR_HI_OFST 4
3015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_ADDR_HI_LEN 4
3025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_ADDR_LO_OFST 8
3035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_ADDR_LO_LEN 4
3045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_OFST 12
3055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_LEN 4
3065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_MINNUM 1
3075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_MAXNUM 60
3085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_WRITE32_BUFFER_MAXNUM_MCDI2 252
3095e111ed8SAndrew Rybchenko 
3105e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TRC_READ msgrequest */
3115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_LEN 12
3125e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3135e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_TRC_OFST 4
3155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_TRC_LEN 4
3165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_CHANNEL_OFST 8
3175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_READ_CHANNEL_LEN 4
3185e111ed8SAndrew Rybchenko 
3195e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TRC_WRITE msgrequest */
3205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_LEN 28
3215e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3225e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_TRC_OFST 4
3245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_TRC_LEN 4
3255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_CHANNEL_OFST 8
3265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_CHANNEL_LEN 4
3275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_DATA_OFST 12
3285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_DATA_LEN 4
3295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_WRITE_DATA_NUM 4
3305e111ed8SAndrew Rybchenko 
3315e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_GET_VERSION msgrequest */
3325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GET_VERSION_LEN 4
3335e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3345e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3355e111ed8SAndrew Rybchenko 
3365e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TRC_RX_READ msgrequest */
3375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_LEN 12
3385e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3395e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_TRC_OFST 4
3415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_TRC_LEN 4
3425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_CHANNEL_OFST 8
3435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_READ_CHANNEL_LEN 4
3445e111ed8SAndrew Rybchenko 
3455e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TRC_RX_WRITE msgrequest */
3465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_LEN 20
3475e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3485e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_TRC_OFST 4
3505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_TRC_LEN 4
3515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_CHANNEL_OFST 8
3525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_CHANNEL_LEN 4
3535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_OFST 12
3545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_LEN 4
3555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TRC_RX_WRITE_DATA_NUM 2
3565e111ed8SAndrew Rybchenko 
3575e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_SFP msgrequest */
3585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_LEN 28
3595e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3605e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3615e111ed8SAndrew Rybchenko /* Link speed is 100, 1000, 10000, 40000 */
3625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_SPEED_OFST 4
3635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_SPEED_LEN 4
3645e111ed8SAndrew Rybchenko /* Length of copper cable - zero when not relevant (e.g. if cable is fibre) */
3655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_COPPER_LEN_OFST 8
3665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_COPPER_LEN_LEN 4
3675e111ed8SAndrew Rybchenko /* Not relevant for cards with QSFP modules. For older cards, true if module is
3685e111ed8SAndrew Rybchenko  * a dual speed SFP+ module.
3695e111ed8SAndrew Rybchenko  */
3705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_DUAL_SPEED_OFST 12
3715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_DUAL_SPEED_LEN 4
3725e111ed8SAndrew Rybchenko /* True if an SFP Module is present (other fields valid when true) */
3735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_PRESENT_OFST 16
3745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_PRESENT_LEN 4
3755e111ed8SAndrew Rybchenko /* The type of the SFP+ Module. For later cards with QSFP modules, this field
3765e111ed8SAndrew Rybchenko  * is unused and the type is communicated by other means.
3775e111ed8SAndrew Rybchenko  */
3785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_TYPE_OFST 20
3795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_TYPE_LEN 4
3805e111ed8SAndrew Rybchenko /* Capabilities corresponding to 1 bits. */
3815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_CAPS_OFST 24
3825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SFP_CAPS_LEN 4
3835e111ed8SAndrew Rybchenko 
3845e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_TEST msgrequest */
3855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_LEN 8
3865e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
3875e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
3885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4
3895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4
390bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_OP_OFST 4
3915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_OP_LBN 0
3925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_OP_WIDTH 8
3935e111ed8SAndrew Rybchenko /* enum: DRAM Test Start */
3945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_START 0x1
3955e111ed8SAndrew Rybchenko /* enum: DRAM Test Poll */
3965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_POLL 0x2
3975e111ed8SAndrew Rybchenko 
3985e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_TEST_START msgrequest */
3995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_LEN 12
4005e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4015e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4025e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4 */
4035e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4 */
4045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_MASK_OFST 8
4055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_MASK_LEN 4
406bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T0_OFST 8
4075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T0_LBN 0
4085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T0_WIDTH 1
409bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T1_OFST 8
4105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T1_LBN 1
4115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_T1_WIDTH 1
412bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B0_OFST 8
4135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B0_LBN 2
4145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B0_WIDTH 1
415bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B1_OFST 8
4165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B1_LBN 3
4175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_START_B1_WIDTH 1
4185e111ed8SAndrew Rybchenko 
4195e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_TEST_POLL msgrequest */
4205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_POLL_LEN 12
4215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_CMD_OFST 0
4225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_CMD_LEN 4
4235e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_TEST_HEADER_OFST 4 */
4245e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_TEST_HEADER_LEN 4 */
4255e111ed8SAndrew Rybchenko /* Clear previous test result and prepare for restarting DDR test */
4265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_POLL_CLEAR_RESULT_FOR_DDR_TEST_OFST 8
4275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_TEST_POLL_CLEAR_RESULT_FOR_DDR_TEST_LEN 4
4285e111ed8SAndrew Rybchenko 
4295e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_GET_ASSERT msgrequest */
4305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GET_ASSERT_LEN 4
4315e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4325e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4335e111ed8SAndrew Rybchenko 
4345e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_FPGA_BUILD msgrequest */
4355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_LEN 8
4365e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4375e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4385e111ed8SAndrew Rybchenko /* FPGA build info operation code */
4395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_OP_OFST 4
4405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_OP_LEN 4
4415e111ed8SAndrew Rybchenko /* enum: Get the build registers */
4425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_BUILD 0x1
4435e111ed8SAndrew Rybchenko /* enum: Get the services registers */
4445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_SERVICES 0x2
4455e111ed8SAndrew Rybchenko /* enum: Get the BSP version */
4465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_BSP_VERSION 0x3
4475e111ed8SAndrew Rybchenko /* enum: Get build register for V2 (SFA974X) */
4485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_BUILD_V2 0x4
4495e111ed8SAndrew Rybchenko /* enum: GEt the services register for V2 (SFA974X) */
4505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_FPGA_BUILD_SERVICES_V2 0x5
4515e111ed8SAndrew Rybchenko 
4525e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_READ_MAP msgrequest */
4535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_LEN 8
4545e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4555e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4
4575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4
458bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_OP_OFST 4
4595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_OP_LBN 0
4605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_OP_WIDTH 8
4615e111ed8SAndrew Rybchenko /* enum: Get the number of map regions */
4625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_READ_MAP_COUNT 0x1
4635e111ed8SAndrew Rybchenko /* enum: Get the specified map */
4645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_READ_MAP_INDEX 0x2
4655e111ed8SAndrew Rybchenko 
4665e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_READ_MAP_COUNT msgrequest */
4675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_COUNT_LEN 8
4685e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4695e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4705e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4 */
4715e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4 */
4725e111ed8SAndrew Rybchenko 
4735e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_READ_MAP_INDEX msgrequest */
4745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_READ_MAP_INDEX_LEN 12
4755e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4765e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4775e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_READ_MAP_HEADER_OFST 4 */
4785e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_READ_MAP_HEADER_LEN 4 */
4795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAP_INDEX_OFST 8
4805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_MAP_INDEX_LEN 4
4815e111ed8SAndrew Rybchenko 
4825e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_CAPABILITIES msgrequest */
4835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CAPABILITIES_LEN 4
4845e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4855e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4865e111ed8SAndrew Rybchenko 
4875e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_GLOBAL_FLAGS msgrequest */
4885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_LEN 8
4895e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
4905e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
4915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_FLAGS_OFST 4
4925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_FLAGS_LEN 4
493bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_CABLE_PLUGGED_IN_OFST 4
4945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_CABLE_PLUGGED_IN_LBN 0
4955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_CABLE_PLUGGED_IN_WIDTH 1
496bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_LINK_MONITORING_OFST 4
4975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_LINK_MONITORING_LBN 1
4985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_RX_TUNING_LINK_MONITORING_WIDTH 1
499bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_DFE_ENABLE_OFST 4
5005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_DFE_ENABLE_LBN 2
5015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_DFE_ENABLE_WIDTH 1
502bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_EYE_ENABLE_OFST 4
5035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_EYE_ENABLE_LBN 3
5045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_EYE_ENABLE_WIDTH 1
505bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_TUNING_ENABLE_OFST 4
5065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_TUNING_ENABLE_LBN 4
5075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_1D_TUNING_ENABLE_WIDTH 1
508bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_OFFCAL_ENABLE_OFST 4
5095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_OFFCAL_ENABLE_LBN 5
5105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_GLOBAL_FLAGS_OFFCAL_ENABLE_WIDTH 1
5115e111ed8SAndrew Rybchenko 
5125e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_IO_REL msgrequest */
5135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_LEN 8
5145e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5155e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_HEADER_OFST 4
5175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_HEADER_LEN 4
518bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_OP_OFST 4
5195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_OP_LBN 0
5205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_OP_WIDTH 8
5215e111ed8SAndrew Rybchenko /* enum: Get the base address that the FC applies to relative commands */
5225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_GET_ADDR 0x1
5235e111ed8SAndrew Rybchenko /* enum: Read data */
5245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32 0x2
5255e111ed8SAndrew Rybchenko /* enum: Write data */
5265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32 0x3
527bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_COMP_TYPE_OFST 4
5285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_COMP_TYPE_LBN 8
5295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_COMP_TYPE_WIDTH 8
5305e111ed8SAndrew Rybchenko /* enum: Application address space */
5315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_COMP_TYPE_APP_ADDR_SPACE 0x1
5325e111ed8SAndrew Rybchenko /* enum: Flash address space */
5335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_COMP_TYPE_FLASH 0x2
5345e111ed8SAndrew Rybchenko 
5355e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_IO_REL_GET_ADDR msgrequest */
5365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_GET_ADDR_LEN 8
5375e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5385e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5395e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
5405e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
5415e111ed8SAndrew Rybchenko 
5425e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_IO_REL_READ32 msgrequest */
5435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_LEN 20
5445e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5455e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5465e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
5475e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
5485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_HI_OFST 8
5495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_HI_LEN 4
5505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_LO_OFST 12
5515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_ADDR_LO_LEN 4
5525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_NUMWORDS_OFST 16
5535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_READ32_NUMWORDS_LEN 4
5545e111ed8SAndrew Rybchenko 
5555e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_IO_REL_WRITE32 msgrequest */
5565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_LENMIN 20
5575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_LENMAX 252
5585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_LENMAX_MCDI2 1020
5595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_LEN(num) (16+4*(num))
5605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_NUM(len) (((len)-16)/4)
5615e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5625e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5635e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_OFST 4 */
5645e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_IO_REL_HEADER_LEN 4 */
5655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_HI_OFST 8
5665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_HI_LEN 4
5675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_LO_OFST 12
5685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_ADDR_LO_LEN 4
5695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_OFST 16
5705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_LEN 4
5715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_MINNUM 1
5725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_MAXNUM 59
5735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_IO_REL_WRITE32_BUFFER_MAXNUM_MCDI2 251
5745e111ed8SAndrew Rybchenko 
5755e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_UHLINK msgrequest */
5765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_LEN 8
5775e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
5785e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
5795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_HEADER_OFST 4
5805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_HEADER_LEN 4
581bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_OP_OFST 4
5825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_OP_LBN 0
5835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_OP_WIDTH 8
5845e111ed8SAndrew Rybchenko /* enum: Get PHY configuration info */
5855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_PHY 0x1
5865e111ed8SAndrew Rybchenko /* enum: Get MAC configuration info */
5875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_MAC 0x2
5885e111ed8SAndrew Rybchenko /* enum: Get Rx eye table */
5895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_EYE 0x3
5905e111ed8SAndrew Rybchenko /* enum: Get Rx eye plot */
5915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT 0x4
5925e111ed8SAndrew Rybchenko /* enum: Get Rx eye plot */
5935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT 0x5
5945e111ed8SAndrew Rybchenko /* enum: Retune Rx settings */
5955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_TUNE 0x6
5965e111ed8SAndrew Rybchenko /* enum: Set loopback mode on fpga port */
5975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET 0x7
5985e111ed8SAndrew Rybchenko /* enum: Get loopback mode config state on fpga port */
5995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET 0x8
600bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_TYPE_OFST 4
6015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_TYPE_LBN 8
6025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_TYPE_WIDTH 8
603bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_IDX_OFST 4
6045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_IDX_LBN 16
6055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_PORT_IDX_WIDTH 8
606bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_CMD_FORMAT_OFST 4
6075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_CMD_FORMAT_LBN 24
6085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_UHLINK_CMD_FORMAT_WIDTH 8
6095e111ed8SAndrew Rybchenko /* enum: Default FC command format; the fields PORT_TYPE and PORT_IDX are
6105e111ed8SAndrew Rybchenko  * irrelevant. Port number is derived from pci_fn; passed in FC header.
6115e111ed8SAndrew Rybchenko  */
6125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_CMD_FORMAT_DEFAULT 0x0
6135e111ed8SAndrew Rybchenko /* enum: Override default port number. Port number determined by fields
6145e111ed8SAndrew Rybchenko  * PORT_TYPE and PORT_IDX.
6155e111ed8SAndrew Rybchenko  */
6165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_CMD_FORMAT_PORT_OVERRIDE 0x1
6175e111ed8SAndrew Rybchenko 
6185e111ed8SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_PHY msgrequest */
6195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_PHY_LEN 8
6205e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6215e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6225e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6235e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6245e111ed8SAndrew Rybchenko 
6255e111ed8SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_MAC msgrequest */
6265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_MAC_LEN 8
6275e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6285e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6295e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6305e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6315e111ed8SAndrew Rybchenko 
6325e111ed8SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_RX_EYE msgrequest */
6335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_EYE_LEN 12
6345e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6355e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6365e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6375e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_EYE_INDEX_OFST 8
6395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_EYE_INDEX_LEN 4
6405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK 0x30 /* enum */
6415e111ed8SAndrew Rybchenko 
6425e111ed8SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT msgrequest */
6435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_DUMP_RX_EYE_PLOT_LEN 8
6445e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6455e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6465e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6475e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6485e111ed8SAndrew Rybchenko 
6495e111ed8SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT msgrequest */
6505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_LEN 20
6515e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6525e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6535e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6545e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_DC_GAIN_OFST 8
6565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_DC_GAIN_LEN 4
6575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_EQ_CONTROL_OFST 12
6585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_EQ_CONTROL_LEN 4
6595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_INDEX_OFST 16
6605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_READ_RX_EYE_PLOT_INDEX_LEN 4
6615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_RX_EYE_PLOT_ROWS_PER_BLOCK 0x1e /* enum */
6625e111ed8SAndrew Rybchenko 
6635e111ed8SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_RX_TUNE msgrequest */
6645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_RX_TUNE_LEN 8
6655e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6665e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6675e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6685e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6695e111ed8SAndrew Rybchenko 
6705e111ed8SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_LOOPBACK_SET msgrequest */
6715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_LEN 16
6725e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6735e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6745e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6755e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_TYPE_OFST 8
6775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_TYPE_LEN 4
6785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PCS_SERIAL 0x0 /* enum */
6795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PMA_PRE_CDR 0x1 /* enum */
6805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_TYPE_PMA_POST_CDR 0x2 /* enum */
6815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_STATE_OFST 12
6825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_SET_STATE_LEN 4
6835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_STATE_OFF 0x0 /* enum */
6845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_UHLINK_LOOPBACK_STATE_ON 0x1 /* enum */
6855e111ed8SAndrew Rybchenko 
6865e111ed8SAndrew Rybchenko /* MC_CMD_FC_OP_UHLINK_LOOPBACK_GET msgrequest */
6875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_LEN 12
6885e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6895e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6905e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_OFST 4 */
6915e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_UHLINK_HEADER_LEN 4 */
6925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_TYPE_OFST 8
6935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_UHLINK_LOOPBACK_GET_TYPE_LEN 4
6945e111ed8SAndrew Rybchenko 
6955e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_SET_LINK msgrequest */
6965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_LEN 16
6975e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
6985e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
6995e111ed8SAndrew Rybchenko /* See MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */
7005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_MODE_OFST 4
7015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_MODE_LEN 4
7025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_SPEED_OFST 8
7035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_SPEED_LEN 4
7045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_FLAGS_OFST 12
7055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_FLAGS_LEN 4
706bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_LOWPOWER_OFST 12
7075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_LOWPOWER_LBN 0
7085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_LOWPOWER_WIDTH 1
709bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_POWEROFF_OFST 12
7105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_POWEROFF_LBN 1
7115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_POWEROFF_WIDTH 1
712bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_TXDIS_OFST 12
7135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_TXDIS_LBN 2
7145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SET_LINK_TXDIS_WIDTH 1
7155e111ed8SAndrew Rybchenko 
7165e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_LICENSE msgrequest */
7175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_LEN 8
7185e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7195e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_OP_OFST 4
7215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_OP_LEN 4
7225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_UPDATE_LICENSE 0x0 /* enum */
7235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LICENSE_GET_KEY_STATS 0x1 /* enum */
7245e111ed8SAndrew Rybchenko 
7255e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_STARTUP msgrequest */
7265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_LEN 40
7275e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7285e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_BASE_OFST 4
7305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_BASE_LEN 4
7315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_LENGTH_OFST 8
7325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_LENGTH_LEN 4
7335e111ed8SAndrew Rybchenko /* Length of identifier */
7345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_IDLENGTH_OFST 12
7355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_IDLENGTH_LEN 4
7365e111ed8SAndrew Rybchenko /* Identifier for AOE FPGA */
7375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_ID_OFST 16
7385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_ID_LEN 1
7395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_STARTUP_ID_NUM 24
7405e111ed8SAndrew Rybchenko 
7415e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DMA msgrequest */
7425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_LEN 8
7435e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7445e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_OP_OFST 4
7465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_OP_LEN 4
7475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_STOP 0x0 /* enum */
7485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ 0x1 /* enum */
7495e111ed8SAndrew Rybchenko 
7505e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DMA_STOP msgrequest */
7515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_STOP_LEN 12
7525e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7535e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7545e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DMA_OP_OFST 4 */
7555e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DMA_OP_LEN 4 */
7565e111ed8SAndrew Rybchenko /* FC supplied handle */
7575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_STOP_FC_HANDLE_OFST 8
7585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_STOP_FC_HANDLE_LEN 4
7595e111ed8SAndrew Rybchenko 
7605e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DMA_READ msgrequest */
7615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_LEN 16
7625e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7635e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7645e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DMA_OP_OFST 4 */
7655e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DMA_OP_LEN 4 */
7665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_OFFSET_OFST 8
7675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_OFFSET_LEN 4
7685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_LENGTH_OFST 12
7695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DMA_READ_LENGTH_LEN 4
7705e111ed8SAndrew Rybchenko 
7715e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TIMED_READ msgrequest */
7725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_LEN 8
7735e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7745e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_OP_OFST 4
7765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_OP_LEN 4
7775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET 0x0 /* enum */
7785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_GET 0x1 /* enum */
7795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_CLEAR 0x2 /* enum */
7805e111ed8SAndrew Rybchenko 
7815e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TIMED_READ_SET msgrequest */
7825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_LEN 52
7835e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
7845e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
7855e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
7865e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
7875e111ed8SAndrew Rybchenko /* Host supplied handle (unique) */
7885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_HANDLE_OFST 8
7895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_HANDLE_LEN 4
7905e111ed8SAndrew Rybchenko /* Address into which to transfer data in host */
7915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_OFST 12
7925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LEN 8
7935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LO_OFST 12
794*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LO_LEN 4
795*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LO_LBN 96
796*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_LO_WIDTH 32
7975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_HI_OFST 16
798*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_HI_LEN 4
799*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_HI_LBN 128
800*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_DMA_ADDRESS_HI_WIDTH 32
8015e111ed8SAndrew Rybchenko /* AOE address from which to transfer data */
8025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_OFST 20
8035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LEN 8
8045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LO_OFST 20
805*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LO_LEN 4
806*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LO_LBN 160
807*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_LO_WIDTH 32
8085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_HI_OFST 24
809*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_HI_LEN 4
810*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_HI_LBN 192
811*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_ADDRESS_HI_WIDTH 32
8125e111ed8SAndrew Rybchenko /* Length of AOE transfer (total) */
8135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_LENGTH_OFST 28
8145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_AOE_LENGTH_LEN 4
8155e111ed8SAndrew Rybchenko /* Length of host transfer (total) */
8165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_LENGTH_OFST 32
8175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_HOST_LENGTH_LEN 4
8185e111ed8SAndrew Rybchenko /* Offset back from aoe_address to apply operation to */
8195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_OFFSET_OFST 36
8205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_OFFSET_LEN 4
8215e111ed8SAndrew Rybchenko /* Data to apply at offset */
8225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DATA_OFST 40
8235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DATA_LEN 4
8245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_FLAGS_OFST 44
8255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_FLAGS_LEN 4
826bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_INDIRECT_OFST 44
8275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_INDIRECT_LBN 0
8285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_INDIRECT_WIDTH 1
829bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DOUBLE_OFST 44
8305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DOUBLE_LBN 1
8315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_DOUBLE_WIDTH 1
832bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_EVENT_OFST 44
8335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_EVENT_LBN 2
8345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_EVENT_WIDTH 1
835bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PREREAD_OFST 44
8365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PREREAD_LBN 3
8375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PREREAD_WIDTH 2
8385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_NONE 0x0 /* enum */
8395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_READ 0x1 /* enum */
8405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_WRITE 0x2 /* enum */
8415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_READWRITE 0x3 /* enum */
8425e111ed8SAndrew Rybchenko /* Period at which reads are performed (100ms units) */
8435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PERIOD_OFST 48
8445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_SET_PERIOD_LEN 4
8455e111ed8SAndrew Rybchenko 
8465e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TIMED_READ_GET msgrequest */
8475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_GET_LEN 12
8485e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8495e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8505e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
8515e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
8525e111ed8SAndrew Rybchenko /* FC supplied handle */
8535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_GET_FC_HANDLE_OFST 8
8545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_GET_FC_HANDLE_LEN 4
8555e111ed8SAndrew Rybchenko 
8565e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TIMED_READ_CLEAR msgrequest */
8575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_LEN 12
8585e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8595e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8605e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_OFST 4 */
8615e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_TIMED_READ_OP_LEN 4 */
8625e111ed8SAndrew Rybchenko /* FC supplied handle */
8635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_FC_HANDLE_OFST 8
8645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMED_READ_CLEAR_FC_HANDLE_LEN 4
8655e111ed8SAndrew Rybchenko 
8665e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_LOG msgrequest */
8675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_LEN 8
8685e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8695e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_OP_OFST 4
8715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_OP_LEN 4
8725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE 0x0 /* enum */
8735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_JTAG_UART 0x1 /* enum */
8745e111ed8SAndrew Rybchenko 
8755e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_LOG_ADDR_RANGE msgrequest */
8765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LEN 20
8775e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8785e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8795e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_LOG_OP_OFST 4 */
8805e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_LOG_OP_LEN 4 */
8815e111ed8SAndrew Rybchenko /* Partition offset into flash */
8825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_OFFSET_OFST 8
8835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_OFFSET_LEN 4
8845e111ed8SAndrew Rybchenko /* Partition length */
8855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LENGTH_OFST 12
8865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_LENGTH_LEN 4
8875e111ed8SAndrew Rybchenko /* Partition erase size */
8885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_ERASE_SIZE_OFST 16
8895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_ADDR_RANGE_ERASE_SIZE_LEN 4
8905e111ed8SAndrew Rybchenko 
8915e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_LOG_JTAG_UART msgrequest */
8925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_JTAG_UART_LEN 12
8935e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
8945e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
8955e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_LOG_OP_OFST 4 */
8965e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_LOG_OP_LEN 4 */
8975e111ed8SAndrew Rybchenko /* Enable/disable printing to JTAG UART */
8985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_JTAG_UART_ENABLE_OFST 8
8995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_LOG_JTAG_UART_ENABLE_LEN 4
9005e111ed8SAndrew Rybchenko 
9015e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_CLOCK msgrequest: Perform a clock operation */
9025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_LEN 12
9035e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9045e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_OP_OFST 4
9065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_OP_LEN 4
9075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_GET_TIME 0x0 /* enum */
9085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME 0x1 /* enum */
9095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_ID_OFST 8
9105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_ID_LEN 4
9115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_STATS 0x0 /* enum */
9125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_MAC 0x1 /* enum */
9135e111ed8SAndrew Rybchenko 
9145e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_CLOCK_GET_TIME msgrequest: Retrieve the clock value of the
9155e111ed8SAndrew Rybchenko  * specified clock
9165e111ed8SAndrew Rybchenko  */
9175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_GET_TIME_LEN 12
9185e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9195e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9205e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_OP_OFST 4 */
9215e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_OP_LEN 4 */
9225e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_ID_OFST 8 */
9235e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_ID_LEN 4 */
9245e111ed8SAndrew Rybchenko 
9255e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_CLOCK_SET_TIME msgrequest: Set the clock value of the specified
9265e111ed8SAndrew Rybchenko  * clock
9275e111ed8SAndrew Rybchenko  */
9285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_LEN 24
9295e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9305e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9315e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_OP_OFST 4 */
9325e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_OP_LEN 4 */
9335e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_ID_OFST 8 */
9345e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CLOCK_ID_LEN 4 */
9355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_OFST 12
9365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LEN 8
9375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LO_OFST 12
938*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LO_LEN 4
939*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LO_LBN 96
940*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_LO_WIDTH 32
9415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_HI_OFST 16
942*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_HI_LEN 4
943*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_HI_LBN 128
944*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_SECONDS_HI_WIDTH 32
9455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_NANOSECONDS_OFST 20
9465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_CLOCK_SET_TIME_NANOSECONDS_LEN 4
9475e111ed8SAndrew Rybchenko 
9485e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DDR msgrequest */
9495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_LEN 12
9505e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9515e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_OP_OFST 4
9535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_OP_LEN 4
9545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_SPD 0x0 /* enum */
9555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_GET_STATUS 0x1 /* enum */
9565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_INFO 0x2 /* enum */
9575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_OFST 8
9585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_LEN 4
9595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_B0 0x0 /* enum */
9605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_B1 0x1 /* enum */
9615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_T0 0x2 /* enum */
9625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_BANK_T1 0x3 /* enum */
9635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_NUM_BANKS 0x4 /* enum */
9645e111ed8SAndrew Rybchenko 
9655e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_SET_SPD msgrequest */
9665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_SPD_LEN 148
9675e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9685e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9695e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
9705e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
9715e111ed8SAndrew Rybchenko /* Affected bank */
9725e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
9735e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
9745e111ed8SAndrew Rybchenko /* Flags */
9755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_FLAGS_OFST 12
9765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_FLAGS_LEN 4
9775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_SPD_ACTIVE 0x1 /* enum */
9785e111ed8SAndrew Rybchenko /* 128-byte page of serial presence detect data read from module's EEPROM */
9795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_OFST 16
9805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_LEN 1
9815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_NUM 128
9825e111ed8SAndrew Rybchenko /* Page index of the spd data copied into MC_CMD_FC_IN_DDR_SPD */
9835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_PAGE_ID_OFST 144
9845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SPD_PAGE_ID_LEN 4
9855e111ed8SAndrew Rybchenko 
9865e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_SET_INFO msgrequest */
9875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SET_INFO_LEN 16
9885e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
9895e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
9905e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
9915e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
9925e111ed8SAndrew Rybchenko /* Affected bank */
9935e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
9945e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
9955e111ed8SAndrew Rybchenko /* Size of DDR */
9965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SIZE_OFST 12
9975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_SIZE_LEN 4
9985e111ed8SAndrew Rybchenko 
9995e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DDR_GET_STATUS msgrequest */
10005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DDR_GET_STATUS_LEN 12
10015e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10025e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10035e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_OFST 4 */
10045e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_OP_LEN 4 */
10055e111ed8SAndrew Rybchenko /* Affected bank */
10065e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_OFST 8 */
10075e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_DDR_BANK_LEN 4 */
10085e111ed8SAndrew Rybchenko 
10095e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TIMESTAMP msgrequest */
10105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_LEN 8
10115e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10125e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10135e111ed8SAndrew Rybchenko /* FC timestamp operation code */
10145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_OP_OFST 4
10155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_OP_LEN 4
10165e111ed8SAndrew Rybchenko /* enum: Read transmit timestamp(s) */
10175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT 0x0
10185e111ed8SAndrew Rybchenko /* enum: Read snapshot timestamps */
10195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT 0x1
10205e111ed8SAndrew Rybchenko /* enum: Clear all transmit timestamps */
10215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT 0x2
10225e111ed8SAndrew Rybchenko 
10235e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT msgrequest */
10245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_LEN 28
10255e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10265e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_OP_OFST 4
10285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_OP_LEN 4
10295e111ed8SAndrew Rybchenko /* Control filtering of the returned timestamp and sequence number specified
10305e111ed8SAndrew Rybchenko  * here
10315e111ed8SAndrew Rybchenko  */
10325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_FILTER_OFST 8
10335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_FILTER_LEN 4
10345e111ed8SAndrew Rybchenko /* enum: Return most recent timestamp. No filtering */
10355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_LATEST 0x0
10365e111ed8SAndrew Rybchenko /* enum: Match timestamp against the PTP clock ID, port number and sequence
10375e111ed8SAndrew Rybchenko  * number specified
10385e111ed8SAndrew Rybchenko  */
10395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_MATCH 0x1
10405e111ed8SAndrew Rybchenko /* Clock identity of PTP packet for which timestamp required */
10415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_OFST 12
10425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LEN 8
10435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LO_OFST 12
1044*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LO_LEN 4
1045*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LO_LBN 96
1046*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_LO_WIDTH 32
10475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_HI_OFST 16
1048*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_HI_LEN 4
1049*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_HI_LBN 128
1050*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_CLOCK_ID_HI_WIDTH 32
10515e111ed8SAndrew Rybchenko /* Port number of PTP packet for which timestamp required */
10525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_PORT_NUM_OFST 20
10535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_PORT_NUM_LEN 4
10545e111ed8SAndrew Rybchenko /* Sequence number of PTP packet for which timestamp required */
10555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_SEQ_NUM_OFST 24
10565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_TRANSMIT_SEQ_NUM_LEN 4
10575e111ed8SAndrew Rybchenko 
10585e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT msgrequest */
10595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_LEN 8
10605e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10615e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_OP_OFST 4
10635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_READ_SNAPSHOT_OP_LEN 4
10645e111ed8SAndrew Rybchenko 
10655e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT msgrequest */
10665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_LEN 8
10675e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10685e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_OP_OFST 4
10705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_TIMESTAMP_CLEAR_TRANSMIT_OP_LEN 4
10715e111ed8SAndrew Rybchenko 
10725e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_SPI msgrequest */
10735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_LEN 8
10745e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10755e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10765e111ed8SAndrew Rybchenko /* Basic commands for SPI Flash. */
10775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_OP_OFST 4
10785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_OP_LEN 4
10795e111ed8SAndrew Rybchenko /* enum: SPI Flash read */
10805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ 0x0
10815e111ed8SAndrew Rybchenko /* enum: SPI Flash write */
10825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE 0x1
10835e111ed8SAndrew Rybchenko /* enum: SPI Flash erase */
10845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE 0x2
10855e111ed8SAndrew Rybchenko 
10865e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_SPI_READ msgrequest */
10875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_LEN 16
10885e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
10895e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
10905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_OP_OFST 4
10915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_OP_LEN 4
10925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_ADDR_OFST 8
10935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_ADDR_LEN 4
10945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_NUMBYTES_OFST 12
10955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_READ_NUMBYTES_LEN 4
10965e111ed8SAndrew Rybchenko 
10975e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_SPI_WRITE msgrequest */
10985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_LENMIN 16
10995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_LENMAX 252
11005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_LENMAX_MCDI2 1020
11015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_LEN(num) (12+4*(num))
11025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_NUM(len) (((len)-12)/4)
11035e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11045e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_OP_OFST 4
11065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_OP_LEN 4
11075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_ADDR_OFST 8
11085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_ADDR_LEN 4
11095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_OFST 12
11105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_LEN 4
11115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_MINNUM 1
11125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_MAXNUM 60
11135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_WRITE_BUFFER_MAXNUM_MCDI2 252
11145e111ed8SAndrew Rybchenko 
11155e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_SPI_ERASE msgrequest */
11165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_LEN 16
11175e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11185e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_OP_OFST 4
11205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_OP_LEN 4
11215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_ADDR_OFST 8
11225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_ADDR_LEN 4
11235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_NUMBYTES_OFST 12
11245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_SPI_ERASE_NUMBYTES_LEN 4
11255e111ed8SAndrew Rybchenko 
11265e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG msgrequest */
11275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_LEN 8
11285e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11295e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11305e111ed8SAndrew Rybchenko /* Operation code indicating component type */
11315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_OP_OFST 4
11325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_OP_LEN 4
11335e111ed8SAndrew Rybchenko /* enum: Power noise generator. */
11345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE 0x0
11355e111ed8SAndrew Rybchenko /* enum: DDR soak test component. */
11365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK 0x1
11375e111ed8SAndrew Rybchenko /* enum: Diagnostics datapath control component. */
11385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL 0x2
11395e111ed8SAndrew Rybchenko 
11405e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_POWER_NOISE msgrequest */
11415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_LEN 12
11425e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11435e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_OP_OFST 4
11455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_OP_LEN 4
11465e111ed8SAndrew Rybchenko /* Sub-opcode describing the operation to be carried out */
11475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_SUB_OP_OFST 8
11485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_SUB_OP_LEN 4
11495e111ed8SAndrew Rybchenko /* enum: Read the configuration (the 32-bit values in each of the clock enable
11505e111ed8SAndrew Rybchenko  * count and toggle count registers)
11515e111ed8SAndrew Rybchenko  */
11525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG 0x0
11535e111ed8SAndrew Rybchenko /* enum: Write a new configuration to the clock enable count and toggle count
11545e111ed8SAndrew Rybchenko  * registers
11555e111ed8SAndrew Rybchenko  */
11565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG 0x1
11575e111ed8SAndrew Rybchenko 
11585e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG msgrequest */
11595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_LEN 12
11605e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11615e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_OP_OFST 4
11635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_OP_LEN 4
11645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_SUB_OP_OFST 8
11655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_READ_CONFIG_SUB_OP_LEN 4
11665e111ed8SAndrew Rybchenko 
11675e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG msgrequest */
11685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_LEN 20
11695e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11705e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_OP_OFST 4
11725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_OP_LEN 4
11735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_SUB_OP_OFST 8
11745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_SUB_OP_LEN 4
11755e111ed8SAndrew Rybchenko /* The 32-bit value to be written to the toggle count register */
11765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_TOGGLE_COUNT_OFST 12
11775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_TOGGLE_COUNT_LEN 4
11785e111ed8SAndrew Rybchenko /* The 32-bit value to be written to the clock enable count register */
11795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_CLKEN_COUNT_OFST 16
11805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_POWER_NOISE_WRITE_CONFIG_CLKEN_COUNT_LEN 4
11815e111ed8SAndrew Rybchenko 
11825e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK msgrequest */
11835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_LEN 12
11845e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
11855e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
11865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_OP_OFST 4
11875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_OP_LEN 4
11885e111ed8SAndrew Rybchenko /* Sub-opcode describing the operation to be carried out */
11895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_SUB_OP_OFST 8
11905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_SUB_OP_LEN 4
11915e111ed8SAndrew Rybchenko /* enum: Starts DDR soak test on selected banks */
11925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START 0x0
11935e111ed8SAndrew Rybchenko /* enum: Read status of DDR soak test */
11945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT 0x1
11955e111ed8SAndrew Rybchenko /* enum: Stop test */
11965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP 0x2
11975e111ed8SAndrew Rybchenko /* enum: Set or clear bit that triggers fake errors. These cause subsequent
11985e111ed8SAndrew Rybchenko  * tests to fail until the bit is cleared.
11995e111ed8SAndrew Rybchenko  */
12005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR 0x3
12015e111ed8SAndrew Rybchenko 
12025e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK_START msgrequest */
12035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_LEN 24
12045e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12055e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_OP_OFST 4
12075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_OP_LEN 4
12085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SUB_OP_OFST 8
12095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SUB_OP_LEN 4
12105e111ed8SAndrew Rybchenko /* Mask of DDR banks to be tested */
12115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_BANK_MASK_OFST 12
12125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_BANK_MASK_LEN 4
12135e111ed8SAndrew Rybchenko /* Pattern to use in the soak test */
12145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_PATTERN_OFST 16
12155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_PATTERN_LEN 4
12165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ZEROS 0x0 /* enum */
12175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ONES 0x1 /* enum */
12185e111ed8SAndrew Rybchenko /* Either multiple automatic tests until a STOP command is issued, or one
12195e111ed8SAndrew Rybchenko  * single test
12205e111ed8SAndrew Rybchenko  */
12215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_TYPE_OFST 20
12225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_TEST_TYPE_LEN 4
12235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_ONGOING_TEST 0x0 /* enum */
12245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_START_SINGLE_TEST 0x1 /* enum */
12255e111ed8SAndrew Rybchenko 
12265e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT msgrequest */
12275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_LEN 16
12285e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12295e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_OP_OFST 4
12315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_OP_LEN 4
12325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_SUB_OP_OFST 8
12335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_SUB_OP_LEN 4
12345e111ed8SAndrew Rybchenko /* DDR bank to read status from */
12355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_BANK_ID_OFST 12
12365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_RESULT_BANK_ID_LEN 4
12375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_DDR_BANK0 0x0 /* enum */
12385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_DDR_BANK1 0x1 /* enum */
12395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_DDR_BANK2 0x2 /* enum */
12405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_DDR_BANK3 0x3 /* enum */
12415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_DDR_AOEMEM_MAX_BANKS 0x4 /* enum */
12425e111ed8SAndrew Rybchenko 
12435e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP msgrequest */
12445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_LEN 16
12455e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12465e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_OP_OFST 4
12485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_OP_LEN 4
12495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_SUB_OP_OFST 8
12505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_SUB_OP_LEN 4
12515e111ed8SAndrew Rybchenko /* Mask of DDR banks to be tested */
12525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_BANK_MASK_OFST 12
12535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_STOP_BANK_MASK_LEN 4
12545e111ed8SAndrew Rybchenko 
12555e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR msgrequest */
12565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_LEN 20
12575e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12585e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_OP_OFST 4
12605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_OP_LEN 4
12615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SUB_OP_OFST 8
12625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SUB_OP_LEN 4
12635e111ed8SAndrew Rybchenko /* Mask of DDR banks to set/clear error flag on */
12645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_BANK_MASK_OFST 12
12655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_BANK_MASK_LEN 4
12665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_FLAG_ACTION_OFST 16
12675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_FLAG_ACTION_LEN 4
12685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_CLEAR 0x0 /* enum */
12695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DDR_SOAK_ERROR_SET 0x1 /* enum */
12705e111ed8SAndrew Rybchenko 
12715e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL msgrequest */
12725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_LEN 12
12735e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12745e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_OP_OFST 4
12765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_OP_LEN 4
12775e111ed8SAndrew Rybchenko /* Sub-opcode describing the operation to be carried out */
12785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SUB_OP_OFST 8
12795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SUB_OP_LEN 4
12805e111ed8SAndrew Rybchenko /* enum: Set a known datapath configuration */
12815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE 0x0
12825e111ed8SAndrew Rybchenko /* enum: Apply raw config to datapath control registers */
12835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG 0x1
12845e111ed8SAndrew Rybchenko 
12855e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE msgrequest */
12865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_LEN 16
12875e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
12885e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
12895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_OP_OFST 4
12905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_OP_LEN 4
12915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SUB_OP_OFST 8
12925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SUB_OP_LEN 4
12935e111ed8SAndrew Rybchenko /* Datapath configuration identifier */
12945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_MODE_OFST 12
12955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_MODE_LEN 4
12965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_PASSTHROUGH 0x0 /* enum */
12975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_SET_MODE_SNAKE 0x1 /* enum */
12985e111ed8SAndrew Rybchenko 
12995e111ed8SAndrew Rybchenko /* MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG msgrequest */
13005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_LEN 24
13015e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_OFST 0 */
13025e111ed8SAndrew Rybchenko /*            MC_CMD_FC_IN_CMD_LEN 4 */
13035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_OP_OFST 4
13045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_OP_LEN 4
13055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_SUB_OP_OFST 8
13065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_SUB_OP_LEN 4
13075e111ed8SAndrew Rybchenko /* Value to write into control register 1 */
13085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL1_OFST 12
13095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL1_LEN 4
13105e111ed8SAndrew Rybchenko /* Value to write into control register 2 */
13115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL2_OFST 16
13125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL2_LEN 4
13135e111ed8SAndrew Rybchenko /* Value to write into control register 3 */
13145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL3_OFST 20
13155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_IN_DIAG_DATAPATH_CTRL_RAW_CONFIG_CONTROL3_LEN 4
13165e111ed8SAndrew Rybchenko 
13175e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT msgresponse */
13185e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LEN 0
13195e111ed8SAndrew Rybchenko 
13205e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_NULL msgresponse */
13215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_NULL_LEN 0
13225e111ed8SAndrew Rybchenko 
13235e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_READ32 msgresponse */
13245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_LENMIN 4
13255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_LENMAX 252
13265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_LENMAX_MCDI2 1020
13275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_LEN(num) (0+4*(num))
13285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_NUM(len) (((len)-0)/4)
13295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_OFST 0
13305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_LEN 4
13315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_MINNUM 1
13325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_MAXNUM 63
13335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ32_BUFFER_MAXNUM_MCDI2 255
13345e111ed8SAndrew Rybchenko 
13355e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_WRITE32 msgresponse */
13365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_WRITE32_LEN 0
13375e111ed8SAndrew Rybchenko 
13385e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_TRC_READ msgresponse */
13395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_READ_LEN 16
13405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_READ_DATA_OFST 0
13415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_READ_DATA_LEN 4
13425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_READ_DATA_NUM 4
13435e111ed8SAndrew Rybchenko 
13445e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_TRC_WRITE msgresponse */
13455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_WRITE_LEN 0
13465e111ed8SAndrew Rybchenko 
13475e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_GET_VERSION msgresponse */
13485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_LEN 12
13495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_FIRMWARE_OFST 0
13505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_FIRMWARE_LEN 4
13515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_OFST 4
13525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LEN 8
13535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LO_OFST 4
1354*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LO_LEN 4
1355*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LO_LBN 32
1356*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_LO_WIDTH 32
13575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_HI_OFST 8
1358*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_HI_LEN 4
1359*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_HI_LBN 64
1360*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_VERSION_VERSION_HI_WIDTH 32
13615e111ed8SAndrew Rybchenko 
13625e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_TRC_RX_READ msgresponse */
13635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_READ_LEN 8
13645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_OFST 0
13655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_LEN 4
13665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_READ_DATA_NUM 2
13675e111ed8SAndrew Rybchenko 
13685e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_TRC_RX_WRITE msgresponse */
13695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TRC_RX_WRITE_LEN 0
13705e111ed8SAndrew Rybchenko 
13715e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_RECONFIGURE msgresponse */
13725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_RECONFIGURE_LEN 0
13735e111ed8SAndrew Rybchenko 
13745e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_SET_LINK msgresponse */
13755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_SET_LINK_LEN 0
13765e111ed8SAndrew Rybchenko 
13775e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_READ_STATUS msgresponse */
13785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_READ_STATUS_LEN 4
13795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_READ_STATUS_STATUS_OFST 0
13805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_READ_STATUS_STATUS_LEN 4
13815e111ed8SAndrew Rybchenko 
13825e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_GET_RX_STATS msgresponse */
13835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_RX_NSTATS))+1))>>3)
13845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_OFST 0
13855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LEN 8
13865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LO_OFST 0
1387*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LO_LEN 4
1388*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LO_LBN 0
1389*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_LO_WIDTH 32
13905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_HI_OFST 4
1391*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_HI_LEN 4
1392*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_HI_LBN 32
1393*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_HI_WIDTH 32
13945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_RX_STATS_STATISTICS_NUM MC_CMD_FC_MAC_RX_NSTATS
13955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_OCTETS 0x0 /* enum */
13965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_OCTETS_OK 0x1 /* enum */
13975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_ALIGNMENT_ERRORS 0x2 /* enum */
13985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_PAUSE_MAC_CTRL_FRAMES 0x3 /* enum */
13995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_FRAMES_OK 0x4 /* enum */
14005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_CRC_ERRORS 0x5 /* enum */
14015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_VLAN_OK 0x6 /* enum */
14025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_ERRORS 0x7 /* enum */
14035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_UCAST_PKTS 0x8 /* enum */
14045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_MULTICAST_PKTS 0x9 /* enum */
14055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_BROADCAST_PKTS 0xa /* enum */
14065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_DROP_EVENTS 0xb /* enum */
14075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS 0xc /* enum */
14085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_UNDERSIZE_PKTS 0xd /* enum */
14095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_64 0xe /* enum */
14105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_65_127 0xf /* enum */
14115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_128_255 0x10 /* enum */
14125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_256_511 0x11 /* enum */
14135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_512_1023 0x12 /* enum */
14145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_1024_1518 0x13 /* enum */
14155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_PKTS_1519_MAX 0x14 /* enum */
14165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_OVERSIZE_PKTS 0x15 /* enum */
14175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_JABBERS 0x16 /* enum */
14185e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_STATS_FRAGMENTS 0x17 /* enum */
14195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_MAC_CONTROL_FRAMES 0x18 /* enum */
14205e111ed8SAndrew Rybchenko /* enum: (Last entry) */
14215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_RX_NSTATS 0x19
14225e111ed8SAndrew Rybchenko 
14235e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_GET_TX_STATS msgresponse */
14245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_TX_NSTATS))+1))>>3)
14255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_OFST 0
14265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LEN 8
14275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LO_OFST 0
1428*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LO_LEN 4
1429*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LO_LBN 0
1430*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_LO_WIDTH 32
14315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_HI_OFST 4
1432*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_HI_LEN 4
1433*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_HI_LBN 32
1434*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_HI_WIDTH 32
14355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_TX_STATS_STATISTICS_NUM MC_CMD_FC_MAC_TX_NSTATS
14365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_OCTETS 0x0 /* enum */
14375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_OCTETS_OK 0x1 /* enum */
14385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_ALIGNMENT_ERRORS 0x2 /* enum */
14395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_PAUSE_MAC_CTRL_FRAMES 0x3 /* enum */
14405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_FRAMES_OK 0x4 /* enum */
14415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_CRC_ERRORS 0x5 /* enum */
14425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_VLAN_OK 0x6 /* enum */
14435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_ERRORS 0x7 /* enum */
14445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_UCAST_PKTS 0x8 /* enum */
14455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_MULTICAST_PKTS 0x9 /* enum */
14465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_BROADCAST_PKTS 0xa /* enum */
14475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_DROP_EVENTS 0xb /* enum */
14485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS 0xc /* enum */
14495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_UNDERSIZE_PKTS 0xd /* enum */
14505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_64 0xe /* enum */
14515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_65_127 0xf /* enum */
14525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_128_255 0x10 /* enum */
14535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_256_511 0x11 /* enum */
14545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_512_1023 0x12 /* enum */
14555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_1024_1518 0x13 /* enum */
14565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_STATS_PKTS_1519_TX_MTU 0x14 /* enum */
14575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_MAC_CONTROL_FRAMES 0x15 /* enum */
14585e111ed8SAndrew Rybchenko /* enum: (Last entry) */
14595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_MAC_TX_NSTATS 0x16
14605e111ed8SAndrew Rybchenko 
14615e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC_GET_STATS msgresponse */
14625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_LEN ((((0-1+(64*MC_CMD_FC_MAC_NSTATS_PER_BLOCK))+1))>>3)
14635e111ed8SAndrew Rybchenko /* MAC Statistics */
14645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_OFST 0
14655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LEN 8
14665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LO_OFST 0
1467*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LO_LEN 4
1468*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LO_LBN 0
1469*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_LO_WIDTH 32
14705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_HI_OFST 4
1471*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_HI_LEN 4
1472*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_HI_LBN 32
1473*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_HI_WIDTH 32
14745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_GET_STATS_STATISTICS_NUM MC_CMD_FC_MAC_NSTATS_PER_BLOCK
14755e111ed8SAndrew Rybchenko 
14765e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_MAC msgresponse */
14775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_MAC_LEN 0
14785e111ed8SAndrew Rybchenko 
14795e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_SFP msgresponse */
14805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SFP_LEN 0
14815e111ed8SAndrew Rybchenko 
14825e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_TEST_START msgresponse */
14835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_START_LEN 0
14845e111ed8SAndrew Rybchenko 
14855e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_TEST_POLL msgresponse */
14865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_LEN 8
14875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_STATUS_OFST 0
14885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_STATUS_LEN 4
1489bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CODE_OFST 0
14905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CODE_LBN 0
14915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CODE_WIDTH 8
14925e111ed8SAndrew Rybchenko /* enum: Test not yet initiated */
14935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_NONE 0x0
14945e111ed8SAndrew Rybchenko /* enum: Test is in progress */
14955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_INPROGRESS 0x1
14965e111ed8SAndrew Rybchenko /* enum: Timed completed */
14975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_SUCCESS 0x2
14985e111ed8SAndrew Rybchenko /* enum: Test did not complete in specified time */
14995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OP_DDR_TEST_TIMER_EXPIRED 0x3
1500bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T0_OFST 0
15015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T0_LBN 11
15025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T0_WIDTH 1
1503bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T1_OFST 0
15045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T1_LBN 10
15055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_T1_WIDTH 1
1506bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B0_OFST 0
15075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B0_LBN 9
15085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B0_WIDTH 1
1509bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B1_OFST 0
15105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B1_LBN 8
15115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_PRESENT_B1_WIDTH 1
15125e111ed8SAndrew Rybchenko /* Test result from FPGA */
15135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_RESULT_OFST 4
15145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_RESULT_LEN 4
1515bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T0_OFST 4
15165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T0_LBN 31
15175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T0_WIDTH 1
1518bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T1_OFST 4
15195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T1_LBN 30
15205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_T1_WIDTH 1
1521bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B0_OFST 4
15225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B0_LBN 29
15235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B0_WIDTH 1
1524bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B1_OFST 4
15255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B1_LBN 28
15265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_FPGA_SUPPORTS_B1_WIDTH 1
1527bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T0_OFST 4
15285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T0_LBN 15
15295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T0_WIDTH 5
1530bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T1_OFST 4
15315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T1_LBN 10
15325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_T1_WIDTH 5
1533bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B0_OFST 4
15345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B0_LBN 5
15355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B0_WIDTH 5
1536bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B1_OFST 4
15375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B1_LBN 0
15385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_B1_WIDTH 5
15395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_COMPLETE 0x0 /* enum */
15405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_FAIL 0x1 /* enum */
15415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_TEST_PASS 0x2 /* enum */
15425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CAL_FAIL 0x3 /* enum */
15435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_POLL_CAL_SUCCESS 0x4 /* enum */
15445e111ed8SAndrew Rybchenko 
15455e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_TEST msgresponse */
15465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_TEST_LEN 0
15475e111ed8SAndrew Rybchenko 
15485e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_GET_ASSERT msgresponse */
15495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_LEN 144
15505e111ed8SAndrew Rybchenko /* Assertion status flag. */
15515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GLOBAL_FLAGS_OFST 0
15525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GLOBAL_FLAGS_LEN 4
1553bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_STATE_OFST 0
15545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_STATE_LBN 8
15555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_STATE_WIDTH 8
15565e111ed8SAndrew Rybchenko /* enum: No crash data available */
15575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_CLEAR 0x0
15585e111ed8SAndrew Rybchenko /* enum: New crash data available */
15595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NEW 0x1
15605e111ed8SAndrew Rybchenko /* enum: Crash data has been sent */
15615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NOTIFIED 0x2
1562bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_TYPE_OFST 0
15635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_TYPE_LBN 0
15645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_TYPE_WIDTH 8
15655e111ed8SAndrew Rybchenko /* enum: No crash has been recorded. */
15665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_NONE 0x0
15675e111ed8SAndrew Rybchenko /* enum: Crash due to exception. */
15685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_EXCEPTION 0x1
15695e111ed8SAndrew Rybchenko /* enum: Crash due to assertion. */
15705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_ASSERTION 0x2
15715e111ed8SAndrew Rybchenko /* Failing PC value */
15725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_SAVED_PC_OFFS_OFST 4
15735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_SAVED_PC_OFFS_LEN 4
15745e111ed8SAndrew Rybchenko /* Saved GP regs */
15755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_OFST 8
15765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_LEN 4
15775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_GP_REGS_OFFS_NUM 31
15785e111ed8SAndrew Rybchenko /* Exception Type */
15795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_TYPE_OFFS_OFST 132
15805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_TYPE_OFFS_LEN 4
15815e111ed8SAndrew Rybchenko /* Instruction at which exception occurred */
15825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_PC_ADDR_OFFS_OFST 136
15835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_PC_ADDR_OFFS_LEN 4
15845e111ed8SAndrew Rybchenko /* BAD Address that triggered address-based exception */
15855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_BAD_ADDR_OFFS_OFST 140
15865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GET_ASSERT_EXCEPTION_BAD_ADDR_OFFS_LEN 4
15875e111ed8SAndrew Rybchenko 
15885e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_FPGA_BUILD msgresponse */
15895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_LEN 32
15905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_INFO_OFST 0
15915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_INFO_LEN 4
1592bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_APPLICATION_OFST 0
15935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_APPLICATION_LBN 31
15945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_APPLICATION_WIDTH 1
1595bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_LICENSED_OFST 0
15965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_LICENSED_LBN 30
15975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IS_LICENSED_WIDTH 1
1598bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_ID_OFST 0
15995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_ID_LBN 16
16005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_COMPONENT_ID_WIDTH 14
1601bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MAJOR_OFST 0
16025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MAJOR_LBN 12
16035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MAJOR_WIDTH 4
1604bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MINOR_OFST 0
16055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MINOR_LBN 4
16065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_MINOR_WIDTH 8
1607bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_NUM_OFST 0
16085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_NUM_LBN 0
16095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_NUM_WIDTH 4
16105e111ed8SAndrew Rybchenko /* Build timestamp (seconds since epoch) */
16115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_TIMESTAMP_OFST 4
16125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_TIMESTAMP_LEN 4
16135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PARAMETERS_OFST 8
16145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PARAMETERS_LEN 4
1615bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_FPGA_TYPE_OFST 8
16165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_FPGA_TYPE_LBN 0
16175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_FPGA_TYPE_WIDTH 8
16185e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_TYPE_A7 0xa7 /* enum */
16195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_TYPE_A5 0xa5 /* enum */
1620bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED1_OFST 8
16215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED1_LBN 8
16225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED1_WIDTH 10
1623bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PTP_ENABLED_OFST 8
16245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PTP_ENABLED_LBN 18
16255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_PTP_ENABLED_WIDTH 1
1626bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM1_RLDRAM_DEF_OFST 8
16275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM1_RLDRAM_DEF_LBN 19
16285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM1_RLDRAM_DEF_WIDTH 1
1629bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM2_RLDRAM_DEF_OFST 8
16305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM2_RLDRAM_DEF_LBN 20
16315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM2_RLDRAM_DEF_WIDTH 1
1632bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM3_RLDRAM_DEF_OFST 8
16335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM3_RLDRAM_DEF_LBN 21
16345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM3_RLDRAM_DEF_WIDTH 1
1635bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM4_RLDRAM_DEF_OFST 8
16365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM4_RLDRAM_DEF_LBN 22
16375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM4_RLDRAM_DEF_WIDTH 1
1638bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T0_DDR3_DEF_OFST 8
16395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T0_DDR3_DEF_LBN 23
16405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T0_DDR3_DEF_WIDTH 1
1641bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_DDR3_DEF_OFST 8
16425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_DDR3_DEF_LBN 24
16435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_DDR3_DEF_WIDTH 1
1644bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B0_DDR3_DEF_OFST 8
16455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B0_DDR3_DEF_LBN 25
16465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B0_DDR3_DEF_WIDTH 1
1647bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B1_DDR3_DEF_OFST 8
16485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B1_DDR3_DEF_LBN 26
16495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_B1_DDR3_DEF_WIDTH 1
1650bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DDR3_ECC_ENABLED_OFST 8
16515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DDR3_ECC_ENABLED_LBN 27
16525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DDR3_ECC_ENABLED_WIDTH 1
1653bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_QDR_DEF_OFST 8
16545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_QDR_DEF_LBN 28
16555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_SODIMM_T1_QDR_DEF_WIDTH 1
1656bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED2_OFST 8
16575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED2_LBN 29
16585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED2_WIDTH 2
1659bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CRC_APPEND_OFST 8
16605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CRC_APPEND_LBN 31
16615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CRC_APPEND_WIDTH 1
16625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IDENTIFIER_OFST 12
16635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_IDENTIFIER_LEN 4
1664bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CHANGESET_OFST 12
16655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CHANGESET_LBN 0
16665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_CHANGESET_WIDTH 16
1667bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_FLAG_OFST 12
16685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_FLAG_LBN 16
16695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_BUILD_FLAG_WIDTH 1
16705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 /* enum */
16715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 /* enum */
1672bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED3_OFST 12
16735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED3_LBN 17
16745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED3_WIDTH 15
16755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_HI_OFST 16
16765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_HI_LEN 4
1677bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MINOR_OFST 16
16785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MINOR_LBN 0
16795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MINOR_WIDTH 16
1680bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MAJOR_OFST 16
16815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MAJOR_LBN 16
16825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MAJOR_WIDTH 16
16835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_LO_OFST 20
16845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_VERSION_LO_LEN 4
1685bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_BUILD_OFST 20
16865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_BUILD_LBN 0
16875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_BUILD_WIDTH 16
1688bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MICRO_OFST 20
16895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MICRO_LBN 16
16905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_DEPLOYMENT_VERSION_MICRO_WIDTH 16
16915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_OFST 16
16925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LEN 8
16935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LO_OFST 16
1694*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LO_LEN 4
1695*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LO_LBN 128
1696*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_LO_WIDTH 32
16975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_HI_OFST 20
1698*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_HI_LEN 4
1699*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_HI_LBN 160
1700*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_RESERVED4_HI_WIDTH 32
17015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_LO_OFST 24
17025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_LO_LEN 4
17035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HI_OFST 28
17045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HI_LEN 4
1705bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HIGH_OFST 28
17065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HIGH_LBN 0
17075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_REVISION_HIGH_WIDTH 16
17085e111ed8SAndrew Rybchenko 
17095e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_FPGA_BUILD_V2 msgresponse */
17105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_LEN 32
17115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_INFO_OFST 0
17125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_INFO_LEN 4
1713bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_APPLICATION_OFST 0
17145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_APPLICATION_LBN 31
17155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_APPLICATION_WIDTH 1
1716bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_LICENSED_OFST 0
17175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_LICENSED_LBN 30
17185e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IS_LICENSED_WIDTH 1
1719bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_ID_OFST 0
17205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_ID_LBN 16
17215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_COMPONENT_ID_WIDTH 14
1722bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MAJOR_OFST 0
17235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MAJOR_LBN 12
17245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MAJOR_WIDTH 4
1725bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MINOR_OFST 0
17265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MINOR_LBN 4
17275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_MINOR_WIDTH 8
1728bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_NUM_OFST 0
17295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_NUM_LBN 0
17305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_NUM_WIDTH 4
17315e111ed8SAndrew Rybchenko /* Build timestamp (seconds since epoch) */
17325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_TIMESTAMP_OFST 4
17335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_TIMESTAMP_LEN 4
17345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PARAMETERS_OFST 8
17355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PARAMETERS_LEN 4
1736bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PMA_PASSTHROUGH_OFST 8
17375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PMA_PASSTHROUGH_LBN 31
17385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_PMA_PASSTHROUGH_WIDTH 1
1739bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_QDR_DEF_OFST 8
17405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_QDR_DEF_LBN 29
17415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_QDR_DEF_WIDTH 1
1742bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_QDR_DEF_OFST 8
17435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_QDR_DEF_LBN 28
17445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_QDR_DEF_WIDTH 1
1745bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DDR3_ECC_ENABLED_OFST 8
17465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DDR3_ECC_ENABLED_LBN 27
17475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DDR3_ECC_ENABLED_WIDTH 1
1748bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_DDR3_DEF_OFST 8
17495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_DDR3_DEF_LBN 26
17505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_DDR3_DEF_WIDTH 1
1751bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_DDR3_DEF_OFST 8
17525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_DDR3_DEF_LBN 25
17535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_DDR3_DEF_WIDTH 1
1754bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_TO_DDR3_DEF_OFST 8
17555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_TO_DDR3_DEF_LBN 24
17565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_TO_DDR3_DEF_WIDTH 1
1757bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_T0_DDR3_DEF_OFST 8
17585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_T0_DDR3_DEF_LBN 23
17595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_T0_DDR3_DEF_WIDTH 1
1760bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_RLDRAM_DEF_OFST 8
17615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_RLDRAM_DEF_LBN 22
17625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE2_RLDRAM_DEF_WIDTH 1
1763bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_RLDRAM_DEF_OFST 8
17645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_RLDRAM_DEF_LBN 21
17655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DISCRETE1_RLDRAM_DEF_WIDTH 1
1766bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_RLDRAM_DEF_OFST 8
17675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_RLDRAM_DEF_LBN 20
17685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM2_RLDRAM_DEF_WIDTH 1
1769bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_RLDRAM_DEF_OFST 8
17705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_RLDRAM_DEF_LBN 19
17715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SODIMM1_RLDRAM_DEF_WIDTH 1
1772bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_OFST 8
17735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_LBN 18
17745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_WIDTH 1
17755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_10G 0x0 /* enum */
17765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_3_SPEED_40G 0x1 /* enum */
1777bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_OFST 8
17785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_LBN 17
17795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_WIDTH 1
17805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_10G 0x0 /* enum */
17815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_7_SPEED_40G 0x1 /* enum */
1782bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_OFST 8
17835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_LBN 16
17845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_WIDTH 1
17855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_10G 0x0 /* enum */
17865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_3_SPEED_40G 0x1 /* enum */
1787bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP7_DEF_OFST 8
17885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP7_DEF_LBN 15
17895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP7_DEF_WIDTH 1
1790bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP6_DEF_OFST 8
17915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP6_DEF_LBN 14
17925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP6_DEF_WIDTH 1
1793bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP5_DEF_OFST 8
17945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP5_DEF_LBN 13
17955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP5_DEF_WIDTH 1
1796bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_DEF_OFST 8
17975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_DEF_LBN 12
17985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP4_DEF_WIDTH 1
1799bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP3_DEF_OFST 8
18005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP3_DEF_LBN 11
18015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP3_DEF_WIDTH 1
1802bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP2_DEF_OFST 8
18035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP2_DEF_LBN 10
18045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP2_DEF_WIDTH 1
1805bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP1_DEF_OFST 8
18065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP1_DEF_LBN 9
18075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP1_DEF_WIDTH 1
1808bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_DEF_OFST 8
18095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_DEF_LBN 8
18105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_SFP0_DEF_WIDTH 1
1811bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC3_DEF_OFST 8
18125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC3_DEF_LBN 7
18135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC3_DEF_WIDTH 1
1814bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC2_DEF_OFST 8
18155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC2_DEF_LBN 6
18165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC2_DEF_WIDTH 1
1817bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC1_DEF_OFST 8
18185e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC1_DEF_LBN 5
18195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC1_DEF_WIDTH 1
1820bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_DEF_OFST 8
18215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_DEF_LBN 4
18225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_NIC0_DEF_WIDTH 1
1823bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_FPGA_TYPE_OFST 8
18245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_FPGA_TYPE_LBN 0
18255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_FPGA_TYPE_WIDTH 4
18265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_A3 0x0 /* enum */
18275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_A4 0x1 /* enum */
18285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_A5 0x2 /* enum */
18295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_A7 0x3 /* enum */
18305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_D3 0x8 /* enum */
18315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_D4 0x9 /* enum */
18325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_D5 0xa /* enum */
18335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_FPGA_V2_TYPE_D7 0xb /* enum */
18345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IDENTIFIER_OFST 12
18355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_IDENTIFIER_LEN 4
1836bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_CHANGESET_OFST 12
18375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_CHANGESET_LBN 0
18385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_CHANGESET_WIDTH 16
1839bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_FLAG_OFST 12
18405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_FLAG_LBN 16
18415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_BUILD_FLAG_WIDTH 1
18425e111ed8SAndrew Rybchenko /*               MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 */
18435e111ed8SAndrew Rybchenko /*               MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 */
18445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_HI_OFST 16
18455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_HI_LEN 4
1846bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MINOR_OFST 16
18475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MINOR_LBN 0
18485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MINOR_WIDTH 16
1849bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MAJOR_OFST 16
18505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MAJOR_LBN 16
18515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MAJOR_WIDTH 16
18525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_LO_OFST 20
18535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_VERSION_LO_LEN 4
1854bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_BUILD_OFST 20
18555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_BUILD_LBN 0
18565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_BUILD_WIDTH 16
1857bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MICRO_OFST 20
18585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MICRO_LBN 16
18595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_DEPLOYMENT_VERSION_MICRO_WIDTH 16
18605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_LO_OFST 24
18615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_LO_LEN 4
18625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HI_OFST 28
18635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HI_LEN 4
1864bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HIGH_OFST 28
18655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HIGH_LBN 0
18665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_BUILD_V2_REVISION_HIGH_WIDTH 16
18675e111ed8SAndrew Rybchenko 
18685e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_FPGA_SERVICES msgresponse */
18695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_LEN 32
18705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_INFO_OFST 0
18715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_INFO_LEN 4
1872bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_APPLICATION_OFST 0
18735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_APPLICATION_LBN 31
18745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_APPLICATION_WIDTH 1
1875bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_LICENSED_OFST 0
18765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_LICENSED_LBN 30
18775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IS_LICENSED_WIDTH 1
1878bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_ID_OFST 0
18795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_ID_LBN 16
18805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_COMPONENT_ID_WIDTH 14
1881bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MAJOR_OFST 0
18825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MAJOR_LBN 12
18835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MAJOR_WIDTH 4
1884bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MINOR_OFST 0
18855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MINOR_LBN 4
18865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_VERSION_MINOR_WIDTH 8
1887bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_NUM_OFST 0
18885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_NUM_LBN 0
18895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_NUM_WIDTH 4
18905e111ed8SAndrew Rybchenko /* Build timestamp (seconds since epoch) */
18915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_TIMESTAMP_OFST 4
18925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_TIMESTAMP_LEN 4
18935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_PARAMETERS_OFST 8
18945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_PARAMETERS_LEN 4
1895bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_FC_FLASH_BOOTED_OFST 8
18965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_FC_FLASH_BOOTED_LBN 8
18975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_FC_FLASH_BOOTED_WIDTH 1
1898bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC0_DEF_OFST 8
18995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC0_DEF_LBN 27
19005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC0_DEF_WIDTH 1
1901bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC1_DEF_OFST 8
19025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC1_DEF_LBN 28
19035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_NIC1_DEF_WIDTH 1
1904bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP0_DEF_OFST 8
19055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP0_DEF_LBN 29
19065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP0_DEF_WIDTH 1
1907bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP1_DEF_OFST 8
19085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP1_DEF_LBN 30
19095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_SFP1_DEF_WIDTH 1
1910bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_RESERVED_OFST 8
19115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_RESERVED_LBN 31
19125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_RESERVED_WIDTH 1
19135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IDENTIFIER_OFST 12
19145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_IDENTIFIER_LEN 4
1915bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_CHANGESET_OFST 12
19165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_CHANGESET_LBN 0
19175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_CHANGESET_WIDTH 16
1918bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_FLAG_OFST 12
19195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_FLAG_LBN 16
19205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_BUILD_FLAG_WIDTH 1
19215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_OFST 16
19225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_LEN 4
1923bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_WIDTH_OFST 16
19245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_WIDTH_LBN 0
19255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_WIDTH_WIDTH 16
1926bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_COUNT_OFST 16
19275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_COUNT_LBN 16
19285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_MEMORY_SIZE_COUNT_WIDTH 16
19295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_OFST 20
19305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_LEN 4
1931bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_WIDTH_OFST 20
19325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_WIDTH_LBN 0
19335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_WIDTH_WIDTH 16
1934bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_COUNT_OFST 20
19355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_COUNT_LBN 16
19365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_INSTANCE_SIZE_COUNT_WIDTH 16
19375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_LO_OFST 24
19385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_LO_LEN 4
19395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HI_OFST 28
19405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HI_LEN 4
1941bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HIGH_OFST 28
19425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HIGH_LBN 0
19435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_REVISION_HIGH_WIDTH 16
19445e111ed8SAndrew Rybchenko 
19455e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_FPGA_SERVICES_V2 msgresponse */
19465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_LEN 32
19475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_INFO_OFST 0
19485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_INFO_LEN 4
1949bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_APPLICATION_OFST 0
19505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_APPLICATION_LBN 31
19515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_APPLICATION_WIDTH 1
1952bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_LICENSED_OFST 0
19535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_LICENSED_LBN 30
19545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IS_LICENSED_WIDTH 1
1955bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_ID_OFST 0
19565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_ID_LBN 16
19575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_COMPONENT_ID_WIDTH 14
1958bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MAJOR_OFST 0
19595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MAJOR_LBN 12
19605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MAJOR_WIDTH 4
1961bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MINOR_OFST 0
19625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MINOR_LBN 4
19635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_VERSION_MINOR_WIDTH 8
1964bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_NUM_OFST 0
19655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_NUM_LBN 0
19665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_NUM_WIDTH 4
19675e111ed8SAndrew Rybchenko /* Build timestamp (seconds since epoch) */
19685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_TIMESTAMP_OFST 4
19695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_TIMESTAMP_LEN 4
19705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PARAMETERS_OFST 8
19715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PARAMETERS_LEN 4
1972bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PTP_ENABLED_OFST 8
19735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PTP_ENABLED_LBN 0
19745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_PTP_ENABLED_WIDTH 1
1975bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_FC_FLASH_BOOTED_OFST 8
19765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_FC_FLASH_BOOTED_LBN 8
19775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_FC_FLASH_BOOTED_WIDTH 1
19785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IDENTIFIER_OFST 12
19795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_IDENTIFIER_LEN 4
1980bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_CHANGESET_OFST 12
19815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_CHANGESET_LBN 0
19825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_CHANGESET_WIDTH 16
1983bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_FLAG_OFST 12
19845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_FLAG_LBN 16
19855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_BUILD_FLAG_WIDTH 1
19865e111ed8SAndrew Rybchenko /*               MC_CMD_FC_FPGA_BUILD_FLAG_INTERNAL 0x0 */
19875e111ed8SAndrew Rybchenko /*               MC_CMD_FC_FPGA_BUILD_FLAG_RELEASE 0x1 */
19885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_LO_OFST 24
19895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_LO_LEN 4
19905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HI_OFST 28
19915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HI_LEN 4
1992bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HIGH_OFST 28
19935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HIGH_LBN 0
19945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_FPGA_SERVICES_V2_REVISION_HIGH_WIDTH 16
19955e111ed8SAndrew Rybchenko 
19965e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_BSP_VERSION msgresponse */
19975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_LEN 4
19985e111ed8SAndrew Rybchenko /* Qsys system ID */
19995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_SYSID_OFST 0
20005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_SYSID_LEN 4
2001bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MAJOR_OFST 0
20025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MAJOR_LBN 12
20035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MAJOR_WIDTH 4
2004bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MINOR_OFST 0
20055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MINOR_LBN 4
20065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_VERSION_MINOR_WIDTH 8
2007bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_BUILD_NUM_OFST 0
20085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_BUILD_NUM_LBN 0
20095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_BSP_VERSION_BUILD_NUM_WIDTH 4
20105e111ed8SAndrew Rybchenko 
20115e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_READ_MAP_COUNT msgresponse */
20125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_COUNT_LEN 4
20135e111ed8SAndrew Rybchenko /* Number of maps */
20145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_COUNT_NUM_MAPS_OFST 0
20155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_COUNT_NUM_MAPS_LEN 4
20165e111ed8SAndrew Rybchenko 
20175e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_READ_MAP_INDEX msgresponse */
20185e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN 164
20195e111ed8SAndrew Rybchenko /* Index of the map */
20205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_INDEX_OFST 0
20215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_INDEX_LEN 4
20225e111ed8SAndrew Rybchenko /* Options for the map */
20235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_OPTIONS_OFST 4
20245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_OPTIONS_LEN 4
20255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_8 0x0 /* enum */
20265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_16 0x1 /* enum */
20275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_32 0x2 /* enum */
20285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_64 0x3 /* enum */
20295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ALIGN_MASK 0x3 /* enum */
20305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PATH_FC 0x4 /* enum */
20315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PATH_MEM 0x8 /* enum */
20325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PERM_READ 0x10 /* enum */
20335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_PERM_WRITE 0x20 /* enum */
20345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_FREE 0x0 /* enum */
20355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_LICENSED 0x40 /* enum */
20365e111ed8SAndrew Rybchenko /* Address of start of map */
20375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_OFST 8
20385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LEN 8
20395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LO_OFST 8
2040*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LO_LEN 4
2041*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LO_LBN 64
2042*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_LO_WIDTH 32
20435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_HI_OFST 12
2044*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_HI_LEN 4
2045*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_HI_LBN 96
2046*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_ADDRESS_HI_WIDTH 32
20475e111ed8SAndrew Rybchenko /* Length of address map */
20485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_OFST 16
20495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LEN 8
20505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LO_OFST 16
2051*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LO_LEN 4
2052*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LO_LBN 128
2053*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_LO_WIDTH 32
20545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_HI_OFST 20
2055*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_HI_LEN 4
2056*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_HI_LBN 160
2057*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LEN_HI_WIDTH 32
20585e111ed8SAndrew Rybchenko /* Component information field */
20595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_COMP_INFO_OFST 24
20605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_COMP_INFO_LEN 4
20615e111ed8SAndrew Rybchenko /* License expiry data for map */
20625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_OFST 28
20635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LEN 8
20645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LO_OFST 28
2065*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LO_LEN 4
2066*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LO_LBN 224
2067*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_LO_WIDTH 32
20685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_HI_OFST 32
2069*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_HI_LEN 4
2070*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_HI_LBN 256
2071*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_LICENSE_DATE_HI_WIDTH 32
20725e111ed8SAndrew Rybchenko /* Name of the component */
20735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_OFST 36
20745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_LEN 1
20755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_INDEX_NAME_NUM 128
20765e111ed8SAndrew Rybchenko 
20775e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_READ_MAP msgresponse */
20785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_READ_MAP_LEN 0
20795e111ed8SAndrew Rybchenko 
20805e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_CAPABILITIES msgresponse */
20815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_LEN 8
20825e111ed8SAndrew Rybchenko /* Number of internal ports */
20835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_INTERNAL_OFST 0
20845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_INTERNAL_LEN 4
20855e111ed8SAndrew Rybchenko /* Number of external ports */
20865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_EXTERNAL_OFST 4
20875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CAPABILITIES_EXTERNAL_LEN 4
20885e111ed8SAndrew Rybchenko 
20895e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_GLOBAL_FLAGS msgresponse */
20905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_LEN 4
20915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_FLAGS_OFST 0
20925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_GLOBAL_FLAGS_FLAGS_LEN 4
20935e111ed8SAndrew Rybchenko 
20945e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_IO_REL msgresponse */
20955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_LEN 0
20965e111ed8SAndrew Rybchenko 
20975e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_IO_REL_GET_ADDR msgresponse */
20985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_LEN 8
20995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_HI_OFST 0
21005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_HI_LEN 4
21015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_LO_OFST 4
21025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_GET_ADDR_ADDR_LO_LEN 4
21035e111ed8SAndrew Rybchenko 
21045e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_IO_REL_READ32 msgresponse */
21055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_LENMIN 4
21065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_LENMAX 252
21075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_LENMAX_MCDI2 1020
21085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_LEN(num) (0+4*(num))
21095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_NUM(len) (((len)-0)/4)
21105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_OFST 0
21115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_LEN 4
21125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_MINNUM 1
21135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_MAXNUM 63
21145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_READ32_BUFFER_MAXNUM_MCDI2 255
21155e111ed8SAndrew Rybchenko 
21165e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_IO_REL_WRITE32 msgresponse */
21175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_IO_REL_WRITE32_LEN 0
21185e111ed8SAndrew Rybchenko 
21195e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_PHY msgresponse */
21205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LEN 48
21215e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_0_OFST 0
21225e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_0_LEN 4
2123bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_VOD_OFST 0
21245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_VOD_LBN 0
21255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_VOD_WIDTH 16
2126bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_1STPOSTTAP_OFST 0
21275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_1STPOSTTAP_LBN 16
21285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_1STPOSTTAP_WIDTH 16
21295e111ed8SAndrew Rybchenko /* Transceiver Transmit settings */
21305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_1_OFST 4
21315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_SETTINGS_1_LEN 4
2132bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_PRETAP_OFST 4
21335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_PRETAP_LBN 0
21345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_PRETAP_WIDTH 16
2135bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_2NDPOSTTAP_OFST 4
21365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_2NDPOSTTAP_LBN 16
21375e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_TX_PREEMP_2NDPOSTTAP_WIDTH 16
21385e111ed8SAndrew Rybchenko /* Transceiver Receive settings */
21395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_SETTINGS_OFST 8
21405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_SETTINGS_LEN 4
2141bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_DC_GAIN_OFST 8
21425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_DC_GAIN_LBN 0
21435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_DC_GAIN_WIDTH 16
2144bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_EQ_CONTROL_OFST 8
21455e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_EQ_CONTROL_LBN 16
21465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_TRC_RX_EQ_CONTROL_WIDTH 16
21475e111ed8SAndrew Rybchenko /* Rx eye opening */
21485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_OFST 12
21495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_LEN 4
2150bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_WIDTH_OFST 12
21515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_WIDTH_LBN 0
21525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_WIDTH_WIDTH 16
2153bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_HEIGHT_OFST 12
21545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_HEIGHT_LBN 16
21555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_RX_EYE_HEIGHT_WIDTH 16
21565e111ed8SAndrew Rybchenko /* PCS status word */
21575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PCS_STATUS_OFST 16
21585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PCS_STATUS_LEN 4
21595e111ed8SAndrew Rybchenko /* Link status word */
21605e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WORD_OFST 20
21615e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WORD_LEN 4
2162bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_OFST 20
21635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_LBN 0
21645e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_STATE_WIDTH 1
2165bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_CONFIGURED_OFST 20
21665e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_CONFIGURED_LBN 1
21675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_LINK_CONFIGURED_WIDTH 1
21685e111ed8SAndrew Rybchenko /* Current SFp parameters applied */
21695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PARAMS_OFST 24
21705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PARAMS_LEN 20
21715e111ed8SAndrew Rybchenko /* Link speed is 100, 1000, 10000 */
21725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_SPEED_OFST 24
21735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_SPEED_LEN 4
21745e111ed8SAndrew Rybchenko /* Length of copper cable - zero when not relevant */
21755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_COPPER_LEN_OFST 28
21765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_COPPER_LEN_LEN 4
21775e111ed8SAndrew Rybchenko /* True if a dual speed SFP+ module */
21785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_DUAL_SPEED_OFST 32
21795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_DUAL_SPEED_LEN 4
21805e111ed8SAndrew Rybchenko /* True if an SFP Module is present (other fields valid when true) */
21815e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PRESENT_OFST 36
21825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_PRESENT_LEN 4
21835e111ed8SAndrew Rybchenko /* The type of the SFP+ Module */
21845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_TYPE_OFST 40
21855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_SFP_TYPE_LEN 4
21865e111ed8SAndrew Rybchenko /* PHY config flags */
21875e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_OFST 44
21885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_LEN 4
2189bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_DFE_OFST 44
21905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_DFE_LBN 0
21915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_DFE_WIDTH 1
2192bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_AEQ_OFST 44
21935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_AEQ_LBN 1
21945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_AEQ_WIDTH 1
2195bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_RX_TUNING_OFST 44
21965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_RX_TUNING_LBN 2
21975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_PHY_PHY_CFG_RX_TUNING_WIDTH 1
21985e111ed8SAndrew Rybchenko 
21995e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_MAC msgresponse */
22005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_LEN 20
22015e111ed8SAndrew Rybchenko /* MAC configuration applied */
22025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_CONFIG_OFST 0
22035e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_CONFIG_LEN 4
22045e111ed8SAndrew Rybchenko /* MTU size */
22055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_MTU_OFST 4
22065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_MTU_LEN 4
22075e111ed8SAndrew Rybchenko /* IF Mode status */
22085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_IF_STATUS_OFST 8
22095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_IF_STATUS_LEN 4
22105e111ed8SAndrew Rybchenko /* MAC address configured */
22115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_OFST 12
22125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LEN 8
22135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LO_OFST 12
2214*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LO_LEN 4
2215*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LO_LBN 96
2216*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_LO_WIDTH 32
22175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_HI_OFST 16
2218*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_HI_LEN 4
2219*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_HI_LBN 128
2220*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_MAC_ADDR_HI_WIDTH 32
22215e111ed8SAndrew Rybchenko 
22225e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_RX_EYE msgresponse */
22235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_LEN ((((0-1+(32*MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK))+1))>>3)
22245e111ed8SAndrew Rybchenko /* Rx Eye measurements */
22255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_OFST 0
22265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_LEN 4
22275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_EYE_RX_EYE_NUM MC_CMD_FC_UHLINK_RX_EYE_PER_BLOCK
22285e111ed8SAndrew Rybchenko 
22295e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_DUMP_RX_EYE_PLOT msgresponse */
22305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_DUMP_RX_EYE_PLOT_LEN 0
22315e111ed8SAndrew Rybchenko 
22325e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT msgresponse */
22335e111ed8SAndrew 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)
22345e111ed8SAndrew Rybchenko /* Has the eye plot dump completed and data returned is valid? */
22355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_VALID_OFST 0
22365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_VALID_LEN 4
22375e111ed8SAndrew Rybchenko /* Rx Eye binary plot */
22385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_OFST 4
22395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LEN 8
22405e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LO_OFST 4
2241*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LO_LEN 4
2242*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LO_LBN 32
2243*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_LO_WIDTH 32
22445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_HI_OFST 8
2245*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_HI_LEN 4
2246*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_HI_LBN 64
2247*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_HI_WIDTH 32
22485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_READ_RX_EYE_PLOT_ROWS_NUM MC_CMD_FC_UHLINK_RX_EYE_PLOT_ROWS_PER_BLOCK
22495e111ed8SAndrew Rybchenko 
22505e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_RX_TUNE msgresponse */
22515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_RX_TUNE_LEN 0
22525e111ed8SAndrew Rybchenko 
22535e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_LOOPBACK_SET msgresponse */
22545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_SET_LEN 0
22555e111ed8SAndrew Rybchenko 
22565e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET msgresponse */
22575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_LEN 4
22585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_STATE_OFST 0
22595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LOOPBACK_GET_STATE_LEN 4
22605e111ed8SAndrew Rybchenko 
22615e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_UHLINK msgresponse */
22625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_UHLINK_LEN 0
22635e111ed8SAndrew Rybchenko 
22645e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_SET_LINK msgresponse */
22655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SET_LINK_LEN 0
22665e111ed8SAndrew Rybchenko 
22675e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_LICENSE msgresponse */
22685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_LEN 12
22695e111ed8SAndrew Rybchenko /* Count of valid keys */
22705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_VALID_KEYS_OFST 0
22715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_VALID_KEYS_LEN 4
22725e111ed8SAndrew Rybchenko /* Count of invalid keys */
22735e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_INVALID_KEYS_OFST 4
22745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_INVALID_KEYS_LEN 4
22755e111ed8SAndrew Rybchenko /* Count of blacklisted keys */
22765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_BLACKLISTED_KEYS_OFST 8
22775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LICENSE_BLACKLISTED_KEYS_LEN 4
22785e111ed8SAndrew Rybchenko 
22795e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_STARTUP msgresponse */
22805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_LEN 4
22815e111ed8SAndrew Rybchenko /* Capabilities of the FPGA/FC */
22825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAPABILITIES_OFST 0
22835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAPABILITIES_LEN 4
2284bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAN_ACCESS_FLASH_OFST 0
22855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAN_ACCESS_FLASH_LBN 0
22865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_STARTUP_CAN_ACCESS_FLASH_WIDTH 1
22875e111ed8SAndrew Rybchenko 
22885e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DMA_READ msgresponse */
22895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_LENMIN 1
22905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_LENMAX 252
22915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_LENMAX_MCDI2 1020
22925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_LEN(num) (0+1*(num))
22935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_NUM(len) (((len)-0)/1)
22945e111ed8SAndrew Rybchenko /* The data read */
22955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_OFST 0
22965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_LEN 1
22975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_MINNUM 1
22985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_MAXNUM 252
22995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DMA_READ_DATA_MAXNUM_MCDI2 1020
23005e111ed8SAndrew Rybchenko 
23015e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_TIMED_READ_SET msgresponse */
23025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_SET_LEN 4
23035e111ed8SAndrew Rybchenko /* Timer handle */
23045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_SET_FC_HANDLE_OFST 0
23055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_SET_FC_HANDLE_LEN 4
23065e111ed8SAndrew Rybchenko 
23075e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_TIMED_READ_GET msgresponse */
23085e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_LEN 52
23095e111ed8SAndrew Rybchenko /* Host supplied handle (unique) */
23105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_HANDLE_OFST 0
23115e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_HANDLE_LEN 4
23125e111ed8SAndrew Rybchenko /* Address into which to transfer data in host */
23135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_OFST 4
23145e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LEN 8
23155e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LO_OFST 4
2316*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LO_LEN 4
2317*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LO_LBN 32
2318*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_LO_WIDTH 32
23195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_HI_OFST 8
2320*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_HI_LEN 4
2321*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_HI_LBN 64
2322*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_DMA_ADDRESS_HI_WIDTH 32
23235e111ed8SAndrew Rybchenko /* AOE address from which to transfer data */
23245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_OFST 12
23255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LEN 8
23265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LO_OFST 12
2327*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LO_LEN 4
2328*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LO_LBN 96
2329*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_LO_WIDTH 32
23305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_HI_OFST 16
2331*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_HI_LEN 4
2332*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_HI_LBN 128
2333*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_ADDRESS_HI_WIDTH 32
23345e111ed8SAndrew Rybchenko /* Length of AOE transfer (total) */
23355e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_LENGTH_OFST 20
23365e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_AOE_LENGTH_LEN 4
23375e111ed8SAndrew Rybchenko /* Length of host transfer (total) */
23385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_LENGTH_OFST 24
23395e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_HOST_LENGTH_LEN 4
23405e111ed8SAndrew Rybchenko /* See FLAGS entry for MC_CMD_FC_IN_TIMED_READ_SET */
23415e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_FLAGS_OFST 28
23425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_FLAGS_LEN 4
23435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_PERIOD_OFST 32
23445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_PERIOD_LEN 4
23455e111ed8SAndrew Rybchenko /* When active, start read time */
23465e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_OFST 36
23475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LEN 8
23485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LO_OFST 36
2349*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LO_LEN 4
2350*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LO_LBN 288
2351*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_LO_WIDTH 32
23525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_HI_OFST 40
2353*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_HI_LEN 4
2354*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_HI_LBN 320
2355*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_START_HI_WIDTH 32
23565e111ed8SAndrew Rybchenko /* When active, end read time */
23575e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_OFST 44
23585e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LEN 8
23595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LO_OFST 44
2360*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LO_LEN 4
2361*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LO_LBN 352
2362*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_LO_WIDTH 32
23635e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_HI_OFST 48
2364*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_HI_LEN 4
2365*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_HI_LBN 384
2366*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMED_READ_GET_CLOCK_END_HI_WIDTH 32
23675e111ed8SAndrew Rybchenko 
23685e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_LOG_ADDR_RANGE msgresponse */
23695e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LOG_ADDR_RANGE_LEN 0
23705e111ed8SAndrew Rybchenko 
23715e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_LOG msgresponse */
23725e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_LOG_LEN 0
23735e111ed8SAndrew Rybchenko 
23745e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_CLOCK_GET_TIME msgresponse */
23755e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_LEN 24
23765e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_CLOCK_ID_OFST 0
23775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_CLOCK_ID_LEN 4
23785e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_OFST 4
23795e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LEN 8
23805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LO_OFST 4
2381*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LO_LEN 4
2382*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LO_LBN 32
2383*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_LO_WIDTH 32
23845e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_HI_OFST 8
2385*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_HI_LEN 4
2386*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_HI_LBN 64
2387*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_SECONDS_HI_WIDTH 32
23885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_NANOSECONDS_OFST 12
23895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_NANOSECONDS_LEN 4
23905e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_RANGE_OFST 16
23915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_RANGE_LEN 4
23925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_PRECISION_OFST 20
23935e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_GET_TIME_PRECISION_LEN 4
23945e111ed8SAndrew Rybchenko 
23955e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_CLOCK_SET_TIME msgresponse */
23965e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_CLOCK_SET_TIME_LEN 0
23975e111ed8SAndrew Rybchenko 
23985e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_SET_SPD msgresponse */
23995e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_SET_SPD_LEN 0
24005e111ed8SAndrew Rybchenko 
24015e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_SET_INFO msgresponse */
24025e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_SET_INFO_LEN 0
24035e111ed8SAndrew Rybchenko 
24045e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DDR_GET_STATUS msgresponse */
24055e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_LEN 4
24065e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_FLAGS_OFST 0
24075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_FLAGS_LEN 4
2408bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_READY_OFST 0
24095e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_READY_LBN 0
24105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_READY_WIDTH 1
2411bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_CALIBRATED_OFST 0
24125e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_CALIBRATED_LBN 1
24135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DDR_GET_STATUS_CALIBRATED_WIDTH 1
24145e111ed8SAndrew Rybchenko 
24155e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT msgresponse */
24165e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_LEN 8
24175e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_SECONDS_OFST 0
24185e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_SECONDS_LEN 4
24195e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_NANOSECONDS_OFST 4
24205e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_TRANSMIT_NANOSECONDS_LEN 4
24215e111ed8SAndrew Rybchenko 
24225e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT msgresponse */
24235e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LENMIN 8
24245e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LENMAX 248
24255e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LENMAX_MCDI2 1016
24265e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_LEN(num) (0+8*(num))
24275e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_NUM(len) (((len)-0)/8)
24285e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_SECONDS_OFST 0
24295e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_SECONDS_LEN 4
24305e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_NANOSECONDS_OFST 4
24315e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_NANOSECONDS_LEN 4
24325e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_OFST 0
24335e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LEN 8
24345e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LO_OFST 0
2435*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LO_LEN 4
2436*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LO_LBN 0
2437*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_LO_WIDTH 32
24385e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_HI_OFST 4
2439*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_HI_LEN 4
2440*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_HI_LBN 32
2441*fd893e89SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_HI_WIDTH 32
24425e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_MINNUM 0
24435e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_MAXNUM 31
24445e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_TIMESTAMP_READ_SNAPSHOT_TIMESTAMP_MAXNUM_MCDI2 127
24455e111ed8SAndrew Rybchenko 
24465e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_SPI_READ msgresponse */
24475e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_LENMIN 4
24485e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_LENMAX 252
24495e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_LENMAX_MCDI2 1020
24505e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_LEN(num) (0+4*(num))
24515e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_NUM(len) (((len)-0)/4)
24525e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_OFST 0
24535e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_LEN 4
24545e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_MINNUM 1
24555e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_MAXNUM 63
24565e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_READ_BUFFER_MAXNUM_MCDI2 255
24575e111ed8SAndrew Rybchenko 
24585e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_SPI_WRITE msgresponse */
24595e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_WRITE_LEN 0
24605e111ed8SAndrew Rybchenko 
24615e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_SPI_ERASE msgresponse */
24625e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_SPI_ERASE_LEN 0
24635e111ed8SAndrew Rybchenko 
24645e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG msgresponse */
24655e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_LEN 8
24665e111ed8SAndrew Rybchenko /* The 32-bit value read from the toggle count register */
24675e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_TOGGLE_COUNT_OFST 0
24685e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_TOGGLE_COUNT_LEN 4
24695e111ed8SAndrew Rybchenko /* The 32-bit value read from the clock enable count register */
24705e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_CLKEN_COUNT_OFST 4
24715e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_READ_CONFIG_CLKEN_COUNT_LEN 4
24725e111ed8SAndrew Rybchenko 
24735e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_POWER_NOISE_WRITE_CONFIG msgresponse */
24745e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_POWER_NOISE_WRITE_CONFIG_LEN 0
24755e111ed8SAndrew Rybchenko 
24765e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_START msgresponse */
24775e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_START_LEN 0
24785e111ed8SAndrew Rybchenko 
24795e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT msgresponse */
24805e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_LEN 8
24815e111ed8SAndrew Rybchenko /* DDR soak test status word; bits [4:0] are relevant. */
24825e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_STATUS_OFST 0
24835e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_STATUS_LEN 4
2484bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PASSED_OFST 0
24855e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PASSED_LBN 0
24865e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PASSED_WIDTH 1
2487bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_FAILED_OFST 0
24885e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_FAILED_LBN 1
24895e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_FAILED_WIDTH 1
2490bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_COMPLETED_OFST 0
24915e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_COMPLETED_LBN 2
24925e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_COMPLETED_WIDTH 1
2493bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_TIMEOUT_OFST 0
24945e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_TIMEOUT_LBN 3
24955e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_TIMEOUT_WIDTH 1
2496bb01a80eSAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PNF_OFST 0
24975e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PNF_LBN 4
24985e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_PNF_WIDTH 1
24995e111ed8SAndrew Rybchenko /* DDR soak test error count */
25005e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_ERR_COUNT_OFST 4
25015e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_RESULT_ERR_COUNT_LEN 4
25025e111ed8SAndrew Rybchenko 
25035e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_STOP msgresponse */
25045e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_STOP_LEN 0
25055e111ed8SAndrew Rybchenko 
25065e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DDR_SOAK_ERROR msgresponse */
25075e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DDR_SOAK_ERROR_LEN 0
25085e111ed8SAndrew Rybchenko 
25095e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_SET_MODE msgresponse */
25105e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_SET_MODE_LEN 0
25115e111ed8SAndrew Rybchenko 
25125e111ed8SAndrew Rybchenko /* MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_RAW_CONFIG msgresponse */
25135e111ed8SAndrew Rybchenko #define	MC_CMD_FC_OUT_DIAG_DATAPATH_CTRL_RAW_CONFIG_LEN 0
25145e111ed8SAndrew Rybchenko 
25155e111ed8SAndrew Rybchenko 
25165e111ed8SAndrew Rybchenko /***********************************/
25175e111ed8SAndrew Rybchenko /* MC_CMD_AOE
25185e111ed8SAndrew Rybchenko  * AOE operations on MC
25195e111ed8SAndrew Rybchenko  */
25205e111ed8SAndrew Rybchenko #define	MC_CMD_AOE 0xa
2521*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_MSGSET 0xa
25225e111ed8SAndrew Rybchenko 
25235e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN msgrequest */
25245e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LEN 4
25255e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_HDR_OFST 0
25265e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_HDR_LEN 4
2527bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_OFST 0
25285e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_LBN 0
25295e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_OP_WIDTH 8
25305e111ed8SAndrew Rybchenko /* enum: FPGA and CPLD information */
25315e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_INFO 0x1
25325e111ed8SAndrew Rybchenko /* enum: Currents and voltages read from MCP3424s; DEBUG */
25335e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_CURRENTS 0x2
25345e111ed8SAndrew Rybchenko /* enum: Temperatures at locations around the PCB; DEBUG */
25355e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_TEMPERATURES 0x3
25365e111ed8SAndrew Rybchenko /* enum: Set CPLD to idle */
25375e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_IDLE 0x4
25385e111ed8SAndrew Rybchenko /* enum: Read from CPLD register */
25395e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_READ 0x5
25405e111ed8SAndrew Rybchenko /* enum: Write to CPLD register */
25415e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_WRITE 0x6
25425e111ed8SAndrew Rybchenko /* enum: Execute CPLD instruction */
25435e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_INSTRUCTION 0x7
25445e111ed8SAndrew Rybchenko /* enum: Reprogram the CPLD on the AOE device */
25455e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_CPLD_REPROGRAM 0x8
25465e111ed8SAndrew Rybchenko /* enum: AOE power control */
25475e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_POWER 0x9
25485e111ed8SAndrew Rybchenko /* enum: AOE image loading */
25495e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_LOAD 0xa
25505e111ed8SAndrew Rybchenko /* enum: Fan monitoring */
25515e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_FAN_CONTROL 0xb
25525e111ed8SAndrew Rybchenko /* enum: Fan failures since last reset */
25535e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_FAN_FAILURES 0xc
25545e111ed8SAndrew Rybchenko /* enum: Get generic AOE MAC statistics */
25555e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_MAC_STATS 0xd
25565e111ed8SAndrew Rybchenko /* enum: Retrieve PHY specific information */
25575e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_GET_PHY_MEDIA_INFO 0xe
25585e111ed8SAndrew Rybchenko /* enum: Write a number of JTAG primitive commands, return will give data */
25595e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_JTAG_WRITE 0xf
25605e111ed8SAndrew Rybchenko /* enum: Control access to the FPGA via the Siena JTAG Chain */
25615e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_FPGA_ACCESS 0x10
25625e111ed8SAndrew Rybchenko /* enum: Set the MTU offset between Siena and AOE MACs */
25635e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_SET_MTU_OFFSET 0x11
25645e111ed8SAndrew Rybchenko /* enum: How link state is handled */
25655e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_LINK_STATE 0x12
25665e111ed8SAndrew Rybchenko /* enum: How Siena MAC statistics are reported (deprecated - use
25675e111ed8SAndrew Rybchenko  * MC_CMD_AOE_OP_ASIC_STATS)
25685e111ed8SAndrew Rybchenko  */
25695e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_SIENA_STATS 0x13
25705e111ed8SAndrew Rybchenko /* enum: How native ASIC MAC statistics are reported - replaces the deprecated
25715e111ed8SAndrew Rybchenko  * command MC_CMD_AOE_OP_SIENA_STATS
25725e111ed8SAndrew Rybchenko  */
25735e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_ASIC_STATS 0x13
25745e111ed8SAndrew Rybchenko /* enum: DDR memory information */
25755e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_DDR 0x14
25765e111ed8SAndrew Rybchenko /* enum: FC control */
25775e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_FC 0x15
25785e111ed8SAndrew Rybchenko /* enum: DDR ECC status reads */
25795e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_DDR_ECC_STATUS 0x16
25805e111ed8SAndrew Rybchenko /* enum: Commands for MC-SPI Master emulation */
25815e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_MC_SPI_MASTER 0x17
25825e111ed8SAndrew Rybchenko /* enum: Commands for FC boot control */
25835e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_FC_BOOT 0x18
25845e111ed8SAndrew Rybchenko /* enum: Get number of internal ports */
25855e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_GET_ASIC_PORTS 0x19
25865e111ed8SAndrew Rybchenko /* enum: Get FC assert information and register dump */
25875e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_GET_FC_ASSERT_INFO 0x1a
25885e111ed8SAndrew Rybchenko /* enum: Set MUM startup FUSE byte with extended delay */
25895e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OP_MUM_STARTUP_FUSE 0x1b
25905e111ed8SAndrew Rybchenko 
25915e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT msgresponse */
25925e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_LEN 0
25935e111ed8SAndrew Rybchenko 
25945e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_INFO msgrequest */
25955e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_INFO_LEN 4
25965e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CMD_OFST 0
25975e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CMD_LEN 4
25985e111ed8SAndrew Rybchenko 
25995e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_CURRENTS msgrequest */
26005e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CURRENTS_LEN 4
26015e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26025e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26035e111ed8SAndrew Rybchenko 
26045e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_TEMPERATURES msgrequest */
26055e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_TEMPERATURES_LEN 4
26065e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26075e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26085e111ed8SAndrew Rybchenko 
26095e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_IDLE msgrequest */
26105e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_IDLE_LEN 4
26115e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26125e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26135e111ed8SAndrew Rybchenko 
26145e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_READ msgrequest */
26155e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_LEN 12
26165e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26175e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26185e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_REGISTER_OFST 4
26195e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_REGISTER_LEN 4
26205e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_WIDTH_OFST 8
26215e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_READ_WIDTH_LEN 4
26225e111ed8SAndrew Rybchenko 
26235e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_WRITE msgrequest */
26245e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_LEN 16
26255e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26265e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26275e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_REGISTER_OFST 4
26285e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_REGISTER_LEN 4
26295e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_WIDTH_OFST 8
26305e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_WIDTH_LEN 4
26315e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_VALUE_OFST 12
26325e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_WRITE_VALUE_LEN 4
26335e111ed8SAndrew Rybchenko 
26345e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_INSTRUCTION msgrequest */
26355e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_LEN 8
26365e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26375e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26385e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_INSTRUCTION_OFST 4
26395e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_INSTRUCTION_INSTRUCTION_LEN 4
26405e111ed8SAndrew Rybchenko 
26415e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_CPLD_REPROGRAM msgrequest */
26425e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_LEN 8
26435e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26445e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26455e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_OP_OFST 4
26465e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_OP_LEN 4
26475e111ed8SAndrew Rybchenko /* enum: Reprogram CPLD, poll for completion */
26485e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_REPROGRAM 0x1
26495e111ed8SAndrew Rybchenko /* enum: Reprogram CPLD, send event on completion */
26505e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_REPROGRAM_EVENT 0x3
26515e111ed8SAndrew Rybchenko /* enum: Get status of reprogramming operation */
26525e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_CPLD_REPROGRAM_STATUS 0x4
26535e111ed8SAndrew Rybchenko 
26545e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_POWER msgrequest */
26555e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_LEN 8
26565e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26575e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26585e111ed8SAndrew Rybchenko /* Turn on or off AOE power */
26595e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_OP_OFST 4
26605e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_OP_LEN 4
26615e111ed8SAndrew Rybchenko /* enum: Turn off FPGA power */
26625e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_OFF 0x0
26635e111ed8SAndrew Rybchenko /* enum: Turn on FPGA power */
26645e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_ON 0x1
26655e111ed8SAndrew Rybchenko /* enum: Clear peak power measurement */
26665e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_CLEAR 0x2
26675e111ed8SAndrew Rybchenko /* enum: Show current power in sensors output */
26685e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_SHOW_CURRENT 0x3
26695e111ed8SAndrew Rybchenko /* enum: Show peak power in sensors output */
26705e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_SHOW_PEAK 0x4
26715e111ed8SAndrew Rybchenko /* enum: Show current DDR current */
26725e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_DDR_LAST 0x5
26735e111ed8SAndrew Rybchenko /* enum: Show peak DDR current */
26745e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_DDR_PEAK 0x6
26755e111ed8SAndrew Rybchenko /* enum: Clear peak DDR current */
26765e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_POWER_DDR_CLEAR 0x7
26775e111ed8SAndrew Rybchenko 
26785e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_LOAD msgrequest */
26795e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LOAD_LEN 8
26805e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26815e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26825e111ed8SAndrew Rybchenko /* Image to be loaded (0 - main or 1 - diagnostic) to load in normal sequence
26835e111ed8SAndrew Rybchenko  */
26845e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LOAD_IMAGE_OFST 4
26855e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LOAD_IMAGE_LEN 4
26865e111ed8SAndrew Rybchenko 
26875e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_FAN_CONTROL msgrequest */
26885e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FAN_CONTROL_LEN 8
26895e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26905e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26915e111ed8SAndrew Rybchenko /* If non zero report measured fan RPM rather than nominal */
26925e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FAN_CONTROL_REAL_RPM_OFST 4
26935e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FAN_CONTROL_REAL_RPM_LEN 4
26945e111ed8SAndrew Rybchenko 
26955e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_FAN_FAILURES msgrequest */
26965e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FAN_FAILURES_LEN 4
26975e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
26985e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
26995e111ed8SAndrew Rybchenko 
27005e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_MAC_STATS msgrequest */
27015e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_LEN 24
27025e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
27035e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
27045e111ed8SAndrew Rybchenko /* AOE port */
27055e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PORT_OFST 4
27065e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PORT_LEN 4
27075e111ed8SAndrew Rybchenko /* Host memory address for statistics */
27085e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_OFST 8
27095e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LEN 8
27105e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LO_OFST 8
2711*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LO_LEN 4
2712*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LO_LBN 64
2713*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_LO_WIDTH 32
27145e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_HI_OFST 12
2715*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_HI_LEN 4
2716*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_HI_LBN 96
2717*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_ADDR_HI_WIDTH 32
27185e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CMD_OFST 16
27195e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CMD_LEN 4
2720bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_OFST 16
27215e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LBN 0
27225e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_WIDTH 1
2723bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CLEAR_OFST 16
27245e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CLEAR_LBN 1
27255e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_CLEAR_WIDTH 1
2726bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CHANGE_OFST 16
27275e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CHANGE_LBN 2
27285e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CHANGE_WIDTH 1
2729bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_ENABLE_OFST 16
27305e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_ENABLE_LBN 3
27315e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_ENABLE_WIDTH 1
2732bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CLEAR_OFST 16
27335e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CLEAR_LBN 4
27345e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_CLEAR_WIDTH 1
2735bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_NOEVENT_OFST 16
27365e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_NOEVENT_LBN 5
27375e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIODIC_NOEVENT_WIDTH 1
2738bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIOD_MS_OFST 16
27395e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIOD_MS_LBN 16
27405e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_PERIOD_MS_WIDTH 16
27415e111ed8SAndrew Rybchenko /* Length of DMA data (optional) */
27425e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LEN_OFST 20
27435e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MAC_STATS_DMA_LEN_LEN 4
27445e111ed8SAndrew Rybchenko 
27455e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO msgrequest */
27465e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_LEN 12
27475e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
27485e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
27495e111ed8SAndrew Rybchenko /* AOE port */
27505e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PORT_OFST 4
27515e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PORT_LEN 4
27525e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PAGE_OFST 8
27535e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_PHY_MEDIA_INFO_PAGE_LEN 4
27545e111ed8SAndrew Rybchenko 
27555e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_JTAG_WRITE msgrequest */
27565e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_LENMIN 12
27575e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_LENMAX 252
27585e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_LENMAX_MCDI2 1020
27595e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_LEN(num) (8+4*(num))
27605e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_NUM(len) (((len)-8)/4)
27615e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
27625e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
27635e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATALEN_OFST 4
27645e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATALEN_LEN 4
27655e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_OFST 8
27665e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_LEN 4
27675e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_MINNUM 1
27685e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_MAXNUM 61
27695e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_JTAG_WRITE_DATA_MAXNUM_MCDI2 253
27705e111ed8SAndrew Rybchenko 
27715e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_FPGA_ACCESS msgrequest */
27725e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_LEN 8
27735e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
27745e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
27755e111ed8SAndrew Rybchenko /* Enable or disable access */
27765e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_OP_OFST 4
27775e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_OP_LEN 4
27785e111ed8SAndrew Rybchenko /* enum: Enable access */
27795e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_ENABLE 0x1
27805e111ed8SAndrew Rybchenko /* enum: Disable access */
27815e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FPGA_ACCESS_DISABLE 0x2
27825e111ed8SAndrew Rybchenko 
27835e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_SET_MTU_OFFSET msgrequest */
27845e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_LEN 12
27855e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
27865e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
27875e111ed8SAndrew Rybchenko /* AOE port - when not ALL_EXTERNAL or ALL_INTERNAL specifies port number */
27885e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_PORT_OFST 4
27895e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_PORT_LEN 4
27905e111ed8SAndrew Rybchenko /* enum: Apply to all external ports */
27915e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_ALL_EXTERNAL 0x8000
27925e111ed8SAndrew Rybchenko /* enum: Apply to all internal ports */
27935e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_ALL_INTERNAL 0x4000
27945e111ed8SAndrew Rybchenko /* The MTU offset to be applied to the external ports */
27955e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_OFFSET_OFST 8
27965e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SET_MTU_OFFSET_OFFSET_LEN 4
27975e111ed8SAndrew Rybchenko 
27985e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_LINK_STATE msgrequest */
27995e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_LEN 8
28005e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28015e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28025e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_MODE_OFST 4
28035e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_MODE_LEN 4
2804bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_CONFIG_MODE_OFST 4
28055e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_CONFIG_MODE_LBN 0
28065e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_CONFIG_MODE_WIDTH 8
28075e111ed8SAndrew Rybchenko /* enum: AOE and associated external port */
28085e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SIMPLE_SEPARATE 0x0
28095e111ed8SAndrew Rybchenko /* enum: AOE and OR of all external ports */
28105e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SIMPLE_COMBINED 0x1
28115e111ed8SAndrew Rybchenko /* enum: Individual ports */
28125e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_DIAGNOSTIC 0x2
28135e111ed8SAndrew Rybchenko /* enum: Configure link state mode on given AOE port */
28145e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_CUSTOM 0x3
2815bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OPERATION_OFST 4
28165e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OPERATION_LBN 8
28175e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OPERATION_WIDTH 8
28185e111ed8SAndrew Rybchenko /* enum: No-op */
28195e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OP_NONE 0x0
28205e111ed8SAndrew Rybchenko /* enum: logical OR of all SFP ports link status */
28215e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OP_OR 0x1
28225e111ed8SAndrew Rybchenko /* enum: logical AND of all SFP ports link status */
28235e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_OP_AND 0x2
2824bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SFP_MASK_OFST 4
28255e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SFP_MASK_LBN 16
28265e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_LINK_STATE_SFP_MASK_WIDTH 16
28275e111ed8SAndrew Rybchenko 
28285e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_GET_ASIC_PORTS msgrequest */
28295e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_ASIC_PORTS_LEN 4
28305e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28315e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28325e111ed8SAndrew Rybchenko 
28335e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_GET_FC_ASSERT_INFO msgrequest */
28345e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_GET_FC_ASSERT_INFO_LEN 4
28355e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28365e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28375e111ed8SAndrew Rybchenko 
28385e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_SIENA_STATS msgrequest */
28395e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_LEN 8
28405e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28415e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28425e111ed8SAndrew Rybchenko /* How MAC statistics are reported */
28435e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_MODE_OFST 4
28445e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_MODE_LEN 4
28455e111ed8SAndrew Rybchenko /* enum: Statistics from Siena (default) */
28465e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_STATS_SIENA 0x0
28475e111ed8SAndrew Rybchenko /* enum: Statistics from AOE external ports */
28485e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_SIENA_STATS_STATS_AOE 0x1
28495e111ed8SAndrew Rybchenko 
28505e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_ASIC_STATS msgrequest */
28515e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_LEN 8
28525e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28535e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28545e111ed8SAndrew Rybchenko /* How MAC statistics are reported */
28555e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_MODE_OFST 4
28565e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_MODE_LEN 4
28575e111ed8SAndrew Rybchenko /* enum: Statistics from the ASIC (default) */
28585e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_STATS_ASIC 0x0
28595e111ed8SAndrew Rybchenko /* enum: Statistics from AOE external ports */
28605e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_ASIC_STATS_STATS_AOE 0x1
28615e111ed8SAndrew Rybchenko 
28625e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_DDR msgrequest */
28635e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_LEN 12
28645e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28655e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28665e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_BANK_OFST 4
28675e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_BANK_LEN 4
28685e111ed8SAndrew Rybchenko /*            Enum values, see field(s): */
28695e111ed8SAndrew Rybchenko /*               MC_CMD_FC/MC_CMD_FC_IN_DDR/MC_CMD_FC_IN_DDR_BANK */
28705e111ed8SAndrew Rybchenko /* Page index of SPD data */
28715e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_SPD_PAGE_ID_OFST 8
28725e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_SPD_PAGE_ID_LEN 4
28735e111ed8SAndrew Rybchenko 
28745e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_FC msgrequest */
28755e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_LEN 4
28765e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28775e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28785e111ed8SAndrew Rybchenko 
28795e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_DDR_ECC_STATUS msgrequest */
28805e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_LEN 8
28815e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28825e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28835e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_BANK_OFST 4
28845e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_DDR_ECC_STATUS_BANK_LEN 4
28855e111ed8SAndrew Rybchenko /*            Enum values, see field(s): */
28865e111ed8SAndrew Rybchenko /*               MC_CMD_FC/MC_CMD_FC_IN_DDR/MC_CMD_FC_IN_DDR_BANK */
28875e111ed8SAndrew Rybchenko 
28885e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_MC_SPI_MASTER msgrequest */
28895e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_LEN 8
28905e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
28915e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
28925e111ed8SAndrew Rybchenko /* Basic commands for MC SPI Master emulation. */
28935e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_OP_OFST 4
28945e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_OP_LEN 4
28955e111ed8SAndrew Rybchenko /* enum: MC SPI read */
28965e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ 0x0
28975e111ed8SAndrew Rybchenko /* enum: MC SPI write */
28985e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE 0x1
28995e111ed8SAndrew Rybchenko 
29005e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_MC_SPI_MASTER_READ msgrequest */
29015e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_LEN 12
29025e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
29035e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
29045e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OP_OFST 4
29055e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OP_LEN 4
29065e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OFFSET_OFST 8
29075e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_READ_OFFSET_LEN 4
29085e111ed8SAndrew Rybchenko 
29095e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE msgrequest */
29105e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_LEN 16
29115e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
29125e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
29135e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OP_OFST 4
29145e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OP_LEN 4
29155e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OFFSET_OFST 8
29165e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_OFFSET_LEN 4
29175e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_DATA_OFST 12
29185e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MC_SPI_MASTER_WRITE_DATA_LEN 4
29195e111ed8SAndrew Rybchenko 
29205e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_FC_BOOT msgrequest */
29215e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_LEN 8
29225e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
29235e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
29245e111ed8SAndrew Rybchenko /* FC boot control flags */
29255e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_OFST 4
29265e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_LEN 4
2927bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_BOOT_ENABLE_OFST 4
29285e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_BOOT_ENABLE_LBN 0
29295e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_FC_BOOT_CONTROL_BOOT_ENABLE_WIDTH 1
29305e111ed8SAndrew Rybchenko 
29315e111ed8SAndrew Rybchenko /* MC_CMD_AOE_IN_MUM_STARTUP_FUSE msgrequest: On AOE2, set MUM startup FUSE
29325e111ed8SAndrew Rybchenko  * byte with extended delay of 64ms. On some servers with noisy power rails,
29335e111ed8SAndrew Rybchenko  * this ensures that the MUM IO pins do not show spurious transitions while the
29345e111ed8SAndrew Rybchenko  * power rails are stabilising. Note that this operation requires a hard-
29355e111ed8SAndrew Rybchenko  * powercycle to take effect. See bug76446.
29365e111ed8SAndrew Rybchenko  */
29375e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_IN_MUM_STARTUP_FUSE_LEN 4
29385e111ed8SAndrew Rybchenko /* Must be MC_CMD_AOE_OP_MUM_STARTUP_FUSE */
29395e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_OFST 0 */
29405e111ed8SAndrew Rybchenko /*            MC_CMD_AOE_IN_CMD_LEN 4 */
29415e111ed8SAndrew Rybchenko 
29425e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO msgresponse */
29435e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_LEN 144
29445e111ed8SAndrew Rybchenko /* Assertion status flag. */
29455e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GLOBAL_FLAGS_OFST 0
29465e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GLOBAL_FLAGS_LEN 4
2947bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_STATE_OFST 0
29485e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_STATE_LBN 8
29495e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_STATE_WIDTH 8
29505e111ed8SAndrew Rybchenko /* enum: No crash data available */
29515e111ed8SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_CLEAR 0x0 */
29525e111ed8SAndrew Rybchenko /* enum: New crash data available */
29535e111ed8SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NEW 0x1 */
29545e111ed8SAndrew Rybchenko /* enum: Crash data has been sent */
29555e111ed8SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_STATE_NOTIFIED 0x2 */
2956bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_TYPE_OFST 0
29575e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_TYPE_LBN 0
29585e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_TYPE_WIDTH 8
29595e111ed8SAndrew Rybchenko /* enum: No crash has been recorded. */
29605e111ed8SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_NONE 0x0 */
29615e111ed8SAndrew Rybchenko /* enum: Crash due to exception. */
29625e111ed8SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_EXCEPTION 0x1 */
29635e111ed8SAndrew Rybchenko /* enum: Crash due to assertion. */
29645e111ed8SAndrew Rybchenko /*               MC_CMD_FC_GET_ASSERT_FLAGS_TYPE_ASSERTION 0x2 */
29655e111ed8SAndrew Rybchenko /* Failing PC value */
29665e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_SAVED_PC_OFFS_OFST 4
29675e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_SAVED_PC_OFFS_LEN 4
29685e111ed8SAndrew Rybchenko /* Saved GP regs */
29695e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_OFST 8
29705e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_LEN 4
29715e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_GP_REGS_OFFS_NUM 31
29725e111ed8SAndrew Rybchenko /* Exception Type */
29735e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_TYPE_OFFS_OFST 132
29745e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_TYPE_OFFS_LEN 4
29755e111ed8SAndrew Rybchenko /* Instruction at which exception occurred */
29765e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_PC_ADDR_OFFS_OFST 136
29775e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_PC_ADDR_OFFS_LEN 4
29785e111ed8SAndrew Rybchenko /* BAD Address that triggered address-based exception */
29795e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_BAD_ADDR_OFFS_OFST 140
29805e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_FC_ASSERT_INFO_EXCEPTION_BAD_ADDR_OFFS_LEN 4
29815e111ed8SAndrew Rybchenko 
29825e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_INFO msgresponse */
29835e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_LEN 44
29845e111ed8SAndrew Rybchenko /* JTAG IDCODE of CPLD */
29855e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_IDCODE_OFST 0
29865e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_IDCODE_LEN 4
29875e111ed8SAndrew Rybchenko /* Version of CPLD */
29885e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_VERSION_OFST 4
29895e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_VERSION_LEN 4
29905e111ed8SAndrew Rybchenko /* JTAG IDCODE of FPGA */
29915e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_IDCODE_OFST 8
29925e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_IDCODE_LEN 4
29935e111ed8SAndrew Rybchenko /* JTAG USERCODE of FPGA */
29945e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_VERSION_OFST 12
29955e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_VERSION_LEN 4
29965e111ed8SAndrew Rybchenko /* FPGA type - read from CPLD straps */
29975e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_OFST 16
29985e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_LEN 4
29995e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_A5_C2 0x1 /* enum */
30005e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_TYPE_A7_C2 0x2 /* enum */
30015e111ed8SAndrew Rybchenko /* FPGA state (debug) */
30025e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_STATE_OFST 20
30035e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_STATE_LEN 4
30045e111ed8SAndrew Rybchenko /* FPGA image - partition from which loaded */
30055e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_IMAGE_OFST 24
30065e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_IMAGE_LEN 4
30075e111ed8SAndrew Rybchenko /* FC state */
30085e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_STATE_OFST 28
30095e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_STATE_LEN 4
30105e111ed8SAndrew Rybchenko /* enum: Set if watchdog working */
30115e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_WATCHDOG 0x1
30125e111ed8SAndrew Rybchenko /* enum: Set if MC-FC communications working */
30135e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_COMMS 0x2
30145e111ed8SAndrew Rybchenko /* Random pieces of information */
30155e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FLAGS_OFST 32
30165e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FLAGS_LEN 4
30175e111ed8SAndrew Rybchenko /* enum: Power to FPGA supplied by PEG connector, not PCIe bus */
30185e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_PEG_POWER 0x1
30195e111ed8SAndrew Rybchenko /* enum: CPLD apparently good */
30205e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_CPLD_GOOD 0x2
30215e111ed8SAndrew Rybchenko /* enum: FPGA working normally */
30225e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_GOOD 0x4
30235e111ed8SAndrew Rybchenko /* enum: FPGA is powered */
30245e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_POWER 0x8
30255e111ed8SAndrew Rybchenko /* enum: Board has incompatible SODIMMs fitted */
30265e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_BAD_SODIMM 0x10
30275e111ed8SAndrew Rybchenko /* enum: Board has ByteBlaster connected */
30285e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_HAS_BYTEBLASTER 0x20
30295e111ed8SAndrew Rybchenko /* enum: FPGA Boot flash has an invalid header. */
30305e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_BAD_BOOT_HDR 0x40
30315e111ed8SAndrew Rybchenko /* enum: FPGA Application flash is accessible. */
30325e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FPGA_APP_FLASH_GOOD 0x80
30335e111ed8SAndrew Rybchenko /* Revision of Modena and Sorrento boards. Sorrento can be R1_2 or R1_3. */
30345e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_BOARD_REVISION_OFST 36
30355e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_BOARD_REVISION_LEN 4
30365e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_UNKNOWN 0x0 /* enum */
30375e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_R1_0 0x10 /* enum */
30385e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_R1_1 0x11 /* enum */
30395e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_R1_2 0x12 /* enum */
30405e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_R1_3 0x13 /* enum */
30415e111ed8SAndrew Rybchenko /* Result of FC booting - not valid while a ByteBlaster is connected. */
30425e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_RESULT_OFST 40
30435e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_RESULT_LEN 4
30445e111ed8SAndrew Rybchenko /* enum: No error */
30455e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_NO_ERROR 0x0
30465e111ed8SAndrew Rybchenko /* enum: Bad address set in CPLD */
30475e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_ADDRESS 0x1
30485e111ed8SAndrew Rybchenko /* enum: Bad header */
30495e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_MAGIC 0x2
30505e111ed8SAndrew Rybchenko /* enum: Bad text section details */
30515e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_TEXT 0x3
30525e111ed8SAndrew Rybchenko /* enum: Bad checksum */
30535e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_CHECKSUM 0x4
30545e111ed8SAndrew Rybchenko /* enum: Bad BSP */
30555e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_BAD_BSP 0x5
30565e111ed8SAndrew Rybchenko /* enum: Flash mode is invalid */
30575e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_FAIL_INVALID_FLASH_MODE 0x6
30585e111ed8SAndrew Rybchenko /* enum: FC application loaded and execution attempted */
30595e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_APP_EXECUTE 0x80
30605e111ed8SAndrew Rybchenko /* enum: FC application Started */
30615e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_APP_STARTED 0x81
30625e111ed8SAndrew Rybchenko /* enum: No bootrom in FPGA */
30635e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_INFO_FC_BOOT_NO_BOOTROM 0xff
30645e111ed8SAndrew Rybchenko 
30655e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_CURRENTS msgresponse */
30665e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_LEN 68
30675e111ed8SAndrew Rybchenko /* Set of currents and voltages (mA or mV as appropriate) */
30685e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_OFST 0
30695e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_LEN 4
30705e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_VALUES_NUM 17
30715e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_2V5 0x0 /* enum */
30725e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_1V8 0x1 /* enum */
30735e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_GXB 0x2 /* enum */
30745e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_PGM 0x3 /* enum */
30755e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_XCVR 0x4 /* enum */
30765e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_1V5 0x5 /* enum */
30775e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_3V3 0x6 /* enum */
30785e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_1V5 0x7 /* enum */
30795e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_IN 0x8 /* enum */
30805e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT 0x9 /* enum */
30815e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_IN 0xa /* enum */
30825e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR1 0xb /* enum */
30835e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR1 0xc /* enum */
30845e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR2 0xd /* enum */
30855e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR2 0xe /* enum */
30865e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_I_OUT_DDR3 0xf /* enum */
30875e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CURRENTS_V_OUT_DDR3 0x10 /* enum */
30885e111ed8SAndrew Rybchenko 
30895e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_TEMPERATURES msgresponse */
30905e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_LEN 40
30915e111ed8SAndrew Rybchenko /* Set of temperatures */
30925e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_OFST 0
30935e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_LEN 4
30945e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VALUES_NUM 10
30955e111ed8SAndrew Rybchenko /* enum: The first set of enum values are for Modena code. */
30965e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_MAIN_0 0x0
30975e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_MAIN_1 0x1 /* enum */
30985e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_IND_0 0x2 /* enum */
30995e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_IND_1 0x3 /* enum */
31005e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO1 0x4 /* enum */
31015e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO2 0x5 /* enum */
31025e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_VCCIO3 0x6 /* enum */
31035e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_PSU 0x7 /* enum */
31045e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_FPGA 0x8 /* enum */
31055e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SIENA 0x9 /* enum */
31065e111ed8SAndrew Rybchenko /* enum: The second set of enum values are for Sorrento code. */
31075e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_MAIN_0 0x0
31085e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_MAIN_1 0x1 /* enum */
31095e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_IND_0 0x2 /* enum */
31105e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_IND_1 0x3 /* enum */
31115e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_SODIMM_0 0x4 /* enum */
31125e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_SODIMM_1 0x5 /* enum */
31135e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_FPGA 0x6 /* enum */
31145e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_PHY0 0x7 /* enum */
31155e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_TEMPERATURES_SORRENTO_PHY1 0x8 /* enum */
31165e111ed8SAndrew Rybchenko 
31175e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_CPLD_READ msgresponse */
31185e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_READ_LEN 4
31195e111ed8SAndrew Rybchenko /* The value read from the CPLD */
31205e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_READ_VALUE_OFST 0
31215e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_READ_VALUE_LEN 4
31225e111ed8SAndrew Rybchenko 
31235e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_FAN_FAILURES msgresponse */
31245e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_LENMIN 4
31255e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_LENMAX 252
31265e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_LENMAX_MCDI2 1020
31275e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_LEN(num) (0+4*(num))
31285e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_NUM(len) (((len)-0)/4)
31295e111ed8SAndrew Rybchenko /* Failure counts for each fan */
31305e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_OFST 0
31315e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_LEN 4
31325e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_MINNUM 1
31335e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_MAXNUM 63
31345e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FAN_FAILURES_COUNT_MAXNUM_MCDI2 255
31355e111ed8SAndrew Rybchenko 
31365e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_CPLD_REPROGRAM msgresponse */
31375e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_LEN 4
31385e111ed8SAndrew Rybchenko /* Results of status command (only) */
31395e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_STATUS_OFST 0
31405e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_CPLD_REPROGRAM_STATUS_LEN 4
31415e111ed8SAndrew Rybchenko 
31425e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_POWER_OFF msgresponse */
31435e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_POWER_OFF_LEN 0
31445e111ed8SAndrew Rybchenko 
31455e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_POWER_ON msgresponse */
31465e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_POWER_ON_LEN 0
31475e111ed8SAndrew Rybchenko 
31485e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_LOAD msgresponse */
31495e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_LOAD_LEN 0
31505e111ed8SAndrew Rybchenko 
31515e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_MAC_STATS_DMA msgresponse */
31525e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_DMA_LEN 0
31535e111ed8SAndrew Rybchenko 
31545e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_MAC_STATS_NO_DMA msgresponse: See MC_CMD_MAC_STATS_OUT_NO_DMA
31555e111ed8SAndrew Rybchenko  * for details
31565e111ed8SAndrew Rybchenko  */
31575e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_LEN (((MC_CMD_MAC_NSTATS*64))>>3)
31585e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_OFST 0
31595e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LEN 8
31605e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LO_OFST 0
3161*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LO_LEN 4
3162*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LO_LBN 0
3163*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_LO_WIDTH 32
31645e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_HI_OFST 4
3165*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_HI_LEN 4
3166*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_HI_LBN 32
3167*fd893e89SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_HI_WIDTH 32
31685e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MAC_STATS_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS
31695e111ed8SAndrew Rybchenko 
31705e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO msgresponse */
31715e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LENMIN 5
31725e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LENMAX 252
31735e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LENMAX_MCDI2 1020
31745e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_LEN(num) (4+1*(num))
31755e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_NUM(len) (((len)-4)/1)
31765e111ed8SAndrew Rybchenko /* in bytes */
31775e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATALEN_OFST 0
31785e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATALEN_LEN 4
31795e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_OFST 4
31805e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_LEN 1
31815e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_MINNUM 1
31825e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_MAXNUM 248
31835e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_PHY_MEDIA_INFO_DATA_MAXNUM_MCDI2 1016
31845e111ed8SAndrew Rybchenko 
31855e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_JTAG_WRITE msgresponse */
31865e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_LENMIN 12
31875e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_LENMAX 252
31885e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_LENMAX_MCDI2 1020
31895e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_LEN(num) (8+4*(num))
31905e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_NUM(len) (((len)-8)/4)
31915e111ed8SAndrew Rybchenko /* Used to align the in and out data blocks so the MC can re-use the cmd */
31925e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATALEN_OFST 0
31935e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATALEN_LEN 4
31945e111ed8SAndrew Rybchenko /* out bytes */
31955e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_PAD_OFST 4
31965e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_PAD_LEN 4
31975e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_OFST 8
31985e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_LEN 4
31995e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_MINNUM 1
32005e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_MAXNUM 61
32015e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_JTAG_WRITE_DATA_MAXNUM_MCDI2 253
32025e111ed8SAndrew Rybchenko 
32035e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_FPGA_ACCESS msgresponse */
32045e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FPGA_ACCESS_LEN 0
32055e111ed8SAndrew Rybchenko 
32065e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_DDR msgresponse */
32075e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_LENMIN 17
32085e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_LENMAX 252
32095e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_LENMAX_MCDI2 1020
32105e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_LEN(num) (16+1*(num))
32115e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_NUM(len) (((len)-16)/1)
32125e111ed8SAndrew Rybchenko /* Information on the module. */
32135e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_FLAGS_OFST 0
32145e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_FLAGS_LEN 4
3215bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_PRESENT_OFST 0
32165e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_PRESENT_LBN 0
32175e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_PRESENT_WIDTH 1
3218bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_POWERED_OFST 0
32195e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_POWERED_LBN 1
32205e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_POWERED_WIDTH 1
3221bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_OPERATIONAL_OFST 0
32225e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_OPERATIONAL_LBN 2
32235e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_OPERATIONAL_WIDTH 1
3224bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_NOT_REACHABLE_OFST 0
32255e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_NOT_REACHABLE_LBN 3
32265e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_NOT_REACHABLE_WIDTH 1
32275e111ed8SAndrew Rybchenko /* Memory size, in MB. */
32285e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_CAPACITY_OFST 4
32295e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_CAPACITY_LEN 4
32305e111ed8SAndrew Rybchenko /* The memory type, as reported from SPD information */
32315e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_TYPE_OFST 8
32325e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_TYPE_LEN 4
32335e111ed8SAndrew Rybchenko /* Nominal voltage of the module (as applied) */
32345e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_VOLTAGE_OFST 12
32355e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_VOLTAGE_LEN 4
32365e111ed8SAndrew Rybchenko /* SPD data read from the module */
32375e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_OFST 16
32385e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_LEN 1
32395e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_MINNUM 1
32405e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_MAXNUM 236
32415e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_SPD_MAXNUM_MCDI2 1004
32425e111ed8SAndrew Rybchenko 
32435e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_SET_MTU_OFFSET msgresponse */
32445e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_SET_MTU_OFFSET_LEN 0
32455e111ed8SAndrew Rybchenko 
32465e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_LINK_STATE msgresponse */
32475e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_LINK_STATE_LEN 0
32485e111ed8SAndrew Rybchenko 
32495e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_SIENA_STATS msgresponse */
32505e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_SIENA_STATS_LEN 0
32515e111ed8SAndrew Rybchenko 
32525e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_ASIC_STATS msgresponse */
32535e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_ASIC_STATS_LEN 0
32545e111ed8SAndrew Rybchenko 
32555e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_FC msgresponse */
32565e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FC_LEN 0
32575e111ed8SAndrew Rybchenko 
32585e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_GET_ASIC_PORTS msgresponse */
32595e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_LEN 4
32605e111ed8SAndrew Rybchenko /* get the number of internal ports */
32615e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_COUNT_PORTS_OFST 0
32625e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_GET_ASIC_PORTS_COUNT_PORTS_LEN 4
32635e111ed8SAndrew Rybchenko 
32645e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_DDR_ECC_STATUS msgresponse */
32655e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_LEN 8
32665e111ed8SAndrew Rybchenko /* Flags describing status info on the module. */
32675e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_FLAGS_OFST 0
32685e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_FLAGS_LEN 4
3269bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_VALID_OFST 0
32705e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_VALID_LBN 0
32715e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_VALID_WIDTH 1
32725e111ed8SAndrew Rybchenko /* DDR ECC status on the module. */
32735e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_STATUS_OFST 4
32745e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_STATUS_LEN 4
3275bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_OFST 4
32765e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_LBN 0
32775e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_WIDTH 1
3278bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_OFST 4
32795e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_LBN 1
32805e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_WIDTH 1
3281bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_OFST 4
32825e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_LBN 2
32835e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_WIDTH 1
3284bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_COUNT_OFST 4
32855e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_COUNT_LBN 8
32865e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_SBE_COUNT_WIDTH 8
3287bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_COUNT_OFST 4
32885e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_COUNT_LBN 16
32895e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_DBE_COUNT_WIDTH 8
3290bb01a80eSAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_COUNT_OFST 4
32915e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_COUNT_LBN 24
32925e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_DDR_ECC_STATUS_CORDROP_COUNT_WIDTH 8
32935e111ed8SAndrew Rybchenko 
32945e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_MC_SPI_MASTER_READ msgresponse */
32955e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_LEN 4
32965e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_DATA_OFST 0
32975e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_READ_DATA_LEN 4
32985e111ed8SAndrew Rybchenko 
32995e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_MC_SPI_MASTER_WRITE msgresponse */
33005e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_WRITE_LEN 0
33015e111ed8SAndrew Rybchenko 
33025e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_MC_SPI_MASTER msgresponse */
33035e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MC_SPI_MASTER_LEN 0
33045e111ed8SAndrew Rybchenko 
33055e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_FC_BOOT msgresponse */
33065e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_FC_BOOT_LEN 0
33075e111ed8SAndrew Rybchenko 
33085e111ed8SAndrew Rybchenko /* MC_CMD_AOE_OUT_MUM_STARTUP_FUSE msgresponse */
33095e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MUM_STARTUP_FUSE_LEN 4
33105e111ed8SAndrew Rybchenko /* Current value of startup FUSE byte (fusebyte#4) read back after the update
33115e111ed8SAndrew Rybchenko  * operation.
33125e111ed8SAndrew Rybchenko  */
33135e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MUM_STARTUP_FUSE_READBACK_VALUE_OFST 0
33145e111ed8SAndrew Rybchenko #define	MC_CMD_AOE_OUT_MUM_STARTUP_FUSE_READBACK_VALUE_LEN 4
33155e111ed8SAndrew Rybchenko 
33165e111ed8SAndrew Rybchenko #endif /* _SIENA_MC_DRIVER_PCOL_AOE_H */
3317