After a couple of days of searching for data, here are the results of my
quest to install a Promise Ultra 133 TX2 IDE controller card as a third
and fourth IDE controller in a Mandrake 8.0 installation. 

I'm posting this so someone else doesn't have to go through what I
went through to figure it out.  FYI, this example uses LILO for the
bootloader.

Note that this method is not a performance oriented installation.  It does
not use the high-speed driver that Promise is developing for Linux.  I
am simply using the Promise card to provide me with two additional
IDE controllers beside the two on my motherboard.

1) Install the card.

Note that I installed the card and it was already working in Windows
when I decided to load Mandrake 8.0.  This gave me the advantage
of knowing that the card did not conflict with anything else prior to my
attempts to get the card recognized under Linux.  This isn't really a
necessary thing if your BIOS messages show that it is properly seeing
any attached drives.

2)  Locate the I/O address used by the Promise Controller

        a) Boot your linux system.
        b) Get a command prompt.
        c) Enter the command:

            less /proc/pci

        d) Find the section that looks like this:

            Bus  0, device   8, function  0:
              Unknown mass storage controller: PCI device 105a:4d69 (Promise 
Technology, Inc.) (rev 2).
                IRQ 4.
                Master Capable.  Latency=32.  Min Gnt=4.Max Lat=18.
                I/O at 0x2800 [0x2807].
                I/O at 0x2c00 [0x2c03].
                I/O at 0x3000 [0x3007].
                I/O at 0x3400 [0x3403].
                I/O at 0x2000 [0x200f].
                Non-prefetchable 32 bit memory at 0xd9000000 [0xd9003fff].
 
           NOTE:  Your specific numbers will probably be different, but, for
           purposes of these instructions, consider the I/O lines to be named
           A, B, C, D, and E.  For example, I/O at 0x2800 .. is setting A, I/O
           at 0x2c00 is setting B, etc.

           This gives us, for example:

           A = 0x2800
           B = 0x2c00
           C = 0x3000
           D = 0x3400
           E = 0x2000

3) Set up your bootloader to add parameters for the Promise controller:

        a)  Construct bootloader parameters using this template:

             ide2=A,B+2 ide3=C,D+2

             Using our sample data shown above, this results in:

             ide2=0x2800,0x2c02 ide3=0x3000,0x3402

        b)  Save off a copy of lilo.conf for safety.

        c)  Edit the step e) information into /etc/lilo.conf append statements.
             I'd be careful to avoid editing the "failsafe" entry, but that's just
             my suggestion.  Add the edits to which ever boot choices you 
                 want to.  For purposes of this example, I'm only adding the
             Promise controller drives to the Linux and Linux-NonFB
             boot options.

            Example before the edits (yours may look different!):

            boot=/dev/hda
            map=/boot/map
            install=/boot/boot.b
            default=Windows-98
            keytable=/boot/us.klt
            lba32
            prompt
            timeout=1500
            message=/boot/message-graphic
            menu-scheme=wb:bw:wb:bw
            image=/boot/vmlinuz
                label=Linux
                root=/dev/hda5
                initrd=/boot/initrd.img
                append=" hdc=ide-scsi quiet"
                vga=788
                read-only
            image=/boot/vmlinuz
                label=Linux-NonFB
                root=/dev/hda5
                initrd=/boot/initrd.img
                append=" hdc=ide-scsi"
                vga=0x030A
                read-only
            image=/boot/vmlinuz
                label=Linux-failsafe
                root=/dev/hda5
                initrd=/boot/initrd.img
                append=" hdc=ide-scsi failsafe"
                read-only
            other=/dev/hda1
                label=Windows-98
                table=/dev/hda
            other=/dev/fd0
                label=Floppy
                unsafe

            This example is pretty much straight out of the default Mandrake 8.0
            installation where I have a dual boot to Windows 98 set up.

            The new, updated lilo.conf would look like:

            boot=/dev/hda
            map=/boot/map
            install=/boot/boot.b
            default=Windows-98
            keytable=/boot/us.klt
            lba32
            prompt
            timeout=1500
            message=/boot/message-graphic
            menu-scheme=wb:bw:wb:bw
            image=/boot/vmlinuz
                label=Linux
                root=/dev/hda5
                initrd=/boot/initrd.img
                append=" hdc=ide-scsi ide2=0x2800,0x2c02 ide3=0x3000,0x3402 quiet"
                vga=788
                read-only
            image=/boot/vmlinuz
                label=Linux-NonFB
                root=/dev/hda5
                initrd=/boot/initrd.img
                append=" hdc=ide-scsi ide2=0x2800,0x2c02 ide3=0x3000,0x3402"
                vga=0x030A
                read-only
            image=/boot/vmlinuz
                label=Linux-failsafe
                root=/dev/hda5
                initrd=/boot/initrd.img
                append=" hdc=ide-scsi failsafe"
                read-only
            other=/dev/hda1
                label=Windows-98
                table=/dev/hda
            other=/dev/fd0
                label=Floppy
                unsafe
            
        d) Save the changes.

            Again, your data may vary depending on the installation.  The only data
            changes are in two "append" statements.  Be careful to leave spaces in
            the appropriate places.

        e)  Run the lilo command and make sure that no errors occur.  The output of
            lilo for this example is:

            # lilo
            Added Linux
            Added Linux-NonFB
            Added Linux-failsafe
            Added Windows-98 *
            Added Floppy
            #

            Note that there are no error messages.  Do not proceed until you can run
            lilo successfully.  Naturally, one would encourage another to be careful
            and do it all correctly the first time.

