# Promise Fasttrak Raid and 2.4.20, 2.6.0

## ballyn

I ran into an issue last eve with my Tyan LE-T dually tually with the Promise PDC20267 Fasttrak... I'm currently happily booting via Grub with my 2.4.19-r10 kernel from a RAID1 array. After 171 days of uptime, I had to replace my battery backup, so I figured I'd do a kernel upgrade at the same time. I tried both 2.4.20-r5 and 2.6.0-test3, and neither will create the /dev/ataraid devices (I get a kernel panic about not finding root at /dev/ataraid). I used "make oldconfig" on my kernels, and I know I have the same options enabled, etc. as in my working 2.4.19 kernel. The drivers are all compiled in, so I don't have any modules/initrd issues. I've tried both /dev/ataraid/discX/partY and my current config, /dev/ataraid/dXpY, and apparently the driver in the new kernels just isn't recognizing the array (and so isn't creating the /dev/ataraid devices).

I boot offboard chipsets first, so my RAID devices sit at IDE0 and IDE1 (hda and hdc). I've never had to mess with the ide0= voodoo since the 2.4.19 kernel recognizes everything fine...

```

PDC20267: (U)DMA Burst Bit ENABLED Primary MASTER Mode Secondary MASTER Mode.

    ide0: BM-DMA at 0xdf00-0xdf07, BIOS settings: hda:pio, hdb:pio

    ide1: BM-DMA at 0xdf08-0xdf0f, BIOS settings: hdc:pio, hdd:pio

ide0 at 0xdfe0-0xdfe7,0xdfae on irq 31

ide1 at 0xdfa0-0xdfa7,0xdfaa on irq 31

hda: 117266688 sectors (60041 MB) w/1819KiB Cache, CHS=116336/16/63, UDMA(100)

hdc: 117266688 sectors (60041 MB) w/1819KiB Cache, CHS=116336/16/63, UDMA(100)

Drive 0 is 57259 Mb (3 / 0)

Drive 1 is 57259 Mb (22 / 0)

Raid1 array consists of 2 drives.

Promise Fasttrak(tm) Softwareraid driver for linux version 0.03beta

```

I'm going to set up a serial terminal for Grub so that I can make sure that that is, in fact, the error (i.e. "No array found"), but I'm fairly sure that's what's going on.

Did something change in the pdcraid/ataraid code between 2.4.19 and 2.4.20? I suppose it's possible that I hacked the original kernel when I built it 171 days ago, but if so, I can't recall wtf I did.

Yes, I realize I could use alternate drivers, etc. but the pdcraid driver has been very stable for me and the machine runs flawlessly otherwise.

TIA.

----------

## ballyn

Okay, I figured it out. This is an obscure one.

There's a bug in the pci-ide code that was apparently introduced sometime around kernel 2.4.19.

In kernel-2.4.20-r6, at line 407 of drivers/ide/ide-pci.c, is the line:

407 #ifndef CONFIG_PDC202XX_FORCE

which should actually be

407 #ifdef CONFIG_PDC202XX_FORCE

This affects the PDC20246, PDC20262, PDC20265, PDC20267 and PDC20268 Promise chips.

In kernel 2.6.0, all bets are off as the PDC202XX driver has been split into two distinct drivers, and the CONFIDG_PDC202XX_FORCE option only exists in the new version. I have no clue how that's going to work.

----------

## tgnb

I have the same exact problem as you it seems. I am running gentoo on a Intel SCB2 motherboard that has an onboard PDC20267 controller. I have not been able to upgrade to a kernel higher than vanilla-sources 2.4.20 and know exactly what you are talking about in the 2.6.0 test series. It would be nice if you post your future experiences here as will I.

----------

## tgnb

I was able to compile and boot the 2.4.22 kernel with this IDE-RAID controller.

From the kernel config:

#

# IDE, ATA and ATAPI Block devices

#

CONFIG_BLK_DEV_IDE=y

CONFIG_BLK_DEV_IDEDISK=y

CONFIG_IDEDISK_MULTI_MODE=y

CONFIG_BLK_DEV_IDECD=y

CONFIG_BLK_DEV_IDEFLOPPY=y

CONFIG_BLK_DEV_IDEPCI=y

CONFIG_IDEPCI_SHARE_IRQ=y

CONFIG_BLK_DEV_IDEDMA_PCI=y

CONFIG_IDEDMA_PCI_AUTO=y

CONFIG_BLK_DEV_IDEDMA=y

CONFIG_BLK_DEV_PDC202XX_OLD=y

CONFIG_PDC202XX_FORCE=y

CONFIG_BLK_DEV_SVWKS=y

CONFIG_IDEDMA_AUTO=y

CONFIG_BLK_DEV_PDC202XX=y

CONFIG_BLK_DEV_IDE_MODES=y

CONFIG_BLK_DEV_ATARAID=y

CONFIG_BLK_DEV_ATARAID_PDC=y

All others in this section are not set.

Maybe there is hope for this to work in a 2.6 kernel?

----------

## ballyn

Well, in an effort to keep this stuff together...

I just upgraded to 2.4.22-r4. This has the split new/old drivers for the Promise controller, and the bug that existed in earlier kernels is fixed. The CONFIG_PDC202XX_FORCE flag is enforced correctly.

In my machine, I also have a PDC20269 on the PCI bus, so I enable both drivers along with the "Special FastTrak Feature" (CONFIG_PDC202XX_FORCE) and my array shows up fine at /dev/ataraid/disc0.

Haven't looked at the 2.6 kernels recently, but I believe that these drivers should exist there as well--so we shouldn't have any problems.

----------

## taskara

2.6 kernels have no fasttrak support, infact it has zero ataraid support, only linux software raid.

so don't go to 2.6 yet  :Confused: 

u may want to try ac or ck sources.. I think they may have support..

----------

## MooktaKiNG

i know howto run linux on my raid 0 and boot it using grub.

Does anyone know how to boot windows XP, which is also in raid0?

That has always been bothering me.

----------

## taskara

 *MooktaKiNG wrote:*   

> i know howto run linux on my raid 0 and boot it using grub.
> 
> Does anyone know how to boot windows XP, which is also in raid0?
> 
> That has always been bothering me.

 

you mean using grub?

----------

## MooktaKiNG

yeh, or lilo. which ever works. I'm sure if it works on lilo, it will work on grub.

The problem is how to you select the raid drive?

Eg: you can access the first partition of the primary master drive like this: (hd0,0)

but how do you access the raid?

----------

