enum myri10ge_mcp_cmd_type {
MXGEFW_CMD_NONE = 0, /* Reset the mcp, it is left in a safe state, waiting
* for the driver to set all its parameters */
MXGEFW_CMD_RESET = 1,
/* get the version number of the current firmware..
* (may be available in the eeprom strings..? */
MXGEFW_GET_MCP_VERSION = 2,
/* Parameters which must be set by the driver before it can *issueMXGEFW_CMD_ETHERNET_UP.Theypersistuntilthenext
* MXGEFW_CMD_RESET is issued */
MXGEFW_CMD_SET_INTRQ_DMA = 3, /* data0 = LSW of the host address *data1=MSWofthehostaddress *data2=slicenumberifmultipleslicesareused
*/
MXGEFW_CMD_SET_BIG_BUFFER_SIZE = 4, /* in bytes, power of 2 */
MXGEFW_CMD_SET_SMALL_BUFFER_SIZE = 5, /* in bytes */
/* Parameters which refer to lanai SRAM addresses where the
* driver must issue PIO writes for various things */
MXGEFW_CMD_GET_SEND_OFFSET = 6,
MXGEFW_CMD_GET_SMALL_RX_OFFSET = 7,
MXGEFW_CMD_GET_BIG_RX_OFFSET = 8, /* data0 = slice number if multiple slices are used */
/* Parameters which refer to rings stored on the MCP,
* and whose size is controlled by the mcp */
MXGEFW_CMD_GET_SEND_RING_SIZE = 11, /* in bytes */
MXGEFW_CMD_GET_RX_RING_SIZE = 12, /* in bytes */
/* Parameters which refer to rings stored in the host, *andwhosesizeiscontrolledbythehost.Notethat *allmustbephysicallycontiguousandmustcontain
* a power of 2 number of entries. */
/* command to bring ethernet interface up. Above parameters *(plusmtu&macaddress)musthavebeenexchangedprior
* to issuing this command */
MXGEFW_CMD_ETHERNET_UP = 14,
/* command to bring ethernet interface down. No further sends *orreceivesmaybeprocesseduntilanMXGEFW_CMD_ETHERNET_UP *isissued,andallinterruptqueuesmustbeflushedprior
* to ack'ing this command */
MXGEFW_CMD_ETHERNET_DOWN = 15,
/* commands the driver may issue live, without resetting *thenic.Notethatincreasingthemtu"live"should *onlybedoneifthedriverhasalreadysuppliedbuffers *sufficientlylargetohandlethenewmtu.Decreasing
* the mtu live is safe */
MXGEFW_CMD_SET_MTU = 16,
MXGEFW_CMD_GET_INTR_COAL_DELAY_OFFSET = 17, /* in microseconds */
MXGEFW_CMD_SET_STATS_INTERVAL = 18, /* in microseconds */
MXGEFW_CMD_SET_STATS_DMA_OBSOLETE = 19, /* replaced by SET_STATS_DMA_V2 */
/* do a DMA test *data0,data1=DMAaddress *data2=RDMAlength(MSH),WDMAlength(LSH) *commandreturndata=repetitions(MSH),0.5-msticks(LSH)
*/
MXGEFW_DMA_TEST = 25,
MXGEFW_CMD_UNALIGNED_TEST = 32, /* same than DMA_TEST (same args) but abort with UNALIGNED on unaligned
* chipset */
MXGEFW_CMD_UNALIGNED_STATUS = 33, /* return data = boolean, true if the chipset is known to be unaligned */
MXGEFW_CMD_ALWAYS_USE_N_BIG_BUFFERS = 34, /* data0 = number of big buffers to use. It must be 0 or a power of 2. *0indicatesthattheNICconsumesasmanybuffersastheyarerequired *forpacket.Thisisthedefaultbehavior. *Apowerof2numberindicatesthattheNICalwaysusesthespecified *numberofbuffersforeachbigreceivepacket. *Itisuptothedrivertoensurethatthisvalueisbigenoughfor *theNICtobeabletoreceivemaximum-sizedpackets.
*/
MXGEFW_CMD_GET_MAX_RSS_QUEUES = 35,
MXGEFW_CMD_ENABLE_RSS_QUEUES = 36, /* data0 = number of slices n (0, 1, ..., n-1) to enable *data1=interruptmode|useofmultipletransmitqueues. *0=shareoneINTx/MSI. *1=useoneMSI-Xperqueue. *Ifallqueuesshareoneinterrupt,thedrivermusthaveset *RSS_SHARED_INTERRUPT_DMAbeforeenablingqueues. *2=enablebothreceiveandsendqueues. *Withoutthisbitset,onlyonesendqueue(slice0'ssendqueue) *isenabled.Thereceivequeuesarealwaysenabled.
*/ #define MXGEFW_SLICE_INTR_MODE_SHARED 0x0 #define MXGEFW_SLICE_INTR_MODE_ONE_PER_SLICE 0x1 #define MXGEFW_SLICE_ENABLE_MULTIPLE_TX_QUEUES 0x2
MXGEFW_CMD_GET_RSS_SHARED_INTERRUPT_MASK_OFFSET = 37,
MXGEFW_CMD_SET_RSS_SHARED_INTERRUPT_DMA = 38, /* data0, data1 = bus address lsw, msw */
MXGEFW_CMD_GET_RSS_TABLE_OFFSET = 39, /* get the offset of the indirection table */
MXGEFW_CMD_SET_RSS_TABLE_SIZE = 40, /* set the size of the indirection table */
MXGEFW_CMD_GET_RSS_KEY_OFFSET = 41, /* get the offset of the secret key */
MXGEFW_CMD_RSS_KEY_UPDATED = 42, /* tell nic that the secret key's been updated */
MXGEFW_CMD_SET_RSS_ENABLE = 43, /* data0 = enable/disable rss *0:disablerss.nicdoesnotdistributereceivepackets. *1:enablerss.nicdistributesreceivepacketsamongqueues. *data1=hashtype *1:IPV4(requiredbyRSS) *2:TCP_IPV4(requiredbyRSS) *3:IPV4|TCP_IPV4(requiredbyRSS) *4:sourceport *5:sourceport+destinationport
*/ #define MXGEFW_RSS_HASH_TYPE_IPV4 0x1 #define MXGEFW_RSS_HASH_TYPE_TCP_IPV4 0x2 #define MXGEFW_RSS_HASH_TYPE_SRC_PORT 0x4 #define MXGEFW_RSS_HASH_TYPE_SRC_DST_PORT 0x5 #define MXGEFW_RSS_HASH_TYPE_MAX 0x5
MXGEFW_CMD_GET_MAX_TSO6_HDR_SIZE = 44, /* Return data = the max. size of the entire headers of a IPv6 TSO packet. *IftheheadersizeofaIPv6TSOpacketislargerthanthespecified *value,thenthedrivermustnotuseTSO. *ThissizerestrictiononlyappliestoIPv6TSO. *ForIPv4TSO,themaximumsizeoftheheadersisfixed,andtheNIC *alwayshasenoughheaderbuffertostoremaximum-sizedheaders.
*/
MXGEFW_CMD_I2C_READ = 48, /* Starts to get a fresh copy of one byte or of the module i2c table, the *obtaineddataiscachedinsidethexaui-xfichip: *data0:0=>getonebyte,1=>get256bytes *data1:Ifdata0==0:locationtorefresh *bit7:0registerlocation *bit8:15isthei2cslaveaddr(0isinterpretedas0xA1) *bit23:16isthei2cbusnumber(formulti-portNICs) *Ifdata0==1:unused *Theoperationmighttake~1msforasinglebyteor~65mswhenrefreshingall256bytes *Duringthei2coperation,MXGEFW_CMD_I2C_READorMXGEFW_CMD_I2C_BYTEattempts *willreturnMXGEFW_CMD_ERROR_BUSY
*/
MXGEFW_CMD_I2C_BYTE = 49, /* Return the last obtained copy of a given byte in the xfp i2c table *(copycachedduringthelastrelevantMXGEFW_CMD_I2C_READ) *data0:indexofthedesiredtableentry *Returndata=thebytestoredattherequestedindexinthetable
*/
MXGEFW_CMD_GET_VPUMP_OFFSET = 50, /* Return data = NIC memory offset of mcp_vpump_public_global */
MXGEFW_CMD_RESET_VPUMP = 51, /* Resets the VPUMP state */
MXGEFW_CMD_SET_RSS_MCP_SLOT_TYPE = 52, /* data0 = mcp_slot type to use. *0=thedefault4Bmcp_slot *1=8Bmcp_slot_8
*/ #define MXGEFW_RSS_MCP_SLOT_TYPE_MIN 0 #define MXGEFW_RSS_MCP_SLOT_TYPE_WITH_HASH 1
MXGEFW_CMD_SET_THROTTLE_FACTOR = 53, /* set the throttle factor for ethp_z8e *data0=throttle_factor *throttle_factor=256*pcie-raw-speed/tx_speed *tx_speed=256*pcie-raw-speed/throttle_factor * *ForPCI-Ex8:pcie-raw-speed==16Gb/s *ForPCI-Ex4:pcie-raw-speed==8Gb/s * *ex1:throttle_factor==0x1a0(416),tx_speed==1.23GB/s==9.846Gb/s *ex2:throttle_factor==0x200(512),tx_speed==1.0GB/s==8Gb/s * *withtx_boundary==2048,max-throttle-factor==8191=>min-speed==500Mb/s *withtx_boundary==4096,max-throttle-factor==4095=>min-speed==1Gb/s
*/
MXGEFW_CMD_VPUMP_UP = 54, /* Allocates VPump Connection, Send Request and Zero copy buffer address tables */
MXGEFW_CMD_GET_VPUMP_CLK = 55, /* Get the lanai clock */
MXGEFW_CMD_GET_DCA_OFFSET = 56, /* offset of dca control for WDMAs */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.