[wplug] Help with Installing 500GB Western Digital Drive (shorter/better focus) ...

Bryan J. Smith b.j.smith at ieee.org
Mon Jul 30 14:54:42 EDT 2007


[ NOTE:  I have a tendency to over-explain, especially how hardware
works.  While I do this for Google searches, I sometimes "miss the
target" audience. ]

On Mon, 2007-07-30 at 14:24 -0400, Bryan J. Smith wrote:
> Unfortunately, that _may_ be causing your issues.  ;)
> Try _disabling_ it.  ;)
>  ... 
> The sata_nv driver may have been updated in newer kernels to handle
> newer SATA drives -- such as this clearly "native" SATA-II device.
> The [PC/]AT Attachment (ATA) itself is just a bunch of "dumb" wires and
> controlling registers implementing the legacy PC/AT 16-bit data bus,
> only at increased speed with select features (e.g., CRC checking in
> UltraDMA modes).  The Integrated Drive Electronics (IDE) on the ATA
> device (including serialized ATA) then talks to the "end system" over
> that "dumb" bus -- often direct memory access (DMA) for block transfers.
> In other words ... the [S]ATA controller aside ...
>   *IF* you're using a very *NEW* SATA drive with *NEW* IDE,
>   *BUT* a very *OLD* ATA controller driver ...
> Then you're likely to see such issues in any OS -- PC BIOS completely
> aside.  ;)
> Hence the questions ...
> - What kernel are you using?
> - What distro is this?
> Kernel can be found with "uname -r"
> Distro depends, but it's sometimes in "cat /etc/*-release"

What you should try is ...

A.  Disable detection in the BIOS
B.  Try to use a newer kernel with a newer sata_nv driver

Why?

Here's the deal on how ATA drives work.

First key to understanding is that they, Integrated Drive Electronics
(IDE).  This actually goes back to the Enhanced System Disk Interface
(ESDI).  ESDI was a direct "end-to-end" connection between the IDE on
the disk and the system, namely CPU-memory (using Programmed I/O, PIO --
CPU driven I/O), over the 16-bit at 8MHz PC/AT ISA bus.  This has since
"evolved" into a direct memory access (DMA) which reduces CPU usage and
allows much faster block transfers directly between the IDE on the drive
and the system memory.

Secondly is to understand what a modern ATA controller actually is.
It's that _dumb_ bus, with some control registers and a bus arbitrator.
But, in the end, it's still providing that "end-to-end" connection
between the IDE on the drive and the system memory.

So, there are basically three (3) major errors ...
1.  Improper setup of the ATA registers by the 16-bit PC BIOS
2.  Improper setup of the ATA registers by the 32/64-bit OS driver
3.  Various violations of ATA standards by the IDE on the drive

Regarding 1 ... disabling the detection of the drive in the BIOS/CMOS
_prevents_ the 16-bit PC BIOS Int13h Disk Services setting up the ATA
registers at POST (Power On Self Test).  An older BIOS/CMOS may setup
the ATA channel, its registers, etc... for the newer drive its with
newer IDE that may implement newer ATA standards improperly.

Regarding 2 ... this is basically the same at the OS level.  An older OS
ATA driver may setup may setup the ATA channel, its registers, etc...
for the newer drive with newer IDE that may implement newer ATA
standards improperly.  So even if you are disabling the detection to
avoid the issue with #1, on an old kernel with an old "sata_nv" driver,
you will probably have issues.  Especially since this is a very new,
"native" 3GHz SATA-II drive IDE implementation on that WD5000 (most
1.5GHz SATA drives are merely IDE data link MAC with SATA PHY link
adapters on the IDE).

SIDE NOTE:  In the same regard, even an "old" ATA controller will often
"work correctly" if it has an updated "OS driver/setup."  E.g., most
older LBA28 ATA controllers (137GB/128GiB "limit") can _still_ support
LBA48 ATA devices at their _full_ capacity.  How?  Remember, ATA is
"dumb."  With a little OS-level support, it can use the registers to
support 48-bit LBA, using 28-bit LBA.  After all, ATA is _still_ a
16-bit data bus originally designed for age-old ESDI's 28-bit LBA.

Regarding 3 ... most hard drives just mess up ATA specs.  For the most
part, this is forgiving for modern systems with modern drivers.  For
older devices/drivers, it may not be so forgiving -- especially with new
drives and new revision IDE devices.  Seen this first-hand with IBM/HGST
(and WD-fabbed drives by IBM/HGST) in the past on Intel ICH and ViA
VLink media/peripheral "southbridges" with their ATA logic/drivers.
Typically the nVidia MCP is _very_good_, but that requires you to have a
_current/modern_ "sata_nv" driver to support newer features.

Hopefully this explains this detail -- I really should blog this stuff
(instead of pushing it down and upon everyone in a LUG list ;).



-- 
Bryan J. Smith         Professional, Technical Annoyance
mailto:b.j.smith at ieee.org   http://thebs413.blogspot.com
--------------------------------------------------------
        Fission Power:  An Inconvenient Solution



More information about the wplug mailing list