summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_bge.c
AgeCommit message (Collapse)Author
2012-09-13tell mii_attach where the phy is on the chip, rather than asking it toDavid Gwynne
probe every address and have bge_miibus_read fail at the wrong address. needed to support recent chips which have phys in locations other than phy address 1 (and removes a conditional in an io path).
2012-07-04Invert the logic for detecting fibre interface media adapters.Mark Kettenis
Only the BCM5700-BCM5704 adapters had TBI interfaces for fibre and anyting newer uses the MII interface. From Brad.
2012-07-04Set the 10_100_ONLY flag for the BCM57791/BCM57795 chipsetsMark Kettenis
as they're FastE chipsets. So ifconfig media doesn't list GigE for FastE-only capable PHY. From Brad.
2012-06-28Devices with BCM5724 BCM5750 and BCM5750M PCI IDs were never releasedMike Belopuhov
to the public; from broadcom/linux via brad
2012-06-09we dont support the BCM5720. the macro wasnt even referring to the productsDavid Gwynne
actual id. ok kettenis@
2011-06-22kill a few more casts that aren't helpful. ok krw miodTed Unangst
2011-04-05mechanic rename M_{TCP|UDP}V4_CSUM_OUT -> M_{TCP|UDP}_CSUM_OUTHenning Brauer
ok claudio krw
2011-02-22Disable PCIe Active State Power Management (ASPM) to avoid bge(4) randomlyRobert Nagy
detaching from the bus on some of the machines. tested by many, ok miod@
2011-02-15Add workaround for BCM5906 A0/1/2 controller silicon bug. WhenRobert Nagy
auto-negotiation results in half-duplex operation, excess collision on the ethernet link may cause internal chip delays that may result in subsequent valid frames being dropped due to insufficient receive buffer resources. The workaround is to choose de-pipeline method as a flow control decision for SDI. De-pipeline method allows only 1 data in TxMbuf at a time such that a request to RDMA from SDI is made only when TxMbuf is empty. From FreeBSD; ok miod@; ok kettenis@
2010-09-20Stop doing shutdown hooks in network drivers where possible. We alreadyTheo de Raadt
take all interfaces down, via their xxstop routines. Claudio and I have verified that none of the shutdown hooks do much extra beyond what xxstop was already doing; it is largely a pile of junk. ok claudio, some early comments by sthen; also read by matthew, jsg
2010-09-07remove the powerhook code. All architectures now use the ca_activate treeTheo de Raadt
traversal code to suspend/resume ok oga kettenis blambert
2010-08-31Add DVACT_QUIECE support. This is called before splhigh() and beforeTheo de Raadt
DVACT_SUSPEND, therefore DVACT_QUIECE can do standard sleeping operations to get ready. Discussed quite a while back with kettenis and jakemsr, oga suddenly needed it as well and wrote half of it, so it was time to finish it. proofread by miod.
2010-08-31activate function should return result of config_activate_childrenTheo de Raadt
2010-08-27The powerhook only did stuff at resume; but suspend matters too!Theo de Raadt
Instead of fixing it, make it call the activate function which does the full job ok kettenis
2010-08-07No "\n" needed at the end of panic() strings.Kenneth R Westerback
Bogus chunks pointed out by matthew@ and miod@. No cookies for marco@ and jasper@. ok deraadt@ miod@ matthew@ jasper@ macro@
2010-08-02There is no reason to call the start function upon resume; the network stackMark Kettenis
is perfectly capable to get things going again all by itself. ok deraadt@
2010-07-27spacing; ok deraadt@Todd T. Fries
2010-07-27Make sure we stop DMA before we suspend.Mark Kettenis
ok deraadt@
2010-07-09- Setup proper mbuf pool watermarks for BCM5717 / BCM57765 chipsets.Stuart Henderson
- Disable initiation of multiple DMA reads for BCM5717 chipset to workaround errata. - Performance tweak for BCM5785 chipset. - Correct the return ring count used for BCM5717 / BCM57765 chipsets. - Fix fiber media detection for BCM5717 chipsets as they use a MII-based fiber PHY. From Brad, based on info gleaned from the Linux tg3 driver. Should only affect the new chipsets, but tested for regressions anyway (on BCM5701, BCM5703, BCM5704C, BCM5705M Alt, BCM5722, BCM5751, BCM5751M, BCM5780) by Brad, weerd@, myself and Denis Doroshenko.
2010-04-06A fix for the PCI-X check so that this is only tested on controllersChristian Weisgerber
that could be PCI-X. This bit is not valid for PCIe controllers. From Brad
2010-03-30Have bge_start check if there are less than 16 free send BDs and if notChristian Weisgerber
set IFF_OACTIVE and try again later. Previously bge(4) reserved 16 send BDs after loading DMA maps but the hardware only requires one reserved send BD. From FreeBSD, via Brad
2010-01-10Do not try to reevaluate the current RX production index on eachChristian Weisgerber
loop iteration as it can be updated by the card while we process the RX ring, forcing us to process RX descriptors for which DMA synchronisation has not been performed. This fixes a bug where bge(4) will drop packets packets under heavy load. Adapted from FreeBSD by Brad.
2010-01-09Add support for the Broadcom BCM57765 ASIC and newer BroadcomChristian Weisgerber
BCM577xx chipsets. From Brad.
2009-12-17- correct the PCI ids for the BCM5717 and BCM5718 chipsetsStuart Henderson
- add BCM5724 chipset from Linux driver via Brad. - sort by device-id
2009-12-09Do not count input errors twice. We always read input errors fromChristian Weisgerber
the MAC in bge_tick(). Previously this would result in bge(4) claiming a greater number of input errors than what has actually occurred. From FreeBSD via Brad
2009-11-30Re-initialise the interface upon resume.Mark Kettenis
ok deraadt@, pirofti@, claudio@
2009-10-11Correct a copy-and-pasto (check for the same device type twice inStuart Henderson
an if statement) in the last commit. From Brad.
2009-10-11Add support for the Broadcom BCM5717 ASIC and the BCM5717 / BCM5718 chipsets.Stuart Henderson
Based on info gleaned from the Linux tg3 driver. From Brad, ok naddy@
2009-10-07The BCM5703 ASIC ID is actually shared with the BCM5702 ASIC soStuart Henderson
indicate so in the text strings. From Brad.
2009-10-02Remove BCM57720 as it's not going to be released. From a BroadcomStuart Henderson
commit to the Linux driver via Brad.
2009-09-30- Sync the BCM5785G PCI id for bge(4) and add BCM5785F / BCM57788.Stuart Henderson
PCI ids from the Linux tg3 driver via Brad.
2009-08-13- consistify cfdriver for the ethernet drivers (0 -> NULL)Jasper Lievisse Adriaanse
ok dlg@
2009-08-09MCLGETI() will now allocate a mbuf header if it is not provided, thusTheo de Raadt
reducing the amount of splnet/splx dancing required.. especially in the worst case (of m_cldrop) ok dlg kettenis damien
2009-08-08bring comments in line with reality; from BradChristian Weisgerber
2009-08-06Backout r1.274, william@ has tracked down watchdog timeouts withStuart Henderson
his BCM5703 A2 to this commit. Original commit message was: "Set the DMA read watermark to 4 on the BCM5703 chipset in PCI-X mode. This is needed to prevent some TX timeouts. From Brad. Tested by myself on BCM5703 B0 on PCI-X 64/66".
2009-07-21Add a family flag for the original 5700 series chipsets. Idea from FreeBSD.Christian Weisgerber
But also use the flag where it makes sense. From Brad; ok sthen@
2009-06-19Allow bge(4) to recognize the revisions of the 57780 ASICs. From Brad.Christian Weisgerber
2009-06-11Limit the BCM5701 B5 chipset to 32-bit mode as a workaround for aStuart Henderson
bug which causes data corruption in combination with certain bridges. Tested on BCM5701 B5 (0x105). From FreeBSD via Brad. http://www.freebsd.org/cgi/query-pr.cgi?pr=128833
2009-06-11Set the DMA read watermark to 4 on the BCM5703 chipset in PCI-X mode.Stuart Henderson
This is needed to prevent some TX timeouts. From Brad. Tested by myself on BCM5703 B0 on PCI-X 64/66
2009-06-06remove unused variable prevlen and a second initialization of ifp.Stuart Henderson
adjusted from a diff from chl@; ok naddy, Brad agrees.
2009-06-05%zu is not meant for size_t in the kernel. Change to %lu.Ray Lai
OK miod
2009-06-04enable IPv6 receive TCP/UDP checksum offload for the 5755 and later chips;Christian Weisgerber
from Brad
2009-06-04replace the cumbersome macros that check for chip revisions with quirk flagsChristian Weisgerber
set at attach; from Brad
2009-06-03rename some macros for more consistent naming; from BradChristian Weisgerber
2009-06-03set IFF_ALLMULTI properly also when in promiscuous mode and someChristian Weisgerber
cosmetic tweaking; from Brad
2009-06-03register bit definitions instead of magic numbers;Christian Weisgerber
gleaned from the Linux tg3 driver; from Brad
2009-06-02minor tidying; from Brad; ok sthen@Christian Weisgerber
2009-06-02"Add a macro to define the newer generation of bge(4) chipsets. SimplifiesStuart Henderson
things a bit a and helps with adding support for more newer chipsets with the same common features. From the Linux tg3 driver." From Brad; binaries are not identical; the if statement is changed slightly, but no functional change. Looks fine to naddy@.
2009-05-24Support hardware checksumming, from FreeBSD.Christian Weisgerber
Enable for IP/UDP/TCP receipt and IP transmit. Keep disabled for UDP/TCP transmit because it breaks with pf(4) rdr. ok sthen@
2009-05-21add support for BCM576x, 577xx, and some new 572x/578x devices.Stuart Henderson
from Brad; testing by phessler, naddy, myself and others on a range of older and newer devices. ok dlg@.