diff options
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h index 53c6e5dcf26..4118502ef29 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | |||
@@ -73,6 +73,7 @@ | |||
73 | (sizeof(struct cmd_desc_type0) * tx_ring->num_desc) | 73 | (sizeof(struct cmd_desc_type0) * tx_ring->num_desc) |
74 | 74 | ||
75 | #define QLCNIC_P3P_A0 0x50 | 75 | #define QLCNIC_P3P_A0 0x50 |
76 | #define QLCNIC_P3P_C0 0x58 | ||
76 | 77 | ||
77 | #define QLCNIC_IS_REVISION_P3P(REVISION) (REVISION >= QLCNIC_P3P_A0) | 78 | #define QLCNIC_IS_REVISION_P3P(REVISION) (REVISION >= QLCNIC_P3P_A0) |
78 | 79 | ||
@@ -291,7 +292,8 @@ struct uni_data_desc{ | |||
291 | 292 | ||
292 | /* Flash Defines and Structures */ | 293 | /* Flash Defines and Structures */ |
293 | #define QLCNIC_FLT_LOCATION 0x3F1000 | 294 | #define QLCNIC_FLT_LOCATION 0x3F1000 |
294 | #define QLCNIC_FW_IMAGE_REGION 0x74 | 295 | #define QLCNIC_B0_FW_IMAGE_REGION 0x74 |
296 | #define QLCNIC_C0_FW_IMAGE_REGION 0x97 | ||
295 | #define QLCNIC_BOOTLD_REGION 0X72 | 297 | #define QLCNIC_BOOTLD_REGION 0X72 |
296 | struct qlcnic_flt_header { | 298 | struct qlcnic_flt_header { |
297 | u16 version; | 299 | u16 version; |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c index b02859c7a23..7f4b8e69079 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c | |||
@@ -686,7 +686,13 @@ qlcnic_check_flash_fw_ver(struct qlcnic_adapter *adapter) | |||
686 | u32 ver = -1, min_ver; | 686 | u32 ver = -1, min_ver; |
687 | int ret; | 687 | int ret; |
688 | 688 | ||
689 | ret = qlcnic_get_flt_entry(adapter, QLCNIC_FW_IMAGE_REGION, &fw_entry); | 689 | if (adapter->ahw->revision_id == QLCNIC_P3P_C0) |
690 | ret = qlcnic_get_flt_entry(adapter, QLCNIC_C0_FW_IMAGE_REGION, | ||
691 | &fw_entry); | ||
692 | else | ||
693 | ret = qlcnic_get_flt_entry(adapter, QLCNIC_B0_FW_IMAGE_REGION, | ||
694 | &fw_entry); | ||
695 | |||
690 | if (!ret) | 696 | if (!ret) |
691 | /* 0-4:-signature, 4-8:-fw version */ | 697 | /* 0-4:-signature, 4-8:-fw version */ |
692 | qlcnic_rom_fast_read(adapter, fw_entry.start_addr + 4, | 698 | qlcnic_rom_fast_read(adapter, fw_entry.start_addr + 4, |