/* The following macros affect the way the driver data structures *aregeneratedforOcteondevices. *Theycanbemodified.
*/
/* Maximum octeon devices defined as MAX_OCTEON_NICIF to support *multiple(<=MAX_OCTEON_NICIF)Miniports
*/ #define MAX_OCTEON_NICIF 128 #define MAX_OCTEON_DEVICES MAX_OCTEON_NICIF #define MAX_OCTEON_LINKS MAX_OCTEON_NICIF #define MAX_OCTEON_MULTICAST_ADDR 32
/** Structure to define the configuration attributes for each Input queue. *ApplicabletoallOcteonprocessors
**/ struct octeon_iq_config { #ifdef __BIG_ENDIAN_BITFIELD
u64 reserved:16;
/** Tx interrupt packets. Applicable to 23xx only */
u64 iq_intr_pkt:16;
/** Minimum ticks to wait before checking for pending instructions. */
u64 db_timeout:16;
/** Minimum number of commands pending to be posted to Octeon *beforedriverhitstheInputqueuedoorbell.
*/
u64 db_min:8;
/** Minimum number of commands pending to be posted to Octeon *beforedriverhitstheInputqueuedoorbell.
*/
u64 db_min:8;
/** Minimum ticks to wait before checking for pending instructions. */
u64 db_timeout:16;
/** Tx interrupt packets. Applicable to 23xx only */
u64 iq_intr_pkt:16;
u64 reserved:16; #endif
};
/** Structure to define the configuration attributes for each Output queue. *ApplicabletoallOcteonprocessors
**/ struct octeon_oq_config { #ifdef __BIG_ENDIAN_BITFIELD
u64 reserved:16;
u64 pkts_per_intr:16;
/** Interrupt Coalescing (Time Interval). Octeon will interrupt the *hostifatleastonepacketwassentinthetimeintervalspecified *bythisfield.Thedriverusestimeintervalinterruptcoalescing *bydefault.Thetimeisspecifiedinmicroseconds.
*/
u64 oq_intr_time:16;
/** Interrupt Coalescing (Packet Count). Octeon will interrupt the host *onlyifitsentasmanypacketsasspecifiedbythisfield. *Thedriver *usuallydoesnotusepacketcountinterruptcoalescing.
*/
u64 oq_intr_pkt:16;
/** The number of buffers that were consumed during packet processing by *thedriveronthisOutputqueuebeforethedriverattemptsto *replenish *thedescriptorringwithnewbuffers.
*/
u64 refill_threshold:16;
/* Max number of OQs available */
u64 max_oqs:8;
#else /* Max number of OQs available */
u64 max_oqs:8;
/** The number of buffers that were consumed during packet processing by *thedriveronthisOutputqueuebeforethedriverattemptsto *replenish *thedescriptorringwithnewbuffers.
*/
u64 refill_threshold:16;
/** Interrupt Coalescing (Packet Count). Octeon will interrupt the host *onlyifitsentasmanypacketsasspecifiedbythisfield. *Thedriver *usuallydoesnotusepacketcountinterruptcoalescing.
*/
u64 oq_intr_pkt:16;
/** Interrupt Coalescing (Time Interval). Octeon will interrupt the *hostifatleastonepacketwassentinthetimeintervalspecified *bythisfield.Thedriverusestimeintervalinterruptcoalescing *bydefault.Thetimeisspecifiedinmicroseconds.
*/
u64 oq_intr_time:16;
u64 pkts_per_intr:16;
u64 reserved:16; #endif
};
/** This structure conatins the NIC link configuration attributes, *commonforalltheOCTEONModles.
*/ struct octeon_nic_if_config { #ifdef __BIG_ENDIAN_BITFIELD
u64 reserved:56;
u64 base_queue:16;
u64 gmx_port_id:8;
/* SKB size, We need not change buf size even for Jumbo frames. *Octeoncansendjumboframesin4consecutivedescriptors,
*/
u64 rx_buf_size:16;
/* Num of desc for tx rings */
u64 num_tx_descs:16;
/* Num of desc for rx rings */
u64 num_rx_descs:16;
/* Actual configured value. Range could be: 1...max_rxqs */
u64 num_rxqs:16;
/* Max Rxqs: Half for each of the two ports :max_oq/2 */
u64 max_rxqs:16;
/* Actual configured value. Range could be: 1...max_txqs */
u64 num_txqs:16;
/* Max Txqs: Half for each of the two ports :max_iq/2 */
u64 max_txqs:16; #else /* Max Txqs: Half for each of the two ports :max_iq/2 */
u64 max_txqs:16;
/* Actual configured value. Range could be: 1...max_txqs */
u64 num_txqs:16;
/* Max Rxqs: Half for each of the two ports :max_oq/2 */
u64 max_rxqs:16;
/* Actual configured value. Range could be: 1...max_rxqs */
u64 num_rxqs:16;
/* Num of desc for rx rings */
u64 num_rx_descs:16;
/* Num of desc for tx rings */
u64 num_tx_descs:16;
/* SKB size, We need not change buf size even for Jumbo frames. *Octeoncansendjumboframesin4consecutivedescriptors,
*/
u64 rx_buf_size:16;
u64 gmx_port_id:8;
u64 base_queue:16;
u64 reserved:56; #endif
};
/** Structure to define the configuration attributes for meta data. *ApplicabletoallOcteonprocessors.
*/
struct octeon_misc_config { #ifdef __BIG_ENDIAN_BITFIELD /** Host link status polling period */
u64 host_link_query_interval:32; /** Oct link status polling period */
u64 oct_link_query_interval:32;
u64 enable_sli_oq_bp:1; /** Control IQ Group */
u64 ctrlq_grp:4; #else /** Control IQ Group */
u64 ctrlq_grp:4; /** BP for SLI OQ */
u64 enable_sli_oq_bp:1; /** Host link status polling period */
u64 oct_link_query_interval:32; /** Oct link status polling period */
u64 host_link_query_interval:32; #endif
};
/** Structure to define the configuration for all OCTEON processors. */ struct octeon_config {
u16 card_type; char *card_name;
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.