[clue] [tech] linux driver for old IDE chipset?

Jim Ockers ockers at ockers.net
Thu Jun 9 15:14:00 MDT 2011


Hi CLUEbies,

It is unusual for something like this to stump me but I just can't seem 
to figure out how it is supposed to work.  I have a Linux system with 
the following IDE controller:

[root] # lspci
00:0b.0 Host bridge: SGS Thomson Microelectronics: Unknown device 020a
00:0c.0 ISA bridge: SGS Thomson Microelectronics: Unknown device 0210
00:0d.0 IDE interface: SGS Thomson Microelectronics: Unknown device 0228
00:0e.0 USB Controller: SGS Thomson Microelectronics: Unknown device 0230
00:1f.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] 
(rev 08)

This is a STPC Atlas IDE from STMicroelectronics (formerly SGS Thomson 
Microelectronics).  It is PCI id 104a:0228.

The Linux driver used for this apparently doesn't allow or support DMA, 
I think.  I really need to turn DMA on.  Does anyone out there have any 
ideas?  It's a long shot.  Putting ide0=dma on the kernel boot command 
line doesn't work either.

Here are the dmesg from an old Linux kernel running on this chipset:

Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hdb: C/H/S=0/0/0 from BIOS ignored
hda: FUJITSU MHV2080AH, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: attached ide-disk driver.
hda: host protected area => 1
hda: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=9729/255/63
Partition check:
 hda: hda1 hda2 < hda5 hda6 hda7 >

Notice how DMA is not apparently supported - it doesn't say hda=DMA or 
anything.  The disk itself supports DMA.  Attempts to turn on DMA with 
hdparm fail:

[root]# hdparm -i /dev/hda

/dev/hda:

 Model=FUJITSU MHV2080AH, FwRev=000000A0, SerialNo=NT61T7C30EC2
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=-66060037, LBA=yes, LBAsects=156301488
 IORDY=yes, 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 udma3 udma4 udma5

[root]# hdparm -d1 -X64 /dev/hda
/dev/hda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 setting xfermode to 64 (UltraDMA mode0)
 using_dma    =  0 (off)

[root]# hdparm -d1 -X65 /dev/hda
/dev/hda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 setting xfermode to 65 (UltraDMA mode1)
 using_dma    =  0 (off)

[root]# hdparm -d1 -X66 /dev/hda
/dev/hda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 setting xfermode to 66 (UltraDMA mode2)
 using_dma    =  0 (off)


Thanks,
Jim

-- 
Jim Ockers, P.Eng. (ockers at ockers.net)
Contact info: http://www.ockers.net/msi.html


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cluedenver.org/pipermail/clue/attachments/20110609/f84204f2/attachment.html 


More information about the clue mailing list