summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/if_mskvar.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* rework the transmit and receive paths to address reliability issues.dlg2018-01-061-32/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | phessler@ has been having trouble with msk on overdrive 1000s. some of the issues relate to the driver not coping with exhaustion of mbufs for the rx ring, the other issues are corruption of the mcl9k pool that msk uses. this diff adds a timeout that the rx refill code uses when the rx ring is empty and cannot be filled. it'll periodically retry the ring refill until it can get some mbufs in the air again. the current code made hunting for the mcl9k issue too hard, so this rewrites it to be simpler and more like other drivers. there's now just arrays of mbuf pointers and dmamaps to shadow the hardware ring entries, and producer and consumer indexes. what was there before had linkes lists of something to hold mbuf pointers and dmamaps, and some way to go from the ring to go back to that. i think, it was hard to tell what was happening. this also copies the ADDR64 handling on the tx ring to the rx ring. this potentially makes more rx descriptors available, but that can happen later. in hindsight the mcl9k problem could have been from letting if_rxr allocate the entier ring. if every descriptor was filled, the chip may have run around the ring when it shouldnt have. giving rxr one less descriptor than there is on the ring may have fixed the problem too. this work also makes it easier to make msk mpsafe. tested by an ok phessler@ ok kettenis@ deraadt@
* only update the tx descriptors high address if it changes.dlg2017-06-021-2/+3
| | | | | | | this should effectively double (or restore?) the number of packets that can be fit on the tx ring. tested on an od1000.
* Use a macro for the Tx timeout value.visa2017-01-081-2/+4
| | | | OK deraadt@ kettenis@
* cut things that relied on mclgeti for rx ring accounting/restriction overdlg2014-07-081-3/+5
| | | | | | | | | | 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@
* Rewrite the receive filter handling code and cleanup the ioctl bits.brad2013-02-011-3/+2
| | | | ok jsg@ krw@
* Stop doing shutdown hooks in network drivers where possible. We alreadyderaadt2010-09-201-3/+2
| | | | | | | 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
* Switch msk(4) over to using MCLGETI when allocating mbufs for the RX ring.kettenis2009-03-231-14/+3
| | | | This gets rid of one of the evil jumbo allocators!
* First pass at removing clauses 3 and 4 from NetBSD licenses.ray2008-06-261-9/+2
| | | | | | | | | Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
* Make msk(4) detachable.kettenis2007-11-251-2/+9
| | | | "can't be wrong" deraadt@
* Take alignment restrictions into account when setting up RAM buffer addresses.kettenis2007-05-121-3/+2
| | | | | This makes Yukon-2 FE chips work reliably. Pointed out by giovanni at gmail dot com.
* Add support for fiber on 88E8021/22.kettenis2007-02-111-2/+3
|
* Remove useless code dealing with media type. Simplify PHY reset code.kettenis2006-12-281-4/+2
|
* Remove code that deals with sk(4) specific phy's that breaks certain msk(4)kettenis2006-11-171-4/+2
| | | | | | variants. tested by jsg@
* Enter msk(4), an initial stab at a driver for the Marvell Yukon-2 Gigabitkettenis2006-08-161-0/+246
ethernet controllers. It works well enough to commit over. There's a lot code duplication from sk(4) though that needs to be reduced.