freebsd-dev/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
accf_http
acpi * Driver for ACPI WMI (Windows Management Instrumentation) 2009-06-23 13:17:25 +00:00
ae
age
agp
aha
ahb
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
alc Add alc(4), a driver for Atheros AR8131/AR8132 PCIe ethernet 2009-06-10 02:07:58 +00:00
ale
amd
amdtemp
amr
an
aout
apm
arcmsr
arcnet
asmc
asr
ata
ath
auxio
bce
bfe
bge
bios
bktr
bm
bridgestp After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
bwi
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
cd9660_iconv
ce
ciss
cm
cmx
coda
coda5
coff
coretemp
cp
cpuctl
cpufreq Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
crypto
cryptodev
cs
ctau
cx
cxgb Greatly simplify cxgb by removing almost all of the custom mbuf management logic 2009-06-19 23:34:32 +00:00
cyclic
dc
dcons
dcons_crom
de
digi
dpms
dpt
drm
dtrace
dummynet move kernel ipfw-related sources to a separate directory, 2009-06-05 19:22:47 +00:00
ed
elink
em
en
ep
esp
et
ex
exca
ext2fs
fatm
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
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
hatm
hifn
hme
hpfs
hptiop
hptmv
hptrr
hwpmc
i2c
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
if_disc
if_edsc
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
if_ndis
if_stf Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
if_tap
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
ips
ipw
ipwfw
iscsi
isp
ispfw
iwi
iwifw
iwn
iwnfw
ixgb
ixgbe Update for the Intel 10G driver, this adds support for 2009-06-24 18:27:07 +00:00
jme
joy
kbdmux
kgssapi
kgssapi_krb5
krpc
ksyms Add the ksyms(4) pseudo driver. The ksyms driver allows a process to 2009-05-26 21:39:09 +00:00
le
lge
libalias
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
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
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
mcd
md
mem
mfi
mii
mlx
mly
mmc
mmcsd
mpt
mqueue
msdosfs
msdosfs_iconv
mse
msk
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
ncp
ncv
ndis
netgraph Connect ng_pipe to the default build. 2009-06-23 06:11:04 +00:00
nfe
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
nfsserver Remove the old kernel RPC implementation and the NFS_LEGACYRPC option. 2009-06-30 19:03:27 +00:00
nfssvc
nge
nmdm
nsp
ntfs
ntfs_iconv
nullfs
nve
nvram
nwfs
nxge
opensolaris
padlock
patm
pccard
pcfclock
pcn
pf After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
pflog
plip
pmc
portalfs
powermac_nvram
ppbus
ppc
ppi
pps
procfs
pseudofs Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
pst
puc
ral
ralfw
random
rc
rc4
rdma
re
reiserfs
rl
rndtest
rp
s3
safe
sbni
scc
scd
scsi_low
sdhci
sem Remove opt_mac.h generation for various kernel modules that no longer 2009-06-06 17:01:44 +00:00
sf
sio
sis
sk
smbfs
sn
snc
snp
sound Last (hopefully) attempt to fix both parallel build and 2009-06-12 07:39:10 +00:00
speaker
splash
sppp
ste
stg
stge
streams
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
tmpfs
trm
twa
twe
tx
txp
uart
ubsec
ubser
uchcom
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
vpo
vr
vx
wb
wi
wlan catchup with action+ageq additions 2009-07-05 21:19:10 +00:00
wlan_acl
wlan_amrr
wlan_ccmp
wlan_rssadapt
wlan_tkip
wlan_wep
wlan_xauth
wpi
wpifw
xe
xfs
xl
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