home | help
ATA(4)			     Kernel Interfaces Manual			  ATA(4)

NAME
     ata -- generic ATA/SATA controller driver

SYNOPSIS
     To compile this driver into the kernel, place the following lines in your
     kernel configuration file:

	   device scbus
	   device ata
	   options ATA_CAM

     Alternatively, to load the driver as set of modules at boot time, place
     some of the following lines in loader.conf(5):

	   ata_load="YES"

	   atacard_load="YES"
	   ataisa_load="YES"
	   atapci_load="YES"

	   ataacard_load="YES"
	   ataacerlabs_load="YES"
	   ataadaptec_load="YES"
	   ataahci_load="YES"
	   ataamd_load="YES"
	   ataati_load="YES"
	   atacenatek_load="YES"
	   atacypress_load="YES"
	   atacyrix_load="YES"
	   atahighpoint_load="YES"
	   ataintel_load="YES"
	   ataite_load="YES"
	   atajmicron_load="YES"
	   atamarvell_load="YES"
	   atamicron_load="YES"
	   atanational_load="YES"
	   atanetcell_load="YES"
	   atanvidia_load="YES"
	   atapromise_load="YES"
	   ataserverworks_load="YES"
	   atasiliconimage_load="YES"
	   atasis_load="YES"
	   atavia_load="YES"

     The first line is for the common hardware independent code, and is a
     prerequisite for the other modules.  The next three lines are generic bus-
     specific drivers.	Of the rest, ataahci is the AHCI driver.  The others are
     vendor-specific PCI drivers.  The ATA_CAM option should always remain in
     the kernel configuration, to make the driver work as a CAM(4) subsystem
     module.

     The following tunables are settable from the loader(8):

     hw.ahci.force
     set to nonzero value for forcing drivers to attach to some known AHCI-
     capable chips even if they are configured for legacy IDE emulation (the
     default is 1, force the attach).

     hw.ata.ata_dma_check_80pin
     set to 0 to disable the 80pin cable check (the default is 1, check the
     cable).

     hint.atapci.X.msi
     set to 1 to allow Message Signalled Interrupts (MSI) to be used by the
     specified PCI ATA controller, if supported.

     hint.ata.X.devX.mode
     limits the initial ATA mode for the specified device on specified the
     channel.

     hint.ata.X.mode
     limits the initial ATA mode for every device on the specified channel.

     hint.ata.X.pm_level
     controls SATA interface Power Management for the specified channel,
     allowing some power savings at the cost of additional command latency.
     Possible values:
     0	     Interface Power Management is disabled.  This is the default value.
     1	     The device is allowed to initiate a PM state change; the host is
	     passive.
     2	     The host initiates a PARTIAL PM state transition every time a port
	     becomes idle.
     3	     host initiates SLUMBER PM state transition every time port becomes
	     idle.
     Modes 2 and 3 are only supported for AHCI.

DESCRIPTION
     The  ata driver gives the CAM(4) subsystem access to the ATA (IDE) and SATA
     ports of many generic controllers.  Depending on the controller, each  PATA
     (IDE)  port or each one or two SATA ports are represented to CAM as a sepa-
     rate bus with one or two targets.	Most of the bus-management  details  are
     handled by the ATA/SATA-specific transport of CAM.  Connected ATA disks are
     handled  by  the ATA protocol disk peripheral driver ada(4).  ATAPI devices
     are handled by the SCSI protocol peripheral drivers  cd(4),  da(4),  sa(4),
     etc.

     This  driver  supports ATA, and for the most of controllers, ATAPI devices.
     Command queuing and SATA port multipliers are not supported.   Device  hot-
     plug  and	SATA  interface  power management is supported only on some con-
     trollers.

     The ata driver can change the transfer mode when the system is up and  run-
     ning.  See the negotiate subcommand of camcontrol(8).

     The  ata driver sets the maximum transfer mode supported by the hardware as
     default.  However, the ata driver sometimes warns: "DMA limited to  UDMA33,
     non-ATA66	cable  or  device".  This means that the ata driver has detected
     that the required 80 conductor cable is not present or  could  not  be  de-
     tected  properly, or that one of the devices on the channel only accepts up
     to UDMA2/ATA33.  The hw.ata.ata_dma_check_80pin tunable can be set to 0  to
     disable this check.

