[mlx4] Create a device for the Ethernet driver if needed. (winib 2456) (3 lost files)
authortzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 20 May 2008 07:37:50 +0000 (07:37 +0000)
committertzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 20 May 2008 07:37:50 +0000 (07:37 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1193 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

hw/mlx4/inc/public.h
hw/mlx4/kernel/hca/drv.c
hw/mlx4/kernel/inc/vip_dev.h [new file with mode: 0644]

index e2ff2fe..a522670 100644 (file)
@@ -130,7 +130,10 @@ DEFINE_GUID (MXE_NOTIFY_DEVICE_ARRIVAL_EVENT,
 #define __PUBLIC_H\r
 \r
 #define BUS_HARDWARE_IDS L"MLX4\\ConnectX_Hca\0"\r
-#define BUSENUM_COMPATIBLE_IDS L"MLX4\\ConnectX_Hca\0"\r
+#define ETH_HARDWARE_IDS L"MLX4\\ConnectX_Eth\0"\r
+#define BUS_HARDWARE_DESCRIPTION L"Mellanox ConnectX Virtual Infiniband Adapter (#%02d)"\r
+#define ETH_HARDWARE_DESCRIPTION L"Mellanox ConnectX Virtual Ethernet Adapter (#%02d)"\r
 \r
 #endif\r
 \r
+\r
index 4e9fb2d..c841214 100644 (file)
@@ -641,7 +641,7 @@ EvtDevicePrepareHardware(
        \r
        /* get MLX4_BUS IB interface */\r
        status = __get_ifc( Device, &MLX4_BUS_IB_INTERFACE_GUID,\r
-               sizeof(MLX4_BUS_IB_INTERFACE), 1, NULL, (PINTERFACE)&p_fdo->bus_ib_ifc);\r
+               sizeof(MLX4_BUS_IB_INTERFACE), MLX4_BUS_IB_INTERFACE_VERSION, NULL, (PINTERFACE)&p_fdo->bus_ib_ifc);\r
        if( !NT_SUCCESS( status ) ) {\r
                HCA_PRINT(TRACE_LEVEL_ERROR, HCA_DBG_PNP, ("Getting MLX4 BUS interface failed: status=0x%x\n", status));\r
                return status;\r
@@ -1753,7 +1753,7 @@ hca_start(
        \r
        /* get MLX4_BUS IB interface */\r
        status = __get_ifc( p_dev_obj, &MLX4_BUS_IB_INTERFACE_GUID,\r
-               sizeof(MLX4_BUS_IB_INTERFACE), 1, NULL, (PINTERFACE)&p_fdo->bus_ib_ifc);\r
+               sizeof(MLX4_BUS_IB_INTERFACE), MLX4_BUS_IB_INTERFACE_VERSION, NULL, (PINTERFACE)&p_fdo->bus_ib_ifc);\r
        if( !NT_SUCCESS( status ) ) {\r
                HCA_PRINT(TRACE_LEVEL_ERROR, HCA_DBG_PNP, ("Getting MLX4 BUS interface failed: status=0x%x\n", status));\r
                goto end;\r
diff --git a/hw/mlx4/kernel/inc/vip_dev.h b/hw/mlx4/kernel/inc/vip_dev.h
new file mode 100644 (file)
index 0000000..4c19be2
--- /dev/null
@@ -0,0 +1,72 @@
+/*++\r
+\r
+Copyright (c) 1999  Microsoft Corporation\r
+\r
+Module Name:\r
+    mtnic_dev.h\r
+\r
+Abstract:\r
+    define the essential structure that is common to mxe_bus and the connectx driver\r
+    \r
+Revision History:\r
+\r
+Notes:\r
+\r
+--*/\r
+\r
+#pragma once\r
+\r
+#pragma warning( disable : 4214)\r
+#pragma warning( disable : 4324)\r
+#include <ndis.h>\r
+#pragma warning( default  : 4214)\r
+#pragma warning( default  : 4324)\r
+\r
+\r
+#define MTNIC_MAX_PORTS     2\r
+\r
+#define MAX_PORT_SIZE 91000\r
+#define MXE_INTERFACE_VERSION  2\r
+\r
+enum mtnic_state {\r
+       CARD_DOWN,\r
+       CARD_UP,\r
+       CARD_GOING_DOWN,\r
+       CARD_DISABLED\r
+};\r
+\r
+typedef struct {\r
+    enum mtnic_state     state;\r
+    LONG            fPortStateScheuled;\r
+    KDPC            PortStateDpc;\r
+    NDIS_WORK_ITEM  PortStateWorkItem;\r
+    NDIS_WORK_ITEM  ResetWorkItem;\r
+    KEVENT          ConfigChangeEvent; \r
+    NDIS_SPIN_LOCK  DoorBellLock; // Used only on 32 bits systems\r
+    KTIMER          HeardBeatTimer;   \r
+    LONG            ResetCount;\r
+} NicData_t;\r
+\r
+//typedef struct _VipBusIfc\r
+struct VipBusIfc\r
+{\r
+    PVOID           Context;\r
+    LONG            NoOfConnectedPorts;\r
+    ULONG           ulAllocatePortObjSize;\r
+    NicData_t       NicData;  \r
+#ifndef _WIN64   \r
+//    UCHAR   pad[0x8];\r
+#else\r
+    UCHAR   pad[8];    \r
+#endif    \r
+#ifdef MTNIC\r
+    C_ASSERT(MAX_PORT_SIZE >= sizeof(struct _MP_PORT));\r
+    MP_PORT         ports[MTNIC_MAX_PORTS];\r
+#else\r
+    UCHAR           ports[MAX_PORT_SIZE * MTNIC_MAX_PORTS];\r
+#endif    \r
+};\r
+\r
+C_ASSERT((FIELD_OFFSET(struct VipBusIfc, ports) % 16) == 0);\r
+\r
+\r