aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers/net/intelxlvf.h
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2022-08-16 15:48:24 +0100
committerMichael Brown <mcb30@ipxe.org>2022-08-16 17:58:52 +0100
commit491c075f7f3ce3e7d58e969d8fcd0af1e102e515 (patch)
treec28180d08bf1dc4df4b9f2b5c2ddffec3d04d024 /src/drivers/net/intelxlvf.h
parentb52ea208411e65a6583c70c9efdc0cd8eda2d7d7 (diff)
downloadipxe-491c075f7f3ce3e7d58e969d8fcd0af1e102e515.tar.gz
[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>
Diffstat (limited to 'src/drivers/net/intelxlvf.h')
-rw-r--r--src/drivers/net/intelxlvf.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/drivers/net/intelxlvf.h b/src/drivers/net/intelxlvf.h
index c537f6a15..783c85643 100644
--- a/src/drivers/net/intelxlvf.h
+++ b/src/drivers/net/intelxlvf.h
@@ -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 */