opnsense-src/sys/dev/usb
Pyun YongHyeon cdc2a5ec78 Implement TX/RX checksum offloading support for ASIX AX88772B
controller.

AX88772B data sheet does not show detailed information about
checksum offloading related things. It seems the controller has
lots of options to support checksum offloading but I failed to
understand why this feature requires so much complex controller
configuration and status bits.
One of major difference between AX88772B and its predecessor is
AX88772B uses a new RX header format when RX checksum offloading is
enabled.  It also requires the received length of a frame should be
multiple of 4.  Controller will pad necessary bytes to make the
length of received frame to be multiple of 4.  It is driver's
responsibility to offset this pad bytes.
Note, AX88772B could be configured to get partial checksum value in
in RX header. This mode uses different RX header format and
currently we don't use that fature.

This change makes axe(4) use driver specific MII attach handler to
override uether(9)'s default MII attach and announce flow-control
capability for AX88178/AX88772A/AX88772B to PHY drivers.  It seems
original AX88772 also supports flow-control but I didn't enable it
due to lack of test/access to the controller.  The flow-control
threshold parameter is loaded from EEPROM and there is no way to
override this value without reprogramming EEPROM. For AX88772B,
TX/RX IP/TCP/UDP checksum offloading is announced to network stack.
IPv6 and PPPoE checksum offloading is also supported by controller
but we have no way to take advantage of these features.
Driver already knows PHY address so make PHY driver know that
information and remove unnecessary PHY address check used in
miibus_readreg/miibus_writereg callbacks.  Also announce AX88178,
AX88772A and AX88772B support VLAN over-sized frame.

While I'm here clean up headers and remove axe_start() in
axe_init() because the link wouldn't be available right after media
change.
2011-10-25 18:36:18 +00:00
..
controller Renamed PCI_INTERFACE_XHCI to PCIP_SERIALBUS_USB_XHCI and moved it 2011-05-17 11:23:43 +00:00
input MFprojects/hid: 2011-09-28 14:52:25 +00:00
misc - Export more USB device ID's. 2011-06-24 19:32:29 +00:00
net Implement TX/RX checksum offloading support for ASIX AX88772B 2011-10-25 18:36:18 +00:00
quirk Add USB mass storage quirk for device that emits errors after the automatic 2011-10-10 16:26:06 +00:00
serial Bugfix: The ucom detach function is sometimes called on zeroed structures. 2011-10-10 15:54:44 +00:00
storage Add descriptor sense support to CAM, and honor sense residuals properly in 2011-10-03 20:32:55 +00:00
template - Add some comments about the origin of some USB descriptors. 2011-06-23 10:35:45 +00:00
wlan Add new USB IDs to RUN driver. Update usb.conf. 2011-10-19 10:09:01 +00:00
ufm_ioctl.h Move the new USB stack into its new home. 2009-02-23 18:31:00 +00:00
usb.h Add missing USB 3.0 definitions. Correct some wrong ones. 2010-10-04 21:38:10 +00:00
usb_bus.h Removes all duplicated code with BPF that it's greatly simplified and 2010-11-24 19:11:32 +00:00
usb_busdma.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_busdma.h - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
usb_cdc.h USB network (NCM driver): 2010-10-13 22:04:55 +00:00
usb_compat_linux.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_compat_linux.h - Add usb_fill_bulk_urb() and usb_bulk_msg() linux compat functions [1] 2009-11-01 21:48:18 +00:00
usb_controller.h Removes a unused function `usb_bus_find'. 2010-11-25 22:56:26 +00:00
usb_core.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_core.h Improve High Speed slot allocation mechanism by moving the computation to the 2009-11-22 21:16:43 +00:00
usb_debug.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_debug.h Change USB_DEBUG to #ifdef and allow it to be turned off. Previously this had 2010-04-22 21:31:34 +00:00
usb_dev.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
usb_dev.h USB core: 2009-07-30 00:15:50 +00:00
usb_device.c Refactor auto-quirk solution so that we break as few external 2011-09-10 15:55:36 +00:00
usb_device.h This patch adds automatic detection of USB mass storage devices 2011-09-02 18:50:44 +00:00
usb_dynamic.c Refactor auto-quirk solution so that we break as few external 2011-09-10 15:55:36 +00:00
usb_dynamic.h Refactor auto-quirk solution so that we break as few external 2011-09-10 15:55:36 +00:00
usb_endian.h Fix _USB2_* refernces in the header protection defines. 2009-06-15 01:09:19 +00:00
usb_error.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_freebsd.h This patch adds automatic detection of USB mass storage devices 2011-09-02 18:50:44 +00:00
usb_generic.c Improve enumeration of Low- and Full-speed devices connected through a 2011-06-06 21:45:09 +00:00
usb_generic.h Fix _USB2_* refernces in the header protection defines. 2009-06-15 01:09:19 +00:00
usb_handle_request.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_hid.c Make the USB keyboard driver more HID compliant. 2011-07-04 07:37:28 +00:00
usb_hub.c - Add additional information to the PnP info of USB HUBs children which 2011-06-24 04:16:06 +00:00
usb_hub.h This commit adds full support for USB 3.0 devices in host and device 2010-10-04 23:18:05 +00:00
usb_if.m Sync to p4 2009-06-27 21:23:30 +00:00
usb_ioctl.h - Add more USB templates for various USB device classes 2011-06-23 07:54:03 +00:00
usb_lookup.c - Export the USB device ID format to userspace tools. 2011-06-25 15:51:44 +00:00
usb_mbuf.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_mbuf.h - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
usb_msctest.c Reduce USB memory usage during enumeration. 2011-09-14 15:16:53 +00:00
usb_msctest.h This patch adds automatic detection of USB mass storage devices 2011-09-02 18:50:44 +00:00
usb_parse.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_pci.h Fix _USB2_* refernces in the header protection defines. 2009-06-15 01:09:19 +00:00
usb_pf.c - Improvements to USB PF solution 2011-04-03 20:03:45 +00:00
usb_pf.h - Improvements to USB PF solution 2011-04-03 20:03:45 +00:00
usb_process.c Add support for new USB serial driver. 2011-06-01 17:58:27 +00:00
usb_process.h Use software interrupt priorities for USB kthreads instead of hardware 2011-01-13 14:15:36 +00:00
usb_request.c Add sysctl to not reset the device on clear stall failures, to 2011-08-19 09:01:34 +00:00
usb_request.h Improve enumeration of Low- and Full-speed devices connected through a 2011-06-06 21:45:09 +00:00
usb_transfer.c Avoid starting the USB transfer if an error is already pending. 2011-09-20 14:17:58 +00:00
usb_transfer.h This commit adds full support for USB 3.0 devices in host and device 2010-10-04 23:18:05 +00:00
usb_util.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_util.h - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
usbdevs Add new USB IDs to RUN driver. Update usb.conf. 2011-10-19 10:09:01 +00:00
usbdi.h Refactor auto-quirk solution so that we break as few external 2011-09-10 15:55:36 +00:00
usbdi_util.h This commit adds full support for USB 3.0 devices in host and device 2010-10-04 23:18:05 +00:00
usbhid.h Make the USB keyboard driver more HID compliant. 2011-07-04 07:37:28 +00:00