[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problems setting DMA



> Here's what I do on an IBM Deskstar 45GB
> First some info:
> # hdparm -i /dev/hdb
> /dev/hdb:
>  Model=IBM-DTLA-307045, FwRev=TX6DA50C, SerialNo=YM0YMF43821
>  Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
>  RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=40
>  BuffType=3(DualPortCache), BuffSize=1916kB, MaxMultSect=16, MultSect=off
>  DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2
>  CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=88265520
>  tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2
>  IORDY=on/off, tPIO={min:240,w/IORDY:120}, PIO modes: mode3 mode4
>  UDMA modes: mode0 mode1 mode2 mode3 mode4 *mode5

It works, right?


Here's what happens to mine when I try it out:

# hdparm -i /dev/hdc

/dev/hdc:

 Model=QUANTUM FIREBALL SE4.3A, FwRev=API.0C00, SerialNo=334813860290
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=14848/9/63, TrkSize=32256, SectSize=512, ECCbytes=4
 BuffType=3(DualPortCache), BuffSize=80kB, MaxMultSect=16, MultSect=off
 DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2
 CurCHS=14848/9/63, CurSects=8418816, LBA=yes, LBAsects=8418816
 tDMA={min:120,rec:120}, DMA modes: sword0 sword1 sword2 mword0 mword1
mword2 
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4 
 UDMA modes: mode0 mode1 *mode2 

# hdparm -c 3 /dev/hdc
/dev/hdc:
 setting 32-bit I/O support flag to 3
 I/O support  =  3 (32-bit w/sync)

# hdparm -d 1 /dev/hdc
/dev/hdc:
 setting using_dma to 1 (on)
 using_dma    =  1 (on)
Then I'll run a program that requires a disk read, such as, for example,
find /

It locks for a while (about ten seconds) then I run dmesg. The last
lines are self-explanative:


hdc: timeout waiting for DMA
hdc: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hdc: timeout waiting for DMA
hdc: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hdc: timeout waiting for DMA
hdc: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hdc: timeout waiting for DMA
hdc: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hdc: DMA disabled
ide1: reset: success


The system disables DMA. It gives me an IRQ timeout.

BIOS is fine. Everything is fine but DMA. What should I do? Break my
MotherBoard in half? :-))

I've already tried hdparm -c 0, -c 1, -c 2, -c 3. I've also tried hdparm
-u 1. Results: Still no DMA.

Wierd, eh?

-- 
Leonardo Dias
Analista Programador / Analyst Programmer
Catho Online
www.catho.com.br



Reply to: