[intelxl] Negotiate virtual function API version 1.1

Negotiate API version 1.1 in order to allow access to virtual function
opcodes that are disallowed by default on the E810.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2022-08-16 15:48:24 +01:00
parent b52ea20841
commit 491c075f7f
3 changed files with 31 additions and 3 deletions
+23 -2
View File
@@ -91,7 +91,7 @@ struct intelxlvf_admin_version_buffer {
#define INTELXLVF_ADMIN_API_MAJOR 1
/** Admin queue VF API minor version */
#define INTELXLVF_ADMIN_API_MINOR 0
#define INTELXLVF_ADMIN_API_MINOR 1
/** Admin Queue VF Reset opcode */
#define INTELXLVF_ADMIN_RESET 0x00000002
@@ -99,10 +99,26 @@ struct intelxlvf_admin_version_buffer {
/** Admin Queue VF Get Resources opcode */
#define INTELXLVF_ADMIN_GET_RESOURCES 0x00000003
/** Admin Queue VF Capabilities data buffer */
struct intelxlvf_admin_capabilities_buffer {
/** Capabilities */
uint32_t caps;
} __attribute__ (( packed ));
/** Admin Queue VF Get Resources data buffer */
struct intelxlvf_admin_get_resources_buffer {
/** Number of VSIs */
uint16_t vsis;
/** Number of queue pairs */
uint16_t qps;
/** Number of MSI-X vectors */
uint16_t vectors;
/** Maximum MTU */
uint16_t mtu;
/** Capabilities */
uint32_t caps;
/** Reserved */
uint8_t reserved_a[20];
uint8_t reserved_a[8];
/** VSI switching element ID */
uint16_t vsi;
/** Reserved */
@@ -111,6 +127,9 @@ struct intelxlvf_admin_get_resources_buffer {
uint8_t mac[ETH_ALEN];
} __attribute__ (( packed ));
/** Layer 2 capabilities (add/remove MAC, configure promiscuous mode) */
#define INTELXLVF_ADMIN_CAP_L2 0x00000001
/** Admin Queue VF Status Change Event opcode */
#define INTELXLVF_ADMIN_STATUS 0x00000011
@@ -286,6 +305,8 @@ union intelxlvf_admin_buffer {
union intelxl_admin_buffer xl;
/** VF Version data buffer */
struct intelxlvf_admin_version_buffer ver;
/** VF Capabilities data buffer */
struct intelxlvf_admin_capabilities_buffer caps;
/** VF Get Resources data buffer */
struct intelxlvf_admin_get_resources_buffer res;
/** VF Status Change Event data buffer */