summaryrefslogtreecommitdiffstats
path: root/sys/dev/ic/gem.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a couple of problems that may make gem(4) get stuck:kettenis2008-08-261-67/+91
| | | | | | | | | | | | | | | | | | | 1. If bus_dmamap_load_mbuf() fails because there are not enough segments in the map, defrag the mbuf. 2. If there are not enough free (hardware ring) descriptors, set IFF_OACTIVE and keep the packet on the queue. 3. If there is some other resource starvation that makes bus_dmamap_load_mbuf() or defragmentation fail, drop the packet. Don't set IFF_OACTIVE, since the Tx ring could be empty and we'd be stuck. 4. Only pass packets that are actually handed off to the hardware to BPF. Do so before handing them off to the hardware to make sure the packet isn't freed behind our back. ok dlg@
* Properly set the IFF_OACTIVE flag if all the descriptrs are in use forbrad2008-05-311-4/+6
| | | | | | the TX ring and clear the flag when some have been freed. ok dlg@ kettenis@
* - Count excess and late collisions as output errors.brad2008-05-091-5/+18
| | | | | | | | - Count receive errors as input errors. Based on similar change to the gem(4) driver from NetBSD. ok kettenis@
* Set reserved bits in the TX Configuration Register the value from the Sun docs.kettenis2008-02-101-2/+2
| | | | | | Seems to fix watchdog timeout issues in Sun ERI variants. tested by a few
* Return ENOTTY not EINVAL for unsupported ioctl's;thib2008-02-081-2/+2
| | | | ok kettenis@
* Fall back on using SERDES if MDI0/MDI1 bits aren't set too. Fix PCS handling.kettenis2008-01-111-43/+30
| | | | | | Makes the onboard fiber gem(4) in the Sun Fire V880 work. tested by many; ok dlg@
* s/NPBFILTER/NBPFILTER/ in #endif comment. No functional change.kettenis2007-09-301-2/+2
|
* Cleanup phy selection code, simplifying the code considerably. Attach onlykettenis2007-04-191-95/+65
| | | | | | one phy on Sun ERI; gets rid of the duplicate phy on the blade1k. tested by many, ok drahn@
* betetr yet, just nuke sc_enaddr all together, just fill in arpcom andjason2006-12-211-9/+6
| | | | everybody is happy
* ANSIbrad2006-11-251-63/+25
|
* fix use of gem_bitwait().brad2006-11-251-2/+2
|
* Split the GEM registers into two halfs and provide a bus_space_handle_tbrad2006-11-251-41/+43
| | | | | | for each. While there, fix a typo in gem_bitwait(). From martin@NetBSD
* Fix a copy and pasto.brad2006-11-251-3/+3
| | | | From martin@NetBSD
* be silentderaadt2006-11-111-2/+5
|
* Fix typo.kettenis2006-11-101-2/+2
|
* Add support for Sun 1000baseSX cards.kettenis2006-11-101-1/+131
| | | | ok deraadt@
* replace hand rolled code with LIST_FOREACH in gem_mediachange().brad2006-10-171-5/+4
| | | | ok kettenis@ "Looks correct to me" krw@
* put CRC error message under GEM_DEBUG. this just spews out like crazybrad2006-07-111-1/+3
| | | | on a heavily loaded hub.
* check for IFF_RUNNING being set before calling gem_init().brad2006-04-151-20/+9
|
* allow bpf(4) to ignore packets based on their direction (inbound ordjm2006-03-251-3/+3
| | | | | outbound), using a new BIOCSDIRFILT ioctl; guidance, feedback and ok canacar@
* remove some commented out and NetBSD-specific code.brad2006-02-211-7/+1
|
* add missing MTU ioctl switch case.brad2006-02-211-4/+10
| | | | Noticed by: Ben Lovett <ben at tilderoot dot com>
* eliminate a reset when configuring the IP address.brad2006-02-081-2/+11
| | | | tested by kettenis@
* call gem_setladrf() if the NIC is already running and only thebrad2006-02-051-24/+14
| | | | | | | | PROMISC or ALLMULTI flags are being adjusted or if adjusting the multicast addresses instead of doing a full re-init of the chip. ok kettenis@
* add IFQ_SET_MAXLEN().brad2005-11-151-1/+2
|
* splimp -> splnetbrad2005-11-071-5/+5
|
* sync mbuf before unloading in gem_rxdrain().brad2005-11-021-3/+4
| | | | From NetBSD
* handle TX underrun and packet too long errors by resetting the chip.brad2005-11-021-12/+20
| | | | | | From NetBSD ok krw@
* - some DEBUG should be GEM_DEBUGbrad2005-10-311-67/+50
| | | | | | | | | | | - introduce gem_bitwait() to factor out some of the register wait code From NetBSD - remove some statics - remove parameter names from prototypes ok kettenis@
* typobrad2005-10-311-2/+2
|
* Start using the unused sc_variant to identify the GMAC vendor and chipsetbrad2005-10-171-3/+16
| | | | | | | model to the MI part of the driver. On Apple systems only attach the PHY to location 0, unless using a K2 GMAC, then use location 1. Tested by drahn@ and kettenis@
* have gem strip off the Ethernet FCS before passing it to bpf.brad2005-10-111-6/+3
| | | | ok krw@, also tested by Peter Hessler on macppc
* copy the MAC address from sc_arpcom.ac_enaddr to sc_enaddr inbrad2005-09-101-1/+2
| | | | | | | | gem_init() just before calling gem_init_regs() so the proper MAC address gets programmed into the card (if it has been changed by say ifconfig lladdr for example). Noticed and diff tested by: Troex Nevelin <troex at fury dot scancode dot ru>
* remove whitespacebrad2005-08-011-16/+16
|
* clear IFF_RUNNING & IFF_OACTIVE in foo_stop() before de-allocating resources.brad2005-07-021-7/+8
|
* remove netns crud.henning2005-06-081-18/+1
| | | | | some drivers actually had hooks for SIOCSIFADDR, most just useless includes "looks good" deraadt miod brad
* make sure interface is in RUNNING state before touching the multicast filtersbrad2005-01-151-2/+3
| | | | | | | | From NetBSD NetBSD PR 27678 for details ok mcbride@
* allow for VLAN-sized frames.brad2004-09-271-11/+3
|
* take 2 times less room in dmesg, prettier toopvalchev2004-06-201-9/+8
| | | | | allocate interrupts early on (before PHY attachment, etc) just like all other drivers do to allow the above; ok mcbride
* Don't return random garbage in the default case; return the smallest ringbrad2004-02-021-27/+14
| | | | | | | | descriptor instead. From NetBSD ok deraadt@
* remove prototypes for non-existant functions.brad2004-02-011-4/+1
| | | | ok deraadt@
* no vtophys(), don't need uvm_extern.h anymore.brad2003-12-291-3/+1
| | | | | | tested on alpha, i386, macppc and sparc64. ok millert@ mickey@
* correct some debugging printfsjason2003-07-151-5/+4
|
* Eliminate creation/destruction of dmamap's for every xmit by reusingkrw2003-07-091-18/+24
| | | | | | | | | | statically allocated maps. Significant performance boost on both sparc64 and macppc. Tested on macppc by drahn@. ok jason@ drahn@.
* strcpy/sprintf cleanup of sys/dev. miod@, deraadt@ says to commit.ho2003-04-271-2/+2
|
* The gem driver will sometimes unmap bus_dma mappings that are stillhenric2003-03-021-4/+3
| | | | | | | | | in use by the hardware. Since the sparc64 has IOMMUs, an access by the hardware after the unmap operation will cause a fault. This replaces "disable" calls by "reset" calls. This increases the time between the command to disable DMA and when the maps are actually unloaded.
* - Either memset() or loop and set to zero, not bothjason2003-01-231-8/+13
| | | | | | - reading RX_COMPLETION is a waste of time (and a -slow- PCI read vs. an, albeit uncached, memory access to determine the same thing). - on RX_OVERFLOW, reset the board; the RX unit has probably wedged
* 1000baseTX -> 1000baseTnate2002-11-261-3/+3
| | | | | | | - More technically correct - Matches FreeBSD and NetBSD - Preserved #define for 1000baseTX for backwards compatibility ok jason@
* Update ifp->if_opackets correctlyjason2002-09-221-1/+2
|
* - Fix one typo (instead of two disable_rx, one disable_rx and one disable_tx)art2002-08-281-3/+3
| | | | | | | | - Instead of setting OACTIVE on the interface when encap fails and never clearing it, set a 2 second timer instead and hope that the memory situation will improve. This stops the lockups of the interface when memory is running low. jason@ ok.