aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index 03f3935fd8c2..b75c8eab095c 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -1783,6 +1783,29 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
1783 rc = -EBUSY; /* other port in diagnostic mode */ 1783 rc = -EBUSY; /* other port in diagnostic mode */
1784 LOAD_ERROR_EXIT(bp, load_error1); 1784 LOAD_ERROR_EXIT(bp, load_error1);
1785 } 1785 }
1786 if (load_code != FW_MSG_CODE_DRV_LOAD_COMMON_CHIP &&
1787 load_code != FW_MSG_CODE_DRV_LOAD_COMMON) {
1788 /* build FW version dword */
1789 u32 my_fw = (BCM_5710_FW_MAJOR_VERSION) +
1790 (BCM_5710_FW_MINOR_VERSION << 8) +
1791 (BCM_5710_FW_REVISION_VERSION << 16) +
1792 (BCM_5710_FW_ENGINEERING_VERSION << 24);
1793
1794 /* read loaded FW from chip */
1795 u32 loaded_fw = REG_RD(bp, XSEM_REG_PRAM);
1796
1797 DP(BNX2X_MSG_SP, "loaded fw %x, my fw %x",
1798 loaded_fw, my_fw);
1799
1800 /* abort nic load if version mismatch */
1801 if (my_fw != loaded_fw) {
1802 BNX2X_ERR("bnx2x with FW %x already loaded, "
1803 "which mismatches my %x FW. aborting",
1804 loaded_fw, my_fw);
1805 rc = -EBUSY;
1806 LOAD_ERROR_EXIT(bp, load_error2);
1807 }
1808 }
1786 1809
1787 } else { 1810 } else {
1788 int path = BP_PATH(bp); 1811 int path = BP_PATH(bp);