2000-11-16 01:19:13

by Will Day

[permalink] [raw]
Subject: Can't get UDMA to work...

I just picked up a 13gb Western Digital drive to put in a linux machine,
but am having difficulty getting it to use UDMA. On bootup, it reports:

Partition check:
sda: sda1 sda2
hda:hda: timeout waiting for DMA
hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hda: timeout waiting for DMA
hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hda: timeout waiting for DMA
hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hda: timeout waiting for DMA
hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hda: DMA disabled
ide0: reset: success
hda1 hda2

The system was installed on a borrowed scsi disk, so it's booting the
system fine; the goal is to move the system to the IDE disk, but first I
want to get it talking to the disk properly. After boot, 'hdparm /dev/hda'

multcount = 16 (on)
I/O support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 1662/255/63, sectors = 26712000, start = 0

Trying to enable DMA with "hdparm -d1" at this point also produces the
timeout errors.

I read over the Ultra-DMA Mini-Howto, and applied the ide patch to the
kernel (2.2.17), with these options:

# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_IDEDMA_IVB is not set

It still gives the above errors, now with an additional message:

ide_dmaproc: chipset supported ide_dma_timeout func only: 14

I also downloaded and ran the utility from the WD website (wd_ata66.exe), to
switch the drive from UDMA/66 to only UDMA/33, since the BX-based BH6
motherboard only supports 33. That didn't seem to make any difference.

I also tried disabling UDMA, as well as setting PIO modes, in the BH6 bios,
but this didn't seem to make any difference. I was overclocking the system
bus, so I set it back to 100MHz, but that didn't seem to make any
difference either.

Other ide messages from boot:
Uniform Multi-Platform E-IDE driver Revision: 6.30
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller on PCI bus 00 dev 39
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio
hda: WDC AC313600D, ATA DISK drive
hdb: CD620E, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: WDC AC313600D, 13042MB w/1966kB Cache, CHS=1662/255/63, UDMA(33)
hdb: ATAPI 5X CD-ROM drive, 240kB Cache

And from 'hdparm -i /dev/hda':
Model=WDC AC313600D, FwRev=J7JOA30K, SerialNo=WD-WT6710449014
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=34
BuffType=DualPortCache, BuffSize=1966kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=26712000
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2 udma0 udma1 *udma2

And from 'hdparm -I /dev/hda':
Model=CA136300 D , FwRev=3AK0DW C, SerialNo=6T17409410 4
Config={ }
RawCHS=16/0/0, TrkSize=63, SectSize=0, ECCbytes=19023
BuffType=34, BuffSize=9499kB, MaxMultSect=0
(maybe): CurCHS=63/64528/251, CurSects=-1749024496, LBA=yes, LBAsects=458752
PIO modes: pio0
DMA modes:

And, from 'lspci':
00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 03)
00:07.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02)
00:09.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c875 (rev 26)
00:0b.0 Ethernet controller: Lite-On Communications Inc LNE100TX (rev 20)
00:0d.0 Ethernet controller: Lite-On Communications Inc LNE100TX (rev 20)
00:0f.0 VGA compatible controller: Alliance Semiconductor Corporation ProMotion AT3D (rev 02)

And, from /proc/interrupts:
0: 132975 XT-PIC timer
1: 2 XT-PIC keyboard
2: 0 XT-PIC cascade
4: 1297 XT-PIC serial
8: 1 XT-PIC rtc
10: 46786 XT-PIC eth0
12: 19420 XT-PIC sym53c8xx, PS/2 Mouse
13: 1 XT-PIC fpu
14: 12 XT-PIC ide0
15: 7 XT-PIC ide1
NMI: 0

And from /proc/ide/drivers:
ide-cdrom version 4.58
ide-disk version 1.09

And from /proc/ide/piix:
Intel PIIX4 Ultra 33 Chipset.
------------- Primary Channel ---------------- Secondary Channel -----------
enabled enabled
------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ----
DMA enabled: no no yes no
UDMA enabled: yes no no no
UDMA enabled: 2 X X X

Right now, I'm kinda at a loss - I'm not sure what else to try. I did some
searching on dejanews and of various HTML archives of the linux-kernel list,
but couldn't find any solutions that seemed to apply.

Also, I'm really more familiar with SCSI - the only IDE drives I've ever had
before now were 2gb or less - so I really know little to nothing about these
new-fangled PIO and UDMA things. :) Thus, I may be missing something obvious.

Any hints would be appreciated.

Will Day <PGP mail preferred> OIT / O&E / Technical Support
[email protected] Georgia Tech, Atlanta 30332-0715
-> Opinions expressed are mine alone and do not reflect OIT policy <-
Those who would give up essential Liberty, to purchase a little temporary
Safety, deserve neither Liberty nor Safety.
Benjamin Franklin, Pennsylvania Assembly, Nov. 11, 1755

(No filename) (360.00 B)