Home | History | Annotate | Download | only in usb
History log of /src/sys/dev/usb/uftdi.c
RevisionDateAuthorComments
 1.81  11-May-2025  gutteridge uftdi.c: KNF: spaces to tabs in a comment
 1.80  08-Oct-2024  lloyd Add a match quirk matching interface 0 on an iCEBreaker FPGA board

This board has an FTDI 2232C with port A (USB interface 0) connected
to the SPI Flash memory for programming and port B (USB interface 1)
connected to the FPGA's serial lines.

The quirk matching was adjusted to use pmatch(9) because the
iCEBreaker product string contains a version number which changes from
time to time.
 1.79  25-Apr-2024  thorpej branches: 1.79.2;
Add a match quirk to prevent matching any interface on SiPEED FPGA
development boards (e.g. Tang Nano 9K). The FT2232s on these boards
are wired up only for JTAG.
 1.78  17-Apr-2024  maya Add support for a range of USB serial adapters

From Cameron Williams in PR kern/58127
 1.77  26-Mar-2024  thorpej Add a "match quirk" mechanism to the uftdi driver that allows it to
selectively reject individual interfaces based on the combination of
- Vendor ID
- Product ID
- Interface number
- Vendor string
- Product string

This is necessary[*] to allow some devices that would otherwise match
uftdi (and thus instantiate a ucom) to be matched by ugenif instead,
which is required to make the device available to libusb1.

[*] ...due to a deficiency in the USB stack that does not provide a
mechanism for a user-space driver to claim a device from a kernel driver
and then return it back at a later time.

Use this new match quirk mechanism to reject "interface 1" of the
FTDI 2232C-based Tigard debug board; On this board, "interface 0"
is brought out to regular TTL-level UART pins, but "interface 1" is
brought out to SWD and JTAG headers, and is really only useful when
used with something like openocd. Because the FTDI 2232C on this board
just uses the standard FTDI vendor and product IDs, it can only be
distinguished by the strings, which cannot be specified usbdevices.config,
thus necessitating the match quirk entry (that works in combination
with the ugenif entry added in usbdevices.config).
 1.76  07-Aug-2021  thorpej branches: 1.76.6;
Merge thorpej-cfargs2.
 1.75  24-Apr-2021  thorpej branches: 1.75.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.74  14-Mar-2020  christos branches: 1.74.6;
revert the 0x% -> %# change for fixed width formats pointed out by uwe.
 1.73  13-Mar-2020  christos PR/55068: sc.dying: Fix printf formats:
- no %s/%p for kernel log
- 0x% -> %#
- always %j for kernel log
 1.72  07-Jan-2020  maxv Localify, constify.
 1.71  13-Sep-2019  ryo Support serial speeds up to 12mbaud with newer FTDI chips.

baudrate calculation code uftdi_encode_baudrate() from FreeBSD uftdi.c@r330385
 1.70  09-May-2019  mrg branches: 1.70.2;
clean up ucom parents some more:
- it's always "bool sc_dying" now, with true/false
- heavy use of static functions
- remove all ucom parent ca_activate callbacks. they're never called.
- callbacks should generally do little to nothing if sc_dying is set
- open resources should be released in detach after setting sc_dying
- don't complain about usbd_abort_pipe() or usbd_close_pipe() failure
- when releasing resources, zero the softc member as well
- remove ucom_methods members no longer destined to be filled in
- generally, DPRINTF() before sc_dying short circuit
- use EIO when dying, not ENXIO or 0
- add some ucom_open() callbacks that simply return EIO if dying
 1.69  05-May-2019  mrg remove explicit 'extern struct cfdriver <my>_cd;' and use ioconf.h
 1.68  04-May-2019  mrg clean up ucom / ucom-parent interface slightly:

- document what the ucom_methods{} callbacks argument are and that
they are all optional.
- remove almost all methods being assigned to NULL, as they are all
C99 initialisers and thus don't need NULL assignments.
- ucom_get_status() callback always has lsr/msr pointers as valid.
remove all tests for not NULL in these functions.
 1.67  20-Feb-2018  ws branches: 1.67.4;
Attach uftdi to each interface found in the device separately.
This allows for other drivers (e.g. ugen) to attach to some of
the other interfaces.

Allow ugen to attach only to some of the interfaces found in a device.
 1.66  22-Dec-2017  jakllsch Add RT Systems RTS-03
 1.65  30-May-2017  jnemeth add RTSYS CT57A to list of FTDI based USB serial devices
 1.64  15-Dec-2016  maya allow suspend with uftdi(4). it works fine.
 1.63  25-Nov-2016  skrll +#include "opt_usb.h"
 1.62  07-Jul-2016  msaitoh branches: 1.62.2;
KNF. Remove extra spaces. No functional change.
 1.61  23-Apr-2016  skrll Merge nick-nhusb

- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
 1.60  20-Feb-2015  nonaka PR/49681: Support BUFFALO PC-OP-RS1
 1.59  19-Dec-2013  msaitoh branches: 1.59.4; 1.59.6;
Add support for FTDI FT230X.
 1.58  02-Jun-2013  mlelstv branches: 1.58.2;
The hardware only supports xon/xoff processing for both directions together,
enable it only if both directions are requested.
 1.57  24-Mar-2013  cheusov New device Id for Beagle Bone, reviewed by bouyer@ and Lloyd Parker
 1.56  21-Jan-2013  mlelstv force chip into serial mode
add 232RL product id
 1.55  20-Jan-2013  reinoud Add line to get the ftdi driver to use the serial function of the FTDI 232H.
 1.54  02-Nov-2012  jakllsch match USB_PRODUCT_FTDI_MAXSTREAM_PKG_U
 1.53  11-Aug-2012  riastradh branches: 1.53.2;
Use as large a packet size as the ftdi endpoint specifies.

Now I can read from my beaglebone!
 1.52  10-Aug-2012  matt Add OpenRD JTAGKey entry
 1.51  11-Feb-2012  plunky branches: 1.51.2;
add Telldus Tellstick and Tellstick Duo

from PR/45908 by Tom Ivar Helbekkmo
 1.50  23-Dec-2011  jakllsch Revert previous due to active usbmp branch(es).
 1.49  22-Dec-2011  jakllsch Adjust-away inconsistent and trailing whitespace.
 1.48  11-Jul-2011  matt branches: 1.48.2; 1.48.6;
Match SHEEVAPLUG_JTAG.
 1.47  03-Nov-2010  dyoung Stop using the compatibility macros USB_ATTACH(), USB_DETACH(),
USB_MATCH(), et cetera. These files produce the same assembly
(according to objdump -d) before and after the change
 1.46  13-Mar-2010  scw branches: 1.46.2;
Fix PR kern/42838 using option #1 as described by KIYOHARA Takashi in
http://mail-index.netbsd.org/current-users/2010/02/20/msg012654.html

Add a comment in struct ucom_methods to explain usage of 'ptr' and 'count'
in the ucom_read handler.
 1.45  18-Jan-2010  martin branches: 1.45.2;
Add two CTI rs485 dongles
 1.44  12-Nov-2009  dyoung Simplify activation hooks. (sc_dying must die!)
 1.43  23-Sep-2009  plunky fix up USB drivers printing of autoconf information

1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)

2. reorder the attach function so that the first thing it does is print
newlines.

3. after this, we can call usbd_devinfo_alloc(), which polls the device
allowing a context switch, and aprint_normal() the device information.

this avoids problems where autoconf messages are getting mixed up.
 1.42  25-May-2009  nisimura add VID 0x6011 case to match FT4232H chip.
 1.41  24-May-2009  nisimura - detect FTDI chiptype from bcdDevice field to determine the number of
channels.
- tested on 232BM, 232RL and 2232D chips.
- now capable of quad channel FT4232H.
- minor format nit and legacy title comment removal.
- non UART type bit stream (!= ucom) support is under planning.
 1.40  21-Apr-2009  taca Add support for USB serial adapter REX-USB60F which I tested.
 1.39  06-Sep-2008  rmind branches: 1.39.2; 1.39.4; 1.39.8; 1.39.12;
PR/38202: Jeff McMahill: Support for Sealevel SeaPORT+4 USB to Serial adaptor.
 1.38  24-May-2008  cube branches: 1.38.4;
Split device_t and softc for all USB device drivers, and related cosmetic
changes.

Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio
and ral. I tested umass myself.
 1.37  28-Apr-2008  martin branches: 1.37.2;
Remove clause 3 and 4 from TNF licenses
 1.36  05-Apr-2008  cegger branches: 1.36.2; 1.36.4;
use aprint_*_dev and device_xname
 1.35  18-Feb-2008  dyoung branches: 1.35.6;
Use device_t and its accessor functions.

Register _childdetached methods with drivers that attach children.
Wait to set child references to NULL there, instead of doing that
in the detach method.

Replace many uses of USB_DECLARE_DRIVER() with CFATTACH_DECL2().
 1.34  25-Oct-2007  plunky branches: 1.34.2;
remove #include <usbhid.h> as its not needed
 1.33  13-Sep-2007  riz branches: 1.33.4;
Remove a comment that is no longer true - this driver does, in fact,
support multiple serial ports.
 1.32  02-Sep-2007  riz Properly support both ports of the FTDI 2232C. This allows me to
use all 16 ports of my USB-16COM-RM adapter. I also verified that
single-port units still work as expected.
 1.31  13-Mar-2007  drochner branches: 1.31.6; 1.31.10; 1.31.12;
Introduce different autoconf interface attributes for USB drivers
matching (and handling) a whole device and those which match an
interface only. This will allow to enforce some rules, eg that
the former don't use interface information for matching or that the
latter don't modify global device state.
The previous way left too much freedom do the drivers which led to
inconsistencies and abuse.
For now, I've not changed locators and submatch rules, this will
happen later.
There should not be any change in behaviour, except in the case of
some drivers which did behave inconsistently:
if_atu, if_axe, uep: matched the configured device in the interface
stage, but did configuration again. I've converted them to match
in the device stage.
ustir, utoppy: matched in the interface stage, but only against
vendor/device information, and used any configuration/interface
without checking. Changed to match in device stage, and added
some simple code to configure and use the first interface.
If you have one of those devices, please test!
 1.30  08-Mar-2007  riz branches: 1.30.2; 1.30.4;
Match the FTDI "Serial 2232C" chip; this allows a 16-port usb->serial
device from SerialGear I have to work.
 1.29  16-Nov-2006  christos branches: 1.29.2; 1.29.4; 1.29.8;
__unused removal on arguments; approved by core.
 1.28  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.27  08-Oct-2006  xtraeme Added support for the following devices:

* Matrix Orbital MX4/MX5 Series
* Crystal Fontz CFA-635 LCD

Patch sent by Claus Andersen via PR kern/34753.
 1.26  24-Sep-2006  christos From Claus Andersen:
- change uftdi driver to use usb_lookup
- are more devices (from FreeBSD/OpenBSD)
 1.25  11-Dec-2005  christos branches: 1.25.20; 1.25.22;
merge ktrace-lwp.
 1.24  11-May-2005  augustss branches: 1.24.2;
Don't keep the devinfo string on the stack, instead use malloc/free.
This should cure some rare stack overflows.
 1.23  05-Nov-2004  scw branches: 1.23.10;
Match Sealevel Systems' uftdi-based USB <-> Serial adapter.
This is just an FT8U232AM with custom vendor/device IDs.
 1.22  13-Sep-2004  drochner a round of autoconf cleanup:
-convert submatch() style functions (passed to config_search() or
config_found_sm()) to the locator passing variants
-pass interface attributes in some cases
-make submatch() functions look uniformly as far as possible
-avoid macros which just hide cfdata members, and reduce dependencies
on "locators.h"
 1.21  23-Apr-2004  itojun use bounded string ops (snprintf, strl*)
 1.20  28-Jan-2004  augustss Add another FTDI device. From FreeBSD.
 1.19  05-Jan-2004  augustss One more device. From OpenBSD.
 1.18  05-Jan-2004  augustss Add another device.
 1.17  23-Nov-2003  augustss Add another product. From OpenBSD.
 1.16  28-Oct-2003  mycroft KNF.
 1.15  25-Oct-2003  christos Fix uninitialized variable warnings.
 1.14  23-Feb-2003  simonb branches: 1.14.2;
Remove assigned-to but not used variable.
 1.13  23-Sep-2002  simonb Remove breaks after returns, unreachable returns and returns after
returns(!).
 1.12  18-Jul-2002  scw Add code to setup hardware or software flow control (or none at
all, if necessary) depending on the user-specified termios flags.

This allows the device to talk to DCEs which don't assert RTS
(i.e. dumb, 3-wire serial ports).
 1.11  11-Jul-2002  augustss Get rid of trailing white space.
 1.10  08-May-2002  scw branches: 1.10.2;
Add support for FTDI USB->Serial adapters based on the FT8U232AM chip.
Changes inspired by the latest linux version of the driver.

This gets the dongle supplied with my HP Omnibook working (it has no
legacy com(4) ports).
 1.9  17-Dec-2001  ichiro Uoo
Make it compile.
 1.8  17-Dec-2001  ichiro support BREAK function,
keep a value of the last LCR.
 1.7  13-Nov-2001  lukem add RCSIDs
 1.6  23-Jan-2001  augustss branches: 1.6.2; 1.6.4;
Ad support for an extra message in the ucom attach code.
 1.5  23-Jan-2001  augustss Make sure driver attach/detach events are generated in a consistent manner.
 1.4  08-Dec-2000  augustss Set the debug level to 0.
 1.3  03-Sep-2000  augustss branches: 1.3.2;
Handle output packet headers in a cleaner way. From IWAMOTO Toshihiro
<iwamoto@sat.t.u-tokyo.ac.jp>, fixes kern/10573.
 1.2  01-Jun-2000  augustss branches: 1.2.2;
Bring the coding style into the 80s, i.e., get rid of __P and use
ANSI prototypes and declarations.
 1.1  14-Apr-2000  augustss branches: 1.1.2;
Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.
 1.1.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.2.2.1  04-Sep-2000  augustss Pull up (approved by thorpej).

Handle output packet headers in a cleaner way. From IWAMOTO Toshihiro
<iwamoto@sat.t.u-tokyo.ac.jp>, fixes kern/10573.
 1.3.2.4  11-Feb-2001  bouyer Sync with HEAD.
 1.3.2.3  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.3.2.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1  03-Sep-2000  bouyer file uftdi.c was added on branch thorpej_scsipi on 2000-11-20 11:43:23 +0000
 1.6.4.4  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.6.4.3  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.6.4.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.6.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.6.2.4  01-Aug-2002  nathanw Catch up to -current.
 1.6.2.3  20-Jun-2002  nathanw Catch up to -current.
 1.6.2.2  08-Jan-2002  nathanw Catch up to -current.
 1.6.2.1  14-Nov-2001  nathanw Catch up to -current.
 1.10.2.2  20-Jul-2002  gehenna catch up with -current.
 1.10.2.1  15-Jul-2002  gehenna catch up with -current.
 1.14.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.14.2.4  14-Nov-2004  skrll Sync with HEAD.
 1.14.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.14.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.14.2.1  03-Aug-2004  skrll Sync with HEAD
 1.23.10.1  10-Mar-2007  bouyer Pull up following revision(s) (requested by riz in ticket #1677):
sys/dev/usb/usbdevs: revision 1.461
sys/dev/usb/usbdevs.h: regen
sys/dev/usb/usbdevs_data.h: regen
sys/dev/usb/uftdi.c: revision 1.30
Add FTDI "Serial 2232C" product ID
Match the FTDI "Serial 2232C" chip; this allows a 16-port usb->serial
device from SerialGear I have to work.
 1.24.2.4  27-Feb-2008  yamt sync with head.
 1.24.2.3  27-Oct-2007  yamt sync with head.
 1.24.2.2  03-Sep-2007  yamt sync with head.
 1.24.2.1  30-Dec-2006  yamt sync with head.
 1.25.22.2  10-Dec-2006  yamt sync with head.
 1.25.22.1  22-Oct-2006  yamt sync with head
 1.25.20.1  18-Nov-2006  ad Sync with head.
 1.29.8.2  21-Jun-2007  itohy Pullup 1.30: more model
 1.29.8.1  18-Jun-2007  itohy Pullup 1.31 (attach driver per interface) with #ifdef USB_USE_IFATTACH.
 1.29.4.2  24-Mar-2007  yamt sync with head.
 1.29.4.1  12-Mar-2007  rmind Sync with HEAD.
 1.29.2.1  08-Mar-2007  bouyer Pull up following revision(s) (requested by riz in ticket #497):
sys/dev/usb/usbdevs: revision 1.461
sys/dev/usb/uftdi.c: revision 1.30
Add FTDI "Serial 2232C" product ID
Match the FTDI "Serial 2232C" chip; this allows a 16-port usb->serial
device from SerialGear I have to work.
 1.30.4.1  11-Jul-2007  mjf Sync with head.
 1.30.2.2  09-Oct-2007  ad Sync with head.
 1.30.2.1  13-Mar-2007  ad Sync with head.
 1.31.12.2  23-Mar-2008  matt sync with HEAD
 1.31.12.1  06-Nov-2007  matt sync with HEAD
 1.31.10.3  28-Oct-2007  joerg Sync with HEAD.
 1.31.10.2  02-Oct-2007  joerg Sync with HEAD.
 1.31.10.1  03-Sep-2007  jmcneill Sync with HEAD.
 1.31.6.1  03-Sep-2007  skrll Sync with HEAD.
 1.33.4.1  13-Nov-2007  bouyer Sync with HEAD
 1.34.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.35.6.2  28-Sep-2008  mjf Sync with HEAD.
 1.35.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.36.4.5  11-Aug-2010  yamt sync with head.
 1.36.4.4  11-Mar-2010  yamt sync with head
 1.36.4.3  20-Jun-2009  yamt sync with head
 1.36.4.2  04-May-2009  yamt sync with head.
 1.36.4.1  16-May-2008  yamt sync with head.
 1.36.2.2  04-Jun-2008  yamt sync with head
 1.36.2.1  18-May-2008  yamt sync with head.
 1.37.2.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.37.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.38.4.1  19-Oct-2008  haad Sync with HEAD.
 1.39.12.1  21-Apr-2010  matt sync to netbsd-5
 1.39.8.2  23-Jul-2009  jym Sync with HEAD.
 1.39.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.39.4.2  27-May-2015  msaitoh Pull up following revision(s) (requested by riastradh in ticket #1964):
sys/dev/usb/uftdi.c: revision 1.53
Use as large a packet size as the ftdi endpoint specifies.
Now I can read from my beaglebone!
 1.39.4.1  10-Oct-2009  sborrill Pull up the following revisions(s) (requested by snj in ticket #1083):
sys/dev/usb/uftdi.c: revision 1.41-1.42
share/man/man4/uftdi.4: revision 1.15
sys/dev/usb/usbdevs: revision 1.527

Add support for multiple channel cards, specifically quad channel FT4232H.
Plus fix minor format nit and legacy title comment removal.
 1.39.2.1  28-Apr-2009  skrll Sync with HEAD.
 1.45.2.2  06-Nov-2010  uebayasi Sync with HEAD.
 1.45.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.46.2.1  05-Mar-2011  rmind sync with head
 1.48.6.1  18-Feb-2012  mrg merge to -current.
 1.48.2.5  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.48.2.4  23-Jan-2013  yamt sync with head
 1.48.2.3  16-Jan-2013  yamt sync with (a bit old) head
 1.48.2.2  30-Oct-2012  yamt sync with head
 1.48.2.1  17-Apr-2012  yamt sync with head
 1.51.2.2  23-Oct-2012  riz sys/dev/usb/usbdevs 1.626
sys/dev/usb/usbdevs.h regen
sys/dev/usb/usbdevs_data.h regen
sys/dev/usb/uftdi.c 1.52

Add OpenRD JTAG & serial console support.
[msaitoh, ticket #625]
 1.51.2.1  13-Aug-2012  riz Pull up following revision(s) (requested by riastradh in ticket #495):
sys/dev/usb/uftdi.c: revision 1.53
Use as large a packet size as the ftdi endpoint specifies.
Now I can read from my beaglebone!
 1.53.2.5  03-Dec-2017  jdolecek update from HEAD
 1.53.2.4  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.53.2.3  23-Jun-2013  tls resync from head
 1.53.2.2  25-Feb-2013  tls resync with head
 1.53.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.58.2.1  18-May-2014  rmind sync with head
 1.59.6.13  28-Aug-2017  skrll Sync with HEAD
 1.59.6.12  05-Feb-2017  skrll Sync with HEAD
 1.59.6.11  05-Dec-2016  skrll Sync with HEAD
 1.59.6.10  09-Jul-2016  skrll Sync with HEAD
 1.59.6.9  16-Apr-2016  skrll Prefix ucom_attach_args struct members with ucaa_ and rename variables
for consistency.

No functional change.
 1.59.6.8  06-Apr-2015  skrll Sync with HEAD
 1.59.6.7  21-Mar-2015  skrll Add prefixes to attach_arg structure member names. No functional change.
 1.59.6.6  19-Mar-2015  skrll Do the same as OpenBSD and get rid of the *_handle typedefs and use
plain structures insteads
 1.59.6.5  06-Dec-2014  skrll Use c99 designated initialisers for ucom_methods structs.

No functional change.
 1.59.6.4  06-Dec-2014  skrll KNF. Remove argument name from function declarations.

No functional change.
 1.59.6.3  05-Dec-2014  skrll KNF. Remove ( ) from return statements.
 1.59.6.2  30-Nov-2014  skrll Whitespace
 1.59.6.1  30-Nov-2014  skrll Use C99 types. u_int{8,16,32,64}_t to uint{8,16,32,64}_t.

No functional change.
 1.59.4.2  05-Apr-2017  snj Pull up following revision(s) (requested by skrll in ticket #1395):
share/man/man4/axe.4: netbsd-7-nhusb
share/man/man4/axen.4: netbsd-7-nhusb
share/man/man4/cdce.4: netbsd-7-nhusb
share/man/man4/uaudio.4: netbsd-7-nhusb
share/man/man4/ucom.4: netbsd-7-nhusb
share/man/man4/uep.4: netbsd-7-nhusb
share/man/man4/urtw.4: netbsd-7-nhusb
share/man/man4/usb.4: netbsd-7-nhusb
share/man/man4/uyap.4: netbsd-7-nhusb
share/man/man4/xhci.4: netbsd-7-nhusb
share/man/man9/usbdi.9: netbsd-7-nhusb
sys/arch/amd64/conf/ALL: netbsd-7-nhusb
sys/arch/amd64/conf/GENERIC: netbsd-7-nhusb
sys/arch/amiga/dev/slhci_zbus.c: netbsd-7-nhusb
sys/arch/arm/allwinner/awin_otg.c: netbsd-7-nhusb
sys/arch/arm/allwinner/awin_usb.c: netbsd-7-nhusb
sys/arch/arm/amlogic/amlogic_dwctwo.c: netbsd-7-nhusb
sys/arch/arm/at91/at91ohci.c: netbsd-7-nhusb
sys/arch/arm/broadcom/bcm2835_dwctwo.c: netbsd-7-nhusb
sys/arch/arm/broadcom/bcm53xx_usb.c: netbsd-7-nhusb
sys/arch/arm/ep93xx/epohci.c: netbsd-7-nhusb
sys/arch/arm/gemini/obio_ehci.c: netbsd-7-nhusb
sys/arch/arm/imx/files.imx23: netbsd-7-nhusb
sys/arch/arm/imx/imxusb.c: netbsd-7-nhusb
sys/arch/arm/imx/imxusbreg.h: netbsd-7-nhusb
sys/arch/arm/omap/obio_ohci.c: netbsd-7-nhusb
sys/arch/arm/omap/omap3_ehci.c: netbsd-7-nhusb
sys/arch/arm/omap/omapl1x_ohci.c: netbsd-7-nhusb
sys/arch/arm/omap/tiotg.c: netbsd-7-nhusb
sys/arch/arm/s3c2xx0/ohci_s3c24x0.c: netbsd-7-nhusb
sys/arch/arm/samsung/exynos_usb.c: netbsd-7-nhusb
sys/arch/arm/xscale/pxa2x0_ohci.c: netbsd-7-nhusb
sys/arch/arm/zynq/zynq_usb.c: netbsd-7-nhusb
sys/arch/hpcarm/dev/nbp_slhci.c: netbsd-7-nhusb
sys/arch/hpcmips/dev/plumohci.c: netbsd-7-nhusb
sys/arch/i386/conf/ALL: netbsd-7-nhusb
sys/arch/i386/conf/GENERIC: netbsd-7-nhusb
sys/arch/i386/pci/gcscehci.c: netbsd-7-nhusb
sys/arch/luna68k/conf/GENERIC: netbsd-7-nhusb
sys/arch/mips/adm5120/dev/ahci.c: netbsd-7-nhusb
sys/arch/mips/adm5120/dev/ahcivar.h: netbsd-7-nhusb
sys/arch/mips/alchemy/dev/ohci_aubus.c: netbsd-7-nhusb
sys/arch/mips/atheros/dev/ehci_arbus.c: netbsd-7-nhusb
sys/arch/mips/atheros/dev/ohci_arbus.c: netbsd-7-nhusb
sys/arch/mips/conf/files.adm5120: netbsd-7-nhusb
sys/arch/mips/ralink/ralink_ehci.c: netbsd-7-nhusb
sys/arch/mips/ralink/ralink_ohci.c: netbsd-7-nhusb
sys/arch/mips/rmi/rmixl_ehci.c: netbsd-7-nhusb
sys/arch/mips/rmi/rmixl_ohci.c: netbsd-7-nhusb
sys/arch/playstation2/dev/ohci_sbus.c: netbsd-7-nhusb
sys/arch/powerpc/booke/dev/pq3ehci.c: netbsd-7-nhusb
sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c: netbsd-7-nhusb
sys/arch/x68k/dev/slhci_intio.c: netbsd-7-nhusb
sys/conf/files: netbsd-7-nhusb
sys/dev/cardbus/ehci_cardbus.c: netbsd-7-nhusb
sys/dev/cardbus/ohci_cardbus.c: netbsd-7-nhusb
sys/dev/cardbus/uhci_cardbus.c: netbsd-7-nhusb
sys/dev/ic/sl811hs.c: netbsd-7-nhusb
sys/dev/ic/sl811hsvar.h: netbsd-7-nhusb
sys/dev/isa/slhci_isa.c: netbsd-7-nhusb
sys/dev/marvell/ehci_mv.c: netbsd-7-nhusb
sys/dev/pci/ehci_pci.c: netbsd-7-nhusb
sys/dev/pci/ohci_pci.c: netbsd-7-nhusb
sys/dev/pci/uhci_pci.c: netbsd-7-nhusb
sys/dev/pci/xhci_pci.c: netbsd-7-nhusb
sys/dev/pcmcia/slhci_pcmcia.c: netbsd-7-nhusb
sys/dev/usb/Makefile.usbdevs: netbsd-7-nhusb
sys/dev/usb/TODO: netbsd-7-nhusb
sys/dev/usb/TODO.usbmp: netbsd-7-nhusb
sys/dev/usb/aubtfwl.c: netbsd-7-nhusb
sys/dev/usb/auvitek.c: netbsd-7-nhusb
sys/dev/usb/auvitek_audio.c: netbsd-7-nhusb
sys/dev/usb/auvitek_dtv.c: netbsd-7-nhusb
sys/dev/usb/auvitek_i2c.c: netbsd-7-nhusb
sys/dev/usb/auvitek_video.c: netbsd-7-nhusb
sys/dev/usb/auvitekvar.h: netbsd-7-nhusb
sys/dev/usb/ehci.c: netbsd-7-nhusb
sys/dev/usb/ehcireg.h: netbsd-7-nhusb
sys/dev/usb/ehcivar.h: netbsd-7-nhusb
sys/dev/usb/emdtv.c: netbsd-7-nhusb
sys/dev/usb/emdtv_dtv.c: netbsd-7-nhusb
sys/dev/usb/emdtv_ir.c: netbsd-7-nhusb
sys/dev/usb/emdtvvar.h: netbsd-7-nhusb
sys/dev/usb/ezload.c: netbsd-7-nhusb
sys/dev/usb/ezload.h: netbsd-7-nhusb
sys/dev/usb/files.usb: netbsd-7-nhusb
sys/dev/usb/hid.c: netbsd-7-nhusb
sys/dev/usb/hid.h: netbsd-7-nhusb
sys/dev/usb/if_athn_usb.c: netbsd-7-nhusb
sys/dev/usb/if_athn_usb.h: netbsd-7-nhusb
sys/dev/usb/if_atu.c: netbsd-7-nhusb
sys/dev/usb/if_atureg.h: netbsd-7-nhusb
sys/dev/usb/if_aue.c: netbsd-7-nhusb
sys/dev/usb/if_auereg.h: netbsd-7-nhusb
sys/dev/usb/if_axe.c: netbsd-7-nhusb
sys/dev/usb/if_axen.c: netbsd-7-nhusb
sys/dev/usb/if_axenreg.h: netbsd-7-nhusb
sys/dev/usb/if_axereg.h: netbsd-7-nhusb
sys/dev/usb/if_cdce.c: netbsd-7-nhusb
sys/dev/usb/if_cdcereg.h: netbsd-7-nhusb
sys/dev/usb/if_cue.c: netbsd-7-nhusb
sys/dev/usb/if_cuereg.h: netbsd-7-nhusb
sys/dev/usb/if_kue.c: netbsd-7-nhusb
sys/dev/usb/if_kuereg.h: netbsd-7-nhusb
sys/dev/usb/if_otus.c: netbsd-7-nhusb
sys/dev/usb/if_otusvar.h: netbsd-7-nhusb
sys/dev/usb/if_rum.c: netbsd-7-nhusb
sys/dev/usb/if_rumreg.h: netbsd-7-nhusb
sys/dev/usb/if_rumvar.h: netbsd-7-nhusb
sys/dev/usb/if_run.c: netbsd-7-nhusb
sys/dev/usb/if_runvar.h: netbsd-7-nhusb
sys/dev/usb/if_smsc.c: netbsd-7-nhusb
sys/dev/usb/if_smscreg.h: netbsd-7-nhusb
sys/dev/usb/if_smscvar.h: netbsd-7-nhusb
sys/dev/usb/if_udav.c: netbsd-7-nhusb
sys/dev/usb/if_udavreg.h: netbsd-7-nhusb
sys/dev/usb/if_upgt.c: netbsd-7-nhusb
sys/dev/usb/if_upgtvar.h: netbsd-7-nhusb
sys/dev/usb/if_upl.c: netbsd-7-nhusb
sys/dev/usb/if_ural.c: netbsd-7-nhusb
sys/dev/usb/if_uralreg.h: netbsd-7-nhusb
sys/dev/usb/if_uralvar.h: netbsd-7-nhusb
sys/dev/usb/if_url.c: netbsd-7-nhusb
sys/dev/usb/if_urlreg.h: netbsd-7-nhusb
sys/dev/usb/if_urndis.c: netbsd-7-nhusb
sys/dev/usb/if_urndisreg.h: netbsd-7-nhusb
sys/dev/usb/if_urtw.c: netbsd-7-nhusb
sys/dev/usb/if_urtwn.c: netbsd-7-nhusb
sys/dev/usb/if_urtwn_data.h: netbsd-7-nhusb
sys/dev/usb/if_urtwnreg.h: netbsd-7-nhusb
sys/dev/usb/if_urtwnvar.h: netbsd-7-nhusb
sys/dev/usb/if_urtwreg.h: netbsd-7-nhusb
sys/dev/usb/if_zyd.c: netbsd-7-nhusb
sys/dev/usb/if_zydreg.h: netbsd-7-nhusb
sys/dev/usb/irmce.c: netbsd-7-nhusb
sys/dev/usb/moscom.c: netbsd-7-nhusb
sys/dev/usb/motg.c: netbsd-7-nhusb
sys/dev/usb/motgvar.h: netbsd-7-nhusb
sys/dev/usb/ohci.c: netbsd-7-nhusb
sys/dev/usb/ohcireg.h: netbsd-7-nhusb
sys/dev/usb/ohcivar.h: netbsd-7-nhusb
sys/dev/usb/pseye.c: netbsd-7-nhusb
sys/dev/usb/slurm.c: netbsd-7-nhusb
sys/dev/usb/stuirda.c: netbsd-7-nhusb
sys/dev/usb/u3g.c: netbsd-7-nhusb
sys/dev/usb/uark.c: netbsd-7-nhusb
sys/dev/usb/uatp.c: netbsd-7-nhusb
sys/dev/usb/uaudio.c: netbsd-7-nhusb
sys/dev/usb/uberry.c: netbsd-7-nhusb
sys/dev/usb/ubsa.c: netbsd-7-nhusb
sys/dev/usb/ubsa_common.c: netbsd-7-nhusb
sys/dev/usb/ubsavar.h: netbsd-7-nhusb
sys/dev/usb/ubt.c: netbsd-7-nhusb
sys/dev/usb/uchcom.c: netbsd-7-nhusb
sys/dev/usb/ucom.c: netbsd-7-nhusb
sys/dev/usb/ucomvar.h: netbsd-7-nhusb
sys/dev/usb/ucycom.c: netbsd-7-nhusb
sys/dev/usb/udl.c: netbsd-7-nhusb
sys/dev/usb/udl.h: netbsd-7-nhusb
sys/dev/usb/udsbr.c: netbsd-7-nhusb
sys/dev/usb/udsir.c: netbsd-7-nhusb
sys/dev/usb/uep.c: netbsd-7-nhusb
sys/dev/usb/uftdi.c: netbsd-7-nhusb
sys/dev/usb/uftdireg.h: netbsd-7-nhusb
sys/dev/usb/ugen.c: netbsd-7-nhusb
sys/dev/usb/ugensa.c: netbsd-7-nhusb
sys/dev/usb/uhci.c: netbsd-7-nhusb
sys/dev/usb/uhcireg.h: netbsd-7-nhusb
sys/dev/usb/uhcivar.h: netbsd-7-nhusb
sys/dev/usb/uhid.c: netbsd-7-nhusb
sys/dev/usb/uhidev.c: netbsd-7-nhusb
sys/dev/usb/uhidev.h: netbsd-7-nhusb
sys/dev/usb/uhmodem.c: netbsd-7-nhusb
sys/dev/usb/uhso.c: netbsd-7-nhusb
sys/dev/usb/uhub.c: netbsd-7-nhusb
sys/dev/usb/uipad.c: netbsd-7-nhusb
sys/dev/usb/uipaq.c: netbsd-7-nhusb
sys/dev/usb/uirda.c: netbsd-7-nhusb
sys/dev/usb/uirdavar.h: netbsd-7-nhusb
sys/dev/usb/ukbd.c: netbsd-7-nhusb
sys/dev/usb/ukbdmap.c: netbsd-7-nhusb
sys/dev/usb/ukyopon.c: netbsd-7-nhusb
sys/dev/usb/ukyopon.h: netbsd-7-nhusb
sys/dev/usb/ulpt.c: netbsd-7-nhusb
sys/dev/usb/umass.c: netbsd-7-nhusb
sys/dev/usb/umass_isdata.c: netbsd-7-nhusb
sys/dev/usb/umass_isdata.h: netbsd-7-nhusb
sys/dev/usb/umass_quirks.c: netbsd-7-nhusb
sys/dev/usb/umass_quirks.h: netbsd-7-nhusb
sys/dev/usb/umass_scsipi.c: netbsd-7-nhusb
sys/dev/usb/umass_scsipi.h: netbsd-7-nhusb
sys/dev/usb/umassvar.h: netbsd-7-nhusb
sys/dev/usb/umcs.c: netbsd-7-nhusb
sys/dev/usb/umct.c: netbsd-7-nhusb
sys/dev/usb/umidi.c: netbsd-7-nhusb
sys/dev/usb/umidi_quirks.c: netbsd-7-nhusb
sys/dev/usb/umidi_quirks.h: netbsd-7-nhusb
sys/dev/usb/umodem.c: netbsd-7-nhusb
sys/dev/usb/umodem_common.c: netbsd-7-nhusb
sys/dev/usb/umodemvar.h: netbsd-7-nhusb
sys/dev/usb/ums.c: netbsd-7-nhusb
sys/dev/usb/uplcom.c: netbsd-7-nhusb
sys/dev/usb/urio.c: netbsd-7-nhusb
sys/dev/usb/urio.h: netbsd-7-nhusb
sys/dev/usb/usb.c: netbsd-7-nhusb
sys/dev/usb/usb.h: netbsd-7-nhusb
sys/dev/usb/usb_mem.c: netbsd-7-nhusb
sys/dev/usb/usb_mem.h: netbsd-7-nhusb
sys/dev/usb/usb_quirks.c: netbsd-7-nhusb
sys/dev/usb/usb_quirks.h: netbsd-7-nhusb
sys/dev/usb/usb_subr.c: netbsd-7-nhusb
sys/dev/usb/usbdevices.config: netbsd-7-nhusb
sys/dev/usb/usbdevs: netbsd-7-nhusb
sys/dev/usb/usbdevs.h: netbsd-7-nhusb
sys/dev/usb/usbdevs_data.h: netbsd-7-nhusb
sys/dev/usb/usbdi.c: netbsd-7-nhusb
sys/dev/usb/usbdi.h: netbsd-7-nhusb
sys/dev/usb/usbdi_util.c: netbsd-7-nhusb
sys/dev/usb/usbdi_util.h: netbsd-7-nhusb
sys/dev/usb/usbdivar.h: netbsd-7-nhusb
sys/dev/usb/usbhid.h: netbsd-7-nhusb
sys/dev/usb/usbhist.h: netbsd-7-nhusb
sys/dev/usb/usbroothub.c: netbsd-7-nhusb
sys/dev/usb/usbroothub.h: netbsd-7-nhusb
sys/dev/usb/usbroothub_subr.c: delete
sys/dev/usb/usbroothub_subr.h: delete
sys/dev/usb/uscanner.c: netbsd-7-nhusb
sys/dev/usb/uslsa.c: netbsd-7-nhusb
sys/dev/usb/usscanner.c: netbsd-7-nhusb
sys/dev/usb/ustir.c: netbsd-7-nhusb
sys/dev/usb/uthum.c: netbsd-7-nhusb
sys/dev/usb/utoppy.c: netbsd-7-nhusb
sys/dev/usb/uts.c: netbsd-7-nhusb
sys/dev/usb/uvideo.c: netbsd-7-nhusb
sys/dev/usb/uvisor.c: netbsd-7-nhusb
sys/dev/usb/uvscom.c: netbsd-7-nhusb
sys/dev/usb/uyap.c: netbsd-7-nhusb
sys/dev/usb/uyap_firmware.h: netbsd-7-nhusb
sys/dev/usb/uyurex.c: netbsd-7-nhusb
sys/dev/usb/x1input_rdesc.h: netbsd-7-nhusb
sys/dev/usb/xhci.c: netbsd-7-nhusb
sys/dev/usb/xhcireg.h: netbsd-7-nhusb
sys/dev/usb/xhcivar.h: netbsd-7-nhusb
sys/dev/usb/xinput_rdesc.h: netbsd-7-nhusb
sys/external/bsd/common/conf/files.linux: netbsd-7-nhusb
sys/external/bsd/common/include/linux/err.h: netbsd-7-nhusb
sys/external/bsd/common/include/linux/kernel.h: netbsd-7-nhusb
sys/external/bsd/common/include/linux/workqueue.h: netbsd-7-nhusb
sys/external/bsd/common/linux/linux_work.c: netbsd-7-nhusb
sys/external/bsd/drm2/dist/drm/radeon/atombios_encoders.c: netbsd-7-nhusb
sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_encoders.c: netbsd-7-nhusb
sys/external/bsd/drm2/drm/files.drmkms: netbsd-7-nhusb
sys/external/bsd/drm2/i915drm/files.i915drmkms: netbsd-7-nhusb
sys/external/bsd/drm2/include/linux/err.h: delete
sys/external/bsd/drm2/include/linux/workqueue.h: delete
sys/external/bsd/drm2/linux/files.drmkms_linux: netbsd-7-nhusb
sys/external/bsd/drm2/linux/linux_work.c: delete
sys/external/bsd/dwc2/dwc2.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dwc2.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dwc2var.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dwctwo2netbsd: netbsd-7-nhusb
sys/external/bsd/dwc2/conf/files.dwc2: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_core.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_core.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_coreintr.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcd.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcd.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdddma.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdintr.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hw.h: netbsd-7-nhusb
sys/modules/drmkms_linux/Makefile: netbsd-7-nhusb
sys/modules/i915drmkms/Makefile: netbsd-7-nhusb
sys/rump/dev/lib/libugenhc/ugenhc.c: netbsd-7-nhusb
sys/rump/dev/lib/libusb/Makefile: netbsd-7-nhusb
sys/rump/dev/lib/libusb/USB.ioconf: netbsd-7-nhusb
sys/rump/dev/lib/libusb/usb_at_ugenhc.c: delete
sys/rump/dev/lib/libusb/opt/opt_usb.h: delete
sys/rump/dev/lib/libusb/opt/opt_usbverbose.h: delete
sys/sys/mbuf.h: netbsd-7-nhusb
usr.sbin/usbdevs/usbdevs.8: netbsd-7-nhusb
usr.sbin/usbdevs/usbdevs.c: netbsd-7-nhusb
Merge netbsd-7-nhusb:
- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
- Change the SOFTINT level from NET to SERIAL for the USB softint handler.
This gives the callback a chance of running when another softint handler
at SOFTINT_NET has blocked holding a lock, e.g. softnet_lock and most of
the network stack.
- kern/49065 - ifconfig tun0 ... sequence locks up system / lockup:
softnet_lock held across usb xfr
- kern/50491 - unkillable wait in usbd_transfer while using usmsc0
on raspberry pi 2
- kern/51395 - USB Ethernet makes xhci hang
- Various improvements to slhci(4)
- Various improvements to dwc2(4)
 1.59.4.1  21-Feb-2015  martin branches: 1.59.4.1.4;
Pull up following revision(s) (requested by nonaka in ticket #538):
sys/dev/usb/uftdi.c: revision 1.60
sys/dev/usb/usbdevs: revision 1.690
PR/49681: Support BUFFALO PC-OP-RS1
PR/49681: Support BUFFALO PC-OP-RS1
 1.59.4.1.4.3  31-Mar-2017  skrll revision 1.64
allow suspend with uftdi(4). it works fine.
 1.59.4.1.4.2  26-Jan-2017  skrll Sync with HEAD/nhusb
 1.59.4.1.4.1  06-Sep-2016  skrll First pass at netbsd-7 updated with USB code from HEAD
 1.62.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.67.4.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.67.4.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.67.4.1  10-Jun-2019  christos Sync with HEAD
 1.70.2.1  28-Apr-2024  martin Pull up following revision(s) (requested by maya in ticket #1837):

sys/dev/usb/uftdi.c: revision 1.78
sys/dev/usb/usbdevs: revision 1.815

Add some USB serial adapters
From Cameron Williams in PR kern/58127

Add support for a range of USB serial adapters
From Cameron Williams in PR kern/58127
 1.74.6.2  22-Mar-2021  thorpej Audit CFARG_IATTR in config_found() calls, and remove it in situations
where the interface attribute is not ambiguous.
 1.74.6.1  22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.75.8.1  04-Aug-2021  thorpej Adapt to CFARGS().
 1.76.6.3  28-Apr-2024  martin Pull up following revision(s) (requested by maya in ticket #679):

sys/dev/usb/uftdi.c: revision 1.78
sys/dev/usb/usbdevs: revision 1.815

Add some USB serial adapters
From Cameron Williams in PR kern/58127

Add support for a range of USB serial adapters
From Cameron Williams in PR kern/58127
 1.76.6.2  28-Apr-2024  martin Pull up following revision(s) (requested by thorpej in ticket #676):

sys/dev/usb/uftdi.c: revision 1.79

Add a match quirk to prevent matching any interface on SiPEED FPGA
development boards (e.g. Tang Nano 9K). The FT2232s on these boards
are wired up only for JTAG.
 1.76.6.1  16-Apr-2024  martin Pull up following revision(s) (requested by thorpej in ticket #649):

sys/dev/usb/uftdi.c: revision 1.77
share/man/man4/ugen.4: revision 1.39
sys/dev/usb/ugen.c: revision 1.176
sys/dev/usb/usbdevices.config: revision 1.43

Define a "flags 1" config directive for ugenif, which is similar to ugen's,
but rather forces the ugenif to match at the *lowest* match priority rather
than the highest. This allows ugenif to claim only otherwise unclaimed
interfaces.

Add a "match quirk" mechanism to the uftdi driver that allows it to
selectively reject individual interfaces based on the combination of
- Vendor ID
- Product ID
- Interface number
- Vendor string
- Product string

This is necessary[*] to allow some devices that would otherwise match
uftdi (and thus instantiate a ucom) to be matched by ugenif instead,
which is required to make the device available to libusb1.

[*] ...due to a deficiency in the USB stack that does not provide a
mechanism for a user-space driver to claim a device from a kernel driver
and then return it back at a later time.

Use this new match quirk mechanism to reject "interface 1" of the
FTDI 2232C-based Tigard debug board; On this board, "interface 0"
is brought out to regular TTL-level UART pins, but "interface 1" is
brought out to SWD and JTAG headers, and is really only useful when
used with something like openocd. Because the FTDI 2232C on this board
just uses the standard FTDI vendor and product IDs, it can only be
distinguished by the strings, which cannot be specified usbdevices.config,
thus necessitating the match quirk entry (that works in combination
with the ugenif entry added in usbdevices.config).
 1.79.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed