History log of /netbsd-current/sys/dev/usb/files.usb
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.179 20-Jul-2023 mrg

various debug updates for some usb drivers

- several new *_DEBUG_DEFAULT options that allow usb debug values to
be set to a default that is non-zero:
EHCI_DEBUG_DEFAULT, UGEN_DEBUG_DEFAULT, URTWN_DEBUG_DEFAULT,
UMS_DEBUG_DEFAULT, and USB_DEBUG_DEFAULT
- ugen debug uses fewer usbhist lines for the same info
- ums.c converted from printf() to usbhist


Revision tags: netbsd-10-base bouyer-sunxi-drm-base
# 1.178 30-Jun-2022 macallan

a driver for Wacom Intuos drawing tablets, from Yorick Hardy
this has been sitting in my tree long enough and works fine with the hardware
I have access to


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
# 1.177 29-Jun-2021 nia

Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
# 1.176 13-Jul-2020 mrg

branches: 1.176.6;
mark USBNET_DEBUG as a defflag that depends on USB_DEBUG.


# 1.175 16-May-2020 maya

Remove uyap, USB YAP phone firmware loader.

And the associated ezload EZ-USB code, which is only used by uyap.
It could theoretically be used by other drivers, but none of them are
in tree.

I suspect that this device isn't in use, as phone technology has improved
a lot since 2001 when uyap(4) was added to the tree.

Proposed with no objections on netbsd-users on 13 April 2020


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.174 13-Apr-2020 jdolecek

remove obsolete support for ISD-ATA umass(4) adapters


# 1.173 12-Apr-2020 simonb

Add uxrcom driver for Exar XR21V141x USB serial adapters. Based in part
on the OpenBSD single-port XR21V1410 uxrcom driver, but adds support
for multi-port chipsets and uses the common umodem framework instead of
being a standalone driver.

Thanks to skrll@ for much USB clue and mrg@ for financing the
development of this driver.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.172 09-Feb-2020 maya

branches: 1.172.4;
Remove trace of uyurex. Pointed out by maxv, thanks!


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.178 30-Jun-2022 macallan

a driver for Wacom Intuos drawing tablets, from Yorick Hardy
this has been sitting in my tree long enough and works fine with the hardware
I have access to


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
# 1.177 29-Jun-2021 nia

Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
# 1.176 13-Jul-2020 mrg

branches: 1.176.6;
mark USBNET_DEBUG as a defflag that depends on USB_DEBUG.


# 1.175 16-May-2020 maya

Remove uyap, USB YAP phone firmware loader.

And the associated ezload EZ-USB code, which is only used by uyap.
It could theoretically be used by other drivers, but none of them are
in tree.

I suspect that this device isn't in use, as phone technology has improved
a lot since 2001 when uyap(4) was added to the tree.

Proposed with no objections on netbsd-users on 13 April 2020


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.174 13-Apr-2020 jdolecek

remove obsolete support for ISD-ATA umass(4) adapters


# 1.173 12-Apr-2020 simonb

Add uxrcom driver for Exar XR21V141x USB serial adapters. Based in part
on the OpenBSD single-port XR21V1410 uxrcom driver, but adds support
for multi-port chipsets and uses the common umodem framework instead of
being a standalone driver.

Thanks to skrll@ for much USB clue and mrg@ for financing the
development of this driver.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.172 09-Feb-2020 maya

branches: 1.172.4;
Remove trace of uyurex. Pointed out by maxv, thanks!


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.177 29-Jun-2021 nia

Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.176 13-Jul-2020 mrg

mark USBNET_DEBUG as a defflag that depends on USB_DEBUG.


# 1.175 16-May-2020 maya

Remove uyap, USB YAP phone firmware loader.

And the associated ezload EZ-USB code, which is only used by uyap.
It could theoretically be used by other drivers, but none of them are
in tree.

I suspect that this device isn't in use, as phone technology has improved
a lot since 2001 when uyap(4) was added to the tree.

Proposed with no objections on netbsd-users on 13 April 2020


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.174 13-Apr-2020 jdolecek

remove obsolete support for ISD-ATA umass(4) adapters


# 1.173 12-Apr-2020 simonb

Add uxrcom driver for Exar XR21V141x USB serial adapters. Based in part
on the OpenBSD single-port XR21V1410 uxrcom driver, but adds support
for multi-port chipsets and uses the common umodem framework instead of
being a standalone driver.

Thanks to skrll@ for much USB clue and mrg@ for financing the
development of this driver.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.172 09-Feb-2020 maya

branches: 1.172.4;
Remove trace of uyurex. Pointed out by maxv, thanks!


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.176 13-Jul-2020 mrg

mark USBNET_DEBUG as a defflag that depends on USB_DEBUG.


# 1.175 16-May-2020 maya

Remove uyap, USB YAP phone firmware loader.

And the associated ezload EZ-USB code, which is only used by uyap.
It could theoretically be used by other drivers, but none of them are
in tree.

I suspect that this device isn't in use, as phone technology has improved
a lot since 2001 when uyap(4) was added to the tree.

Proposed with no objections on netbsd-users on 13 April 2020


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.174 13-Apr-2020 jdolecek

remove obsolete support for ISD-ATA umass(4) adapters


# 1.173 12-Apr-2020 simonb

