/* All T4 and later chips have their PCI-E Device IDs encoded as 0xVFPP where: * *V="4"forT4;"5"forT5,etc.or *="a"forT4FPGA;"b"forT4FPGA,etc. *F="0"forPF0..3;"4".."7"forPF4..7;and"8"forVFs *PP=adapterproductdesignation
*/ #define CHELSIO_T4 0x4 #define CHELSIO_T5 0x5 #define CHELSIO_T6 0x6
/* *Per-"port"(VirtualInterface)linkconfiguration...
*/ typedef u16 fw_port_cap16_t; /* 16-bit Port Capabilities integral value */ typedef u32 fw_port_cap32_t; /* 32-bit Port Capabilities integral value */
enum fw_caps {
FW_CAPS_UNKNOWN = 0, /* 0'ed out initial state */
FW_CAPS16 = 1, /* old Firmware: 16-bit Port Capabilities */
FW_CAPS32 = 2, /* new Firmware: 32-bit Port Capabilities */
};
fw_port_cap32_t speed_caps; /* speed(s) user has requested */
u32 speed; /* actual link speed */
enum cc_pause requested_fc; /* flow control user has requested */ enum cc_pause fc; /* actual link flow control */ enum cc_pause advertised_fc; /* actual advertised flow control */
enum cc_fec auto_fec; /* Forward Error Correction: */ enum cc_fec requested_fec; /* "automatic" (IEEE 802.3), */ enum cc_fec fec; /* requested, and actual in use */
unsignedchar autoneg; /* autonegotiating? */
unsignedchar link_ok; /* link up? */ unsignedchar link_down_rc; /* link down reason */
};
/* Return true if the Link Configuration supports "High Speeds" (those greater *than1Gb/s).
*/ staticinlinebool is_x_10g_port(conststruct link_config *lc)
{
fw_port_cap32_t speeds, high_speeds;
/* Firmware Mailbox Command/Reply log. All values are in Host-Endian format. *Theaccessandexecutetimesaresignedinordertoaccommodatenegative *errorreturns.
*/ struct mbox_cmd {
u64 cmd[MBOX_LEN / 8]; /* a Firmware Mailbox Command/Reply */
u64 timestamp; /* OS-dependent timestamp */
u32 seqno; /* sequence number */
s16 access; /* time (ms) to access mailbox */
s16 execute; /* time (ms) to execute */
};
struct mbox_cmd_log { unsignedint size; /* number of entries in the log */ unsignedint cursor; /* next position in the log to write */
u32 seqno; /* next sequence number */ /* variable length mailbox command log starts here */
};
/* Given a pointer to a Firmware Mailbox Command Log and a log entry index, *returnapointertothespecifiedentry.
*/ staticinlinestruct mbox_cmd *mbox_cmd_log_entry(struct mbox_cmd_log *log, unsignedint entry_idx)
{ return &((struct mbox_cmd *)&(log)[1])[entry_idx];
}
unsignedint t4vf_get_pf_from_vf(struct adapter *); int t4vf_get_sge_params(struct adapter *); int t4vf_get_vpd_params(struct adapter *); int t4vf_get_dev_params(struct adapter *); int t4vf_get_rss_glb_config(struct adapter *); int t4vf_get_vfres(struct adapter *);
int t4vf_read_rss_vi_config(struct adapter *, unsignedint, union rss_vi_config *); int t4vf_write_rss_vi_config(struct adapter *, unsignedint, union rss_vi_config *); int t4vf_config_rss_range(struct adapter *, unsignedint, int, int, const u16 *, int);
int t4vf_alloc_vi(struct adapter *, int); int t4vf_free_vi(struct adapter *, int); int t4vf_enable_vi(struct adapter *adapter, unsignedint viid, bool rx_en, bool tx_en); int t4vf_enable_pi(struct adapter *adapter, struct port_info *pi, bool rx_en, bool tx_en); int t4vf_identify_port(struct adapter *, unsignedint, unsignedint);
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.