diff options
author | Michael Brown <mcb30@ipxe.org> | 2022-08-16 15:48:24 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2022-08-16 17:58:52 +0100 |
commit | 491c075f7f3ce3e7d58e969d8fcd0af1e102e515 (patch) | |
tree | c28180d08bf1dc4df4b9f2b5c2ddffec3d04d024 /src/drivers/net/intelxlvf.h | |
parent | b52ea208411e65a6583c70c9efdc0cd8eda2d7d7 (diff) | |
download | ipxe-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.h | 25 |
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 */ |