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
47enum 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#define IXGBE_VF_GET_LINK_STATE 0x10
89
90
91#define IXGBE_VF_PERMADDR_MSG_LEN 4
92
93#define IXGBE_VF_MC_TYPE_WORD 3
94
95#define IXGBE_PF_CONTROL_MSG 0x0100
96
97#define IXGBE_VF_MBX_INIT_TIMEOUT 2000
98#define IXGBE_VF_MBX_INIT_DELAY 500
99
100s32 ixgbe_read_mbx(struct ixgbe_hw *, u32 *, u16, u16);
101s32 ixgbe_write_mbx(struct ixgbe_hw *, u32 *, u16, u16);
102s32 ixgbe_check_for_msg(struct ixgbe_hw *, u16);
103s32 ixgbe_check_for_ack(struct ixgbe_hw *, u16);
104s32 ixgbe_check_for_rst(struct ixgbe_hw *, u16);
105#ifdef CONFIG_PCI_IOV
106void ixgbe_init_mbx_params_pf(struct ixgbe_hw *);
107#endif
108
109extern const struct ixgbe_mbx_operations mbx_ops_generic;
110
111#endif
112