summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_bge.c
AgeCommit message (Collapse)Author
2006-02-21- Overhaul link state detection code.Brad Smith
- Make use of if_link_state_change() so CARP will now see link state changes for fibre cards. revs 1.102, 1.104, 1.113, 1.120, and 1.124. From FreeBSD Tested with 5700/5701/5703/5704/5750 and a 5752.
2006-02-13Due to an oversight on my part I forgot to remove clearing of theBrad Smith
BGE_PCIDMARWCTL_MINDMA flag from the PCI DMA control register on newer bge chipsets when I put in the new PCI DMA control register settings. Thanks to Daniel Ouellet for testing with a BCM5780 and to Dimitry Andric for testing with a BCM5750.
2006-02-13revert rev 1.85. The mbuf needs to be re-mapped in the case of an error.Brad Smith
ok damien@
2006-02-11recognize another 5714 family chipset.Brad Smith
2006-02-09cleaning.Brad Smith
2006-02-09adjust timeouts a bit.Brad Smith
Based on the Broadcom Linux driver.
2006-02-08fix MTU check.Brad Smith
From damien@
2006-02-06Make sure to call bge_setmulti() as we're enabling or disabling promiscuousBrad Smith
mode so as to receive all multicast packets too.
2006-02-02Call bge_setmulti() if IFF_ALLMULTI is set.Brad Smith
From ru FreeBSD
2006-02-02Optimize bge_rxeof() & bge_txeof(): return immediately if there are no packetsBrad Smith
to process. From oleg FreeBSD
2006-02-02Use alternate PCI DMA control register settings for PCI Express-basedBrad Smith
Broadcom Gigabit Ethernet interfaces. From jonathan NetBSD and based on the Broadcom Linux driver. Tested by a few end-users.
2006-02-01rearrange code section for enabling the read DMA state machineBrad Smith
to allow enabling the long burst FIFO on PCI Express cards though its currently disabled at the moment. From jonathan NetBSD and based on the Broadcom Linux driver.
2006-02-01one less magic value.Brad Smith
2006-02-01Set up the PCI DMA control register properly for the 5714 family,Brad Smith
only tested on the BCM5780 so far as found in the ServerWorks HT-2000 chipset. bge goes from slow throughput and constant watchdog resets to no watchdog's and decent throughput and what appears to be stable operation. From jonathan NetBSD and based on the Broadcom Linux driver. Thanks to Daniel Ouellet for testing on an IBM e326m
2006-01-25- Count packets discarded by RX/TX MAC (cause of FIFO overflow, etc)Brad Smith
as input/output interface errors. - Keep values of rx/tx discards & tx collisions inside struct bge_softc. So we can keep statistic across ifconfig down/up runs (cause bringing bge up will reset chip). From oleg FreeBSD
2005-12-28clear IFF_RUNNING here to get a full re-init.Brad Smith
2005-12-28using the PCI capability register to check for PCI-X mode doesn't get the ↵Brad Smith
expected result as this is set whether the board is in a PCI-X slot or not. The chip can tell us if we're on a conventional PCI bus.
2005-12-28Fix bge_eeprom_getbyte() to return 1 when timeout happens.Brad Smith
Previously it always returned 0 which means success regardless of EEPROM status. While here, add a check whether EEPROM read is successful. From yongari FreeBSD
2005-12-28eliminate the last few quirk flags.Brad Smith
2005-12-12If a PCI-X card is detected then set bge_pcix.Brad Smith
2005-12-11recognize BCM5750 C1 on Ted's Fujitsu Lifebook S7000Brad Smith
2005-12-10re-add bge_shutdown() but also register the function withBrad Smith
shutdownhook_establish().
2005-12-09remove unused function bge_shutdown().Brad Smith
2005-12-09some cleaning and fixing of comments.Brad Smith
2005-12-08- Enable the buffer manager on 5705 and newer ASICs.Brad Smith
- Enable the memory arbiter on 5705 and newer ASICs with 5714 family specific trick from Broadcom's Linux driver. Tested by Chuck McCollum and Ray Kohler on 575x ASICs.
2005-12-08This makes bge(4) only look for a PHY at id 1 as done by Broadcom'sBrad Smith
Linux driver and FreeBSD. This reverts a change I made based on NetBSD's bge(4) driver when adding the quirk table flags. Eliminate the BGE_QUIRK_ONLY_PHY_1 quirk flag. ok dlg@ krw@
2005-12-08eliminate the BGE_QUIRK_FEWER_MBUFS quirk flag and assume lower mbufs onBrad Smith
all 5704's. also remove a bit of code duplication in this section of code. ok krw@
2005-12-08add BCM5903M PCI id and recognize BCM5714 and BCM5715 ASICs.Brad Smith
From Broadcom's Linux driver
2005-11-29Put this back in...Brad Smith
Use pci_get_capability() to check if were on a PCI Express card or not. Tested by deraadt@, marco@ and a few end-users who reported issues.
2005-11-28back out the last 2 commits to bge(4) for now.Brad Smith
2005-11-27Use pci_get_capability() to check if were on a PCI Express card or not.Brad Smith
2005-11-27add initial support for ASF.Brad Smith
this should allow IPMI BMC pass-through to work once the OS is running. From Doug Ambrisko on the FreeBSD net list. Based on the Linux tg3 driver.
2005-11-25fix BCM5714 PCI id name and add 5714S, 5715 and 5715S.Brad Smith
2005-11-25Use BGE_IS_5705_OR_BEYOND macro to check for the existence or non-existenceBrad Smith
of 5705 or derived ASICs and remove the BGE_QUIRK_5705_CORE flag.
2005-11-25remove prototype for a non-existent function bge_free_jumbo_mem.Brad Smith
2005-11-25Use BGE_IS_JUMBO_CAPABLE in one more spot.Brad Smith
2005-11-25use 5780 here instead of 5714.Brad Smith
2005-11-25don't bother setting error in bge_attach() when its not actuallyBrad Smith
being used for anything.
2005-11-25Use BGE_IS_575X_PLUS macro when checking whether to use the PCI Express test ↵Brad Smith
or not.
2005-11-25Use BGE_IS_JUMBO_CAPABLE macro to figure out whether weBrad Smith
want Jumbos or not. Instead of just assuming that all 5705 derived cores do not support Jumbos. All of Broadcom's new Gig chips do not support Jumbos with the exception of the BCM5714 found embedded in the ServerWorks HT-2000 chipset using the BCM5780 ASIC.
2005-11-24add a few macros allowing selection of certain generations ofBrad Smith
the Broadcom ASICs.
2005-11-24don't redefine BGE_PCIMISCCTL_ENDIAN_WORDSWAP and lower the delay whileFederico G. Schwindt
waiting for the firmware. tested and ok brad@
2005-11-19Correct a performance bug from Bill Paul's original FreeBSD bge(4) driver:Brad Smith
Each call to the FreeBSD bge_start() routine the transmit producer pointer index from the chip mailbox register BGE_MBX_TX_HOST_PROD0_LO. The local copy of that value is then updated by bge_encap() as bge_encap() encapsulates packets in the Tx ring. If bge_encap() succeds in encpuslating one or more packets, bge_start() tells the chip to start sending the newly-encinitiates writes the new value back to the chip mailbox register. However, comparison of the Linux drivers (Broadcom-supplied and open-source tg3.c) and to the OpenSolaris driver confirms that register BGE_MBX_TX_HOST_PROD0_LO is write-only to software. Thus, we can just keep a copy in the softc, and eliminate the (expensive) PCI register write on each call to bge_start(). From jonathan NetBSD tested by krw@, sturm@ and I on a few different bge NICs.
2005-11-14bus_size_t is a more proper type for a register offset [against bh]Michael Shalayeff
2005-10-21tidy up dmesg printing.Brad Smith
2005-10-14only print warning message in bge_stop_block() if debug is enabled.Brad Smith
2005-10-14sprinkle some ANSI and KNF and remove an empty useless function.Brad Smith
2005-10-14shuffle these structs up to the top.Brad Smith
2005-10-10splimp -> splnetBrad Smith
2005-10-09BGE_RSLOTS is only used in one spot, BGE_TX_RING_CNTBrad Smith
should be used instead.