1
2
3
4 #ifndef _IXGBE_MBX_H_
5 #define _IXGBE_MBX_H_
6
7 #include "ixgbe_type.h"
8
9 #define IXGBE_VFMAILBOX_SIZE 16
10 #define IXGBE_ERR_MBX -100
11
12 #define IXGBE_VFMAILBOX 0x002FC
13 #define IXGBE_VFMBMEM 0x00200
14
15 #define IXGBE_PFMAILBOX_STS 0x00000001
16 #define IXGBE_PFMAILBOX_ACK 0x00000002
17 #define IXGBE_PFMAILBOX_VFU 0x00000004
18 #define IXGBE_PFMAILBOX_PFU 0x00000008
19 #define IXGBE_PFMAILBOX_RVFU 0x00000010
20
21 #define IXGBE_MBVFICR_VFREQ_MASK 0x0000FFFF
22 #define IXGBE_MBVFICR_VFREQ_VF1 0x00000001
23 #define IXGBE_MBVFICR_VFACK_MASK 0xFFFF0000
24 #define IXGBE_MBVFICR_VFACK_VF1 0x00010000
25
26
27
28
29
30
31 #define IXGBE_VT_MSGTYPE_ACK 0x80000000
32
33 #define IXGBE_VT_MSGTYPE_NACK 0x40000000
34
35 #define IXGBE_VT_MSGTYPE_CTS 0x20000000
36
37 #define IXGBE_VT_MSGINFO_SHIFT 16
38
39 #define IXGBE_VT_MSGINFO_MASK (0xFF << IXGBE_VT_MSGINFO_SHIFT)
40
41
42
43
44
45
46
47 enum ixgbe_pfvf_api_rev {
48 ixgbe_mbox_api_10,
49 ixgbe_mbox_api_20,
50 ixgbe_mbox_api_11,
51 ixgbe_mbox_api_12,
52 ixgbe_mbox_api_13,
53 ixgbe_mbox_api_14,
54
55 ixgbe_mbox_api_unknown,
56 };
57
58
59 #define IXGBE_VF_RESET 0x01
60 #define IXGBE_VF_SET_MAC_ADDR 0x02
61 #define IXGBE_VF_SET_MULTICAST 0x03
62 #define IXGBE_VF_SET_VLAN 0x04
63
64
65 #define IXGBE_VF_SET_LPE 0x05
66 #define IXGBE_VF_SET_MACVLAN 0x06
67 #define IXGBE_VF_API_NEGOTIATE 0x08
68
69
70 #define IXGBE_VF_GET_QUEUES 0x09
71
72
73 #define IXGBE_VF_TX_QUEUES 1
74 #define IXGBE_VF_RX_QUEUES 2
75 #define IXGBE_VF_TRANS_VLAN 3
76 #define IXGBE_VF_DEF_QUEUE 4
77
78
79 #define IXGBE_VF_GET_RETA 0x0a
80 #define IXGBE_VF_GET_RSS_KEY 0x0b
81
82 #define IXGBE_VF_UPDATE_XCAST_MODE 0x0c
83
84
85 #define IXGBE_VF_IPSEC_ADD 0x0d
86 #define IXGBE_VF_IPSEC_DEL 0x0e
87
88
89 #define IXGBE_VF_PERMADDR_MSG_LEN 4
90
91 #define IXGBE_VF_MC_TYPE_WORD 3
92
93 #define IXGBE_PF_CONTROL_MSG 0x0100
94
95 #define IXGBE_VF_MBX_INIT_TIMEOUT 2000
96 #define IXGBE_VF_MBX_INIT_DELAY 500
97
98 s32 ixgbe_read_mbx(struct ixgbe_hw *, u32 *, u16, u16);
99 s32 ixgbe_write_mbx(struct ixgbe_hw *, u32 *, u16, u16);
100 s32 ixgbe_check_for_msg(struct ixgbe_hw *, u16);
101 s32 ixgbe_check_for_ack(struct ixgbe_hw *, u16);
102 s32 ixgbe_check_for_rst(struct ixgbe_hw *, u16);
103 #ifdef CONFIG_PCI_IOV
104 void ixgbe_init_mbx_params_pf(struct ixgbe_hw *);
105 #endif
106
107 extern const struct ixgbe_mbx_operations mbx_ops_generic;
108
109 #endif