FreeBSD 9.0 and (Kingspec) PATA drive ATA status errors. Drive
unusable.
Ian Lepore
freebsd at damnhippie.dyndns.org
Sun Aug 12 15:46:04 UTC 2012
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
More information about the freebsd-stable
mailing list