66d65c6614
src/sys/dev/ata/ata-all.c from PIO to DMA. Submitted by: Craig Rodrigues <rodrigc@crodrigues.org> MFC after: 1 week
219 lines
6.4 KiB
Groff
219 lines
6.4 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 November 4, 2003
|
|
.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
|
|
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.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.
|
|
.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:
|
|
Aladdin (ALi5229) compatible chips.
|
|
.It AMD:
|
|
AMD756, AMD766, AMD768, AMD8111.
|
|
.It CMD:
|
|
CMD646, CMD648, CMD649.
|
|
.It Cypress:
|
|
Cypress 82C693.
|
|
.It Cyrix:
|
|
Cyrix 5530.
|
|
.It HighPoint:
|
|
HPT302, HPT366, HPT366, HPT368, HPT370, HPT371, HPT372, HPT374.
|
|
.It Intel:
|
|
PIIX, PIIX3, PIIX4, ICH, ICH0, ICH2, ICH3, ICH4, ICH5.
|
|
.It National:
|
|
SC1100.
|
|
.It nVidia:
|
|
nForce, nForce2, nForce3.
|
|
.It Promise:
|
|
PDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269, PDC20270, PDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319, PDC20371, PDC20375, PDC20376, PDC20377, PDC20378, PDC20379, PDC20617, PDC20618, PDC20619, PDC20620.
|
|
.It ServerWorks:
|
|
ROSB4, CSB5, CSB6.
|
|
.It Silicon Image:
|
|
SiI0680, SiI3112, SiI3114, SiI3512.
|
|
.It SiS:
|
|
SIS5513, SIS530, SIS540, SIS550, SIS620, SIS630, SIS630S, SIS633, SIS635, SIS730, SIS733, SIS735, SIS745, SIS961, SIS962, SIS963, SIS964
|
|
.It VIA:
|
|
VT82C586, VT82C586B, VT82C596, VT82C596B, VT82C686, VT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235, VT8237.
|
|
.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.
|
|
.Pp
|
|
ATAPI devices are set to PIO mode by default 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.
|
|
.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.
|
|
.Sh SEE ALSO
|
|
.Xr atacontrol 8 ,
|
|
.Xr burncd 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
driver first appeared in
|
|
.Fx 4.0 .
|
|
.Sh AUTHORS
|
|
.An S\(/oren Schmidt
|
|
.Aq sos@FreeBSD.org .
|