aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/tsec/if_tsec.c
Commit message (Collapse)AuthorAgeFilesLines
* tsec: Use IFQ_DRV macros for managing interface packet queue.Rafal Jaworowski2009-11-201-3/+3
| | | | | | | | | | This lets tsec(4) work with ALTQ. Submitted by: Marcin Ligenza MFC after: 1 week Notes: svn path=/head/; revision=199580
* Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/Robert Watson2009-06-261-2/+2
| | | | | | | | | | | | | | | | IF_ADDR_UNLOCK() across network device drivers when accessing the per-interface multicast address list, if_multiaddrs. This will allow us to change the locking strategy without affecting our driver programming interface or binary interface. For two wireless drivers, remove unnecessary locking, since they don't actually access the multicast address list. Approved by: re (kib) MFC after: 6 weeks Notes: svn path=/head/; revision=195049
* Fix Book-E/MPC85XX build. Some prototypes were wrong and got revealed withRafal Jaworowski2009-06-131-2/+5
| | | | | | | the recent kobj signature checking. Notes: svn path=/head/; revision=194101
* When user_frac in the polling subsystem is low it is going to busy theAttilio Rao2009-05-301-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | CPU for too long period than necessary. Additively, interfaces are kept polled (in the tick) even if no more packets are available. In order to avoid such situations a new generic mechanism can be implemented in proactive way, keeping track of the time spent on any packet and fragmenting the time for any tick, stopping the processing as soon as possible. In order to implement such mechanism, the polling handler needs to change, returning the number of packets processed. While the intended logic is not part of this patch, the polling KPI is broken by this commit, adding an int return value and the new flag IFCAP_POLLING_NOCOUNT (which will signal that the return value is meaningless for the installed handler and checking should be skipped). Bump __FreeBSD_version in order to signal such situation. Reviewed by: emaste Sponsored by: Sandvine Incorporated Notes: svn path=/head/; revision=193096
* tsec(4) cosmetics.Rafal Jaworowski2009-02-171-2/+1
| | | | Notes: svn path=/head/; revision=188719
* tsec(4): Always try to resume the receiver.Rafal Jaworowski2009-02-171-3/+10
| | | | | | | | | This helps recover from RX stall under heavy loads. Submitted by: Piotr Ziecik kosmo ! semihalf dot com Notes: svn path=/head/; revision=188718
* tsec(4): do not clear interrupt events register before use.Rafal Jaworowski2009-02-171-2/+2
| | | | | | | | | | | | Prior to this fix, IEVENT register was always cleared before calling tsec_error_intr_locked(), which prevented error recovery actions from happening with polling enabled (and could lead to serious problems, including controller hang). Submitted by: Marcin Ligenza marcinl ! pacomp dot com dot pl Notes: svn path=/head/; revision=188715
* Handle mbuf exhaustion scenario in tsec(4).Rafal Jaworowski2009-02-171-1/+6
| | | | | | | | | Without this fix the system would hang under heavy networking load. Submitted by: Leon Theunissen leon ! parsec dot co dot za Notes: svn path=/head/; revision=188713
* tsec(4) style improvements and clean-up.Rafal Jaworowski2009-02-171-61/+68
| | | | Notes: svn path=/head/; revision=188712
* Additional features for the tsec(4) Ethernet driver.Rafal Jaworowski2009-02-171-115/+644
| | | | | | | | | | | | | | | | | - interrupt coalescing - polling - jumbo frames - multicast - VLAN tagging The enhanced version of the chip (eTSEC) can also take advantage of: - TCP/IP checksum calculation h/w offloading Obtained from: Freescale, Semihalf Notes: svn path=/head/; revision=188711
* tsec: Refactor driver's structure.Rafal Jaworowski2008-08-261-546/+265
| | | | | | | | | | | | | | | Split the driver into the core functionality part (sys/dev/tsec/if_tsec.c) and the bus attachment (sys/dev/tsec/if_tsec_ocp.c). This lets better integrate and maintain the driver in other environments with different attachment abstractions (there is at least one other FreeBSD port -- MPC83xx -- which uses this TSEC driver, but with different local bus model i.e. some OF derivative). While there, clean up and fix minor cosmetics. Obtained from: Semihalf Notes: svn path=/head/; revision=182189
* tsec: Improve and clean up callouts.Rafal Jaworowski2008-08-261-15/+12
| | | | | | | | | | | - eliminate the unused tsec_tick_ch callout - adjust and fix the main tsec callout handling - minor naming improvements Obtained from: Semihalf Notes: svn path=/head/; revision=182187
* Convert TSEC watchdog to the new scheme.Rafal Jaworowski2008-03-121-18/+25
| | | | | | | | Reviewed by: imp, marcel Approved by: cognet (mentor) Notes: svn path=/head/; revision=177111
* Obtain TSEC h/w address from the parent bus (OCP) and not rely blindly on whatRafal Jaworowski2008-03-121-10/+14
| | | | | | | | | | | | | | | might be currently programmed into the registers. Underlying firmware (U-Boot) would typically program MAC address into the first unit only, and others are left uninitialized. It is now possible to retrieve and program MAC address for all units properly, provided they were passed on in the bootinfo metadata. Reviewed by: imp, marcel Approved by: cognet (mentor) Notes: svn path=/head/; revision=177110
* Support for Freescale integrated Three-Speed Ethernet Controller (TSEC).Rafal Jaworowski2008-03-031-0/+1648
TSEC is the MAC engine offering 10, 100 or 1000 Mbps speed and is found on different Freescale parts (MPC83xx, MPC85xx). Depending on the silicon version there are up to four TSEC units integrated on the chip. This driver also works with the enhanced version of the controller (eTSEC), which is backwards compatible, but doesn't take advantage of its additional features (various off-loading mechanisms) at the moment. Approved by: cognet (mentor) Obtained from: Semihalf MFp4: e500 Notes: svn path=/head/; revision=176774