[CentOS] New CD-ROM drive causes kernel panic -- ATA modes, signaling and cabling

Wed Dec 28 18:58:53 UTC 2005
Bryan J. Smith <thebs413 at earthlink.net>

Louis Lagendijk <louis at lagendijk.xs4all.nl> wrote:
> look for DMA settings for the drive. turning DMA off could
> help

Of course, that turns off DMA for the _entire_ channel.

If you're shunting the ATA channel into PIO (e.g., for an
ATAPI device like a CD-ROM), back to DMA (e.g., for an ATA
device like a fixed disk), then back to PIO, etc..., that's
the best way to absolutely destroy performance on your ATA
channel.

Remember what ATA is -- it's a "dumb," 16-bit [PC/]AT
Attachment (ATA) channel with integrated drive electronics
(IDE) on the end-devices themselves.  If the master IDE and
slave IDE are radically different, they will constantly reset
the ATA bus when each takes control in the best case, or have
grave compatibility issues in the worst case.

When you use your CPU to do Programmed I/O (PIO) -- the IDE
isn't as much of an issue.  But when the IDE is not bothering
the CPU to do Direct Memory Access (DMA), that's a serious
concern.  Especially if one device is doing DMA, and then the
other device is doing PIO.

> As this does not seem the cause of the problem, I would
> tend to suspect the cable. Is the cable Ultra-DMA capable
> (high density 80 wires)?

The majority of ATA device IDEs autodetect the type of cable.
 During the post, if they don't detect the extra 40
conductors (80 total), they will reduce signaling to 8MHz
maximum.  I.e.,
- UltraDMA mode 2 = 16-bit x 8MHz DDR (33MBps)
- PIO Mode 4 = 16-bit x 8MHz (16MBps)

> In any case, replace it with an Ultra-DMA capable cable

Hate to be anal, but that's a misnomer and an incorrect
description.

It is commonly referred to as an Ultra66/100/133 capable
cable.

Standard 40 conductors are capable of 8MHz, including the
4.17, 5.5 and 8.33MHz DDR signaling (8.3, 11 and 16.6MHz,
effective) used in UltraDMA modes 0 (16MBps), 1 (22MBps) and
2 (33MBps) -- commonly and collectively referred to as
Ultra33.

It's only when higher signals are used for UltraDMA modes 3
(50MBps), 4 (66MBps), 5 (100MBps) and 6 (133MBps) that you
need the 80 conductor.  I don't know what the signaling is,
but I assume it is 12.5 (3), 16 (4), 25 (5) and 33 (6) MHz
DDR, respectively.  I could be mistaken on Ultra133, and
maybe 133MBps is 16MHz QDR.


-- 
Bryan J. Smith     Professional, Technical Annoyance                      b.j.smith at ieee.org      http://thebs413.blogspot.com
----------------------------------------------------
*** Speed doesn't kill, difference in speed does ***