Jump to content

Two IDE controlers


neutro
 Share

Recommended Posts

Here's the problem: I have an Asus A7V-266 with two IDE ATA-100 controlers: one by VIA and the other by Promise, each of which have two channels (i.e. a total of 8 possible devices).

 

When using Mandrake kernels, my hard drive is detected on ide0, as /dev/hda. hdb, hdc and hdd are empty. On my second controler, I have my CD recoreder and DVD drive on ide2 (hde and hdf), hdg and hdh being empty.

 

I'm currently trying to compile another kernel (2.6.3) from the kernel.org source and a friend's .config. When I boot without anything special in the append= LILO line, the two controllers seem inverted: my HD is detected on ide2 at /dev/hde, and my drives on ide0 at hda and hdb. Of course since lilo.conf specify root=/dev/hda1, I get a kernel panic.

 

Now I'd like not changing my fstab so that I could boot on any kernel without messing around in it or fearing that LILO won't find the boot partition. So I tried giving an append= option of the form ide0= and ide2=.

 

So what to put there? I have two conflicting informations from /var/log/dmesg when I boot a Mandrake kernel. First I have:

PDC20265: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.

    ide0: BM-DMA at 0xb000-0xb007, BIOS settings: hda:DMA, hdb:DMA

    ide1: BM-DMA at 0xb008-0xb00f, BIOS settings: hdc:pio, hdd:pio

(...)

VP_IDE: VIA vt8233 (rev 00) IDE UDMA100 controller on pci00:11.1

    ide2: BM-DMA at 0x9800-0x9807, BIOS settings: hde:DMA, hdf:DMA

    ide3: BM-DMA at 0x9808-0x980f, BIOS settings: hdg:pio, hdh:pio

 

But putting ide0=0xb00 ide1=0xb008 ide2=0x9800 ide3=0x9808 didn't work: the kernel was probing ide4 and ide5 for hdi, hdj, hdk, hdl...

 

Later in dmesg I get:

ide0 at 0xd400-0xd407,0xd002 on irq 5

ide2 at 0x1f0-0x1f7,0x3f6 on irq 14

 

which as I said before contradicts the previous information. However, putting ide0=0xd400,0xd002 ide1=0x1f0,0x3f6 seems to work. The only problem is that I also have usb and eth0 on irq5, and it seems that doing this prevents the network interface to be brought up: it says that adress 127.0.0.1 is already taken by another host!

 

So: anyone know a better way of performing the ide controler switch?

Link to comment
Share on other sites

I could be totally wrong, but it is my understanding that the new 2.6.* kernels handle plug'n'play now and you should be able to re-enable Plug'n'Play OS in the BIOS and then add the ide0= lines in lilo and have them work properly. Once again, I could be wrong and I would wait for verification (although it shouldn't hurt to try it). You could also try compiling the 2.6.3 kernel using an MDK .config file and making any necessary changes to more resemble your friend's config?

Link to comment
Share on other sites

Oh, wait. I think I know the answer. After booting to the MDK kernel, look in /proc/ioports for the first two times you see each ide:

<<snip>>

0170-0177 : ide1

01f0-01f7 : ide0

0376-0376 : ide1

<<snip>>

03f6-03f6 : ide0

<<snip>>

 

Then look in /proc/interrupts:

14: 290795 XT-PIC ide0

15: 87030 XT-PIC ide1

 

My append line, for example, would be:

ide0=1x1f0,0x3f6,14 ide1=1x170,0x376,15

 

in other words

ide0=1x[first number of first ioport reference of ide0],0x[first number of second ioport reference of ide0],[interrupt number of ide0]

 

Make sense? Hopefully, this works correctly.

Edited by Steve Scrimpshire
Link to comment
Share on other sites

Well it works, in the sense that my previous line also works ;)

 

I mean by that : the ide controllers are switched correctly, and even if I don't specify the irq in the append line, they are found correctly and set the same way as with the Mandrake kernel. I can access my HD on hda and my drives on hde and hdf alright.

 

The problem is that in my Mandrake kernel, it seems that eth0 and usb is on the same interrupt as ide0:

  0:    1117892          XT-PIC  timer

  1:      45798          XT-PIC  keyboard

  2:          0          XT-PIC  cascade

  5:  457191          XT-PIC  ide0, usb-uhci, usb-uhci, usb-uhci, eth0

  8:          1          XT-PIC  rtc

  9:          0          XT-PIC  CMI8738-MC6

11:    1034790          XT-PIC  EMU10K1, nvidia

14:        149          XT-PIC  ide2

 

When I boot with the append line specifying ide0=... and ide2=..., my USB mouse is lost (though the usbmouse driver is loaded, but I can see that uhci couldn't be set up in /var/log/dmesg), and incidentally, the network interface is also not brought up. So I guess there's an IRQ conflict of some sort here. I tried all compinations of acpi=off and noapic without success.

 

If I don't include the ide0=... ide2=... parameters, I get a kernel panic since my disk is now on hde and I have root=/dev/hda1. If I place root=/dev/hde1, lilo complains that this is impossible since when running lilo, hde doesn't exist (my disk is on hda then).

 

Also, I don't understand the information in /proc/ioports... Lines pertaining to ide configuration are:

01f0-01f7 : ide2

(...)

03f6-03f6 : ide2

(...)

9800-980f : VIA Technologies, Inc. VT82C586B PIPC Bus Master IDE

  9800-9807 : ide2

  9808-980f : ide3

(...)

b000-b03f : Promise Technology, Inc. 20265

  b000-b007 : ide0

  b008-b00f : ide1

(...)

d000-d003 : Promise Technology, Inc. 20265

  d002-d002 : ide0

d400-d407 : Promise Technology, Inc. 20265

  d400-d407 : ide0

Thus I get sort of conflicting information... the adresses that work are:

 

ide0=0xd400,0xd002

ide2=0x1f0,0x3f6

 

and as I said before it doesn't matter if I specify IRQ's or not.

 

Thank you again for your input, but it seems that for now I'll just have to enjoy my Mandrake kernel ;)

 

BTW I was able to boot in 2.6.3, just without mouse and network. I didn't do much but I managed to freeze Firefox just using the arrows for scrolling ;) FYI I have a bug with the nvidia driver and I was just seeing if it would just go away by using a non-MDK kernel. It doesn't seem so. So at least I have my answer.

Link to comment
Share on other sites

The LAST mobo I had where the mobo IDE controller and the PCI Promise Ultra100 controller were CORRECTLY listed in Mandrake INSTALL, was a GigaByte GA-7IXEH. Since then, the ASRock (made by Asus) and this Chaintech, ALWAYS swapped the controllers, not only for Mandrake Install, but also for Mandrake BOOT. :screwy:

 

This makes for alot of wasted space in this Full Tower Case.

 

For some reason Mandrake does not place nice with the extra IDE controller.

 

Oh, and that was with Mandrake 8.2 and the GA-7IXEH. Never did try it with the 9.x, since I gave the mobo, cpu and PSU to a friend (who is now using it, and the ultra100 controller).

 

Mandrake 9.x is not being nice, at least with certain mobo makes. My last 2 mobos have ata133 controllers.

 

:wall::wall::wall::wall:

Link to comment
Share on other sites

Steve: thanks again for the BIOS idea: I had to compile this feature (PnP OS) in the kernel, and it in fact did help: not for the ide channels swap (my append line seems to do the trick), but it did make USB work :)

 

Now the only thing that doesn't work in 2.6.3 is network. I can modprobe the via-rhine driver for my ethernet card, but still, nothing...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...