linux/drivers/net/ethernet/broadcom/bnx2x
Ariel Elior 24f06716cd bnx2x: bug fix when loading after SAN boot
This is a bug fix for an "interface fails to load" issue.
The issue occurs when bnx2x driver loads after UNDI driver was previously
loaded over the chip. In such a scenario the UNDI driver is loaded and operates
in the pre-boot kernel, within its own specific host memory address range.
When the pre-boot stage is complete, the real kernel is loaded, in a new and
distinct host memory address range. The transition from pre-boot stage to boot
is asynchronous from UNDI point of view.

A race condition occurs when UNDI driver triggers a DMAE transaction to valid
host addresses in the pre-boot stage, when control is diverted to the real
kernel. This results in access to illegal addresses by our HW as the addresses
which were valid in the preboot stage are no longer considered valid.
Specifically, the 'was_error' bit in the pci glue of our device is set. This
causes all following pci transactions from chip to host to timeout (in
accordance to the pci spec).

Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-06 13:10:38 -04:00
..
bnx2x_cmn.c bnx2x: Clear MDC/MDIO warning message 2012-04-04 18:24:23 -04:00
bnx2x_cmn.h bnx2x: previous driver unload revised 2012-03-27 22:41:34 -04:00
bnx2x_dcb.c bnx2x: added TLV_NOT_FOUND flags to the dcb 2012-03-19 16:53:07 -04:00
bnx2x_dcb.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_dump.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_ethtool.c bnx2x: reduced sparse warnings 2012-03-19 16:53:06 -04:00
bnx2x_fw_defs.h bnx2x: correction to firmware interface 2012-04-03 19:03:36 -04:00
bnx2x_fw_file_hdr.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_hsi.h bnx2x: previous driver unload revised 2012-03-27 22:41:34 -04:00
bnx2x_init_ops.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_init.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_link.c bnx2x: off by one in bnx2x_ets_e3b0_sp_pri_to_cos_set() 2012-04-19 15:22:44 -04:00
bnx2x_link.h bnx2x: previous driver unload revised 2012-03-27 22:41:34 -04:00
bnx2x_main.c bnx2x: bug fix when loading after SAN boot 2012-05-06 13:10:38 -04:00
bnx2x_reg.h bnx2x: Clear BCM84833 LED after fan failure 2012-04-04 18:24:23 -04:00
bnx2x_sp.c bnx2x: fix vector traveling while looking for an empty entry 2012-03-27 22:41:34 -04:00
bnx2x_sp.h bnx2x: revised driver prints 2012-03-19 16:52:48 -04:00
bnx2x_stats.c bnx2x: consistent statistics for old FW 2012-03-19 16:53:07 -04:00
bnx2x_stats.h bnx2x: consistent statistics for old FW 2012-03-19 16:53:07 -04:00
bnx2x.h bnx2x: previous driver unload revised 2012-03-27 22:41:34 -04:00
Makefile broadcom: Move the Broadcom drivers 2011-08-10 19:54:39 -07:00