[TriLUG] RH 7.1 DMA + IDE CDROM problem

Steven Blanchard sgblanch at email.unc.edu
Mon Sep 10 16:19:57 EDT 2001


I was in the middle of a 2.4.9 kernel config, when I noticed an option 
labeled "Use PCI DMA by default when available" under the IDE, ATA and 
ATAPI Block Devices (xconfig). I know little about the DMA/hardware 
aspects, but I wonder if you had the time/patience for a kernel 
recompile, it might fix things, but no guarantees...

~steven

Ken Wahl wrote:

>Howdy,
>
>Having a little trouble turning DMA off permanently for my cdrom drive
>on RH 7.1.  It's an ATAPI 40x CDROM drive and unfortunely one of
>those that cannot be used in DMA mode under RH 7.1 .  RH wants to put it
>into DMA mode by default even though BIOS is set for PIO Mode 4.
>This issue is documented at http://www.exocore.com/linux.rh171dma/
>
>The suggested workaround is to issue a hdparm -d 0 in rc.local
>I've done this but shortly after bootup (or giving command at console),
>somewhere within an hour, the drive is put back in DMA mode.  I don't
>know exactly what causes this but suspect that the device is polled for
>autotuning after rmmod unloads the cdrom driver and subsequently resets
>the device for DMA.
>
>I know I could pass the kernel parameter "ide1=nodma" at boot time but
>the IDE channel is shared with a hard disk that I would like to keep in
>DMA mode if I could.
>
>Could anyone suggest another workaround that would disable DMA for that
>device permenently?  Is "hdd=nodma" a legitimate parameter?  I didn't
>see it listed in the list of passable kernel parameters at LDP.
>
>Here is the output of hdparm -i /dev/hdd
>
>/dev/hdd:
>
> Model=CRD-8400C, FwRev=1.02, SerialNo=1999/03/29
> Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
> RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
> BuffType=unknown, BuffSize=0kB, MaxMultSect=0
> (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
> IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
> PIO modes: pio0 pio1 pio2 pio3 pio4 
> DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 *mdma2
>
>and hdparm /dev/hdd
>
> HDIO_GET_MULTCOUNT failed: Invalid argument
> HDIO_GET_NOWERR failed: Invalid argument
> HDIO_GETGEO failed: Invalid argument
>
>/dev/hdd:
> I/O support  =  0 (default 16-bit)
> unmaskirq    =  0 (off)
> using_dma    =  1 (on)
> keepsettings =  1 (on)
> readonly     =  1 (on)
> readahead    =  8 (on)
>
>I set keepsettings to on after turning using_dma to off but as you can
>see it wasn't kept.
>
>dmesg shows:
>
>Uniform CD-ROM driver unloaded
>ide-floppy driver 0.97
>hdd: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
>hdd: set_drive_speed_status: error=0xb4
>hdd: ATAPI 40X CD-ROM drive, 128kB Cache, DMA
>Uniform CD-ROM driver Revision: 3.12
>
>The mobo is a EFA E5TX-AT with Intel Triton 430TX chipset.  (OK, stop
>snickering..)
>
>As always, thanks for any help/suggestions.
>





More information about the TriLUG mailing list