summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Export the current values of nbuf, ncallout, and nswbuf via read-onlyjhb2009-03-121-0/+6
| | | | | | sysctls that match the tunable names. MFC after: 3 days
* Add myself.rdivacky2009-03-121-0/+1
| | | | Approved by: ed (mentor)
* o Turn the batch mode on if stdout is not tty.maxim2009-03-122-4/+12
| | | | | Submitted by: vsevolod MFC after: 1 week
* o Sync synopsis with reality. Remove BUG section -- there ismaxim2009-03-121-13/+1
| | | | a batch mode in gpart(8) now.
* The non-modifying EA VOPs are executed with only shared vnode lock taken.kib2009-03-123-63/+94
| | | | | | | | | | | | | Provide a custom lock around initializing and tearing down EA area, to prevent both memory leaks and double-free of it. Count the number of EA area accessors. Lock protocol requires either holding exclusive vnode lock to modify i_ea_area, or shared vnode lock and owning IN_EA_LOCKED flag in i_flag. Noted by: YAMAMOTO, Taku <taku tackymt homeip net> Tested by: pho (previous version) MFC after: 2 weeks
* Ensure that the semaphore value is re-checked after sem_lockbms2009-03-121-1/+1
| | | | | | | | is re-acquired, after the condition variable is signalled. PR: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/127545 MFC after: 5 days Reviewed by: attilio
* Make semaphore debugging output more useful.bms2009-03-121-2/+8
| | | | | | PR: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/127545 MFC after: 5 days Submitted by: Philip Semanchuk
* txp(4) should work on all architectures now.brueffer2009-03-121-1/+0
|
* Move the deactivation of the device's BAR to before the loop where weimp2009-03-121-5/+5
| | | | | turn deactivate the resources. While this likely doesn't matter, it is likely to be safer.
* Fix the whitespace in this file to be consistent with itself and withimp2009-03-121-42/+40
| | | | | | the rest of the project's files. s/sn_/fe_/ in a routine name that I copied from sn.
* read_ivar takes a uintptr_t * not a u_char *.imp2009-03-121-1/+1
|
* o writereg needs to return a vlue.imp2009-03-121-2/+4
| | | | | o Add TJ PTJ-LAN_T card. Some more work may be needed to make this actually function correctly.
* Make the bit-bang callbacks for i2c implementation match their prototypes.imp2009-03-121-3/+3
|
* Check the Disk FUNCE recorded in the CIS to see if we should probe forimp2009-03-121-1/+6
| | | | | | both disks, or if we should suppress the slave drive. Default to suppressing the slave, in the case that this REQIURED tuple turns out to not actually be present...
* Better name for this routine... it doesn't reset the card, but resetsimp2009-03-121-4/+4
| | | | the power to the card...
* Don't need to set symbol, default value is OK.obrien2009-03-121-1/+1
|
* o change a lock model based on HAL preemption lock to a normal mtx.weongyo2009-03-126-48/+149
| | | | | | | | | | | | | | | Based on the HAL preemption lock there is a problem on SMP machines and causes a panic. o When a device detached the current tactic to detach NDIS USB driver is to call SURPRISE_REMOVED event. So it don't need to call ndis_halt_nic() again. This fixes some page faults when some drivers work abnormal. o it assumes now that URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER is in DISPATCH_LEVEL (non-sleepable) and as further work URB_FUNCTION_VENDOR_XXX and URB_FUNCTION_CLASS_XXX should be. Reviewed by: Hans Petter Selasky <hselasky_at_freebsd.org> Tested by: Paul B. Mahol <onemda_at_gmail.com>
* MFp4 //depot/projects/usb 159004,159053,159091thompsa2009-03-121-18/+38
| | | | | | | | | | More HID parsing fixes for usb mice. - be less strict on the last HID item usage. - preserve item size and count accross items - improve default HID usage selection. Tested by: ache Submitted by: Hans Petter Selasky
* Xref altq.4 and bump .Ddyongari2009-03-121-1/+2
|
* Add txp(4) to the list of drivers supporting ALTQ.yongari2009-03-121-1/+2
|
* Uncomment txp(4), txp(4) should work on all architectures.yongari2009-03-121-1/+1
|
* bus_dma(9) conversion and make txp(4) work on all architectures.yongari2009-03-122-901/+2155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o Header file cleanup. o bus_dma(9) conversion. - Removed all consumers of vtophys(9) and converted to use bus_dma(9). - Typhoon2 functional specification says the controller supports 64bit DMA addressing. However all Typhoon controllers are known to lack of DAC support so 64bit DMA support was disabled. - The hardware can't handle more 16 fragmented Tx DMA segments so teach txp(4) to collapse these segments to be less than 16. - Added Rx buffer alignment requirements(4 bytes alignment) and implemented fixup code to align receive frame. Previously txp(4) always copied Rx frame to align it on 2 byte boundary but its copy overhead is much higher than unaligned access on i386/amd64. Alignment fixup code is now applied only for strict-alignment architectures. With this change i386 and amd64 will get instant Rx performance boost. Typhoon2 datasheet mentions a command that pads arbitrary bytes in Rx buffer but that command does not work. - Nuked pointer trick in descriptor ring. This does not work on sparc64 and replaced it with bcopy. Alternatively txp(4) can embed a 32 bits index value into the descriptor and compute real buffer address but it may make code complicated. - Added endianness support code in various Tx/Rx/command/response descriptor access. With this change txp(4) should work on all architectures. o Added comments for known firmware bugs(Tx checksum offloading, TSO, VLAN stripping and Rx buffer padding control). o Prefer faster memory space register access to I/O space access. Added fall-back mechanism to use alternative I/O space access. The hardware supports both memory and I/O mapped access. Users can still force to use old I/O space access by setting hw.txp.prefer_iomap tunable to 1 in /boot/loader.conf. o Added experimental suspend/resume methods. o Nuke error prone Rx buffer handling code and implemented local buffer management with TAILQ. Be definition the controller can't pass the last received frame to host if no Rx free buffers are available to use as head and tail pointer of Rx descriptor ring can't have the same value. In that case the Rx buffer pointer in Rx buffer ring still holds a valid buffer and txp_rxbuf_reclaim() can't fill Rx buffers as the first buffer is still valid. Instead of relying on the value of Rx buffer ring, introduce local buffer management code to handle empty buffer situation. This should fix a long standing bug which completely hangs the controller under high network load. I could easily trigger the issue by sending 64 bytes UDP frames with netperf. I have no idea how this bugs was not fixed for a long time. o Converted ithread interrupt handler to filter based one. o Rearranged txp_detach routine such that it's now used for general clean-up routine. o Show sleep image version on device attach time. This will help to know what action should be taken depending on sleep image version. The version information in datasheet was wrong for newer NV images so I followed Linux which seems to correctly extract version numbers from response descriptors. o Firmware image is no longer downloaded in device attach time. Now it is reloaded whenever if_init is invoked. This is to ensure correct operation of hardware when something goes wrong. Previously the controller always run without regard to running state of firmware. This change will add additional controller initialization time but it give more robust operation as txp(4) always start off from a known state. The controller is put into sleep state until administrator explicitly up the interface. o As firmware is loaded in if_init handler, it's now possible to implement real watchdog timeout handler. When watchdog timer is expired, full-reset the controller and initialize the hardware again as most other drivers do. While I'm here use our own timer for watchdog instead of using if_watchdog/if_timer interface. o Instead of masking specific interrupts with TXP_IMR register, program TXP_IER register with the interrupts to be raised and use TXP_IMR to toggle interrupt generation. o Implemented txp_wait() to wait a specific state of a controller. o Separate boot related code from txp_download_fw() and name it txp_boot() to handle boot process. o Added bus_barrier(9) to host to ARM communication. o Added endianness to all typhoon command processing. The ARM93C always expects little-endian format of command/data. o Removed __STRICT_ALIGNMENT which is not valid on FreeBSD. __NO_STRICT_ALIGNMENT is provided for that purpose on FreeBSD. Previously __STRICT_ALIGNMENT was unconditionally defined for all architectures. o Rewrote SIOCSIFCAP ioctl handler such that each capability can be controlled by ifconfig(8). Note, disabling VLAN hardware tagging has no effect due to the bug of firmware. o Don't send TXP_CMD_CLEAR_STATISTICS to clear MAC statistics in txp_tick(). The command is not atomic. Instead, just read the statistics and reflect saved statistics to the statistics. dev.txp.%d.stats sysctl node provides detailed MAC statistics. This also reduces a lot of waste of CPU cycles as processing a command ring takes a very long time on ARM93C. Note, Rx multicast and broadcast statistics does not seem to right. It might be another bug of firmware. o Implemented link state change handling in txp_tick(). Now sending packets is allowed only after establishing a valid link. Also invoke link state change notification whenever its state is changed so pseudo drivers like lagg(4) that relies on link state can work with failover or link aggregation without hacks. if_baudrate is updated to resolved speed so SNMP agents can get correct bandwidth parameters. o Overhauled Tx routine such that it now honors number of allowable DMA segments and checks for 4 free descriptors before trying to send a frame. A frame may require 4 descriptors(1 frame descriptor, 1 or more frame descriptors, 1 TSO option descriptor, one free descriptor to prevent descriptor wrap-around) at least so it's necessary to check available free descriptors prior to setting up DMA operation. o Added a sysctl variable dev.txp.%d.process_limit to control how many received frames should be served in Rx handler. Valid ranges are 16 to 128(default 64) in unit of frames. o Added ALTQ(4) support. o Added missing IFCAP_VLAN_HWCSUM as txp(4) can offload checksum calculation as well as VLAN tag insertion/stripping. o Fixed media header length for VLAN. o Don't set if_mtu in device attach, it's already set in ether_ifattach(). o Enabled MWI. o Fixed module unload panic when bpf listeners are active. o Rearranged ethernet address programming logic such that it works on strict-alignment architectures. o Removed unused member variables in softc. o Added support for WOL. o Removed now unused TXP_PCI_LOMEM/TXP_PCI_LOIO. o Added wakeup command TXP_BOOTCMD_WAKEUP definition. o Added a new firmware version query command, TXP_CMD_READ_VERSION. o Removed volatile keyword in softc as bus_dmamap_sync(9) should take care of this. o Removed embedded union trick of a structure used to to access a pointer on LP64 systems. o Added a few TSO related definitions for struct txp_tcpseg_desc. However TSO is not used at all due to the limitation of hardware. o Redefined PKT_MAX_PKTLEN to theoretical maximum size of a frame. o Switched from bus_space_{read|write}_4 to bus_{read|write}_4. o Added a new macro TXP_DESC_INC to compute next descriptor index. Tested by: don.nasco <> gmail dot com
* add assertssam2009-03-121-0/+2
|
* add more register bit defssam2009-03-122-12/+39
|
* When writing out updated pollfd records when returning fromrwatson2009-03-111-1/+22
| | | | | | | | | | | | | | | | | poll(), only copy out the revents field, not the whole pollfd structure. Otherwise, if the events field is updated concurrently by another thread, that update may be lost. This issue apparently causes problems for the JDK on FreeBSD, which expects the Linux behavior of not updating all fields (somewhat oddly, Solaris does not implement the required behavior, but presumably our adaptation of the JDK is based on the Linux port?). MFC after: 2 weeks PR: kern/130924 Submitted by: Kurt Miller <kurt @ intricatesoftware.com> Discussed with: kib
* Add a new type of KTRACE record for sysctl(3) invocations. It uses thejhb2009-03-118-3/+72
| | | | | | | | internal sysctl_sysctl_name() handler to map the MIB array to a string name and logs this name in the trace log. This can be useful to see exactly which sysctls a thread is invoking. MFC after: 1 month
* Do not double-free the struct inode when insmntque failed. Defaultkib2009-03-111-1/+0
| | | | | | | insmntque destructor reclaims the vnode, and ufs_reclaim frees the memory. Reviewed by: tegge MFC after: 3 days
* move shared register support code to commonsam2009-03-118-4/+4
|
* add athpoke, a tool to peek/poke registerssam2009-03-113-1/+256
|
* Also use %zu to print the allocation size when malloc(3) fails.ed2009-03-111-1/+1
| | | | Discussed with: phk
* add athdecode, an app to decode register logssam2009-03-113-1/+441
|
* add %b format strings for use by athdecodesam2009-03-115-844/+988
|
* Fix printf warnings on amd64 etc.phk2009-03-111-1/+1
|
* Merge in support for Xen HVM on amd64 architecture.dfr2009-03-1134-531/+3561
|\
| * Port Xen HVM support forward from 6.x. Add support for TSO/LRO to netfront.dfr2009-03-108-146/+307
| |
| * Finish implementing the balloon driver and update it to be closer to currentdfr2009-03-062-125/+246
| | | | | | | | Linux sources.
| * Add MFNTOPFN for HVM builds.dfr2009-03-031-0/+1
| |
| * Fix comment.dfr2009-02-251-1/+2
| |
| * Fix comment.dfr2009-02-251-1/+1
| | | | | | | | Pointed out by: Ivan Voras
| * Add a sample kernel config for Xen HVM.dfr2009-02-251-0/+152
| |
| * Fix build.dfr2009-02-241-0/+9
| |
| * Merge TSO and LRO, mostly for diff reduction purposes (its not supported indfr2009-02-241-55/+192
| | | | | | | | FreeBSD 6.x).
| * Pay attention to whether or not LRO is enabled.dfr2009-02-241-5/+30
| |
| * Enable LRO.dfr2009-02-241-1/+57
| |
| * Enable TSO for IPv4.dfr2009-02-181-5/+11
| |
| * Eliminate the data copy on transmit and start getting ready to support TSO.dfr2009-02-181-51/+101
| |
| * Pull in support for Xen HVM from user/dfr/xenhvm/6.dfr2009-02-176-0/+1270
| |
| * Diff reduction with user/dfr/xenhvm/6.dfr2009-02-164-87/+123
| |
| * Fix build.dfr2009-02-164-15/+17
| |
| * Copy the Xen HVM platform device driver from user/dfr/xenhvm/6.dfr2009-02-164-0/+940
| |
OpenPOWER on IntegriCloud