Add uxrcom driver for Exar XR21V141x USB serial adapters. Based in part
on the OpenBSD single-port XR21V1410 uxrcom driver, but adds support
for multi-port chipsets and uses the common umodem framework instead of
being a standalone driver.

Thanks to skrll@ for much USB clue and mrg@ for financing the
development of this driver.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.172 09-Feb-2020 maya

branches: 1.172.4;
Remove trace of uyurex. Pointed out by maxv, thanks!


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.175 16-May-2020 maya

Remove uyap, USB YAP phone firmware loader.

And the associated ezload EZ-USB code, which is only used by uyap.
It could theoretically be used by other drivers, but none of them are
in tree.

I suspect that this device isn't in use, as phone technology has improved
a lot since 2001 when uyap(4) was added to the tree.

Proposed with no objections on netbsd-users on 13 April 2020


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.174 13-Apr-2020 jdolecek

remove obsolete support for ISD-ATA umass(4) adapters


# 1.173 12-Apr-2020 simonb

Add uxrcom driver for Exar XR21V141x USB serial adapters. Based in part
on the OpenBSD single-port XR21V1410 uxrcom driver, but adds support
for multi-port chipsets and uses the common umodem framework instead of
being a standalone driver.

Thanks to skrll@ for much USB clue and mrg@ for financing the
development of this driver.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.172 09-Feb-2020 maya

branches: 1.172.4;
Remove trace of uyurex. Pointed out by maxv, thanks!


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.174 13-Apr-2020 jdolecek

remove obsolete support for ISD-ATA umass(4) adapters


# 1.173 12-Apr-2020 simonb

Add uxrcom driver for Exar XR21V141x USB serial adapters. Based in part
on the OpenBSD single-port XR21V1410 uxrcom driver, but adds support
for multi-port chipsets and uses the common umodem framework instead of
being a standalone driver.

Thanks to skrll@ for much USB clue and mrg@ for financing the
development of this driver.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.172 09-Feb-2020 maya

Remove trace of uyurex. Pointed out by maxv, thanks!


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.173 12-Apr-2020 simonb

Add uxrcom driver for Exar XR21V141x USB serial adapters. Based in part
on the OpenBSD single-port XR21V1410 uxrcom driver, but adds support
for multi-port chipsets and uses the common umodem framework instead of
being a standalone driver.

Thanks to skrll@ for much USB clue and mrg@ for financing the
development of this driver.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.172 09-Feb-2020 maya

Remove trace of uyurex. Pointed out by maxv, thanks!


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.172 09-Feb-2020 maya

Remove trace of uyurex. Pointed out by maxv, thanks!


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.171 03-Feb-2020 maya

Remove more urio(4) traces.

Pointed out by maxv, thanks.


# 1.170 03-Feb-2020 kre

urio(4) has gone - remove it from here as well, so any kernel config
files that reference it will fail to configure, rather than later
failing to build.


Revision tags: ad-namecache-base2 ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


Revision tags: ad-namecache-base1
# 1.169 17-Jan-2020 maya

Remove uyurex(4).

This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.


Revision tags: ad-namecache-base phil-wifi-20191119
# 1.168 20-Sep-2019 mrg

branches: 1.168.2;
add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.168 20-Sep-2019 mrg

add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd. usbnet version loses about 40% of code.


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

branches: 1.156.2;
Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.167 23-Aug-2019 mrg

aue depends upon usbnet


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.166 18-Aug-2019 mrg

update usbnet slight:
- drivers that want to use if_input() will also set _if_input. for
now, avoid attaching a per-cpu queue for them. use if_initialize()
and if_register().
- when stopping pipes, don't give up after the first failure, but
keep the first failure error for return and keep going
- if 0 a KASSERT() in usbnet_init_rx_tx(). there's a path via
if_mcast_op() that can have the ifnet unlocked today..
- in usbnet_watchdog(), abort the pipe instead of faking tx
completion. avoids issues with devices with more than one tx
descriptor, as well as avoiding triggering usb asserts.

with these, upl(4) port to usbnet(9) now works. (would be a version
bump, but upl(4) and the unported umb(4) are the only consumers that
would care.)


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.165 16-Aug-2019 mrg

kue now depends upon usbnet.


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.164 15-Aug-2019 mrg

port cue(4), mue(4) and url(4) to usbnet(9). diffstat says:

8 files changed, 911 insertions(+), 3087 deletions(-)


# 1.163 11-Aug-2019 skrll

Convert smsc_dbg_printf to usbhist


# 1.162 09-Aug-2019 mrg

switch urndis(4) to usbnet. thanks to maya@ for testing and helping
fix the few issues in the conversion.


# 1.161 07-Aug-2019 skrll

Convert udav(4) to usbnet. Based on a diff from mrg@


# 1.160 07-Aug-2019 skrll

usmsc needs usbnet


# 1.159 06-Aug-2019 mrg

mark axe(4) and ure(4) as needing usbnet


# 1.158 31-Jul-2019 martin

Make cdce depend on usbnet too


# 1.157 31-Jul-2019 mrg

introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.156 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2; 1.150.4;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.156 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.155 07-May-2019 mrg

obsolete moscom(4). it was never in any default configs, did
not work for some cases.

umcs(4) supports everything it does plus one additional chipset,
has been in default configurations since netbsd 7.


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

branches: 1.154.2;
Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


