102 lines
3.6 KiB
Groff
102 lines
3.6 KiB
Groff
.\" $NetBSD: wd.4,v 1.20 2019/01/09 23:43:13 gutteridge Exp $
|
|
.\"
|
|
.\"
|
|
.\" Copyright (c) 1994 James A. Jegers
|
|
.\" 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.
|
|
.\" 2. 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.
|
|
.\"
|
|
.Dd January 9, 2019
|
|
.Dt WD 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm wd
|
|
.Nd WD100x compatible hard disk driver
|
|
.Sh SYNOPSIS
|
|
.Cd "wd* at atabus? drive ? flags 0x0000"
|
|
.Cd "wd* at umass?"
|
|
.Cd options WD_SOFTBADSECT
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm wd
|
|
driver supports hard disks that emulate the Western
|
|
Digital WD100x.
|
|
This includes standard MFM, RLL, ESDI, IDE, EIDE, and SATA drives.
|
|
.Pp
|
|
The flags are used only with controllers that support DMA operations and
|
|
mode settings (like some pciide controllers).
|
|
The lowest order nibble (rightmost digit) of the flags defines the PIO mode,
|
|
the next four bits define the DMA mode and the third nibble defines the
|
|
UltraDMA mode.
|
|
For each set of four bits, the 3 lower bits define the mode to use
|
|
and the last bit must be set to 1 for this setting to be used.
|
|
For DMA and UDMA, 0xf (1111) means 'disable'.
|
|
For example, a flags value of 0x0fac (1111 1010 1100)
|
|
means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
|
|
0x0000 means "use whatever the drive claims to support."
|
|
.Pp
|
|
The kernel configuration option
|
|
.Dq Cd options WD_SOFTBADSECT
|
|
enables a software managed bad-sector list which will prevent further accesses
|
|
to sectors where an unrecoverable read error occurred.
|
|
A user interface is provided by
|
|
.Xr dkctl 8 .
|
|
Unlike the (historical) mechanisms provided by
|
|
.Xr bad144 8
|
|
and
|
|
.Xr badsect 8 ,
|
|
the software list supports neither sector replacement nor retention
|
|
across reboots.
|
|
.Sh NOTES
|
|
Certain
|
|
.Tn Seagate
|
|
.Tn Barracuda
|
|
drives sold around 2003 have a known firmware bug leading to corrupted
|
|
write transfers for sector counts n*15 + 1, in combination with certain
|
|
ATA controllers, most commonly
|
|
.Tn Silicon Image
|
|
3xxx.
|
|
Affected drives include, but are not limited to:
|
|
.Pp
|
|
.Bl -tag -width Ds -offset indent -compact
|
|
.It Seagate ST3120023AS
|
|
.It Seagate ST380023AS
|
|
.It Seagate ST360015AS
|
|
.El
|
|
.Pp
|
|
If you have one of these drives, it's recommended to replace the drive.
|
|
There used to exist a driver workaround greatly reducing performance,
|
|
but the code was completely removed in
|
|
.Nx 8.0 .
|
|
.Sh SEE ALSO
|
|
.Xr ata 4 ,
|
|
.Xr intro 4 ,
|
|
.Xr pciide 4 ,
|
|
.Xr scsi 4 ,
|
|
.Xr umass 4 ,
|
|
.Xr wdc 4 ,
|
|
.Xr atactl 8 ,
|
|
.Xr dkctl 8
|
|
.Sh BUGS
|
|
The optional software bad sector list does not interoperate well with
|
|
sector remapping features of modern disks.
|
|
To let the disk remap a sector internally, the software bad sector list
|
|
must be flushed or disabled before.
|