MandrakeUser.Org - Your Mandrake-Linux Knowledge Base!


 
 

*DocIndex - Hardware

Hardware Titbits V

* Installing LM 7.2 On An UDMA 100 Drive And Asus A7V
* Tips, Hints And Pitfalls With UDMA 100

Related Resources:

Modified: Jan 16, 2001
Author: Tom Berger

 

'Hardware Titbits' collects instructions on how to set up hardware devices which haven't been detected or configured by Mandrake Linux.
You are welcome to contribute a titbit, too!

* Installing LM 7.2 On An UDMA 100 Drive And Asus A7V

(Notice that following article does not apply to releases 8.0 or later. These releases detect and configure UDMA 100 devices automatically and correctly.)

ML 7.2 supports the UDMA 100 Promise controller on-board chips on the popular Asus A7V mainboards. The problem lies in detecting them properly (or at all).
Regis Wira, Hardware Support Manager at Mandrakesoft, contributed this little writeup to help you getting up and running ML on your new UDMA 100 drive.

ML 7.2 does not automatically detect the embedded Promise ATA 100 controller in this motherboard. Some manipulations are needed to put it to use.

Hardware used for the test:

  • AMD Duron 650
  • Asus A7V Bios release 1004
  • 2*128 Mo PC 100
  • IBM DTLA-307045 or IBM DPTA-351500 or IBM DTLA-307030
  • Matrox G400 DH
  • Netcard Realtek RTL-8139
  • Creative 52x CD

This procedure is meant only for disks attached to the primary ATA/100 channel.

Getting The Needed Information

(tom:) If you have Windows installed on the same machine, use its device manager in the System Control Center to find the Promise Controller, click on the 'Properties' button and then go for the 'resources' tab. Write down the first four I/O addresses listed, add 2 to the second and fourth value.
Regis explains how to get those values without using Windows:

First of all, boot with the distribution CD. Upon the first screen, hit F1 to get the prompt.

Now type "rescue" (without quotes) and hit the ENTER key.
The system will now boot in rescue mode. After booting, you will get a new prompt:

[root@rescue]#

Enter this command:

lspci -vv | less

Among the listed entries, look for an entry like this:

00:11.0 Class 0180: 105a:0d30 (rev 02)
Subsystem: 105a:4d33
Flags: bus master, (...), latency 32, IRQ 10
I/O ports at a000
I/O ports at 9800
I/O ports at 9400
I/O ports at 9000
I/O ports at 8800
Memory at df800000 (32-bit, non-prefetchable)
Capabilities: [58] Power Management version 1

This is the result I get on my computer, it might be different on other computers. But whatever result you get, the method to get the hardware working stays the same.
Write down the first four I/O numbers, increase values 2 and 4 by '2' (in this example that would result in '9802' and '9002').

Installation

Restart your computer to perform the installation.

Having the system rebooted from the distribution CD, press the F1 key again on the first screen to get a prompt.

Enter this line:

linux ide2=0xa000,0x9802

(0xa000 is first I/O value and 0x9802 is the second plus 2)

These parameters tell the kernel the address of the Promise ATA 100 controller.

At this point you are able to go ahead with a full installation.

During the boot loader configuration, you must enter these parameters so that the system will be able to reboot.
(tom:) If - for some reason - you fail to do this, you have to supply these parameters at the boot prompt: for LiLo, that would be

linux ide2=[I/O1],[I/O2] ide2=autotune ide0=autotune

for GRUB, hit 'e' twice and add the same line, but without 'linux'.

The matching lilo.conf entry looks like this:

(...)
image=/boot/vmlinuz
label=linux
root=/dev/hde2
initrd=/boot/initrd.img
append="ide2=0xa000,0x9802 ide2=autotune ide0=autotune"
read-only
(...)

(tom:) An entry in GRUB's 'menu.lst' would look like this:

title linux
kernel (hd0,1)/boot/vmlinuz root=/dev/hde2 ide2=0xa000,0x9802 ide2=autotune ide0=autotune

(Everything after 'kernel' has to be on the same line)

This step must be taken before rebooting the computer or you will have to give the same parameters during each time you boot.

This was tested on a new installed HD and on a drive installed previously on a PCI Promise ATA 100 card.

* section index * top

* Tips, Hints And Pitfalls With UDMA 100

I got lots of feedback on this article. Thanks to Noel, F. Lecorre, Jesper Krogh, Andy Feys and others.

Noel had Windows 98 installed on a disk at the first master channel of the Promise controller (hde), and Linux on a disk at the second master channel (hdg) with the boot loader installed in the Master Boot Record of 'hde'. He just added the I/O parameters for the second channel ('ide3').
However, he points out that both channels on the Promise controller share one IRQ, which effectively turns the second master channel into a slave channel. For performance reasons, he doesn't recommend to use more than one hard drive on the Promise controller.

Jesper Krogh and other users point out that there currently seems to be trouble to get the Promise controller working on 2.4 kernels. His 2.4 kernel configuration to put the generic IDE controller into UDMA mode is:

CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_IDE_CHIPSETS=y
CONFIG_IDEDMA_AUTO=y
CONFIG_BLK_DEV_IDE_MODES=y

Andy Feys and other users reported several resource conflicts after enabling the Promise controller.
The controller shares an IRQ with PCI slot 2, AMD themselves recommend not to put an SCSI controller or a sound card into this slot, but to use it for network cards. However, it looks like that also the other PCI slots are in some way affected. Andy Feys solved his troubles by swapping the slots of his network card and his sound card, putting the first into PCI slot 3 and the second into PCI slot 4. Other users have reported that swapping slots solved their problems with various cards, too.

* section index * top

 
Legal: All texts on this site are covered by the GNU Free Documentation License. Standard disclaimers of warranty apply. Copyright LSTB (Tom Berger) and Mandrakesoft 1999-2002.