]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[intelxl] Provide a mechanism for handling "send to VF" events
authorMichael Brown <mcb30@ipxe.org>
Wed, 24 Apr 2019 12:09:43 +0000 (13:09 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sat, 27 Apr 2019 19:25:59 +0000 (20:25 +0100)
Provide a weak stub function for handling the "send to VF" event used
for communications between the physical and virtual function drivers.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/intelxl.c
src/drivers/net/intelxl.h

index 1cf5cad4ba42f91b443379adddc5ad4eb394c538..5cf89aa12d22c4e226257446d58209b23d587e12 100644 (file)
@@ -658,6 +658,21 @@ static int intelxl_admin_link ( struct net_device *netdev ) {
        return 0;
 }
 
+/**
+ * Handle virtual function event (when VF driver is not present)
+ *
+ * @v netdev           Network device
+ * @v evt              Admin queue event descriptor
+ * @v buf              Admin queue event data buffer
+ */
+__weak void
+intelxlvf_admin_event ( struct net_device *netdev __unused,
+                       struct intelxl_admin_descriptor *evt __unused,
+                       union intelxl_admin_buffer *buf __unused ) {
+
+       /* Nothing to do */
+}
+
 /**
  * Refill admin event queue
  *
@@ -711,6 +726,9 @@ static void intelxl_poll_admin ( struct net_device *netdev ) {
                case cpu_to_le16 ( INTELXL_ADMIN_LINK ):
                        intelxl_admin_link ( netdev );
                        break;
+               case cpu_to_le16 ( INTELXL_ADMIN_SEND_TO_VF ):
+                       intelxlvf_admin_event ( netdev, evt, buf );
+                       break;
                default:
                        DBGC ( intelxl, "INTELXL %p admin event %#x "
                               "unrecognised opcode %#04x\n", intelxl,
index 5067b8074c2a288aff3e21ab6873a56cd7acebb5..6bd5e3e8be6c69abdfb6b7e3324f787b9eb10d1d 100644 (file)
@@ -289,6 +289,12 @@ struct intelxl_admin_link_params {
 /** Link is up */
 #define INTELXL_ADMIN_LINK_UP 0x01
 
+/** Admin queue Send Message to PF command */
+#define INTELXL_ADMIN_SEND_TO_PF 0x0801
+
+/** Admin queue Send Message to VF command */
+#define INTELXL_ADMIN_SEND_TO_VF 0x0802
+
 /** Admin queue command parameters */
 union intelxl_admin_params {
        /** Additional data buffer command parameters */
@@ -824,4 +830,8 @@ struct intelxl_nic {
        struct io_buffer *rx_iobuf[INTELXL_RX_NUM_DESC];
 };
 
+extern void intelxlvf_admin_event ( struct net_device *netdev,
+                                   struct intelxl_admin_descriptor *evt,
+                                   union intelxl_admin_buffer *buf );
+
 #endif /* _INTELXL_H */