summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Move all Mass Storage Quirks over to the USB quirk module.thompsa2009-12-233-688/+534
| | | | Submitted by: Hans Petter Selasky
* Sync usb vendor/product defines to p4thompsa2009-12-231-1/+8
| | | | Submitted by: HPS
* Reimplement Tx status error handler as recommended by datasheet.yongari2009-12-222-21/+76
| | | | | | | | | | | | | | | | | | If ste(4) encounter TX underrun or excessive collisions the TX MAC of controller is stalled so driver should wake it up again. TX underrun requires increasing TX threshold value to minimize further TX underruns. Previously ste(4) used to reset controller to recover from TX underrun, excessive collision and reclaiming error. However datasheet says only TX underrun requires resetting entire controller. So implement ste_restart_tx() that restarts TX MAC and do not perform full reset except TX underrun case. Now ste(4) uses CSR_READ_2 instead of CSR_READ_1 to read STE_TX_STATUS register. This way ste(4) will also read frame id value and we can write the same value back to STE_TX_FRAMEID register instead of overwriting it to 0. The datasheet was wrong in write back of STE_TX_STATUS so add some comments why we do so. Also always invoke ste_txeoc() after ste_txeof() in ste_poll as without reading TX status register can stall TX MAC.
* Don't name parameters, for consistency with the rest of the file, and becausecognet2009-12-221-6/+6
| | | | | | it breaks third-party apps. Submitted by: gahr
* - Correct an off-by-one error when calculating the end of a childmarius2009-12-221-2/+2
| | | | | range. - Spell the PCI TLA in uppercase.
* - Add support for the JBus to EBus bridges which hang off of nexus(4)marius2009-12-221-104/+309
| | | | | | and are found in sun4u and sun4v machines based on the Fire ASIC. - Initialize the configuration space of the PCI to EBus variant the same way as OpenSolaris does.
* - Add macros for the states of the interrupt clear registers.marius2009-12-221-2/+6
| | | | | | - Change INTMAP_VEC() to take an INO as its second argument rather than an INR. The former is what I actually intended with this macro and how it's currently used.
* Prefer bus_write_{1,2,4}/bus_read_{1,2,4} toyongari2009-12-222-11/+6
| | | | | bus_space_write_{1,2,4}/bus_space_read_{1,2,4}. Remove unused ste_bhandle and ste_btag in softc.
* Make these constants unsigned which is more appropriate.marius2009-12-221-9/+9
|
* Prefer memory space register mapping over io space. If memory spaceyongari2009-12-222-14/+15
| | | | | mapping fails fall back to old io space mapping. While I'm here use PCIR_BAR macro.
* Enroll these drivers in multipass probing. The motivation behind thismarius2009-12-2211-13/+30
| | | | | | | | | is that the JBus to EBus bridges share the interrupt controller of a sibling JBus to PCIe bridge (at least as far as the OFW device tree is concerned, in reality they are part of the same chip) so we have to probe and attach the latter first. That happens to be also the case due to the fact that the JBus to PCIe bridges appear first in the OFW device tree but it doesn't hurt to ensure the right order.
* Instead of relying on hard resetting of controller to stopyongari2009-12-221-20/+31
| | | | | | | | | | | | | | | | | receiving incoming traffics, try harder to gracefully stop active DMA cycles and then stop MACs. This is the way what datasheet recommends and seems to work reliably. Resetting controller while active DMAs are in progress is bad thing as we can't predict how DMAs touche allocated TX/RX buffers. This change ensures controller stop state before attempting to release allocated TX/RX buffers. Also update MAC statistics which could have been updated during the wait time of MAC stop. While I'm here remove unnecessary controller resets in various location. ste(4) no longer relies on hard controller reset to stop controller and resetting controller also clears all configured settings which makes it hard to implement WOL in near future. Now resetting a controller is performed in ste_init_locked().
* Don't build zfsboot, gptzfsboot, and zfsloader if WITHOUT_ZFS is enabled.jhb2009-12-221-2/+8
| | | | MFC after: 1 week
* Use ALLOW_NEW_SOURCES and BLOCK_OLD_SOURCES to signal a join or leavebms2009-12-222-16/+60
| | | | | | | | | | | with SSM MLDv2 by default. This is current practice and complies with RFC 4604, as well as being required by production IPv6 networks in Japan. The behaviour may be disabled by setting the net.inet6.mld.use_allow sysctl/tunable to 0. Requested by: Hideki Yamamoto MFC after: 1 week
* Reimplement miibus_statchg method. Don't rely on link state changeyongari2009-12-222-52/+78
| | | | | | | | | | | | | | | | | | | interrupt. If we want to use link state change interrupt ste(4) should also implement auto-negotiation complete handler as well as various PHY access handling. Now link state change is handled by mii(4) polling so it will automatically update link state UP/DOWN events which in turn make ste(4) usable with lagg(4). r199559 added a private timer to drive watchdog and the timer also used to drive MAC statistics update. Because the MAC statistics update is called whenever statistics counter reaches near-full, it drove watchdog timer too fast such that it caused false watchdog timeouts under heavy TX traffic conditions. Fix the regression by separating ste_stats_update() from driving watchdog timer and introduce a new function ste_tick() that handles periodic job such as driving watchdog, MAC statistics update and link state check etc. While I'm here clear armed watchdog timer in ste_stop().
* Add support for Intel SCH PATA controller.mav2009-12-222-2/+40
| | | | PR: kern/140251
* Introduce sc_flags member variable and use it to keep track ofyongari2009-12-222-12/+11
| | | | | | | link state and PHY related information. Remove ste_link and ste_one_phy variable of softc as it's not used anymore. While I'm here add IFF_DRV_RUNNING check in ste_start_locked().
* merge code from ipfw3-head to reduce contention on the ipfw lockluigi2009-12-2212-402/+415
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and remove all O(N) sequences from kernel critical sections in ipfw. In detail: 1. introduce a IPFW_UH_LOCK to arbitrate requests from the upper half of the kernel. Some things, such as 'ipfw show', can be done holding this lock in read mode, whereas insert and delete require IPFW_UH_WLOCK. 2. introduce a mapping structure to keep rules together. This replaces the 'next' chain currently used in ipfw rules. At the moment the map is a simple array (sorted by rule number and then rule_id), so we can find a rule quickly instead of having to scan the list. This reduces many expensive lookups from O(N) to O(log N). 3. when an expensive operation (such as insert or delete) is done by userland, we grab IPFW_UH_WLOCK, create a new copy of the map without blocking the bottom half of the kernel, then acquire IPFW_WLOCK and quickly update pointers to the map and related info. After dropping IPFW_LOCK we can then continue the cleanup protected by IPFW_UH_LOCK. So userland still costs O(N) but the kernel side is only blocked for O(1). 4. do not pass pointers to rules through dummynet, netgraph, divert etc, but rather pass a <slot, chain_id, rulenum, rule_id> tuple. We validate the slot index (in the array of #2) with chain_id, and if successful do a O(1) dereference; otherwise, we can find the rule in O(log N) through <rulenum, rule_id> All the above does not change the userland/kernel ABI, though there are some disgusting casts between pointers and uint32_t Operation costs now are as follows: Function Old Now Planned ------------------------------------------------------------------- + skipto X, non cached O(N) O(log N) + skipto X, cached O(1) O(1) XXX dynamic rule lookup O(1) O(log N) O(1) + skipto tablearg O(N) O(1) + reinject, non cached O(N) O(log N) + reinject, cached O(1) O(1) + kernel blocked during setsockopt() O(N) O(1) ------------------------------------------------------------------- The only (very small) regression is on dynamic rule lookup and this will be fixed in a day or two, without changing the userland/kernel ABI Supported by: Valeria Paoli MFC after: 1 month
* Add minimal dealy while ste(4) is waiting for the end of active DMAyongari2009-12-221-0/+1
| | | | cycle.
* Add bus_dma(9) and endianness support to ste(4).yongari2009-12-222-249/+553
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o Sorted includes and added missing header files. o Added basic endianness support. In theory ste(4) should work on any architectures. o Remove the use of contigmalloc(9), contigfree(9) and vtophys(9). o Added 8 byte alignment limitation of TX/RX descriptor. o Added 1 byte alignment requirement for TX/RX buffers. o ste(4) controllers does not support DAC. Limit DMA address space to be within 32bit address. o Added spare DMA map to gracefully recover from DMA map failure. o Removed dead code for checking STE_RXSTAT_DMADONE bit. The bit was already checked in each iteration of loop so it can't be true. o Added second argument count to ste_rxeof(). It is used to limit number of iterations done in RX handler. ATM polling is the only consumer. o Removed ste_rxeoc() which was added to address RX stuck issue (cvs rev 1.66). Unlike TX descriptors, ST201 supports chaining descriptors to form a ring for RX descriptors. If RX descriptor chaining is not supported it's possible for controller to stop receiving incoming frames once controller pass the end of RX descriptor which in turn requires driver post new RX descriptors to receive more frames. For TX descriptors which does not support chaning, we exactly do manual chaining in driver by concatenating new descriptors to the end of previous TX chain. Maybe the workaround was borrowed from other drivers that does not support RX descriptor chaining, which is not valid for ST201 controllers. I still have no idea how this address RX stuck issue and I can't reproduce the RX stuck issue on DFE-550TX controller. o Removed hw.ste_rxsyncs sysctl as the workaround was removed. o TX/RX side bus_dmamap_load_mbuf_sg(9) support. o Reimplemented optimized ste_encap(). o Simplified TX logic of ste_start_locked(). o Added comments for TFD/RFD requirements. o Increased number of RX descriptors to 128 from 64. 128 gave much better performance than 64 under high network loads.
* Removed duplicate usbd_xfer_state(9) link.ru2009-12-222-2/+0
|
* Sort mlinks.ru2009-12-221-66/+66
|
* - Rename the __tcpi_(snd|rcv)_mss fields of the tcp_info structure to removejhb2009-12-223-7/+9
| | | | | | | | | the leading underscores since they are now implemented. - Implement the tcpi_rto and tcpi_last_data_recv fields in the tcp_info structure. Reviewed by: rwatson MFC after: 2 weeks
* Don't take the driver mutex in mxge_tick(), as itgallatin2009-12-221-2/+0
| | | | | | | is run with the mutex held. Submitted by: rwatson MFC after: 3 days
* Don't print the archive name with -p and -q options.jh2009-12-221-1/+2
| | | | | PR: bin/141280 Approved by: des, trasz (mentor)
* apm(8) is no longer linked to zzz(8), catch up.ru2009-12-222-30/+17
| | | | (Fixes "zzz" clash in the whatis(1) database.)
* some mostly cosmetic changes in preparation for upcoming work:luigi2009-12-224-92/+89
| | | | | | | | | + in many places, replace &V_layer3_chain with a local variable chain; + bring the counter of rules and static_len within ip_fw_chain replacing static variables; + remove some spurious comments and extern declaration; + document which lock protects certain data structures
* MFV of tzcode2009t, r200833edwin2009-12-223-11/+86
| | | | | | Comment only, no data changes. MFC after: 1 week
* MFV of tzdata2009t, r200831edwin2009-12-222-6/+6
| | | | | | | | | | zic: - Fix URL / reference to Calendrical Calculations: Third Edition libc/stdtime: - Fix typo in tzfile.5 (no changes in our part) MFC after: 1 week
* Cosmetic fixes.trasz2009-12-221-6/+6
|
* Add missed usb product define in r200826.thompsa2009-12-221-0/+1
|
* add new ID to UFTDI driver.thompsa2009-12-221-0/+1
| | | | Submitted by: YAMAMOTO, Shigeru
* - add support for more than 2 audio channels. [1]thompsa2009-12-221-70/+146
| | | | | | - add support for more sample rates Submitted by: [1] ariff (earlier version), Hans Petter Selasky
* Set correct USB device descriptionthompsa2009-12-221-0/+1
| | | | Submitted by: Paul B Mahol
* Add more OHCI pci ids.thompsa2009-12-221-0/+6
| | | | Submitted by: Hans Petter Selasky
* Add more EHCI pci ids.thompsa2009-12-221-0/+10
| | | | Submitted by: Hans Petter Selasky
* Make graid3 fallback to malloc() when component request size is biggermav2009-12-212-9/+15
| | | | then maximal prepared UMA zone size. This fixes crash with MAXPHYS > 128K.
* Support the tablet in (at least) the Toshiba Portege M200 Tablet PC.gavin2009-12-211-0/+1
| | | | | | | | | | This device only appears on the ACPI bus, so isn't caught by the current entry for it in the uart(4) ISA attachment. PR: kern/140172 Reviewed by: jhb, marcel Approved by: ed (mentor) MFC after: 2 weeks
* Grammar and minor tweaks to powerd(8) man page.gavin2009-12-211-4/+5
| | | | | | PR: docs/133186 Approved by: ed (mentor) MFC after: 2 weeks
* rc.subr: Use pwait in wait_for_pids.jilles2009-12-211-1/+1
| | | | | | | | | | This waits for the requested process(es) to terminate, rather than polling with an interval of 2 seconds. If pwait is not available, the old method is used. PR: conf/132766 Reviewed by: dougb
* Spell AMD properly.mav2009-12-211-1/+1
|
* Add missing module dependency information.marius2009-12-211-0/+1
|
* Provide and consume missing module dependency information.marius2009-12-216-4/+11
|
* Clear all ports interrupt status bits in single write. Clearing one by onemav2009-12-211-8/+6
| | | | | | causes additional MSIs messages sent if several ports asked for attention same time. Time window before clearing is not important, as these interrupts are level triggered by interrupt source.
* Add regression test for NFSv4 ACLs on UFS.trasz2009-12-211-0/+86
|
* Sort function prototyes.yongari2009-12-211-39/+38
|
* By popular request, execute rc.d scripts in the same environmentdougb2009-12-212-4/+21
| | | | | | as they are at boot time. Original concept submitted by: ume
* style(9)yongari2009-12-211-100/+100
|
* Don't consider non-existence of a PID file an error, we should be abledelphij2009-12-211-1/+12
| | | | | | | | | to proceed anyway as this most likely mean that the process has been terminated. PR: bin/140397 Submitted by: Dan Lukes <dan obluda cz> MFC after: 1 month
* Remove commented out prototype for ifinit(). This prototype has beenjhb2009-12-211-1/+0
| | | | | commented out since 1.1 and has not been present in <sys/systm.h> since at least 1.1 of that file. It is also not needed in FreeBSD due to SYSINIT().
OpenPOWER on IntegriCloud