[BL] Using ATA100 PCI IDE controllers in BL2
baslinux at lists.ibiblio.org
baslinux at lists.ibiblio.org
Tue Dec 11 19:48:22 EST 2007
A 2.4.31 kernel with built-in support for my Promise Ultra ATA100 TX2 PCI
controller card and also the onboard SIS controller of a 2.4GHz computer
given to us that appears to have some problem with the onboard controller,
producing transfer speeds of 3.2-3.5MB/sec. You can hear the hard drives
clicking away while you are waiting for a small file to load in DOS. This
SIS and another controller with the same problem are both marked ATA133.
To get the full speed, loadlin requires adding ide2=ata100 (if this is the
third IDE controller - disabling onboard controllers in BIOS may change
the numbering so watch dmesg). The default is 33MHz. Another site
suggested idebus=100 rather than ide=ata100. I have not tested speeds
with and without these additions to loadlin line.
Change your DOS boot batch file to point to the correct drive.
The card does not recognize CD-ROM drives, even after updating the BIOS.
I put mine on the onboard secondary controller and disabled the onboard
primary controller. I don't know how to disable the secondary controller
on the card. Each controller uses an IRQ.
hdparm -i /dev/hdc says it is using udma5 and also lists the drive speed.
I have not compared before and after yet with hdparm.
The driver for the add-in card must be built into the kernel (or use it
with initfs.gz) so that the drives will be recognized at boot time if your
boot drive is plugged into the card not the board. I have not compiled a
kernel for use with the modules - it needs a few things enabled:
I had to answer Y to 'Ignore BIOS port disable setting on FastTrak' to
eliminate six unresolved symbols, as discussed in the help file (but not
pointed out in help a while before that, for these two controller
modules). See my blfiles.htm in the bl directory for details.
I figured part of this out by remembering that linux would boot from scsi
drives only with the scsi support (general and hd) built into the kernel,
and by searching on my unresolved symbols and adding the bit about "Ignore
... FastTrak". It only took a few months.
The drive is now doing 61MB burst and 55MB sustained transfer instead of
3.5MB and 3.2MB, on our fastest drive ('fixed' by removing XP with
This card works in DOS without anything added.
It booted Win98 (in the other computer with slow onboard controller) even
more slowly than did the onboard controller. We fixed this by frying that
motherboard. The slowness problem was related to 512 byte sector size.
We got the card out of a 233MHz IBM that would not boot because someone
had put in two scsi cards (scsi and scanner cards). Someone gave us a
Promise 66MHz card. Drives seem to run at a maximum of about 60% of the
rated speed, so that 66MHz card runs them at 43MB (if they are capable).
The 2.5GB drive goes up to 15MB/sec with this ATA100 card. We also have
an ISA controller card that can control up to 8GB but is much much slower.
We have several other computers with slow controllers, 3MB - 5MB. One
has slow primary master (5MB), but primary slave and secondary M and S are
twice that speed. An IDE PCI add-in card can make these computers usable.
A SCSI card and drive are another option.
You need an 80 wire cable to get speeds over 33MB/sec (blue or yellow) -
which is ATA-4 (66) ATA-5 (100) or ATA-6 (133). It should not be
twisted. For drives that cannot do ATA66, we found that 40-wire cables
actually run them a bit faster. Many computers come with blue IDE
controller ports which are supposed to be fast but are not, and with
80-wire cables on hard disks and CD-ROM drives. CD-ROM drives never run
fast enough for them. The 80 wires is to reduce some electrical
interaction between the wires that slows down the drives.
This controller card is known for not supporting CD-ROM drives. It is not
a good solution for dead onboard IDE controller.
keesan at sdf.lonestar.org
SDF Public Access UNIX System - http://sdf.lonestar.org
More information about the BasLinux