4) Test the changes:

        a)  Reboot the system

            If you are looking at the boot messages, the would look similar to this:

            Linux version 2.4.3-20mdk ([EMAIL PROTECTED]) (gcc version 
egcs-2.91.66 19990314/Linux (egcs-1.1.2 release / Linux-Mandrake 8.0)) #1 Sun 
Apr 15 23:03:10 CEST 2001
            BIOS-provided physical RAM map:
             BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
             BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
             BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
             BIOS-e820: 0000000000100000 - 000000000a000000 (usable)
             BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
            On node 0 totalpages: 40960
            zone(0): 4096 pages.
            zone(1): 36864 pages.
            zone(2): 0 pages.
            hm, page 01000000 reserved twice.
            Kernel command line: BOOT_IMAGE=Linux-NonFB ro root=305 hdc=ide-scsi 
ide2=0x2800,0x2c02 ide3=0x3000,0x3402
            ide_setup: hdc=ide-scsi
            ide_setup: ide2=0x2800,0x2c02

            ide_setup: ide3=0x3000,0x3402

            <snip>

            Uniform Multi-Platform E-IDE driver Revision: 6.31
            ide: Assuming 33MHz system bus speed for PIO modes; override with 
idebus=xx
            ALI15X3: IDE controller on PCI bus 00 dev 78
            PCI: Assigned IRQ 4 for device 00:0f.0
            ALI15X3: chipset revision 194
            ALI15X3: not 100% native mode: will probe irqs later
                ide0: BM-DMA at 0x3800-0x3807, BIOS settings: hda:DMA, hdb:pio
                ide1: BM-DMA at 0x3808-0x380f, BIOS settings: hdc:DMA, hdd:pio
            hda: IBM-DJNA-352030, ATA DISK drive
            hdc: PLEXTOR CD-R PX-W2410A, ATAPI CD/DVD-ROM drive
            hde: FUJITSU M1638TAU, ATA DISK drive
            hdf: WDC AC24300B, ATA DISK drive
            hdg: KENWOOD CD-ROM UCR-421 V226G, ATAPI CD/DVD-ROM drive
            ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
            ide1 at 0x170-0x177,0x376 on irq 15
            ide2 at 0x2800-0x2807,0x2c02 on irq 4
            ide3 at 0x3000-0x3007,0x3402 on irq 4 (shared with ide2)
            hda: 39876480 sectors (20417 MB) w/1966KiB Cache, CHS=39560/16/63, 
UDMA(66)
            hde: 5023680 sectors (2572 MB) w/128KiB Cache, CHS=4983/16/63
            hdf: 8421840 sectors (4312 MB) w/512KiB Cache, CHS=8912/15/63
            Partition check:
             hda: hda1 hda2 < hda5 hda6 hda7 >
             hde: [PTBL] [622/128/63] hde1 < hde5 hde6 > hde3 hde4
             hdf: [PTBL] [524/255/63] hdf1 hdf2 < hdf5 hdf6 > hdf3
            RAMDISK: Compressed image found at block 0
            Uncompressing....done.

            <snip>

        b)  Points to beware of:

             The boot process will hang the computer during the Partition check: if
             the ide2 and ide3 addresses are incorrect.

             Actually, I doctored this example...  With my hardware (the WDC
             AC24300B, ATA DISK drive to be precise) this configuration will also
             hang the system during the partition checks.  This Western Digital
             drive also required an " ide3=noautotune" statement to prevent the
             boot failure.  (Oddly, this was not necessary on Mandrake 7.2 with
             the same drive, but, that is another long story...)

             I have not studied what other similar issues may exist for other hard
             drives, but, take this as a warning.

             I'd suggest only changing one boot option until you get things working
             properly.  I used the non-framebuffer boot as the test, and then added
             the commands to the other boot options when it was all working properly.

5) Enjoy being able to use more than four IDE devices in your system...  or,
    simply enjoy the performance benefits of running one one drive per
    controller.

Hopefully this message can end up in the archive so that the data is not so
hard to find for the next guy...

BTW, Promise Technologies is currently beta testing a driver that will allow
us to properly utilize the performance features of this card, or so I was told
by one of their support technicians.

Kevin R. Bulgrien
[EMAIL PROTECTED]

Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com

Reply via email to