Skip to content

Commit

Permalink
[BNX2]: Fix nvram sizing
Browse files Browse the repository at this point in the history
Add code to correctly determine nvram size.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Michael Chan authored and David S. Miller committed Jan 24, 2006
1 parent 1269a8a commit 1122db7
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
13 changes: 10 additions & 3 deletions drivers/net/bnx2.c
Original file line number Diff line number Diff line change
Expand Up @@ -2724,9 +2724,16 @@ bnx2_init_nvram(struct bnx2 *bp)
if (j == entry_count) {
bp->flash_info = NULL;
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;
}

Expand Down Expand Up @@ -4809,10 +4816,10 @@ bnx2_get_eeprom_len(struct net_device *dev)
{
struct bnx2 *bp = dev->priv;

if (bp->flash_info == 0)
if (bp->flash_info == NULL)
return 0;

return (int) bp->flash_info->total_size;
return (int) bp->flash_size;
}

static int
Expand Down
4 changes: 4 additions & 0 deletions drivers/net/bnx2.h
Original file line number Diff line number Diff line change
Expand Up @@ -4072,6 +4072,7 @@ struct bnx2 {
struct net_device_stats net_stats;

struct flash_spec *flash_info;
u32 flash_size;
};

static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset);
Expand Down Expand Up @@ -4273,6 +4274,9 @@ struct fw_info {
#define BNX2_SHARED_HW_CFG_LED_MODE_GPHY1 0x100
#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_PORT_HW_CFG_MAC_UPPER 0x00000050
Expand Down

0 comments on commit 1122db7

Please sign in to comment.