aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/cxgb
Commit message (Collapse)AuthorAgeFilesLines
* MFC r305360:Dimitry Andric2016-09-071-1/+1
| | | | | | | | | | | | | | | | | | With clang 3.9.0, compiling cxgb results in the following warning: sys/dev/cxgb/cxgb_sge.c:2873:44: error: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Werror,-Wconstant-conversion] *mtod(m, char *) = CPL_ASYNC_NOTIF; ~ ^~~~~~~~~~~~~~~ This is because CPL_ASYNC_NOTIF is 0x80, so the plain char argument is wrapped to a negative value. Fix this by using uint8_t instead. Reviewed by: np Differential Revision: https://reviews.freebsd.org/D7772 Notes: svn path=/stable/9/; revision=305556
* MFC r285340:Dimitry Andric2015-07-281-1/+1
| | | | | | | | | | | | | Fix swapped copyin(9) arguments in cxgb's iwch_arm_cq() function. Detected by clang 3.7.0 with the warning: sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c:309:18: error: variable 'rptr' is uninitialized when used here [-Werror,-Wuninitialized] chp->cq.rptr = rptr; ^~~~ Notes: svn path=/stable/9/; revision=285942
* MFC r278364:Enji Cooper2015-02-141-3/+3
| | | | | | | | | | | | | | | | r278364: Remove kdb_backtrace extern; get the definition for kdb_backtrace from <sys/kdb.h> instead Fix whitespace in WARN_ON macro definition Reviewed by: np Differential Revision: https://reviews.freebsd.org/D1799 Sponsored by: EMC / Isilon Storage Division Notes: svn path=/stable/9/; revision=278743
* MFC r276959:Navdeep Parhar2015-01-188-33/+59
| | | | | | | | | | | | | | | | cxgb: replace r273280 with a more comprehensive fix. Poll for link state when the link is down, even for interrupt capable PHYs. Allow PHYs to report a dubious "partial" link. If this state is seen 3 consecutive times (each check is ~1s apart) then reset the PHY. This is a workaround for a situation where repeatedly toggling the link from the peer gets the AEL2005 PHY into a state where it never establishes a PCS block lock even when everything is in order. Notes: svn path=/stable/9/; revision=277344
* MFC r273280:Navdeep Parhar2014-11-121-1/+3
| | | | | | | cxgb(4): reset the PHY if it generates an interrupt for no apparent reason. Notes: svn path=/stable/9/; revision=274444
* MFC r228478, r263710, r273377, r273378, r273423, r273455 and r273899:Hans Petter Selasky2014-10-311-5/+5
| | | | | | | | | | | - Reimplement CTASSERT() using _Static_assert(). - De-vnet hash sizes and hash masks. - Fix multiple issues related to arguments passed to SYSCTL macros. Sponsored by: Mellanox Technologies Notes: svn path=/stable/9/; revision=273912
* MFC r254122, r254123, r256116, r255970, r247671, r269861, r268314, r256269,Hans Petter Selasky2014-10-302-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | r255969, r256179, r230135, r254121, r255932, r255972, r255973, r256281, r256470, r257867, r259608, r269862, r271127, r272407, r257864, r256682, r258276, r254734, r247675, r254735 and r272683: Hardware driver update from Mellanox Technologies, including: - improved performance - better stability - new features - bugfixes Supported HCAs: - ConnectX-2 - ConnectX-3 - ConnectX-3 Pro NOTE: - TSO feature needs r271946, which is not yet merged. Sponsored by: Mellanox Technologies Notes: svn path=/stable/9/; revision=273864
* MFC r259897:Dimitry Andric2013-12-281-47/+0
| | | | | | | | | In sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c, remove static functions mk_cpl_barrier_ulp(), mk_get_tcb_ulp() and mk_set_tcb_field_ulp(), which are all unused since r237263. Notes: svn path=/stable/9/; revision=259993
* MFC r259896:Dimitry Andric2013-12-281-7/+0
| | | | | | | | In sys/dev/cxgb/common/cxgb_mc5.c, remove static function dbgi_wr_addr3(), which is unused since r167514. Notes: svn path=/stable/9/; revision=259992
* MFC/backport core kernel and userspace parts of r237263 (TCP_OFFLOADNavdeep Parhar2013-07-031-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rework). MFC r237563, r239511, r243603, r245915, r245916, r245919, r245921, r245922, r245924, r245925, r245932, r245934 too. Build tested with make universe. r237263: - Updated TOE support in the kernel. ... r237563: Fix clang warning when compiling iw_cxgb. r239511: Correctly handle the case where an inp has already been dropped by the time the TOE driver reports that an active open failed. toe_connect_failed is supposed to handle this but it should be provided the inpcb instead of the tcpcb which may no longer be around. r243603: Make sure that tcp_timer_activate() correctly sees TCP_OFFLOAD (or not). r245915: Heed SO_NO_OFFLOAD. r245916: Teach toe_4tuple_check() to deal with IPv6 4-tuples too. r245919: Add TCP_OFFLOAD hook in syncache_respond for IPv6 too, just like the one that exists for IPv4. r245921: There is no need to call into the TOE driver twice in pru_rcvd (tod_rcvd and then tod_output right after that). r245922: Avoid NULL dereference in nd6_storelladdr when no mbuf is provided. It is called this way from a couple of places in the OFED code. (toecore calls it too but that's going to change shortly). r245924: Move lle_event to if_llatbl.h lle_event replaced arp_update_event after the ARP rewrite and ended up in if_ether.h simply because arp_update_event used to be there too. IPv6 neighbor discovery is going to grow lle_event support and this is a good time to move it to if_llatbl.h. The two in-tree consumers of this event - OFED and toecore - are not affected. r245925: Generate lle_event in the IPv6 neighbor discovery code too. r245932: Teach toe_l2_resolve to resolve IPv6 destinations too. r245934: Add checks for SO_NO_OFFLOAD in a couple of places that I missed earlier in r245915. Notes: svn path=/stable/9/; revision=252555
* MFC all cxgbe(4) changes missing from stable/9:Navdeep Parhar2013-07-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r248925, r249368, r249370, r249376, r249382, r249383, r249385, r249391, r249392, r249393, r249627, r249629, r250090, r250092, r250093, r250117, r250218, r250221, r250614, r251213, r251317, r251358, r251434, r251518, r251638, r252312, r252469, r252470, r250697(kib). r248925: Support for Chelsio's 40G Terminator 5 (aka T5) ASIC. ... r249368: Set and display the IP fragment bit correctly when dealing with the filter mode. r249370: cxgbe(4): Ensure that the MOD_LOAD handler runs before either t4nex or t5nex attach to their devices. r249376: - Explain clearly why a different firmware is being installed (if/when it is being installed). Improve other error messages while here. - Select special FPGA specific configuration profile when appropriate. r249382: There is no need for elaborate queries and error checking when trying to set FW4MSG_ENCAP. r249383: Get rid of a couple of stray \n's. r249385: cxgbe/tom: Slight simplification of code that calculates options2. r249391: Auto-reduce the holdoff timers that are greater than the maximum value allowed by the hardware. r249392: Cosmetic change (s/wrwc/wcwr/;s/WRWC/WCWR/). r249393: Add pciids of the T5 based cards. The ones that I haven't tested with cxgbe(4) are disabled for now. This will change. r249627: cxgbe/tom: Update the CLIP table on the chip when there are changes to the list of IPv6 addresses on the system. The table is used for TOE+IPv6 only. r249629: cxgbe(4): Refuse to install T5 firmwares on a T4 card (and vice versa). r250090: cxgbe(4): Some updates to shared code. r250092: - Provide accurate ifmedia information so that 40G ports/transceivers are displayed properly in ifconfig, etc. - Use the same number of tx and rx queues for a 40G port as for a 10G port. r250093: Attach to the T580 (2 x 40G) card. r250117: Fix DDP breakage introduced in r248925. Bitwise OR has higher precedence than ternary conditional. r250218: cxgbe/tom: Do not use M_PROTO1 to mark rx zero-copy mbufs as special. All the M_PROTOn flags are clobbered when an mbuf is appended to the socket buffer. r250221: cxgbe: Switch to a better way to install firmware. r250614: Deal correctly with 40G ports that don't have any transceiver plugged in. Do not claim that they have unknown tranceivers. r251213: cxgbe(4): Some more debug sysctls. These work on both T4 and T5 based cards. r251317: cxgbe(4): t4fw_cfg must be explicitly loaded if the driver is being loaded via loader.conf. r251358: cxgbe(4): Provide accurate hit count for filters on T5 cards. The location within the TCB and the size have both changed. r251434: cxgbe(4): Never install a firmware if hw.cxgbe.fw_install is 0. r251518: cxgbe/tom: Fix bad signed/unsigned mixup in the stid allocator. This fixes a panic when allocating a mixture of IPv6 and IPv4 stids. r251638: cxgbe/tom: Allow caller to select the queue (control or data) used to send the CPL_SET_TCB_FIELD request in t4_set_tcb_field(). r252312: Update T5 register ranges. This is so that regdump skips over registers with read side-effects. r252469: Add a sysctl to get the number of filters available. sysctl dev.t4nex.<N>.nfilters sysctl dev.t5nex.<N>.nfilters r252470: Count the number of hits for a filter by default. r250697: Add dependencies on the firmware, which allows the loading of the cxgb and cxgbe modules. Notes: svn path=/stable/9/; revision=252495
* MFC: r243857 (partial)Marius Strobl2013-03-093-6/+6
| | | | | | | | Mechanically substitute flags from historic mbuf allocator with malloc(9) flags in sys/dev. Notes: svn path=/stable/9/; revision=248078
* MFC r245243, r245274, r245276, r245434, r245441, r245448, r245467,Navdeep Parhar2013-02-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r245468, r245517, r245518, r245520, r245567, r245933, r245935, r245936, r245937, r246093, r246385, r246575, r247062, r247122, r247289, r247291, r247347, r247355, and r241733. Note that TCP_OFFLOAD is not enabled in 9 yet and so some of these MFCs don't really affect functionality. But they do help future MFCs (related to TCP_OFFLOAD or not) by minimizing diffs with the driver in head. r245243: cxgbe(4): updates to the configuration file that controls how hardware resources are partitioned. - Reduce the number of virtual interfaces reserved for PF4. This leaves spare room in the source MAC table and allows the driver to setup filters that rewrite the source MAC address. - Reduce the number of filters and use the freed up space for the CLIP (Compressed Local IPv6 addresses) table. This is a prerequisite for IPv6 TOE support which will follow separately in a series of commits. r245274: cxgbe(4): Add functions to help synchronize "slow" operations (those not on the fast data path) and use them instead of frobbing the adapter lock and busy flag directly. Other changes made while reworking all slow operations: - Wait for the reply to a filter request (add/delete). This guarantees that the operation is complete by the time the ioctl returns. - Tidy up the tid_info structure. - Do not allow the tx queue size to be set to something that's not a power of 2. r245276: Overhaul the stid allocator so that it can be used for IPv6 servers too. The entry for an IPv6 server in the TCAM takes up the equivalent of two ordinary stids and must be properly aligned too. r245434: cxgbe(4): Updates to the hardware L2 table management code. - Add full support for IPv6 addresses. - Read the size of the L2 table during attach. Do not assume that PCIe physical function 4 of the card has all of the table to itself. - Use FNV instead of Jenkins to hash L3 addresses and drop the private copy of jhash.h from the driver. r245441: cxgbe/tom: Miscellaneous updates for TOE+IPv6 support (more to follow). - Teach find_best_mtu_idx() to deal with IPv6 endpoints. - Install correct protosw in offloaded TCP/IPv6 sockets when DDP is enabled. - Move set_tcp_ddp_ulp_mode to t4_tom.c so that t4_tom.h can be included without having to drag in t4_msg.h too. This was bothering the iWARP driver for some reason. r245448: cxgbe/tom: Basic CLIP table management. This is the Compressed Local IPv6 table on the chip. To save space, the chip uses an index into this table instead of a full IPv6 address in some of its hardware data structures. For now the driver fills this table with all the local IPv6 addresses that it sees at the time the table is initialized. I'll improve this later so that the table is updated whenever new IPv6 addresses are configured or existing ones deleted. r245467: cxgbe/tom: Add support for fully offloaded TCP/IPv6 connections (active open). r245468: cxgbe/tom: Add support for fully offloaded TCP/IPv6 connections (passive open). r245517: cxgbe: Fix the for_each_foo macros -- the last argument should not share its name with any member of struct sge. r245518: cxgbe: Do a more thorough job in the CLEAR_STATS ioctl. r245520: Allow "ivlan" (inner VLAN) to be used as an alias for "vlan" when specifying match criteria. "vlan" continues to be valid here, and it continues to be valid when deleting, rewriting, inserting, or stacking an 802.1q tag to a matching packet. r245567: cxgbe: Make the for_each macros safer to use by turning them into a single statement each. r245933: cxgbe/tom: List IFCAP_TOE6 as supported now that all the required pieces are in place. You still have to enable it explicitly, after loading the t4_tom KLD. r245935: Add a couple of missing error codes. Treat CPL_ERR_KEEPALV_NEG_ADVICE as negative advice and not a fatal error. r245936: Force the 404-BT card (4 x 1G) to use the "uwire" configuration file. r245937: Install an extra hold on the newly allocated synq entry so that it cannot be freed while do_pass_accept_req is running. This closes a race where do_pass_establish on another CPU (the driver chose a different queue for the new tid) expands the synq entry into a full PCB and then releases the only hold on it, all while do_pass_accept_req is still running. r246093: Provide a statistic to track the number of drops in each of the port's txq's buf_ring. The aggregate for all the queues of a port is already provided in ifnet->if_snd.ifq_drops. r246385: Busy-wait when cold. r246575: Do not hold locks around hardware context reads. r247062: cxgbe(4): Assume that CSUM_TSO in the transmit path implies CSUM_IP and CSUM_TCP too. They are all set explicitly by the kernel usually. r247122: cxgbe(4): Add sysctls to extract debug information from the chip: dev.t4nex.X.misc.cim_la logic analyzer dump dev.t4nex.X.misc.cim_qcfg queue configuration dev.t4nex.X.misc.cim_ibq_xxx inbound queues dev.t4nex.X.misc.cim_obq_xxx outbound queues r247289: cxgbe(4): Update firmware to 1.8.4.0. r247291: cxgbe(4): Ask the card's firmware to pad up tiny CPLs by encapsulating them in a firmware message if it is able to do so. This works out better for one of the FIFOs in the chip. r247347: cxgbe(4): Consider all the API versions of the interfaces exported by the firmware (instead of just the main firmware version) when evaluating firmware compatibility. Document the new "hw.cxgbe.fw_install" knob being introduced here. This should fix kern/173584 too. Setting hw.cxgbe.fw_install=2 will mostly do what was requested in the PR but it's a bit more intelligent in that it won't reinstall the same firmware repeatedly if the knob is left set. r247355: cxgbe(4): Report unusual out of band errors from the firmware. r241733 (by ed@): Prefer __containerof() over __member2struct(). The former works better with qualifiers, but also properly type checks the input pointer. Notes: svn path=/stable/9/; revision=247434
* MFC r241844:Eitan Adler2012-11-041-1/+1
| | | | | | | | | remove duplicate semicolons where possible. Approved by: cperciva (implicit) Notes: svn path=/stable/9/; revision=242544
* MFC r242087:Navdeep Parhar2012-10-301-5/+5
| | | | | | | | | Initialize the response queue mutex a bit earlier to avoid a panic that occurs if t3_sge_alloc_qset fails and then t3_free_qset attempts to destroy an uninitialized mutex. Notes: svn path=/stable/9/; revision=242369
* Merge r240680 from head:Gavin Atkinson2012-10-242-7/+7
| | | | | | | | | | | | | | | | | | Align the PCI Express #defines with the style used for the PCI-X #defines. This has the advantage that it makes the names more compact, and also allows us to correct the non-uniform naming of the PCIM_LINK_* defines, making them all consistent amongst themselves. This is a mostly mechanical rename: s/PCIR_EXPRESS_/PCIER_/g s/PCIM_EXP_/PCIEM_/g s/PCIM_LINK_/PCIEM_LINK_/g In this MFC, #defines have been added for the old names to assist out-of-tree drivers. Notes: svn path=/stable/9/; revision=242015
* MFC 239913:John Baldwin2012-10-071-5/+5
| | | | | | | | | | | | | Attach interrupt handlers during attach instead of during the first time the interface is brought up. Without this, the boot time interrupt round-robin assignment does not think the allocated interrupt resources are active and leaves them assigned to CPU 0. While here, add descriptive tags to each interrupt handler when MSI-X is used. Notes: svn path=/stable/9/; revision=241314
* MFC many cxgb and cxgbe features and fixes (r239258, r239259, r239264,Navdeep Parhar2012-09-062-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r239266, r239336, r239338, r239339, r239341, r239344, r239514, r239527, r239528, r239544. r239258: Convert some fixed parameters to tunables (with reasonable default values). - cong_drop specifies what to do on congestion: nothing, backpressure, or drop. - fl_pktshift specifies the padding before Ethernet payload. - fl_pad specifies the boundary upto which to pad Ethernet payload. - spg_len controls the length of the status page. r239259: if_iqdrops should include frames truncated within the chip. r239264: Assume INET, INET6, and TCP_OFFLOAD when the driver is built out of tree and KERNBUILDDIR is not set. r239266: The size of the buffers in an Ethernet freelist has to be higher than the interface's MTU. Initialize such freelists with correct values. This wasn't a problem for common MTUs (1500 and 9000) as the buffers (2048 and 9216 in size) happened to have enough spare room. I ran into it when playing around with unusual MTUs. r239336: Allow for a different handler for each type of firmware message. r239338: Add a routine (t4_set_tcb_field) to update arbitrary parts of a hardware TCB. Filters are programmed by modifying the TCB too (via a different routine) and the reply to any TCB update is delivered via a CPL_SET_TCB_RPL. Figure out whether the reply is for a filter-write or something else and route it appropriately. r239339: Make room for DDP page pods in the default configuration profile. While here, bump up the L2 table's size to 4K entries. r239341: Initialize various DDP parameters in the main cxgbe(4) driver: - Setup multiple DDP page sizes. When the driver attempts DDP it will try to combine physically contiguous pages into regions of these sizes. - Set the indicate size such that the payload carried in the indicate can be copied in the header mbuf (and the 16K rx buffer can be recycled). - Set DDP threshold to the max payload that the chip will coalesce and deliver to the driver (this is ~16K by default, which is also why the offload rx queue is backed by 16K buffers). If the chip is able to coalesce up to the max it's allowed to, it's a good sign that the peer is transmitting in bulk without any TCP PSH. r239344: Support for TCP DDP (Direct Data Placement) in the T4 TOE module. Basically, this is automatic rx zero copy when feasible. TCP payload is DMA'd directly into the userspace buffer described by the uio submitted in soreceive by an application. - Works with sockets that are being handled by the TCP offload engine of a T4 chip (you need t4_tom.ko module loaded after cxgbe, and an "ifconfig +toe" on the cxgbe interface). - Does not require any modification to the application. - Not enabled by default. Use hw.t4nex.<X>.toe.ddp="1" to enable it. r239514: Minor cleanup: use bitwise ops instead of pointless wrappers around setbit/clrbit. r239527: Cannot hold a mutex around vm_fault_quick_hold_pages, so don't. Tweak some comments while here. r239528: Avoid a NULL pointer dereference. r239544: Deal with the case where a syncache entry added by the TOE driver is evicted from the syncache but a later syncache_expand succeeds because of syncookies. The TOE driver has to resort to more direct means to install its hooks in the socket in this case. Notes: svn path=/stable/9/; revision=240169
* MFC r239101:Dimitry Andric2012-08-211-1/+1
| | | | | | | | | | | | In cxgb(4), in function iwch_reregister_phys_mem(), initialize the 'npages' variable to zero, to avoid using it uninitialized in certain cases. Found by: clang 3.2 Reviewed by: np Notes: svn path=/stable/9/; revision=239522
* Re-enable IFCAP_TSO6 in cxgb(4) and cxgbe(4) in stable/9. The kernelNavdeep Parhar2012-07-092-10/+1
| | | | | | | | | | | | changes needed for all this to work have now been MFC'd to 9 by bz@. This is a direct commit to stable/9 that removes earlier changes made to drivers in this branch only. Approved by: re (kib) Notes: svn path=/stable/9/; revision=238302
* MFC r235944:Bjoern A. Zeeb2012-07-081-0/+1
| | | | | | | | | | | | | | | | | | | | | Significantly update tcp_lro for mostly two things: 1) introduce basic support for IPv6 without extension headers. 2) try hard to also get the incremental checksum updates right, especially also in the IPv4 case for the IP and TCP header. Move variables around for better locality, factor things out into functions, allow checksum updates to be compiled out, ... Leave a few comments on further things to look at in the future, though that is not the full list. Update drivers with appropriate #includes as needed for IPv6 data type in LRO. Approved by: re Notes: svn path=/stable/9/; revision=238230
* Do not enable IFCAP_TSO6 in cxgb(4) and cxgbe(4) in stable/9. TheNavdeep Parhar2012-07-031-1/+1
| | | | | | | | | | | | kernel code in 9 isn't quite ready for TSO6 yet. This is a direct commit to stable/9. IFCAP_TSO6 works properly in head and there is no need to disable it over there. Approved by: re (kib) Notes: svn path=/stable/9/; revision=238088
* MFC r237832, r237436, r237439, r237463, r237512, r237587, r237799,Navdeep Parhar2012-07-013-43/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r237819, r237831. r237832: cxgb(4): IPv6 rx/tx hw checksum, IPv6 TSO and LRO too. r237436: cxgbe(4): update to firmware interface 1.5.2.0; updates to shared code. r237439: Do not read registers with read side effects while performing a register dump for cxgbetool. r237463: Do not allocate extra vectors when adapter is not TOE capable (or toecaps have been disallowed by the user). r237512: Better way to determine the status page length and rx pad boundary. r237587: Allow cxgbe(4) running within a VM to attach to its devices that have been exported via PCI passthrough. r237799: cxgbe(4): support for IPv6 hardware checksumming (rx and tx). r237819: cxgbe(4): support for IPv6 TSO and LRO. r237831: - Assign (don't OR) the CSUM_XXX bits to csum_flags in the rx checksum code. - Fix TSO/TSO4 mixup. - Add IFCAP_LINKSTATE to the available/enabled capabilities. Notes: svn path=/stable/9/; revision=237925
* Backport just the sys/{dev,modules}/cxgb{,e}/ parts of r237263, and thenNavdeep Parhar2012-07-0143-11295/+4781
| | | | | | | | | | | disable the TOE and iWARP modules in the Makefiles (they won't compile without the rest of r237263). This reduces diffs between the cxgb/cxgbe drivers in head and 9 and makes it easy to MFC other fixes to 9. Notes: svn path=/stable/9/; revision=237920
* MFC r231317, r235963 (bz@), r234831, r234833.Navdeep Parhar2012-07-012-20/+44
| | | | | | | | | | | | | | | | | | | | | | | | r231317 Add IPv6 TSO (including TSO+VLAN) support to cxgb(4). r235963 (bz@) Allow LRO to work on IPv6 as well. Fix the module Makefile to at least properly inlcude opt_inet6.h and allow builds without INET or INET6. r234831 Make sure that the firmware version is available in dev.t4nex.X.firmware_version even if the driver fails to attach properly. At least it'll be easy to tell what we're dealing with. r234833: Change the default to not use packet counters to generate rx interrupts. Rely solely on the timer based mechanism. Update man page to reflect this change. Notes: svn path=/stable/9/; revision=237916
* MFC 232854,232874,232882,232883,232886 for bus_get_dma_tag()Scott Long2012-03-161-1/+1
| | | | Notes: svn path=/stable/9/; revision=233024
* MFC r231175:Navdeep Parhar2012-02-131-9/+11
| | | | | | | | Allocate the BAR for userspace doorbells after the is_offload check is functional. Notes: svn path=/stable/9/; revision=231604
* MFC r231116:Navdeep Parhar2012-02-133-29/+2
| | | | | | | Remove if_start from cxgb and cxgbe. Notes: svn path=/stable/9/; revision=231597
* MFC r228825:Navdeep Parhar2012-02-071-1/+1
| | | | | | | Fix return value of function. Notes: svn path=/stable/9/; revision=231104
* MFC r226173, r227843, r227848 and r227908:Hans Petter Selasky2011-12-311-5/+1
| | | | | | | | | Use DEVMETHOD_END to mark end of device methods. Remove superfluous device methods. Add some missing __FBSBID() macros. Notes: svn path=/stable/9/; revision=229093
* Update T3 firmware to 7.11.0Navdeep Parhar2011-03-252-1493/+1527
| | | | | | | | | | | | | | | | | | | Changes since 7.8.0 (from the official changelog): - Fixed sporadic interrupt generation for associated CQ when processing a local invalidate work request - Changes to core scheduling to avoid starving requests from the host under heavy RDMA Read Request load (e.g. packets to the wire) - Programmed the tp tx resource limiter in function of the traffic (only affects iWarp) - Increased the egress NIC gather list length from 36 to 46 entries MFC after: 1 week Notes: svn path=/head/; revision=220009
* t3_free_sge_resources should be given the number of qsets it needs to free.Navdeep Parhar2011-03-243-12/+9
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=219946
* T3C initialization should setup the parity fence too.Navdeep Parhar2011-03-241-2/+3
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=219945
* Do a sweep of the tree replacing calls to pci_find_extcap() with calls toJohn Baldwin2011-03-231-1/+1
| | | | | | | pci_find_cap() instead. Notes: svn path=/head/; revision=219902
* Fix typos - remove duplicate "the".Rebecca Cran2011-02-211-2/+2
| | | | | | | | | PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days Notes: svn path=/head/; revision=218909
* Explicitly wire the user buffer rather than doing it implicitly inMatthew D Fleming2011-01-271-2/+9
| | | | | | | | | | | sbuf_new_for_sysctl(9). This allows using an sbuf with a SYSCTL_OUT drain for extremely large amounts of data where the caller knows that appropriate references are held, and sleeping is not an issue. Inspired by: rwatson Notes: svn path=/head/; revision=217916
* Introduce signed and unsigned version of CTLTYPE_QUAD, renamingMatthew D Fleming2011-01-191-2/+2
| | | | | | | existing uses. Rename sysctl_handle_quad() to sysctl_handle_64(). Notes: svn path=/head/; revision=217616
* sysctl(8) should use the CTLTYPE to determine the type of data whenMatthew D Fleming2011-01-191-2/+2
| | | | | | | | | | | | | | reading. (This was already done for writing to a sysctl). This requires all SYSCTL setups to specify a type. Most of them are now checked at compile-time. Remove SYSCTL_*X* sysctl additions as the print being in hex should be controlled by the -x flag to sysctl(8). Succested by: bde Notes: svn path=/head/; revision=217586
* sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly.Matthew D Fleming2011-01-123-24/+24
| | | | | | | Commit the cxgb driver piece. Notes: svn path=/head/; revision=217321
* Introduce and use a new VM interface for temporarily pinning pages. ThisAlan Cox2010-12-254-198/+9
| | | | | | | | | | new interface replaces the combined use of vm_fault_quick() and pmap_extract_and_hold() throughout the kernel. In collaboration with: kib@ Notes: svn path=/head/; revision=216699
* The local variable "rv" is still required by vm_fault_hold_user_pages().Alan Cox2010-12-201-3/+3
| | | | Notes: svn path=/head/; revision=216607
* Introduce vm_fault_hold() and use it to (1) eliminate a long-standing raceAlan Cox2010-12-201-13/+4
| | | | | | | | | | | | | condition in proc_rwmem() and to (2) simplify the implementation of the cxgb driver's vm_fault_hold_user_pages(). Specifically, in proc_rwmem() the requested read or write could fail because the targeted page could be reclaimed between the calls to vm_fault() and vm_page_hold(). In collaboration with: kib@ MFC after: 6 weeks Notes: svn path=/head/; revision=216604
* Implement and use a single optimized function for unholding a set of pages.Alan Cox2010-12-174-18/+4
| | | | | | | Reviewed by: kib@ Notes: svn path=/head/; revision=216511
* fix incorrect use of atomic_set_xxx in cxgbAndriy Gapon2010-12-111-1/+1
| | | | | | | | | | | | | There is no need to use an atomic operation at structure initialization time. Note that the file changed is not connected to the build at this time. Reviewed by: jhb (general issue) Approved by: np MFC after: 2 weeks Notes: svn path=/head/; revision=216373
* Re-add r212370 now that the LOR in powerpc64 has been resolved:Matthew D Fleming2010-09-161-31/+17
| | | | | | | | | | | | | | | Add a drain function for struct sysctl_req, and use it for a variety of handlers, some of which had to do awkward things to get a large enough SBUF_FIXEDLEN buffer. Note that some sysctl handlers were explicitly outputting a trailing NUL byte. This behaviour was preserved, though it should not be necessary. Reviewed by: phk (original patch) Notes: svn path=/head/; revision=212750
* Fix t3_gate_rx_traffic and t3_open_rx_traffic. Parts of them always operatedNavdeep Parhar2010-09-151-9/+13
| | | | | | | | | on XGMAC0 instead of the specified XGMAC. MFC after: 3 days Notes: svn path=/head/; revision=212710
* Revert r212370, as it causes a LOR on powerpc. powerpc does a fewMatthew D Fleming2010-09-131-17/+31
| | | | | | | | | | unexpected things in copyout(9) and so wiring the user buffer is not sufficient to perform a copyout(9) while holding a random mutex. Requested by: nwhitehorn Notes: svn path=/head/; revision=212572
* Add a drain function for struct sysctl_req, and use it for a variety ofMatthew D Fleming2010-09-091-31/+17
| | | | | | | | | | | | | handlers, some of which had to do awkward things to get a large enough FIXEDLEN buffer. Note that some sysctl handlers were explicitly outputting a trailing NUL byte. This behaviour was preserved, though it should not be necessary. Reviewed by: phk Notes: svn path=/head/; revision=212370
* Fix tx pause quanta and timer calculations.Navdeep Parhar2010-08-151-12/+10
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=211347
* Always reset the XGMAC's XAUI PCS on a link up.Navdeep Parhar2010-08-153-12/+58
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=211346