Commit fbcfe8e1 authored by Ben Hutchings's avatar Ben Hutchings Committed by David S. Miller

sfc: Update MCDI protocol definitions

Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d614cfbc
...@@ -863,7 +863,7 @@ ...@@ -863,7 +863,7 @@
* bist output. The driver should only consume the BIST output * bist output. The driver should only consume the BIST output
* after validating OUTLEN and PHY_CFG.PHY_TYPE. * after validating OUTLEN and PHY_CFG.PHY_TYPE.
* *
* If a driver can't succesfully parse the BIST output, it should * If a driver can't successfully parse the BIST output, it should
* still respect the pass/Fail in OUT.RESULT * still respect the pass/Fail in OUT.RESULT
* *
* Locks required: PHY_LOCK if doing a PHY BIST * Locks required: PHY_LOCK if doing a PHY BIST
...@@ -872,7 +872,7 @@ ...@@ -872,7 +872,7 @@
#define MC_CMD_POLL_BIST 0x26 #define MC_CMD_POLL_BIST 0x26
#define MC_CMD_POLL_BIST_IN_LEN 0 #define MC_CMD_POLL_BIST_IN_LEN 0
#define MC_CMD_POLL_BIST_OUT_LEN UNKNOWN #define MC_CMD_POLL_BIST_OUT_LEN UNKNOWN
#define MC_CMD_POLL_BIST_OUT_SFT9001_LEN 40 #define MC_CMD_POLL_BIST_OUT_SFT9001_LEN 36
#define MC_CMD_POLL_BIST_OUT_MRSFP_LEN 8 #define MC_CMD_POLL_BIST_OUT_MRSFP_LEN 8
#define MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 #define MC_CMD_POLL_BIST_OUT_RESULT_OFST 0
#define MC_CMD_POLL_BIST_RUNNING 1 #define MC_CMD_POLL_BIST_RUNNING 1
...@@ -882,15 +882,14 @@ ...@@ -882,15 +882,14 @@
/* Generic: */ /* Generic: */
#define MC_CMD_POLL_BIST_OUT_PRIVATE_OFST 4 #define MC_CMD_POLL_BIST_OUT_PRIVATE_OFST 4
/* SFT9001-specific: */ /* SFT9001-specific: */
/* (offset 4 unused?) */ #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_OFST 4
#define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_OFST 8 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_OFST 8
#define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_OFST 12 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_OFST 12
#define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_OFST 16 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_OFST 16
#define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_OFST 20 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_OFST 20
#define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_OFST 24 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_OFST 24
#define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_OFST 28 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_OFST 28
#define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_OFST 32 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_OFST 32
#define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_OFST 36
#define MC_CMD_POLL_BIST_SFT9001_PAIR_OK 1 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OK 1
#define MC_CMD_POLL_BIST_SFT9001_PAIR_OPEN 2 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OPEN 2
#define MC_CMD_POLL_BIST_SFT9001_INTRA_PAIR_SHORT 3 #define MC_CMD_POLL_BIST_SFT9001_INTRA_PAIR_SHORT 3
...@@ -1054,9 +1053,13 @@ ...@@ -1054,9 +1053,13 @@
/* MC_CMD_PHY_STATS: /* MC_CMD_PHY_STATS:
* Get generic PHY statistics * Get generic PHY statistics
* *
* This call returns the statistics for a generic PHY, by direct DMA * This call returns the statistics for a generic PHY in a sparse
* into host memory, in a sparse array (indexed by the enumerate). * array (indexed by the enumerate). Each value is represented by
* Each value is represented by a 32bit number. * a 32bit number.
*
* If the DMA_ADDR is 0, then no DMA is performed, and the statistics
* may be read directly out of shared memory. If DMA_ADDR != 0, then
* the statistics are dmad to that (page-aligned location)
* *
* Locks required: None * Locks required: None
* Returns: 0, ETIME * Returns: 0, ETIME
...@@ -1066,7 +1069,8 @@ ...@@ -1066,7 +1069,8 @@
#define MC_CMD_PHY_STATS_IN_LEN 8 #define MC_CMD_PHY_STATS_IN_LEN 8
#define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_OFST 0 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_OFST 0
#define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_OFST 4 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_OFST 4
#define MC_CMD_PHY_STATS_OUT_LEN 0 #define MC_CMD_PHY_STATS_OUT_DMA_LEN 0
#define MC_CMD_PHY_STATS_OUT_NO_DMA_LEN (MC_CMD_PHY_NSTATS * 4)
/* Unified MAC statistics enumeration */ /* Unified MAC statistics enumeration */
#define MC_CMD_MAC_GENERATION_START 0 #define MC_CMD_MAC_GENERATION_START 0
...@@ -1158,11 +1162,13 @@ ...@@ -1158,11 +1162,13 @@
#define MC_CMD_MAC_STATS_CMD_CLEAR_WIDTH 1 #define MC_CMD_MAC_STATS_CMD_CLEAR_WIDTH 1
#define MC_CMD_MAC_STATS_CMD_PERIODIC_CHANGE_LBN 2 #define MC_CMD_MAC_STATS_CMD_PERIODIC_CHANGE_LBN 2
#define MC_CMD_MAC_STATS_CMD_PERIODIC_CHANGE_WIDTH 1 #define MC_CMD_MAC_STATS_CMD_PERIODIC_CHANGE_WIDTH 1
/* Fields only relevent when PERIODIC_CHANGE is set */ /* Remaining PERIOD* fields only relevent when PERIODIC_CHANGE is set */
#define MC_CMD_MAC_STATS_CMD_PERIODIC_ENABLE_LBN 3 #define MC_CMD_MAC_STATS_CMD_PERIODIC_ENABLE_LBN 3
#define MC_CMD_MAC_STATS_CMD_PERIODIC_ENABLE_WIDTH 1 #define MC_CMD_MAC_STATS_CMD_PERIODIC_ENABLE_WIDTH 1
#define MC_CMD_MAC_STATS_CMD_PERIODIC_CLEAR_LBN 4 #define MC_CMD_MAC_STATS_CMD_PERIODIC_CLEAR_LBN 4
#define MC_CMD_MAC_STATS_CMD_PERIODIC_CLEAR_WIDTH 1 #define MC_CMD_MAC_STATS_CMD_PERIODIC_CLEAR_WIDTH 1
#define MC_CMD_MAC_STATS_CMD_PERIODIC_NOEVENT_LBN 5
#define MC_CMD_MAC_STATS_CMD_PERIODIC_NOEVENT_WIDTH 1
#define MC_CMD_MAC_STATS_CMD_PERIOD_MS_LBN 16 #define MC_CMD_MAC_STATS_CMD_PERIOD_MS_LBN 16
#define MC_CMD_MAC_STATS_CMD_PERIOD_MS_WIDTH 16 #define MC_CMD_MAC_STATS_CMD_PERIOD_MS_WIDTH 16
#define MC_CMD_MAC_STATS_IN_DMA_LEN_OFST 12 #define MC_CMD_MAC_STATS_IN_DMA_LEN_OFST 12
...@@ -1729,6 +1735,39 @@ ...@@ -1729,6 +1735,39 @@
#define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_OUTPUTS_OFST 4 /* output bits */ #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_OUTPUTS_OFST 4 /* output bits */
#define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_OFST 8 /* dirs: 0=out, 1=in */ #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_OFST 8 /* dirs: 0=out, 1=in */
/* MC_CMD_TEST_HACK: (debug (unsurprisingly))
* Change bits of network port state for test purposes in ways that would never be
* useful in normal operation and so need a special command to change. */
#define MC_CMD_TEST_HACK 0x2f
#define MC_CMD_TEST_HACK_IN_LEN 8
#define MC_CMD_TEST_HACK_IN_TXPAD_OFST 0
#define MC_CMD_TEST_HACK_IN_TXPAD_AUTO 0 /* Let the MC manage things */
#define MC_CMD_TEST_HACK_IN_TXPAD_ON 1 /* Force on */
#define MC_CMD_TEST_HACK_IN_TXPAD_OFF 2 /* Force on */
#define MC_CMD_TEST_HACK_IN_IPG_OFST 4 /* Takes a value in bits */
#define MC_CMD_TEST_HACK_IN_IPG_AUTO 0 /* The MC picks the value */
#define MC_CMD_TEST_HACK_OUT_LEN 0
/* MC_CMD_SENSOR_SET_LIMS: (debug) (mostly) adjust the sensor limits. This
* is a warranty-voiding operation.
*
* IN: sensor identifier (one of the enumeration starting with MC_CMD_SENSOR_CONTROLLER_TEMP
* followed by 4 32-bit values: min(warning) max(warning), min(fatal), max(fatal). Which
* of these limits are meaningful and what their interpretation is is sensor-specific.
*
* OUT: nothing
*
* Returns: ENOENT if the sensor specified does not exist, EINVAL if the limits are
* out of range.
*/
#define MC_CMD_SENSOR_SET_LIMS 0x4e
#define MC_CMD_SENSOR_SET_LIMS_IN_LEN 20
#define MC_CMD_SENSOR_SET_LIMS_IN_SENSOR_OFST 0
#define MC_CMD_SENSOR_SET_LIMS_IN_LOW0_OFST 4
#define MC_CMD_SENSOR_SET_LIMS_IN_HI0_OFST 8
#define MC_CMD_SENSOR_SET_LIMS_IN_LOW1_OFST 12
#define MC_CMD_SENSOR_SET_LIMS_IN_HI1_OFST 16
/* Do NOT add new commands beyond 0x4f as part of 3.0 : 0x50 - 0x7f will be /* Do NOT add new commands beyond 0x4f as part of 3.0 : 0x50 - 0x7f will be
* used for post-3.0 extensions. If you run out of space, look for gaps or * used for post-3.0 extensions. If you run out of space, look for gaps or
* commands that are unused in the existing range. */ * commands that are unused in the existing range. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment