Hello!

I have added support for hard disk booting to the linux bios, but the
resulting transfer rates are quite slow, at about 2 MB/s. I suggest data
are transferred in PIO 0 mode.

Now my questions is: How do I speed up transfers and how do I Linux get
to know that a faster transfer can be used? So far I have done the
following:

- Configure the IDE controller with PIO 4 timings
- Enable UDMA and set the UDMA mode to 2 in the IDE controller
- Set the drive transfer mode to UDMA2 with the IDE Set Feature Command

The transfer rate did not change. Trying to enable DMA with the hdparm
command ("hdparm -d1 /dev/hda") failed with "HDIO_SET_DMA failed:
Operation not permitted".

Do you have any hints what else should be enabled or maybe where I have
to put some information about the drive or IDE controller where Linux
reads configuration information from?

The IDE controller is part of the PIIX4 southbridge, the hard disk a
quite new WD400:

[root@cpu2 linux]# hdparm -i /dev/hda

/dev/hda:

 Model=WDC WD400EB-00CPF0, FwRev=06.04G06, SerialNo=WD-WMAAT1247950
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs
FmtGapReq }
 RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
 BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=-66060037, LBA=yes, LBAsects=78165360
 IORDY=on/off, tPIO={min:120,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 


Linux boot messages:

Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
hda: WDC WD400EB-00CPF0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: 78165360 sectors (40021 MB) w/2048KiB Cache, CHS=77545/16/63


thanks in advance..

Norbert

Reply via email to