Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixgbe/ixgbe_mbx.h
/****************************************************************************** | /****************************************************************************** | ||||
Copyright (c) 2001-2015, Intel Corporation | Copyright (c) 2001-2017, Intel Corporation | ||||
All rights reserved. | All rights reserved. | ||||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | ||||
modification, are permitted provided that the following conditions are met: | modification, are permitted provided that the following conditions are met: | ||||
1. Redistributions of source code must retain the above copyright notice, | 1. Redistributions of source code must retain the above copyright notice, | ||||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | ||||
2. Redistributions in binary form must reproduce the above copyright | 2. Redistributions in binary form must reproduce the above copyright | ||||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | ||||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | ||||
3. Neither the name of the Intel Corporation nor the names of its | 3. Neither the name of the Intel Corporation nor the names of its | ||||
contributors may be used to endorse or promote products derived from | contributors may be used to endorse or promote products derived from | ||||
this software without specific prior written permission. | this software without specific prior written permission. | ||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||
POSSIBILITY OF SUCH DAMAGE. | POSSIBILITY OF SUCH DAMAGE. | ||||
******************************************************************************/ | ******************************************************************************/ | ||||
/*$FreeBSD$*/ | /*$FreeBSD$*/ | ||||
#ifndef _IXGBE_MBX_H_ | #ifndef _IXGBE_MBX_H_ | ||||
#define _IXGBE_MBX_H_ | #define _IXGBE_MBX_H_ | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
/* | /* | ||||
* each element denotes a version of the API; existing numbers may not | * each element denotes a version of the API; existing numbers may not | ||||
* change; any additions must go at the end | * change; any additions must go at the end | ||||
*/ | */ | ||||
enum ixgbe_pfvf_api_rev { | enum ixgbe_pfvf_api_rev { | ||||
ixgbe_mbox_api_10, /* API version 1.0, linux/freebsd VF driver */ | 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_20, /* API version 2.0, solaris Phase1 VF driver */ | ||||
ixgbe_mbox_api_11, /* API version 1.1, linux/freebsd VF driver */ | ixgbe_mbox_api_11, /* API version 1.1, linux/freebsd VF driver */ | ||||
ixgbe_mbox_api_12, /* API version 1.2, linux/freebsd VF driver */ | |||||
ixgbe_mbox_api_13, /* API version 1.3, linux/freebsd VF driver */ | |||||
/* This value should always be last */ | /* This value should always be last */ | ||||
ixgbe_mbox_api_unknown, /* indicates that API version is not known */ | ixgbe_mbox_api_unknown, /* indicates that API version is not known */ | ||||
}; | }; | ||||
/* mailbox API, legacy requests */ | /* 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 */ | ||||
#define IXGBE_VF_API_NEGOTIATE 0x08 /* negotiate API version */ | #define IXGBE_VF_API_NEGOTIATE 0x08 /* negotiate API version */ | ||||
/* mailbox API, version 1.1 VF requests */ | /* mailbox API, version 1.1 VF requests */ | ||||
#define IXGBE_VF_GET_QUEUES 0x09 /* get queue configuration */ | #define IXGBE_VF_GET_QUEUES 0x09 /* get queue configuration */ | ||||
/* mailbox API, version 1.2 VF requests */ | |||||
#define IXGBE_VF_GET_RETA 0x0a /* VF request for RETA */ | |||||
#define IXGBE_VF_GET_RSS_KEY 0x0b /* get RSS key */ | |||||
#define IXGBE_VF_UPDATE_XCAST_MODE 0x0c | |||||
/* mode choices for IXGBE_VF_UPDATE_XCAST_MODE */ | |||||
enum ixgbevf_xcast_modes { | |||||
IXGBEVF_XCAST_MODE_NONE = 0, | |||||
IXGBEVF_XCAST_MODE_MULTI, | |||||
IXGBEVF_XCAST_MODE_ALLMULTI, | |||||
IXGBEVF_XCAST_MODE_PROMISC, | |||||
}; | |||||
/* GET_QUEUES return data indices within the mailbox */ | /* GET_QUEUES return data indices within the mailbox */ | ||||
#define IXGBE_VF_TX_QUEUES 1 /* number of Tx queues supported */ | #define IXGBE_VF_TX_QUEUES 1 /* number of Tx queues supported */ | ||||
#define IXGBE_VF_RX_QUEUES 2 /* number of Rx queues supported */ | #define IXGBE_VF_RX_QUEUES 2 /* number of Rx queues supported */ | ||||
#define IXGBE_VF_TRANS_VLAN 3 /* Indication of port vlan */ | #define IXGBE_VF_TRANS_VLAN 3 /* Indication of port vlan */ | ||||
#define IXGBE_VF_DEF_QUEUE 4 /* Default queue offset */ | #define IXGBE_VF_DEF_QUEUE 4 /* Default queue offset */ | ||||
/* 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 | ||||
Show All 13 Lines | |||||
#define IXGBE_VF_SET_MTU 0x0F /* set a specific MTU */ | #define IXGBE_VF_SET_MTU 0x0F /* set a specific MTU */ | ||||
/* mailbox API, version 2.0 PF requests */ | /* mailbox API, version 2.0 PF requests */ | ||||
#define IXGBE_PF_TRANSPARENT_VLAN 0x0101 /* enable transparent vlan */ | #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_write_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_check_for_msg(struct ixgbe_hw *, u16); | |||||
s32 ixgbe_check_for_ack(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_ */ |