Revision tags: isaki-audio2-base
# 1.154 06-Feb-2019 rin

Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.153 24-Oct-2018 jdolecek

only include umass_isdata.c if atabus present, and likewise ata_subr.c


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base
# 1.152 25-Aug-2018 rin

Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.


# 1.151 31-Jul-2018 khorben

Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.150 05-Mar-2018 ws

branches: 1.150.2;
Fix last:

Since config(1) could not distinguish between device and
interface attachments, it was generating only the latter.
Thus devices without their own driver wouldn't match the
ugen driver anymore.

Fix this by using a different device name for interface attachments.


# 1.149 20-Feb-2018 ws

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.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

branches: 1.145.2;
split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.148 10-Dec-2017 bouyer

Factor out bus-independant HID code so that it can be shared by USB, bluetooth
and i2c.
dev/usb/ukbdmap.c is renamed to dev/hid/hidkbdmap.c
dev/usb/hid.[ch] moved to dev/hid/
usage pages moved from dev/usb/usbhid.h moved to dev/hid/hid.h,
and updated with OpenBSD entries.
bus-independant code moved from dev/usb/ums.c to dev/hid/hidms.c
(the same should be done for keyboard and touchpad drivers)

Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.147 19-Oct-2017 jmcneill

Add driver for Broadcom 802.11a/b/g/n/ac USB wireless devices, based on
the OpenBSD bwfm(4) driver.


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.146 31-Aug-2017 jmcneill

Instead of a Linux keymap, convert Linux event codes to USB scan codes and
use the ukbd keymaps instead.


Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.145 24-May-2017 christos

split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.145 24-May-2017 christos

split the mode switch part of the u3g driver into a separate file so that
others can use it.


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.144 20-May-2017 pgoyette

Fix the USBVERBOSE stuff so it does not get included in the build if
there are no USB devices or controllers.

Without this change, a kernel with no USB devices but with USBVERBOSE
defined in the configuration file will include the usb_verbose.c file,
but will fail to link due to undefined symbols.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.143 17-Apr-2017 riastradh

New rndsource driver for Araneus Alea II TRNG USB devices.

Disabled by default in x86/GENERIC and usbdevices.config pending
review and testing without rump ugenhc in the way, but enabled in
x86/ALL for compile-testing.

(Hi gson! Finally found a round tuit in my pocket, next to a certain
rectangular one.)


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

branches: 1.142.2;
Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

branches: 1.141.2;
remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


Revision tags: nick-nhusb-base-20161204
# 1.142 25-Nov-2016 skrll

Remove UZCOM_DEBUG


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.141 30-Jun-2016 christos

remove XXX


# 1.140 23-Jun-2016 skrll

Fix UVMHIST builds for kernels that don't include usb


Revision tags: nick-nhusb-base-20160529
# 1.139 26-Apr-2016 skrll

First pass at adapting SLHCI_DEBUG to USBHIST


# 1.138 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


Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.137 29-Oct-2015 mrg

eliminate USBHIST as a define/option. it was entangled with USB_DEBUG
and only referenced a handful of times. rename any usage in configs.

fixes recent build problems i introduced with the previous files.usb
change.


# 1.136 27-Oct-2015 mrg

update some dependancies:

USB_DEBUG doesn't depend upon other options.
USBHIST depends upon USB_DEBUG and KERNHIST.

now i can build a kernel with just one of either USB_DEBUG or USBHIST
and the right thing happens.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.135 10-Oct-2014 uebayasi

branches: 1.135.2;
Make usb_dma & usbverbose independent attributes.


# 1.134 12-Sep-2014 skrll

Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@


# 1.133 12-Aug-2014 skrll

Add XHCI_DEBUG. From Takahiro HAYASHI with tweaks from me.

One day someone(tm) will tidyup USB debug stuff.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.132 05-Apr-2014 khorben

branches: 1.132.2;
Fixed a typo


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.131 16-Mar-2014 martin

branches: 1.131.2;
Add umcs(4) - a driver for moschip 78{1,2,4}0 based multiport serial
adapters. Ported from FreeBSD.


# 1.130 26-Oct-2013 nonaka

Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.129 28-May-2013 kiyohara

branches: 1.129.2;
Add KingSun/DonShine IRDA dongle.


# 1.128 30-Mar-2013 christos

new devices


Revision tags: agc-symver-base yamt-pagecache-base8
# 1.127 13-Jan-2013 jakllsch

Add slurm(4), a radio(4) driver for USB FM radio modules based on the
Silicon Labs reference design.


# 1.126 09-Jan-2013 skrll

Add usmsc(4) - a driver for the SMSC95XX USB ethernet devices.

This is a port of the OpenBSD driver which itself was a port of the
FreeBSD driver.

sorry mrg. jared made me do it.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.125 01-Sep-2012 jakllsch

branches: 1.125.2;
Rename RT2500USB driver to ural(4) as it was originally in OpenBSD,
as ural(4) and ral(4) do not actually share any code.

Enable ural(4) in hpcarm WZERO3 kernel too, as it will now build.

Fixes PR#43520.


# 1.124 04-Aug-2012 riastradh

Add uatp(4), a driver for USB Apple trackpads.

This is a work-in-progress driver for USB trackpads found in Apple
laptops since 2005, theoretically covering more models than pbms(4)
and supporting more features. However, the motion smoothing and
acceleration formulae are still pretty sketchy, and I have tested
this only on one model of MacBook from 2006. Feedback welcome.

