39#define IXGBE_VFWRITE_REG IXGBE_WRITE_REG
40#define IXGBE_VFREAD_REG IXGBE_READ_REG
117 for (i = 0; i < 8; i++) {
180 u8 *addr = (
u8 *)(&msgbuf[1]);
190 DEBUGOUT(
"Issuing a function level reset to MAC\n");
272 reg_val &= ~IXGBE_RXDCTL_ENABLE;
303 vector = ((mc_addr[4] >> 4) | (((
u16)mc_addr[5]) << 4));
306 vector = ((mc_addr[4] >> 3) | (((
u16)mc_addr[5]) << 5));
309 vector = ((mc_addr[4] >> 2) | (((
u16)mc_addr[5]) << 6));
312 vector = ((mc_addr[4]) | (((
u16)mc_addr[5]) << 8));
315 DEBUGOUT(
"MC filter type param set incorrectly\n");
349 u8 *msg_addr = (
u8 *)(&msgbuf[1]);
353 memset(msgbuf, 0, 12);
355 memcpy(msg_addr, addr, 6);
358 msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS;
386 u16 *vector_list = (
u16 *)&msgbuf[1];
393 DEBUGFUNC(
"ixgbe_update_mc_addr_list_vf");
404 DEBUGOUT1(
"MC Addr Count = %d\n", mc_addr_count);
406 cnt = (mc_addr_count > 30) ? 30 : mc_addr_count;
410 for (i = 0; i < cnt; i++) {
412 DEBUGOUT1(
"Hash value = 0x%03X\n", vector);
413 vector_list[i] = (
u16)vector;
444 msgbuf[1] = xcast_mode;
450 msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS;
478 *link_state = msgbuf[1];
495 bool vlan_on,
bool vlvf_bypass)
554 u32 msgbuf[3], msgbuf_chk;
555 u8 *msg_addr = (
u8 *)(&msgbuf[1]);
558 memset(msgbuf, 0,
sizeof(msgbuf));
567 msgbuf_chk = msgbuf[0];
569 memcpy(msg_addr, addr, 6);
573 msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS;
591 bool autoneg_wait_to_complete)
607 bool *link_up,
bool autoneg_wait_to_complete)
634 for (i = 0; i < 5; i++) {
674 if (mbx->
ops.
read(hw, &in_msg, 1, 0))
711 msgbuf[1] = max_size;
740 msg[0] &= ~IXGBE_VT_MSGTYPE_CTS;
755 unsigned int *default_tc)
772 msg[1] = msg[2] = msg[3] = msg[4] = 0;
776 msg[0] &= ~IXGBE_VT_MSGTYPE_CTS;
void ixgbe_init_mbx_params_vf(struct ixgbe_hw *hw)
#define IXGBE_VT_MSGTYPE_ACK
#define IXGBE_VF_MC_TYPE_WORD
#define IXGBE_VF_GET_QUEUES
#define IXGBE_VF_SET_VLAN
#define IXGBE_VT_MSGTYPE_NACK
#define IXGBE_VF_TX_QUEUES
#define IXGBE_VT_MSGINFO_SHIFT
#define IXGBE_VF_RX_QUEUES
#define IXGBE_VF_MBX_INIT_TIMEOUT
#define IXGBE_VFMAILBOX_SIZE
#define IXGBE_VF_API_NEGOTIATE
#define IXGBE_VF_SET_MACVLAN
#define IXGBE_VF_GET_LINK_STATE
#define IXGBE_VF_DEF_QUEUE
@ IXGBEVF_XCAST_MODE_ALLMULTI
#define IXGBE_VF_PERMADDR_MSG_LEN
#define IXGBE_VF_TRANS_VLAN
#define IXGBE_VT_MSGTYPE_CTS
#define IXGBE_VF_UPDATE_XCAST_MODE
#define IXGBE_VF_SET_MULTICAST
#define IXGBE_VF_SET_MAC_ADDR
#define UNREFERENCED_2PARAMETER(_p, _q)
#define IXGBE_READ_REG(a, reg)
#define UNREFERENCED_1PARAMETER(_p)
#define IXGBE_WRITE_FLUSH(a)
#define IXGBE_WRITE_REG(a, reg, val)
#define UNREFERENCED_3PARAMETER(_p, _q, _r)
#define IXGBE_ERR_INVALID_MAC_ADDR
#define IXGBE_DCA_TXCTRL_DATA_RRO_EN
#define IXGBE_ETH_LENGTH_OF_ADDRESS
#define IXGBE_TXDCTL_SWFLSH
#define IXGBE_LINKS_SPEED_10G_82599
#define IXGBE_DCA_RXCTRL_HEAD_WRO_EN
#define IXGBE_LINK_SPEED_5GB_FULL
#define IXGBE_VF_INIT_TIMEOUT
u8 *(* ixgbe_mc_addr_itr)(struct ixgbe_hw *hw, u8 **mc_addr_ptr, u32 *vmdq)
#define IXGBE_DCA_RXCTRL_DESC_RRO_EN
#define IXGBE_LINK_SPEED_UNKNOWN
#define IXGBE_LINKS_SPEED_1G_82599
#define IXGBE_LINKS_SPEED_10_X550EM_A
#define IXGBE_ERR_FEATURE_NOT_SUPPORTED
#define IXGBE_LINKS_SPEED_82599
#define IXGBE_LINKS_SPEED_NON_STD
#define IXGBE_LINK_SPEED_10_FULL
#define IXGBE_LINK_SPEED_100_FULL
#define IXGBE_LINKS_SPEED_100_82599
#define IXGBE_ERR_INVALID_ARGUMENT
#define IXGBE_LINK_SPEED_1GB_FULL
#define IXGBE_DCA_TXCTRL_DESC_RRO_EN
#define IXGBE_ERR_OUT_OF_MEM
#define IXGBE_SRRCTL_BSIZEHDRSIZE_SHIFT
#define IXGBE_DCA_TXCTRL_DESC_WRO_EN
#define IXGBE_SRRCTL_BSIZEPKT_SHIFT
#define IXGBE_LINK_SPEED_2_5GB_FULL
#define IXGBE_LINK_SPEED_10GB_FULL
#define IXGBE_DCA_RXCTRL_DATA_WRO_EN
#define IXGBE_ERR_RESET_FAILED
static s32 ixgbe_mta_vector(struct ixgbe_hw *hw, u8 *mc_addr)
s32 ixgbe_get_link_state_vf(struct ixgbe_hw *hw, bool *link_state)
int ixgbevf_negotiate_api_version(struct ixgbe_hw *hw, int api)
#define IXGBE_VFWRITE_REG
int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs, unsigned int *default_tc)
static void ixgbe_virt_clr_reg(struct ixgbe_hw *hw)
s32 ixgbe_update_mc_addr_list_vf(struct ixgbe_hw *hw, u8 *mc_addr_list, u32 mc_addr_count, ixgbe_mc_addr_itr next, bool clear)
u32 ixgbe_get_num_of_rx_queues_vf(struct ixgbe_hw *hw)
s32 ixgbevf_rlpml_set_vf(struct ixgbe_hw *hw, u16 max_size)
static s32 ixgbevf_write_msg_read_ack(struct ixgbe_hw *hw, u32 *msg, u32 *retmsg, u16 size)
s32 ixgbe_start_hw_vf(struct ixgbe_hw *hw)
s32 ixgbe_set_vfta_vf(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on, bool vlvf_bypass)
s32 ixgbevf_update_xcast_mode(struct ixgbe_hw *hw, int xcast_mode)
s32 ixgbe_stop_adapter_vf(struct ixgbe_hw *hw)
s32 ixgbe_get_mac_addr_vf(struct ixgbe_hw *hw, u8 *mac_addr)
s32 ixgbe_set_rar_vf(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq, u32 enable_addr)
s32 ixgbe_init_hw_vf(struct ixgbe_hw *hw)
u32 ixgbe_get_num_of_tx_queues_vf(struct ixgbe_hw *hw)
s32 ixgbe_setup_mac_link_vf(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
s32 ixgbevf_set_uc_addr_vf(struct ixgbe_hw *hw, u32 index, u8 *addr)
s32 ixgbe_reset_hw_vf(struct ixgbe_hw *hw)
s32 ixgbe_check_mac_link_vf(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *link_up, bool autoneg_wait_to_complete)
s32 ixgbe_init_ops_vf(struct ixgbe_hw *hw)
#define IXGBE_VFTXDCTL(x)
#define IXGBE_VFTDWBAH(x)
#define IXGBE_VF_IRQ_CLEAR_MASK
#define IXGBE_VFSRRCTL(x)
#define IXGBE_VFTDWBAL(x)
#define IXGBE_VFDCA_TXCTRL(x)
#define IXGBE_VF_MAX_RX_QUEUES
#define IXGBE_VFRXDCTL(x)
#define IXGBE_VFDCA_RXCTRL(x)
#define IXGBE_VF_MAX_TX_QUEUES
struct ixgbe_mac_info mac
struct ixgbe_mbx_info mbx
u8 perm_addr[IXGBE_ETH_LENGTH_OF_ADDRESS]
u8 addr[IXGBE_ETH_LENGTH_OF_ADDRESS]
struct ixgbe_mac_operations ops
s32(* reset_hw)(struct ixgbe_hw *)
s32(* init_hw)(struct ixgbe_hw *)
s32(* update_xcast_mode)(struct ixgbe_hw *, int)
s32(* get_mac_addr)(struct ixgbe_hw *, u8 *)
s32(* set_rlpml)(struct ixgbe_hw *, u16)
s32(* init_rx_addrs)(struct ixgbe_hw *)
s32(* setup_link)(struct ixgbe_hw *, ixgbe_link_speed, bool)
s32(* set_rar)(struct ixgbe_hw *, u32, u8 *, u32, u32)
s32(* disable_mc)(struct ixgbe_hw *)
s32(* enable_mc)(struct ixgbe_hw *)
s32(* clear_vfta)(struct ixgbe_hw *)
s32(* check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool)
s32(* set_vfta)(struct ixgbe_hw *, u32, u32, bool, bool)
s32(* get_link_state)(struct ixgbe_hw *hw, bool *link_state)
s32(* update_mc_addr_list)(struct ixgbe_hw *, u8 *, u32, ixgbe_mc_addr_itr, bool clear)
s32(* set_uc_addr)(struct ixgbe_hw *, u32, u8 *)
s32(* get_link_capabilities)(struct ixgbe_hw *, ixgbe_link_speed *, bool *)
s32(* clear_hw_cntrs)(struct ixgbe_hw *)
enum ixgbe_media_type(* get_media_type)(struct ixgbe_hw *)
s32(* get_bus_info)(struct ixgbe_hw *)
s32(* start_hw)(struct ixgbe_hw *)
s32(* stop_adapter)(struct ixgbe_hw *)
s32(* negotiate_api_version)(struct ixgbe_hw *hw, int api)
struct ixgbe_mbx_operations ops
s32(* read_posted)(struct ixgbe_hw *, u32 *, u16, u16)
s32(* write_posted)(struct ixgbe_hw *, u32 *, u16, u16)
void(* init_params)(struct ixgbe_hw *hw)
s32(* check_for_rst)(struct ixgbe_hw *, u16)
s32(* read)(struct ixgbe_hw *, u32 *, u16, u16)