freebsd-dev/sys/modules
Alfred Perlstein eabe30fc9c Bring in USB4BSD, Hans Petter Selasky rework of the USB stack
that includes significant features and SMP safety.

This commit includes a more or less complete rewrite of the *BSD USB
stack, including Host Controller and Device Controller drivers and
updating all existing USB drivers to use the new USB API:

1) A brief feature list:

  - A new and mutex enabled USB API.

  - Many USB drivers are now running Giant free.

  - Linux USB kernel compatibility layer.

  - New UGEN backend and libusb library, finally solves the "driver
    unloading" problem. The new BSD licensed libusb20 library is fully
    compatible with libusb-0.1.12 from sourceforge.

  - New "usbconfig" utility, for easy configuration of USB.

  - Full support for Split transactions, which means you can use your
    full speed USB audio device on a high speed USB HUB.

  - Full support for HS ISOC transactions, which makes writing drivers
    for various HS webcams possible, for example.

  - Full support for USB on embedded platforms, mostly cache flushing
    and buffer invalidating stuff.

  - Safer parsing of USB descriptors.

  - Autodetect of annoying USB install disks.

  - Support for USB device side mode, also called USB gadget mode,
    using the same API like the USB host side. In other words the new
    USB stack is symmetric with regard to host and device side.

  - Support for USB transfers like I/O vectors, means more throughput
    and less interrupts.

  - ... see the FreeBSD quarterly status reports under "USB project"

2) To enable the driver in the default kernel build:

2.a) Remove all existing USB device options from your kernel config
file.

2.b) Add the following USB device options to your kernel configuration
file:

# USB core support
device          usb2_core

# USB controller support
device		usb2_controller
device		usb2_controller_ehci
device		usb2_controller_ohci
device		usb2_controller_uhci

# USB mass storage support
device		usb2_storage
device		usb2_storage_mass

# USB ethernet support, requires miibus
device		usb2_ethernet
device		usb2_ethernet_aue
device		usb2_ethernet_axe
device		usb2_ethernet_cdce
device		usb2_ethernet_cue
device		usb2_ethernet_kue
device		usb2_ethernet_rue
device		usb2_ethernet_dav

# USB wireless LAN support
device		usb2_wlan
device		usb2_wlan_rum
device		usb2_wlan_ral
device		usb2_wlan_zyd

# USB serial device support
device		usb2_serial
device		usb2_serial_ark
device		usb2_serial_bsa
device		usb2_serial_bser
device		usb2_serial_chcom
device		usb2_serial_cycom
device		usb2_serial_foma
device		usb2_serial_ftdi
device		usb2_serial_gensa
device		usb2_serial_ipaq
device		usb2_serial_lpt
device		usb2_serial_mct
device		usb2_serial_modem
device		usb2_serial_moscom
device		usb2_serial_plcom
device		usb2_serial_visor
device		usb2_serial_vscom

# USB bluetooth support
device		usb2_bluetooth
device		usb2_bluetooth_ng

# USB input device support
device		usb2_input
device		usb2_input_hid
device		usb2_input_kbd
device		usb2_input_ms

# USB sound and MIDI device support
device		usb2_sound

2) To enable the driver at runtime:

2.a) Unload all existing USB modules. If USB is compiled into the
kernel then you might have to build a new kernel.

2.b) Load the "usb2_xxx.ko" modules under /boot/kernel having the same
base name like the kernel device option.

Submitted by: Hans Petter Selasky hselasky at c2i dot net
Reviewed by: imp, alfred
2008-11-04 02:31:03 +00:00
..
3dfx
3dfx_linux
aac
accf_data
accf_dns Add an accept filter for TCP based DNS requests. It waits until the 2008-07-18 14:44:51 +00:00
accf_http
acpi
ae - Add driver for Attansic L2 FastEthernet controller found on 2008-10-03 10:31:31 +00:00
age
agp
aha Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
ahb Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
aic
aic7xxx
aio
amd
amr Add amr_cam module directory that was missed in the previous commit. 2008-11-03 04:13:27 +00:00
an Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
aout
apm
ar Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
arcmsr
arcnet
asmc
asr
ata This is the roumored ATA modulerisation works, and it needs a little explanation. 2008-10-09 12:56:57 +00:00
ath
ath_hal
ath_rate_amrr Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
ath_rate_onoe Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
ath_rate_sample Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
aue
auxio
axe
bce
bfe
bge
bios
bktr
bm
bridgestp
cam
canbepm
canbus
cardbus
cbb
cd9660
cd9660_iconv
cdce
ce Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
ciss
cm
cmx
coda
coda5
coff
coretemp
cp Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
cpuctl - Add cpuctl(4) pseudo-device driver to provide access to some low-level 2008-08-08 16:26:53 +00:00
cpufreq
crypto
cryptodev
cs
ctau Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
cue
cx Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
cxgb - Remove default NIC dependency on ulp headers 2008-09-24 01:19:08 +00:00
cyclic
dc
dcons
dcons_crom
de
digi Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
dpms Add a very simple dpms(4) driver that uses the VESA BIOS DPMS calls to 2008-08-23 21:00:40 +00:00
dpt
drm Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
dtrace
dummynet
ed
ehci Add modules for the HCI part of USB. This is convenient when having a UHCI 2008-10-09 19:22:00 +00:00
elink
em Change to build module with new directory tree 2008-07-30 22:05:06 +00:00
en
ep
esp
et Remove a file that is not used and does not exist. 2008-07-28 17:56:37 +00:00
ex
exca
ext2fs
fatm Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
fdc
fdescfs
fe
firewire
firmware
fxp
gem
geom
glxsb Add glxsb(4) driver for the Security Block in AMD Geode LX processors (as 2008-08-09 14:52:31 +00:00
hatm Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
hifn Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
hme
hpfs
hptiop
hptmv
hptrr
hwpmc
i2c
ibcs2
ichwd
ida
ie
if_bridge
if_disc
if_edsc
if_ef
if_faith
if_gif
if_gre
if_lagg
if_ndis
if_ppp
if_sl
if_stf
if_tap Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
if_tun
if_vlan
igb Change Makefile to reflect new directory structure 2008-07-30 22:06:38 +00:00
iir
io
ip_mroute_mod
ipdivert
ipfilter
ipfw
ipfw_nat
ipmi
ips
ipw
ipwfw
iscsi
isp
ispfw
iwi
iwifw
iwn
iwnfw
ixgb
ixgbe
jme
joy
k8temp
kbdmux
kgssapi Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
kgssapi_krb5 Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
krpc
kue
le
lge
libalias
libiconv
libmbpool
libmchain
linprocfs
linsysfs
linux Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
lmc
lpt
mac_biba
mac_bsdextended Break mac_bsdextended.c out into multiple .c files, with the base access 2008-10-27 12:09:15 +00:00
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
malo
mcd
md
mem Prefer the opt_global.h from KERNBUILDDIR if existent so we obtain all 2008-07-24 14:07:52 +00:00
mfi
mii
mlx
mly
mmc
mmcsd
mpt
mqueue
msdosfs
msdosfs_iconv
mse
msk
mxge
my
ncp
ncv
ndis
netgraph Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
nfe
nfs4client
nfsclient Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
nfslockd Unbreak the build by creating opt_nfs.h 2008-07-31 02:13:36 +00:00
nfsserver Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
nge
nmdm Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
nsp
ntfs
ntfs_iconv
nullfs
nve
nvram
nwfs
nxge
ohci Add modules for the HCI part of USB. This is convenient when having a UHCI 2008-10-09 19:22:00 +00:00
opensolaris
padlock
patm Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
pccard
pcfclock
pcn Move pcn driver from sys/pci to sys/dev/pcn. 2008-08-14 20:34:46 +00:00
pf Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
pflog Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
plip
pmc
portalfs
powermac_nvram
ppbus
ppc
ppi
pps
procfs
pseudofs
pst
puc
ral
ralfw
random
ray
rc Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
rc4
rdma
re
reiserfs
rl Make RL_TWISTER_ENABLE a tunable/sysctl. Eliminate it as an option. 2008-11-02 16:50:57 +00:00
rndtest
rp Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
rue
rum
s3
safe Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
sbni Resurrect the sbni(4) driver. Someone finally tested the MPSAFE patches and 2008-09-10 18:36:58 +00:00
scc
scd
scsi_low
sdhci Import sdhci (PCI SD Host Controller) driver. 2008-10-21 20:33:40 +00:00
sem
sf
sio
sis Move sis to sys/dev/sis for consistency. 2008-08-10 10:00:14 +00:00
sk
slhci Add modules for the HCI part of USB. This is convenient when having a UHCI 2008-10-09 19:22:00 +00:00
smbfs
sn
snc Add card_if.h and pccarddevs.h 2008-08-07 20:51:51 +00:00
snp
sound
speaker
splash
sppp Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
sr Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
ste Move the ste driver from sys/pci to sys/dev/ste. 2008-08-14 20:09:58 +00:00
stg
stge
streams
svr4 Allow COMPAT_SVR4 to be built without COMPAT_43. 2008-09-15 15:09:35 +00:00
sym
syscons
sysvipc
ti
tl Move the tl driver form sys/pci to sys/dev/tl. 2008-08-14 20:02:34 +00:00
tmpfs
trm Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
twa
twe
tx
txp
u3g After adding U3G_DEBUG to LINT we need to create the opt_u3g.h file when 2008-10-24 07:19:09 +00:00
uark
uart
ubsa
ubsec Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
ubser
uchcom
ucom
ucycom
udav
udbp
udf
udf_iconv
ufm
ufoma
ufs
uftdi
ugen
uhci Add modules for the HCI part of USB. This is convenient when having a UHCI 2008-10-09 19:22:00 +00:00
uhid
uipaq
ukbd
ulpt
umass
umct
umodem
ums
unionfs
upgt Add Conexant/Intersil PrismGT SoftMAC wireless USB driver - upgt(4). 2008-08-11 03:57:31 +00:00
uplcom
ural
urio
usb Obfuscated by other diffs while committing r183728: 2008-10-09 20:00:17 +00:00
usb2 Bring in USB4BSD, Hans Petter Selasky rework of the USB stack 2008-11-04 02:31:03 +00:00
uscanner
uslcom
utopia
uvisor
uvscom
vesa
vge
vkbd
vpo
vr
vx
wb Move wb driver from sys/pci to sys/dev/wb. 2008-08-14 21:26:29 +00:00
wi Remove opt_wi.h from module and fix typo in pccarddevs. 2008-08-27 05:43:46 +00:00
wlan add ddb support (default to off unless built with the kernel) 2008-09-15 22:46:12 +00:00
wlan_acl Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
wlan_amrr Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
wlan_ccmp Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
wlan_rssadapt Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
wlan_tkip Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
wlan_wep Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
wlan_xauth Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
wpi
wpifw the 3945 firmware license does not require acknowledging the EULA, 2008-10-07 19:42:56 +00:00
xe
xfs
xl Move the xl driver form sys/pci to sys/dev/xl for consistency. 2008-08-10 09:45:52 +00:00
zfs
zlib
zyd
Makefile Bring in USB4BSD, Hans Petter Selasky rework of the USB stack 2008-11-04 02:31:03 +00:00
Makefile.inc