[MLX4] added support for 26438 and 26488 devices. [mlnx: 4943]
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 26 Oct 2009 10:29:14 +0000 (10:29 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 26 Oct 2009 10:29:14 +0000 (10:29 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2514 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

hw/mlx4/kernel/bus/drv/mlx4_bus.inx
hw/mlx4/kernel/bus/net/main.c
hw/mlx4/kernel/inc/l2w_pci.h
hw/mlx4/user/hca/mlx4.c

index d827edd..bc0f841 100644 (file)
@@ -76,7 +76,9 @@ wdfcoinstaller$KMDFCOINSTALLERVERSION$.dll = 1,,
 %MT25448.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6368\r
 %MT25458.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6372\r
 %MT26418.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6732\r
+%MT26488.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6778\r
 %MT26428.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_673c\r
+%MT26438.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6746\r
 %MT26448.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6750\r
 %MT26458.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_675A\r
 %MT26468.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6764\r
@@ -89,7 +91,9 @@ wdfcoinstaller$KMDFCOINSTALLERVERSION$.dll = 1,,
 %MT25448.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6368\r
 %MT25458.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6372\r
 %MT26418.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6732\r
+%MT26488.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6778\r
 %MT26428.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_673c\r
+%MT26438.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6746\r
 %MT26448.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6750\r
 %MT26458.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_675A\r
 %MT26468.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6764\r
@@ -102,7 +106,9 @@ wdfcoinstaller$KMDFCOINSTALLERVERSION$.dll = 1,,
 %MT25448.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6368\r
 %MT25458.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6372\r
 %MT26418.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6732\r
+%MT26488.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6778\r
 %MT26428.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_673c\r
+%MT26438.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6746\r
 %MT26448.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6750\r
 %MT26458.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_675A\r
 %MT26468.DeviceDesc%=MLX4BUS.DDInstall, PCI\VEN_15B3&DEV_6764\r
@@ -269,17 +275,22 @@ KmdfLibraryVersion = $KMDFVERSION$
 [Strings]\r
 MTL="Mellanox Technologies Ltd."\r
 MLX4BUS.ServiceDesc = "Mellanox ConnectX Bus Enumerator"\r
-MT25408.DeviceDesc="ConnectX (MT25408) - Mellanox ConnectX SDR Channel Adapter"\r
-MT25418.DeviceDesc="ConnectX (MT25418) - Mellanox ConnectX DDR Channel Adapter"\r
-MT25448.DeviceDesc="ConnectX (MT25448) - Mellanox ConnectX Ethernet Adapter"\r
-MT25458.DeviceDesc="ConnectX (MT25458) - Mellanox ConnectX Ethernet Adapter"\r
-MT26418.DeviceDesc="ConnectX (MT26418) - Mellanox ConnectX DDR PCI Gen2 Channel Adapter"\r
-MT26428.DeviceDesc="ConnectX (MT26428) - Mellanox ConnectX QDR PCI Gen2 Channel Adapter"\r
-MT26448.DeviceDesc="ConnectX (MT26448) - Mellanox ConnectX Ethernet PCI Gen2 Adapter"\r
-MT26458.DeviceDesc="ConnectX (MT26458) - Mellanox ConnectX Ethernet PCI Gen2 Adapter"\r
-MT26468.DeviceDesc="ConnectX (MT26468) - Mellanox ConnectX B0 Ethernet PCI Gen2 Adapter"\r
-MT26478.DeviceDesc="ConnectX EN (MT26478) - Mellanox PCIe 2.0 5GT/s, 40GigE Ethernet Adapter"\r
-MT00401.DeviceDesc="ConnectX (MT00401) - Mellanox ConnectX Channel Adapter in Flash Recovery Mode"\r
+; VPI\r
+MT25408.DeviceDesc="Mellanox ConnectX VPI (MT25408) - PCIe 2.0 2.5GT/s, IB SDR / 10GigE Network Adapter"\r
+MT25418.DeviceDesc="Mellanox ConnectX VPI (MT25418) - PCIe 2.0 2.5GT/s, IB DDR / 10GigE Network Adapter"\r
+MT26418.DeviceDesc="Mellanox ConnectX VPI (MT26418) - PCIe 2.0 5GT/s, IB DDR / 10GigE Network Adapter"\r
+MT26488.DeviceDesc="Mellanox ConnectX VPI (MT26488) - PCIe 2.0 5GT/s, IB DDR / 10GigE Network Adapter"\r
+MT26428.DeviceDesc="Mellanox ConnectX VPI (MT26428) - PCIe 2.0 5GT/s, IB QDR / 10GigE Network Adapter"\r
+MT26438.DeviceDesc="Mellanox ConnectX VPI (MT26438) - PCIe 2.0 5GT/s, IB QDR / 10GigE Network Adapter"\r
+; EN\r
+MT25448.DeviceDesc="Mellanox ConnectX EN (MT25448) - PCIe 2.0 2.5GT/s, 10GigE Ethernet Adapter"\r
+MT25458.DeviceDesc="Mellanox ConnectX EN (MT25458) - PCIe 2.0 2.5GT/s, 10GigE 10GBaseT Ethernet Adapter"\r
+MT26448.DeviceDesc="Mellanox ConnectX EN (MT26448) - PCIe 2.0 5GT/s, 10GigE Ethernet Adapter"\r
+MT26458.DeviceDesc="Mellanox ConnectX EN (MT26458) - PCIe 2.0 5GT/s, 10GigE 10GBaseT Ethernet Adapter"\r
+MT26468.DeviceDesc="Mellanox ConnectX EN (MT26468) - PCIe 2.0 5GT/s, 10GigE Ethernet Adapter"\r
+MT26478.DeviceDesc="Mellanox ConnectX EN (MT26478) - PCIe 2.0 5GT/s, 40GigE Ethernet Adapter"\r
+; Burner\r
+MT00401.DeviceDesc="Mellanox ConnectX (MT00401) - Network Adapter in Flash Recovery Mode"\r
 DiskId = "Mellanox Mlx4 Bus installation disk"\r
 SPSVCINST_NULL = 0x0\r
 SPSVCINST_ASSOCSERVICE = 0x00000002\r
index 51ae38c..2826670 100644 (file)
@@ -88,10 +88,12 @@ static struct pci_device_id
 mlx4_pci_table[] = {
        HCA(MELLANOX, SDR,              HERMON),
        HCA(MELLANOX, DDR,              HERMON),
-       HCA(MELLANOX, ETH,              HERMON),
-       HCA(MELLANOX, ETH_YATIR,                HERMON),
        HCA(MELLANOX, DDR_G2,           HERMON),
+       HCA(MELLANOX, DDR_G2_A,         HERMON),
        HCA(MELLANOX, QDR_G2,           HERMON),
+       HCA(MELLANOX, QDR_G2_A,         HERMON),
+       HCA(MELLANOX, ETH,              HERMON),
+       HCA(MELLANOX, ETH_YATIR,                HERMON),
        HCA(MELLANOX, ETH_G2,           HERMON),
        HCA(MELLANOX, ETH_YATIR_G2,     HERMON),
        HCA(MELLANOX, ETH_B0_G2,        HERMON),
@@ -433,7 +435,9 @@ static int mlx4_init_icm(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap,
                goto err_unmap_aux;
        }
 
-       err = mlx4_map_eq_icm(dev, init_hca->eqc_base);
+       err = mlx4_init_icm_table(dev, &priv->eq_table.table,
+               init_hca->eqc_base, dev_cap->eqc_entry_sz,
+               dev->caps.num_eqs, dev->caps.num_eqs, 0, 0);
        if (err) {
                mlx4_err(dev, "Failed to map EQ context memory, aborting.\n");
                goto err_unmap_cmpt;
@@ -581,7 +585,7 @@ err_unmap_mtt:
        mlx4_cleanup_icm_table(dev, &priv->mr_table.mtt_table);
 
 err_unmap_eq:
-       mlx4_unmap_eq_icm(dev);
+       mlx4_cleanup_icm_table(dev, &priv->eq_table.table);
 
 err_unmap_cmpt:
        mlx4_cleanup_icm_table(dev, &priv->eq_table.cmpt_table);
@@ -611,11 +615,11 @@ static void mlx4_free_icms(struct mlx4_dev *dev)
        mlx4_cleanup_icm_table(dev, &priv->qp_table.qp_table);
        mlx4_cleanup_icm_table(dev, &priv->mr_table.dmpt_table);
        mlx4_cleanup_icm_table(dev, &priv->mr_table.mtt_table);
+       mlx4_cleanup_icm_table(dev, &priv->eq_table.table);     
        mlx4_cleanup_icm_table(dev, &priv->eq_table.cmpt_table);
        mlx4_cleanup_icm_table(dev, &priv->cq_table.cmpt_table);
        mlx4_cleanup_icm_table(dev, &priv->srq_table.cmpt_table);
        mlx4_cleanup_icm_table(dev, &priv->qp_table.cmpt_table);
-       mlx4_unmap_eq_icm(dev);
 
        mlx4_UNMAP_ICM_AUX(dev);
        mlx4_free_icm(dev, priv->fw.aux_icm, 0);
index 3326cad..2f4754e 100644 (file)
@@ -4,16 +4,19 @@
 // LITERALS
 // ===========================================
 
-#define DEVID_HERMON_SDR               0x6340  /* 25408 */
-#define DEVID_HERMON_DDR               0x634a  /* 25418 */
-#define DEVID_HERMON_ETH               0x6368  /* 25448 */
+#define DEVID_HERMON_SDR                       0x6340  /* 25408 */
+#define DEVID_HERMON_DDR                       0x634a  /* 25418 */
+#define DEVID_HERMON_DDR_G2                    0x6732  /* 26418 */
+#define DEVID_HERMON_DDR_G2_A          0x6778  /* 26488 */
+#define DEVID_HERMON_QDR_G2                    0x673c  /* 26428 */
+#define DEVID_HERMON_QDR_G2_A          0x6746  /* 26438 */
+
+#define DEVID_HERMON_ETH                       0x6368  /* 25448 */
 #define DEVID_HERMON_ETH_YATIR         0x6372  /* 25458 */
-#define DEVID_HERMON_DDR_G2            0x6732  /* 26418 */
-#define DEVID_HERMON_QDR_G2            0x673c  /* 26428 */
-#define DEVID_HERMON_ETH_G2            0x6750  /* 26448 */
-#define DEVID_HERMON_ETH_YATIR_G2              0x675A  /* 26458 */
+#define DEVID_HERMON_ETH_G2                    0x6750  /* 26448 */
+#define DEVID_HERMON_ETH_YATIR_G2      0x675A  /* 26458 */
 #define DEVID_HERMON_ETH_B0_G2         0x6764  /* 26468 */
-#define DEVID_HERMON_ETH_B0_40Gb_G2            0x676E  /* 26478 */
+#define DEVID_HERMON_ETH_B0_40Gb_G2    0x676E  /* 26478 */
 /* livefish */
 #define DEVID_HERMON_BD                0x0191  /* 401 */
 
index 10b044a..0f83bd9 100644 (file)
@@ -49,7 +49,9 @@ struct {
        HCA(MELLANOX, 0x6340),  /* MT25408 "Hermon" SDR */\r
        HCA(MELLANOX, 0x634a),  /* MT25418 "Hermon" DDR */\r
        HCA(MELLANOX, 0x6732),  /* MT26418 "Hermon" DDR PCIe gen2 */\r
-       HCA(MELLANOX, 0x673c),  /* MT26428 "Hermon" QDR PCIe gen2 */\r
+       HCA(MELLANOX, 0x6778),  /* MT26488 "Hermon" DDR PCIe gen2 */\r
+       HCA(MELLANOX, 0x673C),  /* MT26428 "Hermon" QDR PCIe gen2 */\r
+       HCA(MELLANOX, 0x6746),  /* MT26438 "Hermon" QDR PCIe gen2 */\r
 \r
        HCA(MELLANOX, 0x6368),  /* MT25448 "Hermon" Ethernet */\r
        HCA(MELLANOX, 0x6372),  /* MT25458 "Hermon" Ethernet Yatir*/\r