Should the smooting, acceleration, tapping, &c., be done in userland?
Probably, but we don't have the necessary interface for that to work
well yet -- wsmouse isn't enough as is.


Revision tags: jmcneill-usbmp-base10
# 1.123 30-May-2012 nonaka

Add a driver for Ralink Technology RT2700U/RT2800U/RT3000U USB IEEE
802.11a/b/g/n wireless network devices, ported from OpenBSD by FUKAUMI Naoki,
arranged by me.


# 1.122 29-May-2012 christos

Driver for Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter, from
OpenBSD by jmcneill.


Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
# 1.121 25-Mar-2012 nonaka

Added urtwn(4), a driver for Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network devices.


Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.120 13-Feb-2012 wiz

branches: 1.120.2;
Add missing dependency for uts.
From Pierre Pronchery <khorben@defora.org> in PR 45872.


# 1.119 17-Jan-2012 christos

PR/45850: Pierre Pronchery: USB multi-touch panels are not supported


# 1.118 14-Jan-2012 jakllsch

Rework uslsa(4) based on publicly-available Silicon Labs AN571 document.


# 1.117 31-Dec-2011 christos

Add a tiny driver that sends the magic command to an ipad instructing it
to charge.


Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.116 03-Nov-2011 macallan

branches: 1.116.4;
only build gdium Fn support with options GDIUM_KEYBOARD_HACK


Revision tags: yamt-pagecache-base
# 1.115 02-Oct-2011 jmcneill

branches: 1.115.2;
allow attaching an iic to auvitek if AUVITEK_I2C_DEBUG is defined, and
change the auvitek i2c lock from IPL_VM to IPL_NONE


# 1.114 23-Aug-2011 christos

defopt UMASS_DEBUG


# 1.113 30-Jul-2011 jmcneill

remove xboxcontroller; use the uhidev driver instead


# 1.112 23-Jul-2011 jakllsch

Add driver to load Atheros AR3011 USB Bluetooth interface firmware.


# 1.111 23-Jul-2011 jakllsch

Replace spaces with tabs, to be more consistent.


# 1.110 20-Jul-2011 jakllsch

Add urndis(4).


# 1.109 19-Jul-2011 jmcneill

add driver for SMK eHome Infrared Transceiver


# 1.108 11-Jul-2011 jmcneill

add emdtv(4), a dtv(4) driver for Empia Technology EM28XX DTV devices


# 1.107 10-Jul-2011 jmcneill

add auvitek_dtv.c


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.106 09-Jun-2011 matt

Move EHCI_DEBUG, OHCI_DEBUG, UHCI_DEBUG, USB_DEBUG, UHUB_DEBUG to opt_usb.h
(ya dependencies).
Cleanup usb_mem.c a little more and add block tracking code. Help find
corruption problems.
Comment out the SPEED check for ETTF. XXX why doesn't that work right?


Revision tags: cherry-xenmp-base
# 1.105 20-Mar-2011 tsutsui

branches: 1.105.2;
Add usb_dma attribute for DMA capable USB host controllers
and specify that usb_dma attribute to dev/usb/usb_mem.c.

usb_mem.c uses bus_dma(9) for DMA memory allocation,
but non-DMA capable USB host controllers like slhci(4)
doesn't need them at all, and some ports don't bother to
prepare MD bus_dma(9) implementation (yet).

Discussed on current-users
http://mail-index.NetBSD.org/current-users/2011/03/13/msg015995.html
and usb_dma attribute is suggested by bouyer@.
Tested by kiyohara@ on mmeye with slhci at pcmcia.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.104 27-Dec-2010 jmcneill

branches: 1.104.2;
add au8522, xc5k, auvitek config glue


# 1.103 15-Dec-2010 matt

Add a workaround (hopefully temporary) for corrupted usb fragments on powerpc.
With this in effect, USB is now usable on some powerpc platforms again.
Basically this prevents the DMA portion of the fragment ever overlapping the
usb_frag_hdr which is enough to solve the problem. To enable this, add

options USB_FRAG_DMA_WORKAROUND

to your config file.
Switch from malloc to kmem.


Revision tags: uebayasi-xip-base4
# 1.102 03-Nov-2010 christos

add otus


Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.101 01-Aug-2010 kiyohara

Add attribute sysmon_envsys to device uthum.


# 1.100 04-Jul-2010 tsutsui

Add upgt(4), a driver for Conexant/Intersil PrismGT SoftMAC USB
IEEE 802.11b/g WLAN device, ported from OpenBSD by FUKAUMI Naoki:
http://mail-index.NetBSD.org/current-users/2010/05/28/msg013570.html
Slightly modified by me to use recently added config_mountroot(9)
to defer some device initialization until mountroot for firmload(9).

Tested on Sharp W-ZERO3 WS003SH with internal WLAN.

Note currently we cannot redistribute firmware files for upgt(4) so
they have to be downloaded and copied into /libdata/firmware/upgt manually.
See upgt(4) man page about firmware details.


# 1.99 29-May-2010 martin

Add a driver for ArkMicroChips 3116 serial devices, used in some Nokia
phone cables and in cheap stand alone usb<->serial devices. From OpenBSD.

The hardware is crap, avoid it if possible. There is no documentation and
even the vendor supllied win32 driver gets it wrong.

This driver mostly works, but you can't send a break.


# 1.98 29-May-2010 pgoyette

Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.


Revision tags: uebayasi-xip-base1
# 1.97 11-Mar-2010 enami

branches: 1.97.2;
Port uyurex(4) from OpenBSD. There is some XXX but works enough to
play with it.


Revision tags: yamt-nfs-mp-base9
# 1.96 06-Mar-2010 plunky

Add uhso(4) driver and manpage for Option N.V. Wireless WAN modems


Revision tags: uebayasi-xip-base
# 1.95 06-Feb-2010 tonio

branches: 1.95.2;
Add uthum(4) driver from openbsd, adapted to handle both
TEMPerHUM and TEMPer devices


# 1.94 07-Jan-2010 martin

Split the u3g driver into two parts: u3ginit attaches to those devices
that only come as a umass device in the default configuration and
forces them to reinitialize in 3D mode and detach.
The u3g part attaches to individual interfaces for the 3G functionality,
leaving the umass interface(s) for that driver.
With this change I can use the MMC card in my Huawey stick (as well as
the integrated windows driver CD, which of course is pretty useless) and
the 3G modem at the same time.
Fixes PR 42577.
Code contributed anonymously, minor tweaks (and all bugs) by me.


# 1.93 23-Dec-2009 pooka

unifdef -D UGEN_BULK_RA_WB

Default behaviour unchanged, the feature must still be explicitly
enabled for a ugen fd.


Revision tags: matt-premerge-20091211
# 1.92 30-Nov-2009 tsutsui

Add a driver for DisplayLink DL-1x0/1x5 based USB LCDs and USB-VGA adaptors.
Ported by FUKAUMI Naoki from OpenBSD with many modification.
No particular comments (except from me) on tech-kern@.

There are still many TODO even in MI wscons(4) API to handle this device:

* No detach function for wsdisplay(9).
Unpluging a device causes a panic. (should be trivial?)

* ioctl() for X server support is currently commented out. ("notyet")
OpenBSD allows device depedent ioctl()s and they introduced
UDLIO_DAMAGE ioctl for the damage extension ops of X servers for udl(4).
Before blindly pulling such ioctl(), probably we should discuss
how such specific operations should be handled in MI wscons(4) API.

* Screen text of wsemul tty could be mangled during large scroll ops.
All tty output operations are invoked via ttstart() with the giant
tty_lock mutex held, so we can't call cv_wait(9) to wait resources
for data xfers via usbdi(9).h, then text output is silently discarded
on resource shortage. To handle this without tty_lock reorganization,
we have to change wsdisplay(9) APIs (especially wsdisplaystart()) to
return a number of actually handled characters as OpenBSD does, but
it may require whole API changes around child rasops(9) etc.

* No MI API definition to convert mmap(9) cookie to physical address.
The conversion is required to create a cookie which will be passed to
pmap_phys_address(9) in uvm/uvm_device.c:udv_fault(). Most other
drivers use bus_dmamem_mmap(9) or bus_space_mmap(9), but udl(4) uses
kmem_alloc(9)'ed memory for bitmap data.
Furthermore, pmap(9) man page says about pmap_phys_address(9):

"This function is provided to accommodate systems which have
physical address spaces larger than can be directly addressed
by the platform's paddr_t type. The existence of this function is
highly dubious, and it is expected that this function will be
removed from the pmap API in a future release of NetBSD."

As the man page says we have already had split paddr_t and vaddr_t,
so it's time to remove such old ugly cookie and change all mmap(4)
functions (mostly in MD bus_dma(9) and bus_space(9) APIs) to return
simple physical address in paddr_t?

* We need proper device names for wsdisplay1 (and more devices).
Currently wsdisplay0 uses ttyE0 through ttyE253 (minor 0 to 253)
for screens, ttyEstat (254) for status, and ttyEcfg (255) for config.
The next wsdisplay1 will use 256 through 509 for screens, 510 for stat,
and 511 for config but what names should we use for them? ttyFxxx?

* How to handle multiple sets of wskbd/wsdisplay on a single machine.
rc.d/wscons doesn't provide method to specify wscons control devices.
There is no proper interface to specify which keyboard should be connected
to which wsdisplay, etc.

* And maybe more...


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
# 1.91 19-Jun-2009 mrg

port the MOSCHIP MCS7703 driver from openbsd, based on changes between
openbsd uvscom and netbsd uvscom as a guide.

XXX: it only attaches one of the two ucom's on this device currently.

XXX: needs moscom.4.


Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 haad-dm-base mjf-devfs2-base
# 1.90 10-Oct-2008 joerg

branches: 1.90.4; 1.90.8; 1.90.12; 1.90.16;
Add u3g(4) driver from FreeBSD. This driver provides better support for
3G datacards than ugensa and will replace the latter for the supported
devices.


# 1.89 19-Sep-2008 jmcneill

Remove qcm driver definition that slipped in accidentally on the previous
commit, pointed out by cegger


Revision tags: wrstuden-revivesa-base-3
# 1.88 18-Sep-2008 jmcneill

defflag UVIDEO_DEBUG


# 1.87 09-Sep-2008 jmcneill

USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.


Revision tags: wrstuden-revivesa-base-2
# 1.86 06-Sep-2008 jmcneill

Add driver for the Sony PLAYSTATION(R) Eye USB webcam.


# 1.85 31-Jul-2008 drochner

-ubsa needs to be attached as whole device on USB, because it sets
the configuration. The match/attach code was assuming whole-device
attach args all the time.
-Use the first (ie index 0) configuration for ubsa -- it makes the
code work in at least one case (PR kern/39211 by Frank Wille), and
there is no indication that an alternative configuration would
be needed. (I've admittedly never seen a usb device with more than
one configuration.)
This fixes mistakes when uhmodem support was added, and the changes were
not tested with a Huawei device yet. So please test if you can.


Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
# 1.84 26-May-2008 christos

branches: 1.84.4;
Add uberry, a stub driver for RIM BlackBerry devices that can only be used
to charge a BlackBerry on a USB port.


# 1.83 25-May-2008 drochner

-make the list of USB child devices a (possibly sparse) array rather
than a zero-terminated list; this makes the code simpler and also
hopefully fixes the recent "childdet" botch, see PR kern/38528
-handle the root hub specially a bit earlier, this allows to kick out
the "submatch" functions completely which needed to second-guess
from the port number (where "0" meant root hub")
(we could handle the root hub specially even earlier, but as done
now big parts of the hub emulation code are exercised regularely,
this would bitrot otherwise)


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
# 1.82 21-Jan-2008 ichiro

branches: 1.82.6; 1.82.8; 1.82.10; 1.82.12;
add full support device driver for Huawei E220 wireless modem

PR/37692 from Yojiro UO
---
uhmodem: device driver for huawei 3G wireless modem

* what it is?

A device driver for huawei 3G wireless modem, E220 and its valiations.

The devices are very simuler to ubsa device, but they need special care
to use as modem device.
This patch introduce "uhmodem (USB Huawei modem)" for the devices.
A uhmodem device has two com devices and one USB mass strage device.
The driver enable to use all of them.

* dmesg:
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
uhmodem0: mass storage only mode, reattach to enable modem
uhmodem0: at uhub0 port 1 (addr 2) disconnected
uhmodem0 detached
uhmodem0 at uhub0 port 1 configuration 1 interface 0
uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
ucom0 at uhmodem0 portno 0: modem
ucom1 at uhmodem0 portno 1: monitor
umass0 at uhub0 port 1 configuration 1 interface 2
umass0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
cd0 at scsibus0 target 0 lun 0: <HUAWEI, Mass Storage, 2.31> cdrom removable


Revision tags: nick-csl-alignment-base5 bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.81 07-Sep-2007 plunky

branches: 1.81.6; 1.81.12;
move the HID processing defs to a higher context, since it is used by
bluetooth and USB code.


# 1.80 03-Sep-2007 tshiozak

add support for WinChipHead CH341/340 USB-Serial bridge.


Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
# 1.79 12-Jun-2007 kiyohara

branches: 1.79.2; 1.79.6; 1.79.8;
Oops.
It mistook to commit.
uath(4) not inport yet.


# 1.78 09-Jun-2007 kiyohara

Added OpenBSD's zyd(4) driver.
Supports ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device.


# 1.77 20-May-2007 dogcow

From PR kern/33496 - add uslsa(4), a CP210x USB-RS232 ucom driver.
After minor hacks, it compiles without problems; however, it's not been tested
with an actual device.


Revision tags: yamt-idlelwp-base8
# 1.76 11-May-2007 is

SigmaTels not-quite-UIRDA devices: STIr4116, STIr4220


# 1.75 06-May-2007 jnemeth

add firmload attribute to rum, thanks to Paul Goyette on current-users


Revision tags: thorpej-atomic-base
# 1.74 13-Mar-2007 drochner

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!


Revision tags: itohy-usb1-base ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.73 05-Jan-2007 jmcneill

branches: 1.73.2; 1.73.6; 1.73.8; 1.73.10;
Add device driver for Microsoft Xbox controller. Exposes itself as a
wsmouse device for now; easy enough to make it a joystick driver in the
future.

Mappings:
Left analog stick: Mouse movement
Right analog stick: Scroll wheel (4 directions)
A button: Left click
B button: Right click
X button: Middle click
Y button: injected to wsmouse as a fourth mouse button click


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.72 31-Oct-2006 joerg

branches: 1.72.2;
Add rum(4) for newer USB Ralink devices. Obtained from OpenBSD.
Special thanks to Sepherosa Ziehau for helping debugging USB issues.
Hook up rum(4) for i386 config files.


# 1.71 24-Oct-2006 drochner

clean up the USB attachment stuff a bit: use a dedicated interface
attribute ("usbdevif") to attach USB devices, be it a plain device or
a hub, and remove some strangeness caused by the former usb/uhub mess


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9
# 1.70 10-Sep-2006 plunky

branches: 1.70.2;
update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf


Revision tags: yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.69 19-Aug-2006 plunky

branches: 1.69.2;
The ubtbcmfw(4) driver fails to compile, as noted by PR kern/34219.

While it can be made to compile, the paradigm is not quite right because
it attempts to contact the filesystem during autoconfig which sometimes
causes a panic. Even if that was fixed, there is another potential problem
in that the driver tries/sleeps/tries/sleeps and the sleep could
theoretically sleep past the rc.d/btconfig stage and the controller
would remain unconfigured.

So, I have prepared a different method for loading the firmware to
Broadcom BCM2033 chip based devices. A package 'sysutils/bcmfw' will load
the firmware files via a ugen(4) device interface.

This update removes the ubtbcmfw(4) driver and adds a table to the ubt(4)
driver so that it will not attach to Broadcom BCM2033 based devices before
the firmware was loaded.

This fixes kern/34219


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.68 24-Jul-2006 gdt

branches: 1.68.2;
Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read
ahead and write behind, improving performance for the Universal
Software Radio Peripheral (USRP) used with GNU Radio.

Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is
unchanged unless the new ioctl is called.

This code was written by Joanne Mikkelson under funding from DARPA's
ACERT program.

ok'd by christos@, tested by Berndt Josef Wulf


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.67 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
# 1.66 03-Apr-2006 scw

branches: 1.66.2; 1.66.4;
Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.


Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.65 11-Dec-2005 christos

branches: 1.65.4; 1.65.6; 1.65.8; 1.65.10; 1.65.12;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.64 30-Jul-2005 skrll

Add a driver for Cypress microcontroller based USB serial adapters.

XXX hw flow control is not supported.


# 1.63 18-Jul-2005 augustss

Add uipaq(4). From OpenBSD.


# 1.62 01-Jul-2005 drochner

branches: 1.62.2;
add autoconf glue for the ralink wireless drivers, basically from
PR kern/30449, but changed so that pci/cardbus and usb devices
are all called "ral" to the user, so that code can be shared eventually


# 1.61 13-Jun-2005 cube

Provide a header for UKBD_LAYOUT. It makes more sense, and it avoids
quoting issues during the build process.

Reported and checked by spz@.


Revision tags: kent-audio2-base
# 1.60 15-Apr-2005 itohy

ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.


# 1.59 15-Apr-2005 itohy

Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.


Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base
# 1.58 24-Jan-2005 joff

branches: 1.58.6;
Add atu(4), Atmel 802.11b USB wifi dongle. From OpenBSD.


# 1.57 23-Jan-2005 elric

new driver: usb generic serial adapter.

approved by: augustss@netbsd.org (code)
christos@netbsd.org (driver name)


Revision tags: kent-audio1-beforemerge kent-audio1-base
# 1.56 23-Oct-2004 augustss

branches: 1.56.4;
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax
driver. Maybe because it actually works on with hardware besides mine? :)
So we switch to axe too.


# 1.55 22-Oct-2004 augustss

Add a driver for Communication Data Class Ethernet devices. From the very
prolific Bill Paul for FreeBSD, via OpenBSD.
XXX Untested, since I don't have any such devices.


# 1.54 12-Jun-2004 tsarna

Add calibration support to uep driver.
Untested, still need a userland utility to calibrate with.


# 1.53 24-May-2004 tsarna

"uep" a driver for USB eGalax touch-panels. These are commonly found on
Xenarc, Liliput, etc. small touchpanel LCD displays.

TODO:
- manpage
- calibration support (make hpc's tpcalib stuff more MI?)
- On i386 and other xfree-ish xservers, (currently-uncomitted) patches
are needed for X to honor wscons absolute mouse position events.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.52 08-Oct-2003 bouyer

branches: 1.52.4;
Following Matt Thomas's request, rename ata attribute to ata_hl, and
wdc_base to ata. We can now have
atabus* at ata?
in kernel config files.


# 1.51 22-Aug-2003 itojun

udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE


# 1.50 15-Feb-2003 augustss

branches: 1.50.2;
Check in some work-in-progress (not yet operational).


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge
# 1.49 08-Oct-2002 augustss

Add driver for Belkin (and other) serial adapter.
From FreeBSD.


Revision tags: gehenna-devsw-base kqueue-base
# 1.48 24-Aug-2002 augustss

Attach Bluetooth host controller driver (which has not been written) to
ubt device.


# 1.47 24-Aug-2002 augustss

Add needs-flag for ubtbcmfw.


# 1.46 23-Aug-2002 augustss

Add firmware downloader for BCM2033 (no firmware yet; waiting for OK
from Broadcom).


# 1.45 22-Aug-2002 augustss

A placeholder until we have a real Bluetooth driver.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.44 22-Apr-2002 augustss

branches: 1.44.2; 1.44.4;
Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.


# 1.43 28-Mar-2002 ichiro

add driver for Realtek RL8150L USB ethernet adapter

distribute from Shingo WATANABE <nabe@nabechan.org>


Revision tags: eeh-devprop-base
# 1.42 19-Mar-2002 augustss

Add driver for SUNTAC Slipper U VS-10U serial devices.
Written by Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. From FreeBSD.


Revision tags: newlock-base
# 1.41 09-Mar-2002 kent

Move sampling rate conversion functions to aurateconv.c.
Introduce "aurateconv" attribute for audio devices.
Add aurateconv to uaudio and auich.
(due to kern/15845 and kern/15848)


Revision tags: ifpoll-base
# 1.40 07-Jan-2002 drochner

"attach radio at radio":
using one word as both attribute and device doesn't work well,
radio.c is pulled in even with no such device in the configuration,
and the kernel doesn't link due to missing "radio_cd".
So call the attribute "radiodev" to avoid confusion.


# 1.39 03-Jan-2002 augustss

Add the ustir driver, for SigmaTel STIr4200 USB/IrDA Bridge.
Written by David Sainty <David.Sainty@dtsp.co.nz>.


# 1.38 02-Jan-2002 augustss

Add udsbr(4), a D-Link DSB-R100 FM radio (untested).


# 1.37 29-Dec-2001 augustss

Only pull in HID processing if a driver needs it.


# 1.36 28-Dec-2001 augustss

Introduce an extra driver level for HID devices, uhidev. This uhidev driver
attaches to the hub, and HID drivers (ums, ukbd, and uhid) attach to
uhidev. The reason for this change is that some HID devices report multiple
components (like a keyboard and a mouse) using the same interface, but with
different report identifiers. The report identifier can be specified with
a locator for the HID drivers.
Furthermore, change the ukbd driver to handle other formats than the boot
protocol.


# 1.35 24-Dec-2001 augustss

Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.


# 1.34 24-Dec-2001 augustss

Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.


# 1.33 17-Dec-2001 gehenna

Introduce the new umass quirk table.

Discussed with augustss.


# 1.32 12-Dec-2001 augustss

Add USB-IrDA bridge.
Needs more testing.


# 1.31 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.30 13-Apr-2001 augustss

branches: 1.30.2;
Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.


# 1.29 28-Mar-2001 ichiro

support USB-RS232 Converter of Magic Control Technology Corp.
More information about this product found at http://www.mct.com.tw


# 1.28 24-Feb-2001 lukem

branches: 1.28.2;
whitespace police


# 1.27 30-Jan-2001 tshiozak

initial commit of USB midi driver.
- I tested only ROLAND UM-1 and YAMAHA UX256.
These are not conforming to USB-MIDI spec, however these are
similar to USB-MIDI.
- Since I've not yet seen the "genuine" USB-MIDI device,
I cannot test such devices although I wrote the codes for it.
TODO:
- clean up the codes.
- umidi(4) manpage.
- /dev/rmidi? is working well, but /dev/music seems not working correctly.


# 1.26 23-Jan-2001 ichiro

driver for Prolific PL2303 serial adapter.
I/O DATA USB-USAQ2 work.


# 1.25 11-Jan-2001 augustss

Add a driver for HP5300 which uses a homebrew SCSI-over-USB protocol.
Furthermore, it uses Avisions scanner-over-SCSI protocol (but that's
not visible in the driver).
Thanks to Lloyd Parkes for testing and debugging and to Jukka Marin for
testing.
XXX This driver should be extended to handle Microtek scanners as well.


# 1.24 02-Jan-2001 augustss

Add a transient driver for the YAP phone that downloads firmware into
the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).

XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.


# 1.23 02-Jan-2001 augustss

Add subroutines to download firmware into Cypress (formerly Anchor)
EZ-USB chips.


# 1.22 23-Sep-2000 augustss

Add USB scanner driver.

XXX Not tested yet.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.21 14-Apr-2000 augustss

Add driver for FTDI FT8U100AX serial adapter.
XXX This is still experimental and needs more work.


# 1.20 14-Apr-2000 augustss

Add a driver for the Rio 500 MP3 player.
XXX This driver might go away again, since you can do it all with ugen.
XXX But this driver is compatible with the Linux driver so there are
XXX programs for it.


# 1.19 09-Apr-2000 augustss

Add driver for Prolific PL2301/PL2302 host-to-host adapter.


# 1.18 02-Apr-2000 augustss

Allow atapibus to be attached to umass.


# 1.17 30-Mar-2000 augustss

Add driver for the Handspring Visor.

This code probably doesn't work, because it has not been tested.
Despite several pleas for testing there doesn't seem to be any Visor owners
out there. Perhaps it will get tested if it's in -current?

Anyway, the code can at least serve as a template for how to make a USB driver
that shows up as a tty.


# 1.16 14-Feb-2000 augustss

Avoid linker error if no PHY is attached.


Revision tags: chs-ubc2-newbase
# 1.15 25-Jan-2000 augustss

Make it compile even if you leave out the ucom attachment.


# 1.14 25-Jan-2000 augustss

Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.


# 1.13 16-Jan-2000 augustss

Add some files for ethernet adapters (the files are not there yet).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.12 12-Sep-1999 augustss

branches: 1.12.2;
Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.


# 1.11 09-Sep-1999 augustss

Change the internal API to allow DMA buffers to be pre-allocated by
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.

Add isochronous support to the UHCI driver (not for OHCI yet).


# 1.10 23-Aug-1999 augustss

Remove some unneeded needs-flag.


# 1.9 16-Aug-1999 augustss

Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.


Revision tags: chs-ubc2-base
# 1.8 30-Jun-1999 augustss

Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.


# 1.7 16-May-1999 augustss

Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)


# 1.6 06-May-1999 thorpej

Add needs-flag to the ukbd device.


Revision tags: netbsd-1-4-base
# 1.5 10-Jan-1999 augustss

branches: 1.5.2;
Add ukbdmap.c.


Revision tags: kenh-if-detach-base
# 1.4 03-Dec-1998 augustss

Use umodem as the modem driver stub.


# 1.3 02-Dec-1998 augustss

Add stub for a modem driver.


Revision tags: chs-ubc-base eeh-paddr_t-base
# 1.2 25-Jul-1998 augustss

Add wscons attachments for USB keyboard.


# 1.1 12-Jul-1998 augustss

Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers