Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixgbe/ixgbe_mbx.h
Show First 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | |||||
#define IXGBE_VT_MSGTYPE_NACK 0x40000000 /* Messages below or'd with | #define IXGBE_VT_MSGTYPE_NACK 0x40000000 /* Messages below or'd with | ||||
* this are the NACK */ | * this are the NACK */ | ||||
#define IXGBE_VT_MSGTYPE_CTS 0x20000000 /* Indicates that VF is still | #define IXGBE_VT_MSGTYPE_CTS 0x20000000 /* Indicates that VF is still | ||||
* clear to send requests */ | * clear to send requests */ | ||||
#define IXGBE_VT_MSGINFO_SHIFT 16 | #define IXGBE_VT_MSGINFO_SHIFT 16 | ||||
/* bits 23:16 are used for extra info for certain messages */ | /* bits 23:16 are used for extra info for certain messages */ | ||||
#define IXGBE_VT_MSGINFO_MASK (0xFF << IXGBE_VT_MSGINFO_SHIFT) | #define IXGBE_VT_MSGINFO_MASK (0xFF << IXGBE_VT_MSGINFO_SHIFT) | ||||
/* definitions to support mailbox API version negotiation */ | |||||
/* | |||||
* each element denotes a version of the API; existing numbers may not | |||||
* change; any additions must go at the end | |||||
*/ | |||||
enum ixgbe_pfvf_api_rev { | |||||
ixgbe_mbox_api_10, /* API version 1.0, linux/freebsd VF driver */ | |||||
ixgbe_mbox_api_20, /* API version 2.0, solaris Phase1 VF driver */ | |||||
ixgbe_mbox_api_11, /* API version 1.1, linux/freebsd VF driver */ | |||||
/* This value should always be last */ | |||||
ixgbe_mbox_api_unknown, /* indicates that API version is not known */ | |||||
}; | |||||
/* mailbox API, legacy requests */ | |||||
#define IXGBE_VF_RESET 0x01 /* VF requests reset */ | #define IXGBE_VF_RESET 0x01 /* VF requests reset */ | ||||
#define IXGBE_VF_SET_MAC_ADDR 0x02 /* VF requests PF to set MAC addr */ | #define IXGBE_VF_SET_MAC_ADDR 0x02 /* VF requests PF to set MAC addr */ | ||||
#define IXGBE_VF_SET_MULTICAST 0x03 /* VF requests PF to set MC addr */ | #define IXGBE_VF_SET_MULTICAST 0x03 /* VF requests PF to set MC addr */ | ||||
#define IXGBE_VF_SET_VLAN 0x04 /* VF requests PF to set VLAN */ | #define IXGBE_VF_SET_VLAN 0x04 /* VF requests PF to set VLAN */ | ||||
/* mailbox API, version 1.0 VF requests */ | /* mailbox API, version 1.0 VF requests */ | ||||
#define IXGBE_VF_SET_LPE 0x05 /* VF requests PF to set VMOLR.LPE */ | #define IXGBE_VF_SET_LPE 0x05 /* VF requests PF to set VMOLR.LPE */ | ||||
#define IXGBE_VF_SET_MACVLAN 0x06 /* VF requests PF for unicast filter */ | #define IXGBE_VF_SET_MACVLAN 0x06 /* VF requests PF for unicast filter */ | ||||
Show All 10 Lines | |||||
/* length of permanent address message returned from PF */ | /* length of permanent address message returned from PF */ | ||||
#define IXGBE_VF_PERMADDR_MSG_LEN 4 | #define IXGBE_VF_PERMADDR_MSG_LEN 4 | ||||
/* word in permanent address message with the current multicast type */ | /* word in permanent address message with the current multicast type */ | ||||
#define IXGBE_VF_MC_TYPE_WORD 3 | #define IXGBE_VF_MC_TYPE_WORD 3 | ||||
#define IXGBE_PF_CONTROL_MSG 0x0100 /* PF control message */ | #define IXGBE_PF_CONTROL_MSG 0x0100 /* PF control message */ | ||||
/* mailbox API, version 2.0 VF requests */ | |||||
#define IXGBE_VF_API_NEGOTIATE 0x08 /* negotiate API version */ | |||||
#define IXGBE_VF_GET_QUEUES 0x09 /* get queue configuration */ | |||||
#define IXGBE_VF_ENABLE_MACADDR 0x0A /* enable MAC address */ | |||||
#define IXGBE_VF_DISABLE_MACADDR 0x0B /* disable MAC address */ | |||||
#define IXGBE_VF_GET_MACADDRS 0x0C /* get all configured MAC addrs */ | |||||
#define IXGBE_VF_SET_MCAST_PROMISC 0x0D /* enable multicast promiscuous */ | |||||
#define IXGBE_VF_GET_MTU 0x0E /* get bounds on MTU */ | |||||
#define IXGBE_VF_SET_MTU 0x0F /* set a specific MTU */ | |||||
/* mailbox API, version 2.0 PF requests */ | |||||
#define IXGBE_PF_TRANSPARENT_VLAN 0x0101 /* enable transparent vlan */ | |||||
#define IXGBE_VF_MBX_INIT_TIMEOUT 2000 /* number of retries on mailbox */ | #define IXGBE_VF_MBX_INIT_TIMEOUT 2000 /* number of retries on mailbox */ | ||||
#define IXGBE_VF_MBX_INIT_DELAY 500 /* microseconds between retries */ | #define IXGBE_VF_MBX_INIT_DELAY 500 /* microseconds between retries */ | ||||
s32 ixgbe_read_mbx(struct ixgbe_hw *, u32 *, u16, u16); | s32 ixgbe_read_mbx(struct ixgbe_hw *, u32 *, u16, u16); | ||||
s32 ixgbe_write_mbx(struct ixgbe_hw *, u32 *, u16, u16); | s32 ixgbe_write_mbx(struct ixgbe_hw *, u32 *, u16, u16); | ||||
s32 ixgbe_read_posted_mbx(struct ixgbe_hw *, u32 *, u16, u16); | s32 ixgbe_read_posted_mbx(struct ixgbe_hw *, u32 *, u16, u16); | ||||
s32 ixgbe_write_posted_mbx(struct ixgbe_hw *, u32 *, u16, u16); | s32 ixgbe_write_posted_mbx(struct ixgbe_hw *, u32 *, u16, u16); | ||||
s32 ixgbe_check_for_msg(struct ixgbe_hw *, u16); | s32 ixgbe_check_for_msg(struct ixgbe_hw *, u16); | ||||
s32 ixgbe_check_for_ack(struct ixgbe_hw *, u16); | s32 ixgbe_check_for_ack(struct ixgbe_hw *, u16); | ||||
s32 ixgbe_check_for_rst(struct ixgbe_hw *, u16); | s32 ixgbe_check_for_rst(struct ixgbe_hw *, u16); | ||||
void ixgbe_init_mbx_ops_generic(struct ixgbe_hw *hw); | void ixgbe_init_mbx_ops_generic(struct ixgbe_hw *hw); | ||||
void ixgbe_init_mbx_params_vf(struct ixgbe_hw *); | void ixgbe_init_mbx_params_vf(struct ixgbe_hw *); | ||||
void ixgbe_init_mbx_params_pf(struct ixgbe_hw *); | void ixgbe_init_mbx_params_pf(struct ixgbe_hw *); | ||||
#endif /* _IXGBE_MBX_H_ */ | #endif /* _IXGBE_MBX_H_ */ |