0001
0002
0003
0004 #ifndef _IXGBE_MBX_H_
0005 #define _IXGBE_MBX_H_
0006
0007 #include "ixgbe_type.h"
0008
0009 #define IXGBE_VFMAILBOX_SIZE 16
0010 #define IXGBE_ERR_MBX -100
0011
0012 #define IXGBE_VFMAILBOX 0x002FC
0013 #define IXGBE_VFMBMEM 0x00200
0014
0015 #define IXGBE_PFMAILBOX_STS 0x00000001
0016 #define IXGBE_PFMAILBOX_ACK 0x00000002
0017 #define IXGBE_PFMAILBOX_VFU 0x00000004
0018 #define IXGBE_PFMAILBOX_PFU 0x00000008
0019 #define IXGBE_PFMAILBOX_RVFU 0x00000010
0020
0021 #define IXGBE_MBVFICR_VFREQ_MASK 0x0000FFFF
0022 #define IXGBE_MBVFICR_VFREQ_VF1 0x00000001
0023 #define IXGBE_MBVFICR_VFACK_MASK 0xFFFF0000
0024 #define IXGBE_MBVFICR_VFACK_VF1 0x00010000
0025
0026
0027
0028
0029
0030
0031 #define IXGBE_VT_MSGTYPE_ACK 0x80000000
0032
0033 #define IXGBE_VT_MSGTYPE_NACK 0x40000000
0034
0035 #define IXGBE_VT_MSGTYPE_CTS 0x20000000
0036
0037 #define IXGBE_VT_MSGINFO_SHIFT 16
0038
0039 #define IXGBE_VT_MSGINFO_MASK (0xFF << IXGBE_VT_MSGINFO_SHIFT)
0040
0041
0042
0043
0044
0045
0046
0047 enum ixgbe_pfvf_api_rev {
0048 ixgbe_mbox_api_10,
0049 ixgbe_mbox_api_20,
0050 ixgbe_mbox_api_11,
0051 ixgbe_mbox_api_12,
0052 ixgbe_mbox_api_13,
0053 ixgbe_mbox_api_14,
0054
0055 ixgbe_mbox_api_unknown,
0056 };
0057
0058
0059 #define IXGBE_VF_RESET 0x01
0060 #define IXGBE_VF_SET_MAC_ADDR 0x02
0061 #define IXGBE_VF_SET_MULTICAST 0x03
0062 #define IXGBE_VF_SET_VLAN 0x04
0063
0064
0065 #define IXGBE_VF_SET_LPE 0x05
0066 #define IXGBE_VF_SET_MACVLAN 0x06
0067 #define IXGBE_VF_API_NEGOTIATE 0x08
0068
0069
0070 #define IXGBE_VF_GET_QUEUES 0x09
0071
0072
0073 #define IXGBE_VF_TX_QUEUES 1
0074 #define IXGBE_VF_RX_QUEUES 2
0075 #define IXGBE_VF_TRANS_VLAN 3
0076 #define IXGBE_VF_DEF_QUEUE 4
0077
0078
0079 #define IXGBE_VF_GET_RETA 0x0a
0080 #define IXGBE_VF_GET_RSS_KEY 0x0b
0081
0082 #define IXGBE_VF_UPDATE_XCAST_MODE 0x0c
0083
0084
0085 #define IXGBE_VF_IPSEC_ADD 0x0d
0086 #define IXGBE_VF_IPSEC_DEL 0x0e
0087
0088 #define IXGBE_VF_GET_LINK_STATE 0x10
0089
0090
0091 #define IXGBE_VF_PERMADDR_MSG_LEN 4
0092
0093 #define IXGBE_VF_MC_TYPE_WORD 3
0094
0095 #define IXGBE_PF_CONTROL_MSG 0x0100
0096
0097 #define IXGBE_VF_MBX_INIT_TIMEOUT 2000
0098 #define IXGBE_VF_MBX_INIT_DELAY 500
0099
0100 s32 ixgbe_read_mbx(struct ixgbe_hw *, u32 *, u16, u16);
0101 s32 ixgbe_write_mbx(struct ixgbe_hw *, u32 *, u16, u16);
0102 s32 ixgbe_check_for_msg(struct ixgbe_hw *, u16);
0103 s32 ixgbe_check_for_ack(struct ixgbe_hw *, u16);
0104 s32 ixgbe_check_for_rst(struct ixgbe_hw *, u16);
0105 #ifdef CONFIG_PCI_IOV
0106 void ixgbe_init_mbx_params_pf(struct ixgbe_hw *);
0107 #endif
0108
0109 extern const struct ixgbe_mbx_operations mbx_ops_generic;
0110
0111 #endif