diff options
author | Brice Goglin <brice@myri.com> | 2008-12-25 21:08:59 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-25 21:08:59 -0500 |
commit | e92df2820d2d8de4be3dcbad96eb144ce6fd550d (patch) | |
tree | 295d65955ef94b804eaba01013c14f7d2a5a8da2 | |
parent | 36994a0a7004fd4777cd93a4b658b5f84bf4c93e (diff) |
myri10ge: update firmware headers to 1.4.37
Update myri10ge firmware headers to 1.4.37:
* Make each member of the error/cmd enum an initialized one, so there
is a convenient numerical reference to look for reverse conversion.
* Add new MXGEFW_CMD_RELAX_RXBUFFER_ALIGNMENT command.
* Add new "features" field to mcp_header.
Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/myri10ge/myri10ge_mcp.h | 175 | ||||
-rw-r--r-- | drivers/net/myri10ge/myri10ge_mcp_gen_header.h | 1 |
2 files changed, 93 insertions, 83 deletions
diff --git a/drivers/net/myri10ge/myri10ge_mcp.h b/drivers/net/myri10ge/myri10ge_mcp.h index 993721090777..11be150e4d67 100644 --- a/drivers/net/myri10ge/myri10ge_mcp.h +++ b/drivers/net/myri10ge/myri10ge_mcp.h | |||
@@ -111,61 +111,61 @@ enum myri10ge_mcp_cmd_type { | |||
111 | MXGEFW_CMD_NONE = 0, | 111 | MXGEFW_CMD_NONE = 0, |
112 | /* Reset the mcp, it is left in a safe state, waiting | 112 | /* Reset the mcp, it is left in a safe state, waiting |
113 | * for the driver to set all its parameters */ | 113 | * for the driver to set all its parameters */ |
114 | MXGEFW_CMD_RESET, | 114 | MXGEFW_CMD_RESET = 1, |
115 | 115 | ||
116 | /* get the version number of the current firmware.. | 116 | /* get the version number of the current firmware.. |
117 | * (may be available in the eeprom strings..? */ | 117 | * (may be available in the eeprom strings..? */ |
118 | MXGEFW_GET_MCP_VERSION, | 118 | MXGEFW_GET_MCP_VERSION = 2, |
119 | 119 | ||
120 | /* Parameters which must be set by the driver before it can | 120 | /* Parameters which must be set by the driver before it can |
121 | * issue MXGEFW_CMD_ETHERNET_UP. They persist until the next | 121 | * issue MXGEFW_CMD_ETHERNET_UP. They persist until the next |
122 | * MXGEFW_CMD_RESET is issued */ | 122 | * MXGEFW_CMD_RESET is issued */ |
123 | 123 | ||
124 | MXGEFW_CMD_SET_INTRQ_DMA, | 124 | MXGEFW_CMD_SET_INTRQ_DMA = 3, |
125 | /* data0 = LSW of the host address | 125 | /* data0 = LSW of the host address |
126 | * data1 = MSW of the host address | 126 | * data1 = MSW of the host address |
127 | * data2 = slice number if multiple slices are used | 127 | * data2 = slice number if multiple slices are used |
128 | */ | 128 | */ |
129 | 129 | ||
130 | MXGEFW_CMD_SET_BIG_BUFFER_SIZE, /* in bytes, power of 2 */ | 130 | MXGEFW_CMD_SET_BIG_BUFFER_SIZE = 4, /* in bytes, power of 2 */ |
131 | MXGEFW_CMD_SET_SMALL_BUFFER_SIZE, /* in bytes */ | 131 | MXGEFW_CMD_SET_SMALL_BUFFER_SIZE = 5, /* in bytes */ |
132 | 132 | ||
133 | /* Parameters which refer to lanai SRAM addresses where the | 133 | /* Parameters which refer to lanai SRAM addresses where the |
134 | * driver must issue PIO writes for various things */ | 134 | * driver must issue PIO writes for various things */ |
135 | 135 | ||
136 | MXGEFW_CMD_GET_SEND_OFFSET, | 136 | MXGEFW_CMD_GET_SEND_OFFSET = 6, |
137 | MXGEFW_CMD_GET_SMALL_RX_OFFSET, | 137 | MXGEFW_CMD_GET_SMALL_RX_OFFSET = 7, |
138 | MXGEFW_CMD_GET_BIG_RX_OFFSET, | 138 | MXGEFW_CMD_GET_BIG_RX_OFFSET = 8, |
139 | /* data0 = slice number if multiple slices are used */ | 139 | /* data0 = slice number if multiple slices are used */ |
140 | 140 | ||
141 | MXGEFW_CMD_GET_IRQ_ACK_OFFSET, | 141 | MXGEFW_CMD_GET_IRQ_ACK_OFFSET = 9, |
142 | MXGEFW_CMD_GET_IRQ_DEASSERT_OFFSET, | 142 | MXGEFW_CMD_GET_IRQ_DEASSERT_OFFSET = 10, |
143 | 143 | ||
144 | /* Parameters which refer to rings stored on the MCP, | 144 | /* Parameters which refer to rings stored on the MCP, |
145 | * and whose size is controlled by the mcp */ | 145 | * and whose size is controlled by the mcp */ |
146 | 146 | ||
147 | MXGEFW_CMD_GET_SEND_RING_SIZE, /* in bytes */ | 147 | MXGEFW_CMD_GET_SEND_RING_SIZE = 11, /* in bytes */ |
148 | MXGEFW_CMD_GET_RX_RING_SIZE, /* in bytes */ | 148 | MXGEFW_CMD_GET_RX_RING_SIZE = 12, /* in bytes */ |
149 | 149 | ||
150 | /* Parameters which refer to rings stored in the host, | 150 | /* Parameters which refer to rings stored in the host, |
151 | * and whose size is controlled by the host. Note that | 151 | * and whose size is controlled by the host. Note that |
152 | * all must be physically contiguous and must contain | 152 | * all must be physically contiguous and must contain |
153 | * a power of 2 number of entries. */ | 153 | * a power of 2 number of entries. */ |
154 | 154 | ||
155 | MXGEFW_CMD_SET_INTRQ_SIZE, /* in bytes */ | 155 | MXGEFW_CMD_SET_INTRQ_SIZE = 13, /* in bytes */ |
156 | #define MXGEFW_CMD_SET_INTRQ_SIZE_FLAG_NO_STRICT_SIZE_CHECK (1 << 31) | 156 | #define MXGEFW_CMD_SET_INTRQ_SIZE_FLAG_NO_STRICT_SIZE_CHECK (1 << 31) |
157 | 157 | ||
158 | /* command to bring ethernet interface up. Above parameters | 158 | /* command to bring ethernet interface up. Above parameters |
159 | * (plus mtu & mac address) must have been exchanged prior | 159 | * (plus mtu & mac address) must have been exchanged prior |
160 | * to issuing this command */ | 160 | * to issuing this command */ |
161 | MXGEFW_CMD_ETHERNET_UP, | 161 | MXGEFW_CMD_ETHERNET_UP = 14, |
162 | 162 | ||
163 | /* command to bring ethernet interface down. No further sends | 163 | /* command to bring ethernet interface down. No further sends |
164 | * or receives may be processed until an MXGEFW_CMD_ETHERNET_UP | 164 | * or receives may be processed until an MXGEFW_CMD_ETHERNET_UP |
165 | * is issued, and all interrupt queues must be flushed prior | 165 | * is issued, and all interrupt queues must be flushed prior |
166 | * to ack'ing this command */ | 166 | * to ack'ing this command */ |
167 | 167 | ||
168 | MXGEFW_CMD_ETHERNET_DOWN, | 168 | MXGEFW_CMD_ETHERNET_DOWN = 15, |
169 | 169 | ||
170 | /* commands the driver may issue live, without resetting | 170 | /* commands the driver may issue live, without resetting |
171 | * the nic. Note that increasing the mtu "live" should | 171 | * the nic. Note that increasing the mtu "live" should |
@@ -173,40 +173,40 @@ enum myri10ge_mcp_cmd_type { | |||
173 | * sufficiently large to handle the new mtu. Decreasing | 173 | * sufficiently large to handle the new mtu. Decreasing |
174 | * the mtu live is safe */ | 174 | * the mtu live is safe */ |
175 | 175 | ||
176 | MXGEFW_CMD_SET_MTU, | 176 | MXGEFW_CMD_SET_MTU = 16, |
177 | MXGEFW_CMD_GET_INTR_COAL_DELAY_OFFSET, /* in microseconds */ | 177 | MXGEFW_CMD_GET_INTR_COAL_DELAY_OFFSET = 17, /* in microseconds */ |
178 | MXGEFW_CMD_SET_STATS_INTERVAL, /* in microseconds */ | 178 | MXGEFW_CMD_SET_STATS_INTERVAL = 18, /* in microseconds */ |
179 | MXGEFW_CMD_SET_STATS_DMA_OBSOLETE, /* replaced by SET_STATS_DMA_V2 */ | 179 | MXGEFW_CMD_SET_STATS_DMA_OBSOLETE = 19, /* replaced by SET_STATS_DMA_V2 */ |
180 | 180 | ||
181 | MXGEFW_ENABLE_PROMISC, | 181 | MXGEFW_ENABLE_PROMISC = 20, |
182 | MXGEFW_DISABLE_PROMISC, | 182 | MXGEFW_DISABLE_PROMISC = 21, |
183 | MXGEFW_SET_MAC_ADDRESS, | 183 | MXGEFW_SET_MAC_ADDRESS = 22, |
184 | 184 | ||
185 | MXGEFW_ENABLE_FLOW_CONTROL, | 185 | MXGEFW_ENABLE_FLOW_CONTROL = 23, |
186 | MXGEFW_DISABLE_FLOW_CONTROL, | 186 | MXGEFW_DISABLE_FLOW_CONTROL = 24, |
187 | 187 | ||
188 | /* do a DMA test | 188 | /* do a DMA test |
189 | * data0,data1 = DMA address | 189 | * data0,data1 = DMA address |
190 | * data2 = RDMA length (MSH), WDMA length (LSH) | 190 | * data2 = RDMA length (MSH), WDMA length (LSH) |
191 | * command return data = repetitions (MSH), 0.5-ms ticks (LSH) | 191 | * command return data = repetitions (MSH), 0.5-ms ticks (LSH) |
192 | */ | 192 | */ |
193 | MXGEFW_DMA_TEST, | 193 | MXGEFW_DMA_TEST = 25, |
194 | 194 | ||
195 | MXGEFW_ENABLE_ALLMULTI, | 195 | MXGEFW_ENABLE_ALLMULTI = 26, |
196 | MXGEFW_DISABLE_ALLMULTI, | 196 | MXGEFW_DISABLE_ALLMULTI = 27, |
197 | 197 | ||
198 | /* returns MXGEFW_CMD_ERROR_MULTICAST | 198 | /* returns MXGEFW_CMD_ERROR_MULTICAST |
199 | * if there is no room in the cache | 199 | * if there is no room in the cache |
200 | * data0,MSH(data1) = multicast group address */ | 200 | * data0,MSH(data1) = multicast group address */ |
201 | MXGEFW_JOIN_MULTICAST_GROUP, | 201 | MXGEFW_JOIN_MULTICAST_GROUP = 28, |
202 | /* returns MXGEFW_CMD_ERROR_MULTICAST | 202 | /* returns MXGEFW_CMD_ERROR_MULTICAST |
203 | * if the address is not in the cache, | 203 | * if the address is not in the cache, |
204 | * or is equal to FF-FF-FF-FF-FF-FF | 204 | * or is equal to FF-FF-FF-FF-FF-FF |
205 | * data0,MSH(data1) = multicast group address */ | 205 | * data0,MSH(data1) = multicast group address */ |
206 | MXGEFW_LEAVE_MULTICAST_GROUP, | 206 | MXGEFW_LEAVE_MULTICAST_GROUP = 29, |
207 | MXGEFW_LEAVE_ALL_MULTICAST_GROUPS, | 207 | MXGEFW_LEAVE_ALL_MULTICAST_GROUPS = 30, |
208 | 208 | ||
209 | MXGEFW_CMD_SET_STATS_DMA_V2, | 209 | MXGEFW_CMD_SET_STATS_DMA_V2 = 31, |
210 | /* data0, data1 = bus addr, | 210 | /* data0, data1 = bus addr, |
211 | * data2 = sizeof(struct mcp_irq_data) from driver point of view, allows | 211 | * data2 = sizeof(struct mcp_irq_data) from driver point of view, allows |
212 | * adding new stuff to mcp_irq_data without changing the ABI | 212 | * adding new stuff to mcp_irq_data without changing the ABI |
@@ -216,14 +216,14 @@ enum myri10ge_mcp_cmd_type { | |||
216 | * (in the upper 16 bits). | 216 | * (in the upper 16 bits). |
217 | */ | 217 | */ |
218 | 218 | ||
219 | MXGEFW_CMD_UNALIGNED_TEST, | 219 | MXGEFW_CMD_UNALIGNED_TEST = 32, |
220 | /* same than DMA_TEST (same args) but abort with UNALIGNED on unaligned | 220 | /* same than DMA_TEST (same args) but abort with UNALIGNED on unaligned |
221 | * chipset */ | 221 | * chipset */ |
222 | 222 | ||
223 | MXGEFW_CMD_UNALIGNED_STATUS, | 223 | MXGEFW_CMD_UNALIGNED_STATUS = 33, |
224 | /* return data = boolean, true if the chipset is known to be unaligned */ | 224 | /* return data = boolean, true if the chipset is known to be unaligned */ |
225 | 225 | ||
226 | MXGEFW_CMD_ALWAYS_USE_N_BIG_BUFFERS, | 226 | MXGEFW_CMD_ALWAYS_USE_N_BIG_BUFFERS = 34, |
227 | /* data0 = number of big buffers to use. It must be 0 or a power of 2. | 227 | /* data0 = number of big buffers to use. It must be 0 or a power of 2. |
228 | * 0 indicates that the NIC consumes as many buffers as they are required | 228 | * 0 indicates that the NIC consumes as many buffers as they are required |
229 | * for packet. This is the default behavior. | 229 | * for packet. This is the default behavior. |
@@ -233,8 +233,8 @@ enum myri10ge_mcp_cmd_type { | |||
233 | * the NIC to be able to receive maximum-sized packets. | 233 | * the NIC to be able to receive maximum-sized packets. |
234 | */ | 234 | */ |
235 | 235 | ||
236 | MXGEFW_CMD_GET_MAX_RSS_QUEUES, | 236 | MXGEFW_CMD_GET_MAX_RSS_QUEUES = 35, |
237 | MXGEFW_CMD_ENABLE_RSS_QUEUES, | 237 | MXGEFW_CMD_ENABLE_RSS_QUEUES = 36, |
238 | /* data0 = number of slices n (0, 1, ..., n-1) to enable | 238 | /* data0 = number of slices n (0, 1, ..., n-1) to enable |
239 | * data1 = interrupt mode | use of multiple transmit queues. | 239 | * data1 = interrupt mode | use of multiple transmit queues. |
240 | * 0=share one INTx/MSI. | 240 | * 0=share one INTx/MSI. |
@@ -249,18 +249,18 @@ enum myri10ge_mcp_cmd_type { | |||
249 | #define MXGEFW_SLICE_INTR_MODE_ONE_PER_SLICE 0x1 | 249 | #define MXGEFW_SLICE_INTR_MODE_ONE_PER_SLICE 0x1 |
250 | #define MXGEFW_SLICE_ENABLE_MULTIPLE_TX_QUEUES 0x2 | 250 | #define MXGEFW_SLICE_ENABLE_MULTIPLE_TX_QUEUES 0x2 |
251 | 251 | ||
252 | MXGEFW_CMD_GET_RSS_SHARED_INTERRUPT_MASK_OFFSET, | 252 | MXGEFW_CMD_GET_RSS_SHARED_INTERRUPT_MASK_OFFSET = 37, |
253 | MXGEFW_CMD_SET_RSS_SHARED_INTERRUPT_DMA, | 253 | MXGEFW_CMD_SET_RSS_SHARED_INTERRUPT_DMA = 38, |
254 | /* data0, data1 = bus address lsw, msw */ | 254 | /* data0, data1 = bus address lsw, msw */ |
255 | MXGEFW_CMD_GET_RSS_TABLE_OFFSET, | 255 | MXGEFW_CMD_GET_RSS_TABLE_OFFSET = 39, |
256 | /* get the offset of the indirection table */ | 256 | /* get the offset of the indirection table */ |
257 | MXGEFW_CMD_SET_RSS_TABLE_SIZE, | 257 | MXGEFW_CMD_SET_RSS_TABLE_SIZE = 40, |
258 | /* set the size of the indirection table */ | 258 | /* set the size of the indirection table */ |
259 | MXGEFW_CMD_GET_RSS_KEY_OFFSET, | 259 | MXGEFW_CMD_GET_RSS_KEY_OFFSET = 41, |
260 | /* get the offset of the secret key */ | 260 | /* get the offset of the secret key */ |
261 | MXGEFW_CMD_RSS_KEY_UPDATED, | 261 | MXGEFW_CMD_RSS_KEY_UPDATED = 42, |
262 | /* tell nic that the secret key's been updated */ | 262 | /* tell nic that the secret key's been updated */ |
263 | MXGEFW_CMD_SET_RSS_ENABLE, | 263 | MXGEFW_CMD_SET_RSS_ENABLE = 43, |
264 | /* data0 = enable/disable rss | 264 | /* data0 = enable/disable rss |
265 | * 0: disable rss. nic does not distribute receive packets. | 265 | * 0: disable rss. nic does not distribute receive packets. |
266 | * 1: enable rss. nic distributes receive packets among queues. | 266 | * 1: enable rss. nic distributes receive packets among queues. |
@@ -277,7 +277,7 @@ enum myri10ge_mcp_cmd_type { | |||
277 | #define MXGEFW_RSS_HASH_TYPE_SRC_DST_PORT 0x5 | 277 | #define MXGEFW_RSS_HASH_TYPE_SRC_DST_PORT 0x5 |
278 | #define MXGEFW_RSS_HASH_TYPE_MAX 0x5 | 278 | #define MXGEFW_RSS_HASH_TYPE_MAX 0x5 |
279 | 279 | ||
280 | MXGEFW_CMD_GET_MAX_TSO6_HDR_SIZE, | 280 | MXGEFW_CMD_GET_MAX_TSO6_HDR_SIZE = 44, |
281 | /* Return data = the max. size of the entire headers of a IPv6 TSO packet. | 281 | /* Return data = the max. size of the entire headers of a IPv6 TSO packet. |
282 | * If the header size of a IPv6 TSO packet is larger than the specified | 282 | * If the header size of a IPv6 TSO packet is larger than the specified |
283 | * value, then the driver must not use TSO. | 283 | * value, then the driver must not use TSO. |
@@ -286,7 +286,7 @@ enum myri10ge_mcp_cmd_type { | |||
286 | * always has enough header buffer to store maximum-sized headers. | 286 | * always has enough header buffer to store maximum-sized headers. |
287 | */ | 287 | */ |
288 | 288 | ||
289 | MXGEFW_CMD_SET_TSO_MODE, | 289 | MXGEFW_CMD_SET_TSO_MODE = 45, |
290 | /* data0 = TSO mode. | 290 | /* data0 = TSO mode. |
291 | * 0: Linux/FreeBSD style (NIC default) | 291 | * 0: Linux/FreeBSD style (NIC default) |
292 | * 1: NDIS/NetBSD style | 292 | * 1: NDIS/NetBSD style |
@@ -294,33 +294,37 @@ enum myri10ge_mcp_cmd_type { | |||
294 | #define MXGEFW_TSO_MODE_LINUX 0 | 294 | #define MXGEFW_TSO_MODE_LINUX 0 |
295 | #define MXGEFW_TSO_MODE_NDIS 1 | 295 | #define MXGEFW_TSO_MODE_NDIS 1 |
296 | 296 | ||
297 | MXGEFW_CMD_MDIO_READ, | 297 | MXGEFW_CMD_MDIO_READ = 46, |
298 | /* data0 = dev_addr (PMA/PMD or PCS ...), data1 = register/addr */ | 298 | /* data0 = dev_addr (PMA/PMD or PCS ...), data1 = register/addr */ |
299 | MXGEFW_CMD_MDIO_WRITE, | 299 | MXGEFW_CMD_MDIO_WRITE = 47, |
300 | /* data0 = dev_addr, data1 = register/addr, data2 = value */ | 300 | /* data0 = dev_addr, data1 = register/addr, data2 = value */ |
301 | 301 | ||
302 | MXGEFW_CMD_XFP_I2C_READ, | 302 | MXGEFW_CMD_I2C_READ = 48, |
303 | /* Starts to get a fresh copy of one byte or of the whole xfp i2c table, the | 303 | /* Starts to get a fresh copy of one byte or of the module i2c table, the |
304 | * obtained data is cached inside the xaui-xfi chip : | 304 | * obtained data is cached inside the xaui-xfi chip : |
305 | * data0 : "all" flag : 0 => get one byte, 1=> get 256 bytes, | 305 | * data0 : 0 => get one byte, 1=> get 256 bytes |
306 | * data1 : if (data0 == 0): index of byte to refresh [ not used otherwise ] | 306 | * data1 : If data0 == 0: location to refresh |
307 | * bit 7:0 register location | ||
308 | * bit 8:15 is the i2c slave addr (0 is interpreted as 0xA1) | ||
309 | * bit 23:16 is the i2c bus number (for multi-port NICs) | ||
310 | * If data0 == 1: unused | ||
307 | * The operation might take ~1ms for a single byte or ~65ms when refreshing all 256 bytes | 311 | * The operation might take ~1ms for a single byte or ~65ms when refreshing all 256 bytes |
308 | * During the i2c operation, MXGEFW_CMD_XFP_I2C_READ or MXGEFW_CMD_XFP_BYTE attempts | 312 | * During the i2c operation, MXGEFW_CMD_I2C_READ or MXGEFW_CMD_I2C_BYTE attempts |
309 | * will return MXGEFW_CMD_ERROR_BUSY | 313 | * will return MXGEFW_CMD_ERROR_BUSY |
310 | */ | 314 | */ |
311 | MXGEFW_CMD_XFP_BYTE, | 315 | MXGEFW_CMD_I2C_BYTE = 49, |
312 | /* Return the last obtained copy of a given byte in the xfp i2c table | 316 | /* Return the last obtained copy of a given byte in the xfp i2c table |
313 | * (copy cached during the last relevant MXGEFW_CMD_XFP_I2C_READ) | 317 | * (copy cached during the last relevant MXGEFW_CMD_I2C_READ) |
314 | * data0 : index of the desired table entry | 318 | * data0 : index of the desired table entry |
315 | * Return data = the byte stored at the requested index in the table | 319 | * Return data = the byte stored at the requested index in the table |
316 | */ | 320 | */ |
317 | 321 | ||
318 | MXGEFW_CMD_GET_VPUMP_OFFSET, | 322 | MXGEFW_CMD_GET_VPUMP_OFFSET = 50, |
319 | /* Return data = NIC memory offset of mcp_vpump_public_global */ | 323 | /* Return data = NIC memory offset of mcp_vpump_public_global */ |
320 | MXGEFW_CMD_RESET_VPUMP, | 324 | MXGEFW_CMD_RESET_VPUMP = 51, |
321 | /* Resets the VPUMP state */ | 325 | /* Resets the VPUMP state */ |
322 | 326 | ||
323 | MXGEFW_CMD_SET_RSS_MCP_SLOT_TYPE, | 327 | MXGEFW_CMD_SET_RSS_MCP_SLOT_TYPE = 52, |
324 | /* data0 = mcp_slot type to use. | 328 | /* data0 = mcp_slot type to use. |
325 | * 0 = the default 4B mcp_slot | 329 | * 0 = the default 4B mcp_slot |
326 | * 1 = 8B mcp_slot_8 | 330 | * 1 = 8B mcp_slot_8 |
@@ -328,7 +332,7 @@ enum myri10ge_mcp_cmd_type { | |||
328 | #define MXGEFW_RSS_MCP_SLOT_TYPE_MIN 0 | 332 | #define MXGEFW_RSS_MCP_SLOT_TYPE_MIN 0 |
329 | #define MXGEFW_RSS_MCP_SLOT_TYPE_WITH_HASH 1 | 333 | #define MXGEFW_RSS_MCP_SLOT_TYPE_WITH_HASH 1 |
330 | 334 | ||
331 | MXGEFW_CMD_SET_THROTTLE_FACTOR, | 335 | MXGEFW_CMD_SET_THROTTLE_FACTOR = 53, |
332 | /* set the throttle factor for ethp_z8e | 336 | /* set the throttle factor for ethp_z8e |
333 | * data0 = throttle_factor | 337 | * data0 = throttle_factor |
334 | * throttle_factor = 256 * pcie-raw-speed / tx_speed | 338 | * throttle_factor = 256 * pcie-raw-speed / tx_speed |
@@ -344,45 +348,50 @@ enum myri10ge_mcp_cmd_type { | |||
344 | * with tx_boundary == 4096, max-throttle-factor == 4095 => min-speed == 1Gb/s | 348 | * with tx_boundary == 4096, max-throttle-factor == 4095 => min-speed == 1Gb/s |
345 | */ | 349 | */ |
346 | 350 | ||
347 | MXGEFW_CMD_VPUMP_UP, | 351 | MXGEFW_CMD_VPUMP_UP = 54, |
348 | /* Allocates VPump Connection, Send Request and Zero copy buffer address tables */ | 352 | /* Allocates VPump Connection, Send Request and Zero copy buffer address tables */ |
349 | MXGEFW_CMD_GET_VPUMP_CLK, | 353 | MXGEFW_CMD_GET_VPUMP_CLK = 55, |
350 | /* Get the lanai clock */ | 354 | /* Get the lanai clock */ |
351 | 355 | ||
352 | MXGEFW_CMD_GET_DCA_OFFSET, | 356 | MXGEFW_CMD_GET_DCA_OFFSET = 56, |
353 | /* offset of dca control for WDMAs */ | 357 | /* offset of dca control for WDMAs */ |
354 | 358 | ||
355 | /* VMWare NetQueue commands */ | 359 | /* VMWare NetQueue commands */ |
356 | MXGEFW_CMD_NETQ_GET_FILTERS_PER_QUEUE, | 360 | MXGEFW_CMD_NETQ_GET_FILTERS_PER_QUEUE = 57, |
357 | MXGEFW_CMD_NETQ_ADD_FILTER, | 361 | MXGEFW_CMD_NETQ_ADD_FILTER = 58, |
358 | /* data0 = filter_id << 16 | queue << 8 | type */ | 362 | /* data0 = filter_id << 16 | queue << 8 | type */ |
359 | /* data1 = MS4 of MAC Addr */ | 363 | /* data1 = MS4 of MAC Addr */ |
360 | /* data2 = LS2_MAC << 16 | VLAN_tag */ | 364 | /* data2 = LS2_MAC << 16 | VLAN_tag */ |
361 | MXGEFW_CMD_NETQ_DEL_FILTER, | 365 | MXGEFW_CMD_NETQ_DEL_FILTER = 59, |
362 | /* data0 = filter_id */ | 366 | /* data0 = filter_id */ |
363 | MXGEFW_CMD_NETQ_QUERY1, | 367 | MXGEFW_CMD_NETQ_QUERY1 = 60, |
364 | MXGEFW_CMD_NETQ_QUERY2, | 368 | MXGEFW_CMD_NETQ_QUERY2 = 61, |
365 | MXGEFW_CMD_NETQ_QUERY3, | 369 | MXGEFW_CMD_NETQ_QUERY3 = 62, |
366 | MXGEFW_CMD_NETQ_QUERY4, | 370 | MXGEFW_CMD_NETQ_QUERY4 = 63, |
367 | 371 | ||
372 | MXGEFW_CMD_RELAX_RXBUFFER_ALIGNMENT = 64, | ||
373 | /* When set, small receive buffers can cross page boundaries. | ||
374 | * Both small and big receive buffers may start at any address. | ||
375 | * This option has performance implications, so use with caution. | ||
376 | */ | ||
368 | }; | 377 | }; |
369 | 378 | ||
370 | enum myri10ge_mcp_cmd_status { | 379 | enum myri10ge_mcp_cmd_status { |
371 | MXGEFW_CMD_OK = 0, | 380 | MXGEFW_CMD_OK = 0, |
372 | MXGEFW_CMD_UNKNOWN, | 381 | MXGEFW_CMD_UNKNOWN = 1, |
373 | MXGEFW_CMD_ERROR_RANGE, | 382 | MXGEFW_CMD_ERROR_RANGE = 2, |
374 | MXGEFW_CMD_ERROR_BUSY, | 383 | MXGEFW_CMD_ERROR_BUSY = 3, |
375 | MXGEFW_CMD_ERROR_EMPTY, | 384 | MXGEFW_CMD_ERROR_EMPTY = 4, |
376 | MXGEFW_CMD_ERROR_CLOSED, | 385 | MXGEFW_CMD_ERROR_CLOSED = 5, |
377 | MXGEFW_CMD_ERROR_HASH_ERROR, | 386 | MXGEFW_CMD_ERROR_HASH_ERROR = 6, |
378 | MXGEFW_CMD_ERROR_BAD_PORT, | 387 | MXGEFW_CMD_ERROR_BAD_PORT = 7, |
379 | MXGEFW_CMD_ERROR_RESOURCES, | 388 | MXGEFW_CMD_ERROR_RESOURCES = 8, |
380 | MXGEFW_CMD_ERROR_MULTICAST, | 389 | MXGEFW_CMD_ERROR_MULTICAST = 9, |
381 | MXGEFW_CMD_ERROR_UNALIGNED, | 390 | MXGEFW_CMD_ERROR_UNALIGNED = 10, |
382 | MXGEFW_CMD_ERROR_NO_MDIO, | 391 | MXGEFW_CMD_ERROR_NO_MDIO = 11, |
383 | MXGEFW_CMD_ERROR_XFP_FAILURE, | 392 | MXGEFW_CMD_ERROR_I2C_FAILURE = 12, |
384 | MXGEFW_CMD_ERROR_XFP_ABSENT, | 393 | MXGEFW_CMD_ERROR_I2C_ABSENT = 13, |
385 | MXGEFW_CMD_ERROR_BAD_PCIE_LINK | 394 | MXGEFW_CMD_ERROR_BAD_PCIE_LINK = 14 |
386 | }; | 395 | }; |
387 | 396 | ||
388 | #define MXGEFW_OLD_IRQ_DATA_LEN 40 | 397 | #define MXGEFW_OLD_IRQ_DATA_LEN 40 |
diff --git a/drivers/net/myri10ge/myri10ge_mcp_gen_header.h b/drivers/net/myri10ge/myri10ge_mcp_gen_header.h index 124bbeac512b..caa6cbbb631e 100644 --- a/drivers/net/myri10ge/myri10ge_mcp_gen_header.h +++ b/drivers/net/myri10ge/myri10ge_mcp_gen_header.h | |||
@@ -42,6 +42,7 @@ struct mcp_gen_header { | |||
42 | unsigned short handoff_id_caps; /* bitfield: new mcp must have superset */ | 42 | unsigned short handoff_id_caps; /* bitfield: new mcp must have superset */ |
43 | unsigned msix_table_addr; /* start address of msix table in firmware */ | 43 | unsigned msix_table_addr; /* start address of msix table in firmware */ |
44 | unsigned bss_addr; /* start of bss */ | 44 | unsigned bss_addr; /* start of bss */ |
45 | unsigned features; | ||
45 | /* 8 */ | 46 | /* 8 */ |
46 | }; | 47 | }; |
47 | 48 | ||