freebsd-skq/sys/modules
Scott Long 52c9ce25d8 Separate the parallel scsi knowledge out of the core of the XPT, and
modularize it so that new transports can be created.

Add a transport for SATA

Add a periph+protocol layer for ATA

Add a driver for AHCI-compliant hardware.

Add a maxio field to CAM so that drivers can advertise their max
I/O capability.  Modify various drivers so that they are insulated
from the value of MAXPHYS.

The new ATA/SATA code supports AHCI-compliant hardware, and will override
the classic ATA driver if it is loaded as a module at boot time or compiled
into the kernel.  The stack now support NCQ (tagged queueing) for increased
performance on modern SATA drives.  It also supports port multipliers.

ATA drives are accessed via 'ada' device nodes.  ATAPI drives are
accessed via 'cd' device nodes.  They can all be enumerated and manipulated
via camcontrol, just like SCSI drives.  SCSI commands are not translated to
their ATA equivalents; ATA native commands are used throughout the entire
stack, including camcontrol.  See the camcontrol manpage for further
details.  Testing this code may require that you update your fstab, and
possibly modify your BIOS to enable AHCI functionality, if available.

This code is very experimental at the moment.  The userland ABI/API has
changed, so applications will need to be recompiled.  It may change
further in the near future.  The 'ada' device name may also change as
more infrastructure is completed in this project.  The goal is to
eventually put all CAM busses and devices until newbus, allowing for
interesting topology and management options.

Few functional changes will be seen with existing SCSI/SAS/FC drivers,
though the userland ABI has still changed.  In the future, transports
specific modules for SAS and FC may appear in order to better support
the topologies and capabilities of these technologies.

The modularization of CAM and the addition of the ATA/SATA modules is
meant to break CAM out of the mold of being specific to SCSI, letting it
grow to be a framework for arbitrary transports and protocols.  It also
allows drivers to be written to support discrete hardware without
jeopardizing the stability of non-related hardware.  While only an AHCI
driver is provided now, a Silicon Image driver is also in the works.
Drivers for ICH1-4, ICH5-6, PIIX, classic IDE, and any other hardware
is possible and encouraged.  Help with new transports is also encouraged.

Submitted by:	scottl, mav
Approved by:	re
2009-07-10 08:18:08 +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 * Driver for ACPI WMI (Windows Management Instrumentation) 2009-06-23 13:17:25 +00:00
ae Rather than using hidden includes (with cicular dependencies), 2008-12-02 21:37:28 +00:00
age Hook up age(4) to the build. 2008-05-19 01:53:47 +00:00
agp Fix a few problems related to building modules in /sys/modules (not 2009-02-12 14:44:15 +00:00
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
ahci Separate the parallel scsi knowledge out of the core of the XPT, and 2009-07-10 08:18:08 +00:00
aic
aic7xxx
aio - Add 32-bit compat system calls for VFS_AIO. The system calls live in the 2008-12-10 20:56:19 +00:00
alc Add alc(4), a driver for Atheros AR8131/AR8132 PCIe ethernet 2009-06-10 02:07:58 +00:00
ale Add ale(4), a driver for Atheros AR8121/AR8113/AR8114 PCIe ethernet 2008-11-12 09:52:06 +00:00
amd
amdtemp Rename the k8temp driver to amdtemp. 2009-03-13 16:08:08 +00:00
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
arcmsr
arcnet
asmc Remove isa_if.h. 2008-04-07 11:26:13 +00:00
asr Remove Alpha remnants. 2006-07-27 19:12:49 +00:00
ata Move the uaudio and ata-usb drivers into their correct locations. 2009-02-23 21:19:18 +00:00
ath Remove ATH_SUPPORT_TDMA and use IEEE80211_SUPPORT_TDMA instead. It 2009-03-30 19:23:49 +00:00
auxio
bce
bfe
bge Add ofw_bus_if.h as a dependency on sparc64. Without this sparc64 kernel 2007-06-10 00:58:41 +00:00
bios
bktr Remove option headers that do not exist and are not used 2008-03-27 20:38:03 +00:00
bm Add support for the Apple Big Mac (BMAC) Ethernet controller, 2008-06-07 22:58:32 +00:00
bridgestp After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
bwi Bring in Andrew Thompson's port of Sepherosa Ziehau's bwi driver for 2009-05-03 04:01:43 +00:00
cam Separate the parallel scsi knowledge out of the core of the XPT, and 2009-07-10 08:18:08 +00:00
canbepm
canbus
cardbus
cas Add cas(4), a driver for Sun Cassini/Cassini+ and National Semiconductor 2009-06-15 18:22:41 +00:00
cbb
cd9660 Makefile changes to reflect moving sys/isofs/cd9660 to sys/fs/cd9660. 2007-02-11 14:01:32 +00:00
cd9660_iconv Makefile changes to reflect moving sys/isofs/cd9660 to sys/fs/cd9660. 2007-02-11 14:01:32 +00:00
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 Commit cmx(4), a driver for Omnikey CardMan 4040 PCMCIA smartcard readers. 2008-03-06 08:09:45 +00:00
coda Rather than having the Coda module use its own namecache, use the global 2008-02-13 13:06:22 +00:00
coda5 Remove coda_namecache from coda5 as well. We should probably GC coda5 2008-02-13 16:31:04 +00:00
coff
coretemp Add a driver for the on-die digital thermal sensor found on Intel Core 2007-08-15 19:26:03 +00:00
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 Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
crypto Integrate the Camellia Block Cipher. For more information see RFC 4132 2007-05-09 19:37:02 +00:00
cryptodev oops, another missed file from crypto api change 2007-03-31 23:15:11 +00:00
cs
ctau Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
cx Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
cxgb Greatly simplify cxgb by removing almost all of the custom mbuf management logic 2009-06-19 23:34:32 +00:00
cyclic The cyclic code is in sys/cddl/dev/cyclic to be consistent with 2008-05-23 22:23:28 +00:00
dc
dcons Fix a breakage with "MODULES_WITH_WORLD=true make buildworld". 2007-06-01 00:23:34 +00:00
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 On i386 compile the back-end with EISA support as well as the EISA 2007-04-10 20:33:31 +00:00
drm Import support for ATI Radeon R600 and R700 series chips. 2009-03-07 21:36:57 +00:00
dtrace Add the OpenSolaris dtrace lockstat provider. The lockstat provider 2009-05-26 20:28:22 +00:00
dummynet move kernel ipfw-related sources to a separate directory, 2009-06-05 19:22:47 +00:00
ed
elink
em Add opt_inet.h which has been needed since r184717 introducing 2008-11-12 21:32:49 +00:00
en
ep
esp Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
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 Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
fdescfs
fe
firewire Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
firmware Unbreak firmware.ko build without kernel. 2008-04-20 16:11:14 +00:00
fxp
gem - Initialize the ifnet structure, especially if_dname, before probing 2009-06-23 20:36:59 +00:00
geom Add missing reference to GPT support. 2009-07-05 14:03:41 +00:00
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 Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
hpfs
hptiop Introduce a driver for the Highpoint RocketRAID 3xxx series of controllers. 2007-05-09 07:07:26 +00:00
hptmv
hptrr Add the 'hptrr' driver for supporting the following Highpoint RocketRAID 2007-12-15 00:56:17 +00:00
hwpmc - Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo 2008-11-27 09:00:47 +00:00
i2c The viapm module build had what appear to be some debugging CFLAGS left 2007-06-24 20:35:59 +00:00
ibcs2 Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
ichwd
ida
ie
if_bridge bridgestp is now a seperate module. 2006-07-26 22:15:15 +00:00
if_disc
if_edsc Introduce a new toy interface, edsc(4). It's a discard interface 2007-03-26 04:39:18 +00:00
if_ef After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
if_faith
if_gif Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
if_gre
if_lagg Rename the trunk(4) driver to lagg(4) as it is too similar to vlan trunking. 2007-04-17 00:35:11 +00:00
if_ndis o port NDIS USB support from USB1 to the new usb(USB2). 2009-03-07 07:26:22 +00:00
if_stf Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
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 Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
if_vlan After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
igb Updates for both the em and igb drivers, add support 2009-06-24 17:41:29 +00:00
iir
io
ip6_mroute_mod Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
ip_mroute_mod After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
ipdivert
ipfilter
ipfw After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
ipfw_nat move kernel ipfw-related sources to a separate directory, 2009-06-05 19:22:47 +00:00
ipmi Add in forgotten module ipmi_linux. 2009-03-26 19:15:31 +00:00
ips
ipw
ipwfw - Add Intel firmwares for Intel PRO/Wireless LAN 2100/2200/2915 cards in a 2007-03-02 11:42:56 +00:00
iscsi Introduce Danny Braniss' iSCSI initiator, version 2.0.99. Please read the 2007-07-24 15:35:02 +00:00
isp Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
ispfw Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
iwi
iwifw - Add Intel firmwares for Intel PRO/Wireless LAN 2100/2200/2915 cards in a 2007-03-02 11:42:56 +00:00
iwn clear out crud 2008-05-22 21:53:15 +00:00
iwnfw remove license ack requirement; this was never needed 2009-01-09 22:35:25 +00:00
ixgb
ixgbe Update for the Intel 10G driver, this adds support for 2009-06-24 18:27:07 +00:00
jme Hook up jme(4) to the build. 2008-05-27 01:54:45 +00:00
joy
kbdmux Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
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 Unbreak NFS. 2008-11-06 10:53:35 +00:00
ksyms Add the ksyms(4) pseudo driver. The ksyms driver allows a process to 2009-05-26 21:39:09 +00:00
le Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
lge
libalias Add SCTP NAT support. 2009-02-07 18:49:42 +00:00
libiconv
libmbpool
libmchain
linprocfs After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
linsysfs - Add the new files to the linux module. 2006-08-15 13:01:36 +00:00
linux After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +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 Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
mac_mls
mac_none
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
malo Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
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 Add the 'mfip' sub-driver for gaining SCSI-passthrough access to devices 2007-05-16 17:19:47 +00:00
mii New PHY driver for the internal PHY found in the AX88790. There's a 2009-03-30 16:01:09 +00:00
mlx
mly
mmc Loadable modules for mmc (the bus) amd mmcsd (the MMC and SD support 2006-10-20 06:52:59 +00:00
mmcsd Loadable modules for mmc (the bus) amd mmcsd (the MMC and SD support 2006-10-20 06:52:59 +00:00
mpt Add a new personality to mpt(4) devices to allow userland applications to 2008-05-06 20:49:53 +00:00
mqueue
msdosfs Reflecting the removal of MSDOSFS_LARGE found in sys/conf/files:1.1173. 2007-02-01 04:21:03 +00:00
msdosfs_iconv
mse
msk Hook up msk(4) to the build. 2006-12-13 02:37:48 +00:00
mwl driver for Marvell 88W8363 Wireless LAN controller 2009-06-01 18:07:01 +00:00
mwlfw driver for Marvell 88W8363 Wireless LAN controller 2009-06-01 18:07:01 +00:00
mxge Implement minimal set of changes suggested by bz to make 2009-06-23 17:42:06 +00:00
my my(4) doesn't need miibus(4). 2007-03-11 15:20:04 +00:00
ncp
ncv
ndis o port NDIS USB support from USB1 to the new usb(USB2). 2009-03-07 07:26:22 +00:00
netgraph Connect ng_pipe to the default build. 2009-06-23 06:11:04 +00:00
nfe Remove no longer existing opt_bdg.h and opt_bge.h. 2006-11-03 21:41:19 +00:00
nfscl Add the kernel build glue for the experimental NFS subsystem that 2009-05-28 19:45:11 +00:00
nfsclient Remove the old kernel RPC implementation and the NFS_LEGACYRPC option. 2009-06-30 19:03:27 +00:00
nfscommon Add the kernel build glue for the experimental NFS subsystem that 2009-05-28 19:45:11 +00:00
nfsd Add the kernel build glue for the experimental NFS subsystem that 2009-05-28 19:45:11 +00:00
nfslockd Unbreak the build by creating opt_nfs.h 2008-07-31 02:13:36 +00:00
nfsserver Remove the old kernel RPC implementation and the NFS_LEGACYRPC option. 2009-06-30 19:03:27 +00:00
nfssvc Change nfsserver so that it uses the nfssvc() system call provided 2009-04-12 19:04:27 +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 Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not 2007-10-26 03:23:54 +00:00
nwfs
nxge Merge Neterion if_nxge driver version 2.0.9.11230 with the following 2007-10-29 14:19:32 +00:00
opensolaris fix atomic.S rename and vimage breakage 2009-05-09 05:45:13 +00:00
padlock another missing change for recent crypto mods 2007-03-21 17:37:13 +00:00
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 After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +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 make 'make universe' not complain about 2008-11-29 08:45:20 +00:00
ppbus
ppc Make this usable for all platforms. 2006-06-18 05:04:42 +00:00
ppi
pps
procfs Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
pseudofs Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
pst
puc
ral Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
ralfw Remove the non-existent rt2860 subdir. Note, the ralfw module is not used in 2008-06-26 18:58:01 +00:00
random
rc Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
rc4
rdma add makefiles for rdma 2008-05-05 20:19:33 +00:00
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
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 Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
scd
scsi_low
sdhci Import sdhci (PCI SD Host Controller) driver. 2008-10-21 20:33:40 +00:00
sem Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
sf Update file list and Makefile after repocopying sf(4) from 2008-01-21 04:27:32 +00:00
sio
sis Move sis to sys/dev/sis for consistency. 2008-08-10 10:00:14 +00:00
sk
smbfs
sn
snc Add card_if.h and pccarddevs.h 2008-08-07 20:51:51 +00:00
snp Reintroduce the snp(4) driver. 2008-11-05 15:04:03 +00:00
sound Last (hopefully) attempt to fix both parallel build and 2009-06-12 07:39:10 +00:00
speaker
splash
sppp 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 Hook up stge(4) to the build. 2006-07-25 00:45:55 +00:00
streams Housekeeping. Update for maintainers who have handed in their commit bits 2006-07-01 10:51:55 +00:00
svr4 After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
sym
syscons
sysvipc Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
ti
tl Move the tl driver form sys/pci to sys/dev/tl. 2008-08-14 20:02:34 +00:00
tmpfs MFp4: 2007-06-29 05:23:15 +00:00
trm Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
twa Import version 3.60.03.006 of the TWA driver: 2007-05-09 04:16:32 +00:00
twe
tx
txp
uart Include the QUICC backend in the kernel module. 2008-11-22 21:24:07 +00:00
ubsec Per email to arch@ a little while ago (that was greeted with silence), 2008-09-01 23:59:00 +00:00
ubser
uchcom Add Winchiphead (or Nanjin QinHeng Electronics) USB Serial converter driver. 2007-10-18 10:51:06 +00:00
ucycom
udf
udf_iconv
ufs Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
unionfs
usb add two prerequisites; if_zydreg.h and if_zydfw for dependency check. 2009-06-04 03:59:20 +00:00
utopia
vesa
vge
vkbd Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
vpo
vr Update file list and Makefile after repocopying vr(4) from 2008-03-11 03:50:57 +00:00
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 catchup with action+ageq additions 2009-07-05 21:19:10 +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 Remove option headers that do not exist and are not used 2008-03-27 20:38:03 +00:00
wpifw the 3945 firmware license does not require acknowledging the EULA, 2008-10-07 19:42:56 +00:00
xe
xfs Remove empty files and do nto try to build them. 2009-05-18 17:20:24 +00:00
xl Move the xl driver form sys/pci to sys/dev/xl for consistency. 2008-08-10 09:45:52 +00:00
zfs fix xdrmem_control to be safe in an if statement 2009-05-30 22:23:58 +00:00
zlib
Makefile Separate the parallel scsi knowledge out of the core of the XPT, and 2009-07-10 08:18:08 +00:00
Makefile.inc