HARDWARE
     The currently supported ATA/SATA controller chips are:

     Acard:	     ATP850P, ATP860A, ATP860R, ATP865A, ATP865R.
     ALI:	     M5228, M5229, M5281, M5283, M5287, M5288, M5289.
     AMD:	     AMD756, AMD766, AMD768, AMD8111, CS5536.
     ATI:	     IXP200, IXP300, IXP400, IXP600, IXP700, IXP800.
     CMD:	     CMD646, CMD646U2, CMD648, CMD649.
     Cypress:	     Cypress 82C693.
     Cyrix:	     Cyrix 5530.
     HighPoint:      HPT302,  HPT366,  HPT368,	HPT370, HPT371, HPT372, HPT372N,
		     HPT374.
     Intel:	     6300ESB, 31244, PIIX, PIIX3, PIIX4, ESB2, ICH, ICH0,  ICH2,
		     ICH3, ICH4, ICH5, ICH6, ICH7, ICH8, ICH9, ICH10, SCH, PCH.
     ITE:	     IT8211F, IT8212F, IT8213F.
     JMicron:	     JMB360, JMB361, JMB363, JMB365, JMB366, JMB368.
     Marvell	     88SX5040, 88SX5041, 88SX5080, 88SX5081, 88SX6041, 88SX6042,
		     88SX6081, 88SE6101, 88SE6102, 88SE6111, 88SE6121, 88SE6141,
		     88SE6145, 88SX7042.
     National:	     SC1100.
     NetCell:	     NC3000, NC5000.
     nVidia:	     nForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3
		     Pro,  nForce4,  MCP51,  MCP55,  MCP61, MCP65, MCP67, MCP73,
		     MCP77, MCP79, MCP89.
     Promise:	     PDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268,
		     PDC20269, PDC20270, PDC20271, PDC20275, PDC20276, PDC20277,
		     PDC20318, PDC20319, PDC20371, PDC20375, PDC20376, PDC20377,
		     PDC20378, PDC20379, PDC20571, PDC20575, PDC20579, PDC20580,
		     PDC20617, PDC20618, PDC20619, PDC20620, PDC20621, PDC20622,
		     PDC40518, PDC40519, PDC40718, PDC40719.
     ServerWorks:    HT1000, ROSB4, CSB5, CSB6, K2, Frodo4, Frodo8.
     Silicon Image:  SiI0680, SiI3112, SiI3114, SiI3124, SiI3132, SiI3512.
     SiS:	     SIS180, SIS181, SIS182, SIS5513,  SIS530,	SIS540,  SIS550,
		     SIS620,  SIS630,  SIS630S,  SIS633, SIS635, SIS730, SIS733,
		     SIS735, SIS745, SIS961, SIS962, SIS963, SIS964, SIS965.
     VIA:	     VT6410,  VT6420,  VT6421,	VT82C586,  VT82C586B,  VT82C596,
		     VT82C596B,  VT82C686, VT82C686A, VT82C686B, VT8231, VT8233,
		     VT8233A, VT8233C, VT8235, VT8237, VT8237A, VT8237S, VT8251,
		     CX700, VX800, VX855, VX900.

     Some of above chips are  also  supported  by  the	more  featured	ahci(4),
     mvs(4),  and siis(4) drivers.  If both drivers are loaded at the same time,
     those will have precedence.

     Unknown ATA chipsets are supported in PIO modes, and if the  standard  bus-
     master  DMA  registers are present and contain valid setup, DMA is also en-
     abled, although the max mode is limited to UDMA33, as it is not known  what
     the chipset can do and how to program it.

NOTES
     Please  remember  that in order to use UDMA4/ATA66 and above modes you must
     use 80 conductor cables.  Please assure that ribbon cables  are  no  longer
     than  45cm.  In case of rounded ATA cables, the length depends on the qual-
     ity of the cables.  SATA cables can be up to 1m long according to the spec-
     ification.  External SATA cables can be 2m long and more, but not all  con-
     trollers work well on long cables, especially at high speeds.

SEE ALSO
     ada(4), ahci(4), cam(4), camcontrol(8), cd(4), mvs(4), siis(4)

HISTORY
     The  ata driver first appeared in FreeBSD 4.0.  It was turned into a CAM(4)
     interface module in FreeBSD 9.0.

AUTHORS
     Alexander Motin <mav@FreeBSD.org>,
     Soren Schmidt <sos@FreeBSD.org>

FreeBSD 9.1			  June 18, 2012 			  ATA(4)

home | help