|
@@ -619,17 +619,20 @@ nx_set_product_offs(struct netxen_adapter *adapter)
|
|
|
uint32_t i;
|
|
|
__le32 entries;
|
|
|
|
|
|
+ int mn_present = (NX_IS_REVISION_P2(adapter->ahw.revision_id)) ?
|
|
|
+ 1 : netxen_p3_has_mn(adapter);
|
|
|
+
|
|
|
ptab_descr = nx_get_table_desc(unirom, NX_UNI_DIR_SECT_PRODUCT_TBL);
|
|
|
if (ptab_descr == NULL)
|
|
|
return -1;
|
|
|
|
|
|
entries = cpu_to_le32(ptab_descr->num_entries);
|
|
|
|
|
|
+nomn:
|
|
|
for (i = 0; i < entries; i++) {
|
|
|
|
|
|
__le32 flags, file_chiprev, offs;
|
|
|
u8 chiprev = adapter->ahw.revision_id;
|
|
|
- int mn_present = netxen_p3_has_mn(adapter);
|
|
|
uint32_t flagbit;
|
|
|
|
|
|
offs = cpu_to_le32(ptab_descr->findex) +
|
|
@@ -647,6 +650,11 @@ nx_set_product_offs(struct netxen_adapter *adapter)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if (mn_present && NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
|
|
|
+ mn_present = 0;
|
|
|
+ goto nomn;
|
|
|
+ }
|
|
|
+
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
@@ -1021,6 +1029,10 @@ netxen_p3_has_mn(struct netxen_adapter *adapter)
|
|
|
u32 capability, flashed_ver;
|
|
|
capability = 0;
|
|
|
|
|
|
+ /* NX2031 always had MN */
|
|
|
+ if (NX_IS_REVISION_P2(adapter->ahw.revision_id))
|
|
|
+ return 1;
|
|
|
+
|
|
|
netxen_rom_fast_read(adapter,
|
|
|
NX_FW_VERSION_OFFSET, (int *)&flashed_ver);
|
|
|
flashed_ver = NETXEN_DECODE_VERSION(flashed_ver);
|