Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Aug 2012 09:45:55 -0600
From:      Ian Lepore <freebsd@damnhippie.dyndns.org>
To:        Wajih Ahmed <wajih.ahmed@gmail.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: FreeBSD 9.0 and (Kingspec) PATA drive ATA status errors. Drive unusable.
Message-ID:  <1344786355.1186.32.camel@revolution.hippie.lan>
In-Reply-To: <CABtOXebJPTJgqjPhNVayMWJc1xQViwMBDuLs2pKGQm-u6Fjmhg@mail.gmail.com>
References:  <CABtOXebJPTJgqjPhNVayMWJc1xQViwMBDuLs2pKGQm-u6Fjmhg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2012-08-12 at 10:57 -0400, Wajih Ahmed wrote:
> I have a Dell D420 laptop with the ZIF interface and uses a 1.8" PATA
> drive.  I purchased a Kingspec 16GB SSD and installed it.  The BIOS
> recogonizes the drive.  I am using the USB image to boot in verbose mode.
> Upon boot the disk is recognized by FreeBSD 9.0 as follows (sorry for any
> typos as i am reading this off the console):
> 
> ada0 at ata0 bus 0 scbus0 target 0 lun 0
> ada0: <KingSpec KSD-ZF18.6-016MS 20120202> ATA-7 device
> ada0: Serial number...
> ada0: 100.0000MB/s transfers (UDMA5, PIO 512bytes)
> 
> Then i see these errors
> 
> (ada0:ata0:0:0:0): ATA status error
> .....READ_DMA. ACB: c8 ....
> .....CAM status: ATA status error
> .....ATA status: 51 (DRDY SERV ERR), error: 84 (ICRC ABRT)
> .....RES: 51 .....
> 
> 
> As a result the disk is rendered unusable and i cannot write (partition) to
> it.  I did test the drive with a linux boot disk and i was able to format
> it.
> 
> So my question is how can i make this drive work?  Do i need to pass
> something to the kernel at boot to lower the speed of the drive.  Maybe to
> UDMA66?  Any help will be really appreciated.

Whenever I've seen ICRC errors, it has been caused by using a 40-wire
cable at speeds faster than UDMA33 [1].  A potential fix is to force the
mode in loader.conf:

 hint.ata.0.mode="UDMA33"

[1] I've also seen ICRC errors when there was no cable involved at all,
such as with a surface-mount compact flash socket on a circuit board
that has 50 pins spaced even closer together than a standard ata cable.
I have no real proof that such closely-spaced pins cause the same kind
of signal crosstalk as a 40-wire cable (they're close, but the length of
the parallel wires is just a couple millimeters), but forcing the driver
to UDMA33 or less always seems to fix the problem.

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1344786355.1186.32.camel>