Commit 167cdf5f authored by Divy Le Ray's avatar Divy Le Ray Committed by David S. Miller

cxgb3 - log adapter serial number

Log HW serial number when cxgb3 module is loaded.
Signed-off-by: default avatarDivy Le Ray <divy@chelsio.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent c64c2eae
...@@ -97,6 +97,7 @@ enum { ...@@ -97,6 +97,7 @@ enum {
MAX_NPORTS = 2, /* max # of ports */ MAX_NPORTS = 2, /* max # of ports */
MAX_FRAME_SIZE = 10240, /* max MAC frame size, including header + FCS */ MAX_FRAME_SIZE = 10240, /* max MAC frame size, including header + FCS */
EEPROMSIZE = 8192, /* Serial EEPROM size */ EEPROMSIZE = 8192, /* Serial EEPROM size */
SERNUM_LEN = 16, /* Serial # length */
RSS_TABLE_SIZE = 64, /* size of RSS lookup and mapping tables */ RSS_TABLE_SIZE = 64, /* size of RSS lookup and mapping tables */
TCB_SIZE = 128, /* TCB size */ TCB_SIZE = 128, /* TCB size */
NMTUS = 16, /* size of MTU table */ NMTUS = 16, /* size of MTU table */
...@@ -391,6 +392,7 @@ struct vpd_params { ...@@ -391,6 +392,7 @@ struct vpd_params {
unsigned int uclk; unsigned int uclk;
unsigned int mdc; unsigned int mdc;
unsigned int mem_timing; unsigned int mem_timing;
u8 sn[SERNUM_LEN + 1];
u8 eth_base[6]; u8 eth_base[6];
u8 port_type[MAX_NPORTS]; u8 port_type[MAX_NPORTS];
unsigned short xauicfg[2]; unsigned short xauicfg[2];
......
...@@ -2360,10 +2360,12 @@ static void __devinit print_port_info(struct adapter *adap, ...@@ -2360,10 +2360,12 @@ static void __devinit print_port_info(struct adapter *adap,
(adap->flags & USING_MSIX) ? " MSI-X" : (adap->flags & USING_MSIX) ? " MSI-X" :
(adap->flags & USING_MSI) ? " MSI" : ""); (adap->flags & USING_MSI) ? " MSI" : "");
if (adap->name == dev->name && adap->params.vpd.mclk) if (adap->name == dev->name && adap->params.vpd.mclk)
printk(KERN_INFO "%s: %uMB CM, %uMB PMTX, %uMB PMRX\n", printk(KERN_INFO
"%s: %uMB CM, %uMB PMTX, %uMB PMRX, S/N: %s\n",
adap->name, t3_mc7_size(&adap->cm) >> 20, adap->name, t3_mc7_size(&adap->cm) >> 20,
t3_mc7_size(&adap->pmtx) >> 20, t3_mc7_size(&adap->pmtx) >> 20,
t3_mc7_size(&adap->pmrx) >> 20); t3_mc7_size(&adap->pmrx) >> 20,
adap->params.vpd.sn);
} }
} }
......
...@@ -505,7 +505,7 @@ struct t3_vpd { ...@@ -505,7 +505,7 @@ struct t3_vpd {
u8 vpdr_len[2]; u8 vpdr_len[2];
VPD_ENTRY(pn, 16); /* part number */ VPD_ENTRY(pn, 16); /* part number */
VPD_ENTRY(ec, 16); /* EC level */ VPD_ENTRY(ec, 16); /* EC level */
VPD_ENTRY(sn, 16); /* serial number */ VPD_ENTRY(sn, SERNUM_LEN); /* serial number */
VPD_ENTRY(na, 12); /* MAC address base */ VPD_ENTRY(na, 12); /* MAC address base */
VPD_ENTRY(cclk, 6); /* core clock */ VPD_ENTRY(cclk, 6); /* core clock */
VPD_ENTRY(mclk, 6); /* mem clock */ VPD_ENTRY(mclk, 6); /* mem clock */
...@@ -648,6 +648,7 @@ static int get_vpd_params(struct adapter *adapter, struct vpd_params *p) ...@@ -648,6 +648,7 @@ static int get_vpd_params(struct adapter *adapter, struct vpd_params *p)
p->uclk = simple_strtoul(vpd.uclk_data, NULL, 10); p->uclk = simple_strtoul(vpd.uclk_data, NULL, 10);
p->mdc = simple_strtoul(vpd.mdc_data, NULL, 10); p->mdc = simple_strtoul(vpd.mdc_data, NULL, 10);
p->mem_timing = simple_strtoul(vpd.mt_data, NULL, 10); p->mem_timing = simple_strtoul(vpd.mt_data, NULL, 10);
memcpy(p->sn, vpd.sn_data, SERNUM_LEN);
/* Old eeproms didn't have port information */ /* Old eeproms didn't have port information */
if (adapter->params.rev == 0 && !vpd.port0_data[0]) { if (adapter->params.rev == 0 && !vpd.port0_data[0]) {
......
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