summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/if_bgereg.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* BCM5719 A1 seen in the wild.kettenis2020-06-181-1/+2
| | | | dlg@, deraadt@, mpi@
* Make it possible to detach bge(4).kettenis2015-11-291-1/+5
| | | | ok deraadt@
* The window accessible with BGE_MEMWIN_{READ,WRITE} only spans 32KB, somiod2015-11-101-6/+6
| | | | | | | program it as such and not as a 64KB window; fortunately none of the current users of these macros would cross a 32KB boundary. ok dlg@
* Move bge rxeof and txeof outside the kernel lock.jmatthew2015-10-191-8/+3
| | | | | | | | | | | | | | | | To make rxeof safe, use a separate ring refill timeout for each ring. We activate the refill timeout for a ring when it's too empty to receive packets, which ensures we won't attempt to refill it from interrupt context. To make txeof safe, remove the list of dma maps and just allocate maps based on the ring slots occupied by the packet, and use atomic operations to adjust bge_txcnt. Rework some parts of the txeof and start loops so that we only adjust bge_txcnt after exiting the loop, and only take actions such as setting or clearing OACTIVE based on the final value. tested on 5703, 5714, 5721 by me, 5753 by semarie@, 5761 by naddy@, and also in snapshots for a while ok mpi@, dlg@
* Make room for media types of the future. Extend the ifmedia word to 64 bits.stsp2015-09-111-2/+2
| | | | | | | | | | | | | | | | This changes numbers of the SIOCSIFMEDIA and SIOCGIFMEDIA ioctls and grows struct ifmediareq. Old ifconfig and dhclient binaries can still assign addresses, however the 'media' subcommand stops working. Recompiling ifconfig and dhclient with new headers before a reboot should not be necessary unless in very special circumstances where non-default media settings must be used to get link and console access is not available. There may be some MD fallout but that will be cleared up later. ok deraadt miod with help and suggestions from several sharks attending l2k15
* Add Jumbo support for BCM5714 / BCM5780 and BCM5717 / BCM5719 / BCM5720 / BCM57765 / BCM57766brad2014-09-021-1/+5
| | | | | | chipsets. ok mikeb@ "i think it should go in" dlg@
* Add some TX BD flags for BCM5717 family chips.brad2014-08-241-2/+13
|
* cut things that relied on mclgeti for rx ring accounting/restriction overdlg2014-07-081-3/+3
| | | | | | | | | | to using if_rxr. cut the reporting systat did over to the rxr ioctl. tested as much as i can on alpha, amd64, and sparc64. mpi@ has run it on macppc. ok mpi@
* - Recognize BCM5762 A0 chipset.brad2014-02-051-1/+2
| | | | | | | - Have the BGE_RXLP_LOCSTAT_IFIN_DROPS workaround cover for the BCM5762 ASIC. From Linux ok naddy@
* Split bge(4)'s feature flags into bge_flags and bge_phy_flags.brad2014-02-011-35/+37
| | | | ok naddy@
* unbreak 32-bit kernel builds by forcing ULL for the new macros; ok naddy@sthen2014-01-281-34/+34
|
* - Bring in some fixes/workarounds for BCM5719 / BCM5720 / BCM57765 and BCM57766brad2014-01-281-1/+31
| | | | | | | | | | | chipsets - Add support for the new BCM5762 ASIC (BCM5725 / BCM5727 / BCM57767) - Add all of the newer PCI ids Tested with BCM5719 / BCM5720 and BCM57765 / BCM57766 and a bunch of older chipsets. ok naddy@
* Increase the size of the bge_flags field to allow for more flags.brad2014-01-071-34/+35
| | | | ok mikeb@
* Expand the MSI support to cover most of the remaining bge(4) chipsets with thebrad2013-12-301-1/+4
| | | | | | | | exception being the BCM5714 family for now. Tested on a variety of newer chipsets. ok sthen@
* Turns out that BGE_STATFLAG_UPDATED bit in the status block doesn't getmikeb2013-06-281-4/+6
| | | | | | | | | | | | properly updated by the newer hardware (seen in the TX completion case). This leads to very poor transmit performance in the beginning of a TCP connection. Linux and FreeBSD don't rely on BGE_STATFLAG_UPDATED bit since they enable MSI and tagged status for 5717+. Doing the same does indeed fix an issue. Change was tested by David Imhoff on 5719, 5720 and 5721/5750, Hrvoje Popovski on 5704 B0, sthen@ on 5723/5784, benno@ on 5704 A3, and me on 5719, 5720 adn 5714/5715. No objections from kettenis@ and dlg@.
* Random TX Backoff Register mask must be 0x3FF; ok beck, dlgmikeb2013-06-131-2/+2
|
* New logic to accommodate the E5/C600 and 5719/5720 changes in PCI-Emikeb2013-05-311-10/+4
| | | | | | | | | | | maximum payload size handling from FreeBSD. Fixes RX path on 5719 found in newer machines such as HP DL3[68]0 G8 and Dell R320. Tested by dlg@ on 5714, 5719 (Sun V445) and 5720, 5721 (Dell R420); David Imhoff on 5719, 5720, 5721 (various Dell servers); Rob Sessnik on 5719 (HP DL360p G8); mikeb@ on 5719 (HP DL380p G8). ok dlg
* PHY auto-polling mode should not be used for anything newer than BCM5705.mikeb2013-05-291-1/+2
| | | | | | | | | Figured out by David Imhoff, checked against FreeBSD, Linux and official documentation. Fixes up link negotiation on BCM5719. Original diff by David, tweaked by me; tested on BCM5702X and BCM5761 by naddy@; BCM5714, BCM5719, BCM5720 and BCM5721 by dlg@, BCM5721 and BCM5719 by David and BCM5719 by me. ok dlg
* bring back 5718/5719/5720 support again. deraadt pointed out thatdlg2013-02-221-5/+143
| | | | | | | | | | | | | | the problems i had on the xserve g5 are mostly likely specific to that machine and im inclined to agree. we're going to see a lot more machines with the new chips than people with xserve g5s. this also includes fixes for ip checksum handling compared to the code i put in before. tested by various people again. sthen@ and claudio@ have agreed to babysit this. they can back it out if im not around. ok deraadt@
* - Use a switch statement for setting the chipset flagsbrad2013-02-091-10/+17
| | | | | | | | - Add some macros for working with the various newer generations of chipsets - Make use of the 5717 macro in a few places - Add some bits for identifying and supporting some of the newer chipsets ok sthen@
* backout 5718/5719/5720 support. the diff breaks the 5704C on my xserve g5dlg2013-01-301-147/+5
| | | | | | and i cant fix it without breaking a 5721 in another box. sthen@ agrees it is sad.
* big pullup of bge to support the 5718 family of chips including thedlg2013-01-291-5/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5719 and 5720 chips that have popped up in a lot of new machines. this diff is largely a merge of the freebsd code. thanks to srebrenko sehic for providing me hardware to do the work on. also, a huge thanks to claudio for trawling through the diff to fix merge issues, understand the changes, and actually make it work. tested by sthen@ naddy@ jmatthew@ claudio@ jj@ and me tested chips include: bge0 at pci2 dev 3 function 0 "Broadcom BCM5704C" rev 0x10, BCM5704 B0 (0x2100): apic 2 int 8, address 00:30:48:59:52:44 brgphy0 at bge0 phy 1: BCM5704 10/100/1000baseT PHY, rev. 0 bge0 at pci3 dev 0 function 0 "Broadcom BCM5723" rev 0x10, BCM5784 A1 (0x5784100): apic 2 int 18, address e4:11:5b:12:bd:d6 brgphy0 at bge0 phy 1: BCM5784 10/100/1000baseT PHY, rev. 4 bge0 at pci3 dev 4 function 0 "Broadcom BCM5714" rev 0xa3, BCM5715 A3 (0x9003): ivec 0x795, address 00:14:4f:a9:34:90 brgphy0 at bge0 phy 1: BCM5714 10/100/1000baseT/SX PHY, rev. 0 bge0 at pci2 dev 0 function 0 "Broadcom BCM5761" rev 0x10, BCM5761 A1 (0x5761100): apic 2 int 18, address 00:10:18:4b:23:b4 brgphy0 at bge0 phy 1: BCM5761 10/100/1000baseT PHY, rev. 0 bge0 at pci0 dev 5 function 0 "Broadcom BCM5702X" rev 0x02, BCM5702/5703 A2 (0x1002): eb164 irq 2, address 00:10:18:00:98:e9 brgphy0 at bge0 phy 1: BCM5703 10/100/1000baseT PHY, rev. 2 bge0 at pci2 dev 2 function 0 "Broadcom BCM5703" rev 0x00, BCM5702/5703 A2 (0x1002): ivec 0x7dc, address 00:14:4f:16:a0:23 and of course: bge1 at pci5 dev 0 function 0 "Broadcom BCM5720" rev 0x00, BCM5720 A0 (0x5720000), APE firmware NCSI 1.0.85.0: apic 0 int 16, address d4:ae:52:a7:05:38 brgphy1 at bge1 phy 1: BCM5720C 10/100/1000baseT PHY, rev. 0 bge2 at pci5 dev 0 function 1 "Broadcom BCM5720" rev 0x00, BCM5720 A0 (0x5720000), APE firmware NCSI 1.0.85.0: apic 0 int 17, address d4:ae:52:a7:05:39 brgphy2 at bge2 phy 2: BCM5720C 10/100/1000baseT PHY, rev. 0 either sthen@ or i will be around to handle any issues after this commit.
* Fight global eye bleeding by fixing evil typos.miod2013-01-161-2/+2
|
* More syncing with FreeBSD bge version. No binary change.claudio2013-01-151-8/+11
|
* put a tab after #define to make the diff between Fx and Ox smaller.claudio2013-01-151-1778/+1778
| | | | No binary change.
* dont hardcode the phy address at 1. the 5718 family of chips can havedlg2013-01-101-1/+2
| | | | | | | phys as 1, 2, 8, or 9 depending on which pci function its on and whether its serdes. this tells every other bge that the phy is still at 1, so they still work.
* macros describing necessary bits on newer chips.dlg2013-01-101-2/+95
| | | | | just extra cruft, it doesnt change anything that already exists so it cant (and empirically doesnt) change existing chip support.
* Add workaround for BCM5906 A0/1/2 controller silicon bug. Whenrobert2011-02-151-1/+3
| | | | | | | | | | | 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@
* Stop doing shutdown hooks in network drivers where possible. We alreadyderaadt2010-09-201-2/+1
| | | | | | | 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
* remove the powerhook code. All architectures now use the ca_activate treederaadt2010-09-071-2/+1
| | | | | traversal code to suspend/resume ok oga kettenis blambert
* - Setup proper mbuf pool watermarks for BCM5717 / BCM57765 chipsets.sthen2010-07-091-1/+3
| | | | | | | | | | | | | | - 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.
* Add support for the Broadcom BCM57765 ASIC and newer Broadcomnaddy2010-01-091-1/+3
| | | | BCM577xx chipsets. From Brad.
* Add support for the Broadcom BCM5717 ASIC and the BCM5717 / BCM5718 chipsets.sthen2009-10-111-1/+7
| | | | Based on info gleaned from the Linux tg3 driver. From Brad, ok naddy@
* Add a family flag for the original 5700 series chipsets. Idea from FreeBSD.naddy2009-07-211-1/+2
| | | | But also use the flag where it makes sense. From Brad; ok sthen@
* Allow bge(4) to recognize the revisions of the 57780 ASICs. From Brad.naddy2009-06-191-1/+3
|
* Some more defines for bge(4). Mainly bits for accessingnaddy2009-06-191-3/+128
| | | | | | | info from the firmware. Some of it will be required for further work on both older and newer chipsets. Gleaned from the Linux tg3 driver. From Brad.
* replace the cumbersome macros that check for chip revisions with quirk flagsnaddy2009-06-041-2/+6
| | | | set at attach; from Brad
* register bit definitions instead of magic numbers;naddy2009-06-031-1/+3
| | | | gleaned from the Linux tg3 driver; from Brad
* minor tidying; from Brad; ok sthen@naddy2009-06-021-2/+1
|
* add support for BCM576x, 577xx, and some new 572x/578x devices.sthen2009-05-211-56/+74
| | | | | from Brad; testing by phessler, naddy, myself and others on a range of older and newer devices. ok dlg@.
* Start using extended buffer descriptors on the jumbo ring and use MCLGETI tokettenis2009-04-231-20/+22
| | | | | | allocate mbufs for it. Another jumbo allocator bites the dust! ok dlg@
* if we cant put enough packets on the rx ring then schedule a timeout todlg2008-12-231-1/+2
| | | | | | try again later. tested by many
* switch bge over to using MCLGETI when allocating mbufs for the rx ring.dlg2008-12-031-1/+2
| | | | | | tested by many including henning@ sthen@ naddy@ krw@ robert@ jmc@ jsg@ weerd@ and ingo schwarze on a variety of machines include i386, amd64, alpha, and sparc64.
* brad, noone said you could go making changes like that (doubling thederaadt2008-11-081-2/+8
| | | | | | | amount of memory and interrupt time each bge uses) without discussing it with other people. lots of people are complaining about the lack of communication in your process, and you are going to have to change that.
* Clean up some of the comments.brad2008-11-081-8/+2
|
* When initializing the MAC put the PHY into ready state for BCM5906brad2008-11-071-1/+2
| | | | | | | | chipsets. From the Linux tg3 driver via FreeBSD. Tested by Jordi Creix <jbcreix dot mail at gmail dot com>
* Add a flag and allow the driver to identify the BCM5788 chipsets. They'rebrad2008-07-171-2/+5
| | | | | | slightly different from the other chipsets using the BCM5705 ASIC. ok jsg@
* Enable the read DMA engine's PCI read request burst length long burstbrad2008-07-161-5/+4
| | | | | | | | mode (4KB) for PCIe chips. This resolves the poor TX performance for the PCIe chips. The result being a bit under double the TX performance on a Gig connection (roughly 495 Mb/s -> 940 Mb/s). Tested by reyk@, sthen@, brad@ and a few end users.
* Add a workaround for a CRC bug errata with BCM5701 A0 and B0 chipsetbrad2008-04-201-7/+8
| | | | | | | | revisions. From Linux via FreeBSD. ok dlg@
* Clean up the DMA read/write control register setup code and add somebrad2008-04-031-14/+10
| | | | | | | | | | comments. Tested by a number of users with a variety of chipsets. From FreeBSD ok kettenis@