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