bnx2x: Added nvram personalities support
authorYuval Mintz <yuvalmin@broadcom.com>
Mon, 14 Jan 2013 05:11:45 +0000 (05:11 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Jan 2013 20:07:58 +0000 (15:07 -0500)
When a device is configured to act as either iscsi or fcoe
device in its nvram, prevent the other from being misused by
preventing its activation in the driver.

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

index 3369a50..d2e79be 100644 (file)
@@ -899,6 +899,10 @@ struct port_feat_cfg {                 /* port 0: 0x454  port 1: 0x4c8 */
                #define PORT_FEAT_CFG_DCBX_DISABLED                  0x00000000
                #define PORT_FEAT_CFG_DCBX_ENABLED                   0x00000100
 
+               #define PORT_FEAT_CFG_STORAGE_PERSONALITY_MASK        0x00000C00
+               #define PORT_FEAT_CFG_STORAGE_PERSONALITY_FCOE        0x00000400
+               #define PORT_FEAT_CFG_STORAGE_PERSONALITY_ISCSI       0x00000800
+
        #define PORT_FEATURE_EN_SIZE_MASK                   0x0f000000
        #define PORT_FEATURE_EN_SIZE_SHIFT                           24
        #define PORT_FEATURE_WOL_ENABLED                             0x01000000
index 4c91f3b..f4d4896 100644 (file)
@@ -10570,6 +10570,13 @@ static void bnx2x_get_port_hwinfo(struct bnx2x *bp)
        bp->wol = (!(bp->flags & NO_WOL_FLAG) &&
                   (config & PORT_FEATURE_WOL_ENABLED));
 
+       if ((config & PORT_FEAT_CFG_STORAGE_PERSONALITY_MASK) ==
+           PORT_FEAT_CFG_STORAGE_PERSONALITY_FCOE && !IS_MF(bp))
+               bp->flags |= NO_ISCSI_FLAG;
+       if ((config & PORT_FEAT_CFG_STORAGE_PERSONALITY_MASK) ==
+           PORT_FEAT_CFG_STORAGE_PERSONALITY_ISCSI && !(IS_MF(bp)))
+               bp->flags |= NO_FCOE_FLAG;
+
        BNX2X_DEV_INFO("lane_config 0x%08x  speed_cap_mask0 0x%08x  link_config0 0x%08x\n",
                       bp->link_params.lane_config,
                       bp->link_params.speed_cap_mask[0],