Commit 1122db71 authored by Michael Chan's avatar Michael Chan Committed by David S. Miller

[BNX2]: Fix nvram sizing

Add code to correctly determine nvram size.
Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1269a8a6
...@@ -2724,9 +2724,16 @@ bnx2_init_nvram(struct bnx2 *bp) ...@@ -2724,9 +2724,16 @@ bnx2_init_nvram(struct bnx2 *bp)
if (j == entry_count) { if (j == entry_count) {
bp->flash_info = NULL; bp->flash_info = NULL;
printk(KERN_ALERT PFX "Unknown flash/EEPROM type.\n"); printk(KERN_ALERT PFX "Unknown flash/EEPROM type.\n");
rc = -ENODEV; return -ENODEV;
} }
val = REG_RD_IND(bp, bp->shmem_base + BNX2_SHARED_HW_CFG_CONFIG2);
val &= BNX2_SHARED_HW_CFG2_NVM_SIZE_MASK;
if (val)
bp->flash_size = val;
else
bp->flash_size = bp->flash_info->total_size;
return rc; return rc;
} }
...@@ -4809,10 +4816,10 @@ bnx2_get_eeprom_len(struct net_device *dev) ...@@ -4809,10 +4816,10 @@ bnx2_get_eeprom_len(struct net_device *dev)
{ {
struct bnx2 *bp = dev->priv; struct bnx2 *bp = dev->priv;
if (bp->flash_info == 0) if (bp->flash_info == NULL)
return 0; return 0;
return (int) bp->flash_info->total_size; return (int) bp->flash_size;
} }
static int static int
......
...@@ -4072,6 +4072,7 @@ struct bnx2 { ...@@ -4072,6 +4072,7 @@ struct bnx2 {
struct net_device_stats net_stats; struct net_device_stats net_stats;
struct flash_spec *flash_info; struct flash_spec *flash_info;
u32 flash_size;
}; };
static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset); static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset);
...@@ -4273,6 +4274,9 @@ struct fw_info { ...@@ -4273,6 +4274,9 @@ struct fw_info {
#define BNX2_SHARED_HW_CFG_LED_MODE_GPHY1 0x100 #define BNX2_SHARED_HW_CFG_LED_MODE_GPHY1 0x100
#define BNX2_SHARED_HW_CFG_LED_MODE_GPHY2 0x200 #define BNX2_SHARED_HW_CFG_LED_MODE_GPHY2 0x200
#define BNX2_SHARED_HW_CFG_CONFIG2 0x00000040
#define BNX2_SHARED_HW_CFG2_NVM_SIZE_MASK 0x00fff000
#define BNX2_DEV_INFO_BC_REV 0x0000004c #define BNX2_DEV_INFO_BC_REV 0x0000004c
#define BNX2_PORT_HW_CFG_MAC_UPPER 0x00000050 #define BNX2_PORT_HW_CFG_MAC_UPPER 0x00000050
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment