291 lines
8.7 KiB
Groff
291 lines
8.7 KiB
Groff
.\"
|
|
.\" Copyright (c) 2003 Søren Schmidt <sos@FreeBSD.org>
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer,
|
|
.\" without modification, immediately at the beginning of the file.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. The name of the author may not be used to endorse or promote products
|
|
.\" derived from this software without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd July 3, 2010
|
|
.Dt ATA 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm ata ,
|
|
.Nm ar ,
|
|
.Nm acd ,
|
|
.Nm ad ,
|
|
.Nm afd ,
|
|
.Nm ast
|
|
.Nd generic ATA/ATAPI disk controller driver
|
|
.Sh SYNOPSIS
|
|
For ISA based ATA/ATAPI support:
|
|
.Cd device isa
|
|
.Cd device ata
|
|
.Pp
|
|
In
|
|
.Pa /boot/device.hints :
|
|
.Cd hint.ata.0.at="isa"
|
|
.Cd hint.ata.0.port="0x1f0"
|
|
.Cd hint.ata.0.irq="14"
|
|
.Cd hint.ata.1.at="isa"
|
|
.Cd hint.ata.1.port="0x170"
|
|
.Cd hint.ata.1.irq="15"
|
|
.Pp
|
|
For PC98 based ATA/ATAPI support:
|
|
.Cd device isa
|
|
.Cd device ata
|
|
.Pp
|
|
In
|
|
.Pa /boot/device.hints :
|
|
.Cd hint.atacbus.0.at="isa"
|
|
.Cd hint.atacbus.0.port="0x640"
|
|
.Cd hint.atacbus.0.irq="9"
|
|
.Pp
|
|
For PCI based ATA/ATAPI support:
|
|
.Cd device pci
|
|
.Cd device ata
|
|
.Pp
|
|
To support ATA compliant disk drives:
|
|
.Cd device atadisk
|
|
.Pp
|
|
To support ATA software RAID's:
|
|
.Cd device ataraid
|
|
.Pp
|
|
To support ATAPI CDROM, DVD and CD/DVD burner drives:
|
|
.Cd device atapicd
|
|
.Pp
|
|
To support ATAPI floppy drives:
|
|
.Cd device atapifd
|
|
.Pp
|
|
To support ATAPI tape drives:
|
|
.Cd device atapist
|
|
.Pp
|
|
To turn
|
|
.Xr ata 4
|
|
subsystem controller drivers into cam(4) interface modules (disables all native
|
|
.Xr ata 4
|
|
APIs and peripheral drivers):
|
|
.Cd options ATA_CAM
|
|
.Pp
|
|
The following tunables are settable from the loader:
|
|
.Bl -ohang
|
|
.It Va hw.ata.ata_dma
|
|
set to 1 for DMA access, 0 for PIO (default is DMA).
|
|
.It Va hw.ata.ata_dma_check_80pin
|
|
set to 0 to disable the 80pin cable check (default is 1, check the cable)
|
|
.It Va hw.ata.atapi_dma
|
|
set to 1 for DMA access, 0 for PIO (default is DMA).
|
|
.It Va hw.ata.wc
|
|
set to 1 to enable Write Caching, 0 to disable (default is enabled).
|
|
.Em WARNING :
|
|
can cause data loss on power failures and crashes.
|
|
.It Va hint.atapci.X.msi
|
|
set to 1 to allow Message Signalled Interrupts (MSI) to be used by
|
|
specified PCI ATA controller, if supported.
|
|
.It Va hint.ata.X.devX.mode
|
|
limits initial ATA mode for specified device on specified channel.
|
|
.It Va hint.ata.X.mode
|
|
limits initial ATA mode for every device on specified channel.
|
|
.It Va hint.ata.X.pm_level
|
|
controls SATA interface Power Management for specified channel,
|
|
allowing to save some power by the cost of additional command latency.
|
|
Possible values:
|
|
.Bl -tag -compact
|
|
.It 0
|
|
interface Power Management is disabled, default value.
|
|
.It 1
|
|
device is allowed to initiate PM state change, host is passive.
|
|
.It 2
|
|
host initiates PARTIAL PM state transition every time port becomes idle.
|
|
.It 3
|
|
host initiates SLUMBER PM state transition every time port becomes idle.
|
|
.El
|
|
Modes 2 and 3 are implemented only for AHCI driver now.
|
|
.El
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
driver provides access to ATA (IDE) and SerialATA disk drives,
|
|
ATAPI CDROM/DVD drives, ZIP/LS120 ATAPI drives and ATAPI tape drives
|
|
connected to controllers according to the ATA/ATAPI standards.
|
|
.Pp
|
|
The currently supported ATA/SATA controller chips are:
|
|
.Pp
|
|
.Bl -tag -width "Silicon Image:" -compact
|
|
.It Acard:
|
|
ATP850P, ATP860A, ATP860R, ATP865A, ATP865R.
|
|
.It ALI:
|
|
M5228, M5229, M5281, M5283, M5287, M5288, M5289.
|
|
.It AMD:
|
|
AMD756, AMD766, AMD768, AMD8111, CS5536.
|
|
.It ATI:
|
|
IXP200, IXP300, IXP400, IXP600, IXP700, IXP800.
|
|
.It CMD:
|
|
CMD646, CMD646U2, CMD648, CMD649.
|
|
.It Cypress:
|
|
Cypress 82C693.
|
|
.It Cyrix:
|
|
Cyrix 5530.
|
|
.It HighPoint:
|
|
HPT302, HPT366, HPT368, HPT370, HPT371, HPT372, HPT372N, HPT374.
|
|
.It Intel:
|
|
6300ESB, 31244, PIIX, PIIX3, PIIX4, ESB2, ICH, ICH0, ICH2, ICH3, ICH4, ICH5,
|
|
ICH6, ICH7, ICH8, ICH9, ICH10, SCH, PCH.
|
|
.It ITE:
|
|
IT8211F, IT8212F, IT8213F.
|
|
.It JMicron:
|
|
JMB360, JMB361, JMB363, JMB365, JMB366, JMB368.
|
|
.It Marvell
|
|
88SX5040, 88SX5041, 88SX5080, 88SX5081, 88SX6041, 88SX6042, 88SX6081, 88SX6101,
|
|
88SX6102, 88SX6111, 88SX6121, 88SX6141, 88SX6145, 88SX7042.
|
|
.It National:
|
|
SC1100.
|
|
.It NetCell:
|
|
NC3000, NC5000.
|
|
.It nVidia:
|
|
nForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4,
|
|
MCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77, MCP79, MCP89.
|
|
.It 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.
|
|
.It ServerWorks:
|
|
HT1000, ROSB4, CSB5, CSB6, K2, Frodo4, Frodo8.
|
|
.It Silicon Image:
|
|
SiI0680, SiI3112, SiI3114, SiI3124, SiI3132, SiI3512.
|
|
.It SiS:
|
|
SIS180, SIS181, SIS182, SIS5513, SIS530, SIS540, SIS550, SIS620, SIS630,
|
|
SIS630S, SIS633, SIS635, SIS730, SIS733, SIS735, SIS745, SIS961, SIS962,
|
|
SIS963, SIS964, SIS965.
|
|
.It VIA:
|
|
VT6410, VT6420, VT6421, VT82C586, VT82C586B, VT82C596, VT82C596B, VT82C686,
|
|
VT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235, VT8237,
|
|
VT8237A, VT8237S, VT8251, CX700, VX800, VX855, VX900.
|
|
.El
|
|
.Pp
|
|
Unknown ATA chipsets are supported in PIO modes, and if the standard
|
|
busmaster DMA registers are present and contain valid setup, DMA is
|
|
also enabled, although the max mode is limited to UDMA33, as it is
|
|
not known what the chipset can do and how to program it.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
driver can change the transfer mode and various other parameters
|
|
when the system is up and running.
|
|
See
|
|
.Xr atacontrol 8 .
|
|
.Pp
|
|
The
|
|
.Nm
|
|
driver sets the maximum transfer mode supported by the hardware as default.
|
|
However the
|
|
.Nm
|
|
driver sometimes warns:
|
|
.Dq Sy "DMA limited to UDMA33, non-ATA66 cable or device".
|
|
This means that
|
|
the
|
|
.Nm
|
|
driver has detected that the required 80 conductor cable is not present
|
|
or could not be detected properly,
|
|
or that one of the devices on the channel only accepts up
|
|
to UDMA2/ATA33.
|
|
The
|
|
.Va hw.ata.ata_dma_check_80pin
|
|
tunable can be set to 0 to disable this check.
|
|
.Pp
|
|
Unknown ATAPI devices are initialized to DMA mode if the
|
|
.Va hw.ata.atapi_dma
|
|
tunable is set to 1 and they support at least UDMA33 transfers.
|
|
Otherwise they are set to PIO mode because severe DMA problems are
|
|
common even if the device capabilities indicate support.
|
|
You can always try to set DMA mode on an ATAPI device using
|
|
.Xr atacontrol 8 ,
|
|
but be aware that your hardware might
|
|
.Em not
|
|
support it and can potentially
|
|
.Em hang
|
|
the entire system causing data loss.
|
|
.Pp
|
|
The
|
|
.Nm acd
|
|
driver implements most of the
|
|
.Fn ioctl
|
|
requests documented by
|
|
.Xr cd 4 .
|
|
.Sh FILES
|
|
.Bl -tag -width ".Pa /sys/i386/conf/GENERIC" -compact
|
|
.It Pa /dev/ad*
|
|
ATA disk device nodes
|
|
.It Pa /dev/ar*
|
|
ATA RAID device nodes
|
|
.It Pa /dev/acd*
|
|
ATAPI CD-ROM device nodes
|
|
.It Pa /dev/afd*
|
|
ATAPI floppy drive device nodes
|
|
.It Pa /dev/ast*
|
|
ATAPI tape drive device nodes
|
|
.It Pa /sys/i386/conf/GENERIC
|
|
sample generic kernel config file for
|
|
.Nm
|
|
based systems
|
|
.El
|
|
.Sh NOTES
|
|
Please remember that in order to use UDMA4/ATA66 and above modes you
|
|
.Em 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
|
|
quality of the cables.
|
|
SATA cables can be up to 1m long according to the specification.
|
|
.Pp
|
|
Static device numbering
|
|
(enabled with the
|
|
.Dv ATA_STATIC_ID
|
|
kernel option)
|
|
reserves a number for each possibly connected disk,
|
|
even when not present.
|
|
This is useful in hotswap scenarios
|
|
where disks should always show up as the same numbered device,
|
|
and not depend on attach order.
|
|
.Pp
|
|
Native Command Queuing (NCQ) on SATA drives is not yet supported.
|
|
.Sh SEE ALSO
|
|
.Xr ahci 4 ,
|
|
.Xr cam 4 ,
|
|
.Xr ataraid 4 ,
|
|
.Xr atacontrol 8 ,
|
|
.Xr burncd 8 ,
|
|
.Xr cd 4 ,
|
|
.Xr siis 4
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
driver first appeared in
|
|
.Fx 4.0 .
|
|
.Sh AUTHORS
|
|
.An S\(/oren Schmidt
|
|
.Aq sos@FreeBSD.org .
|