if (dev->device == PCI_DEVICE_ID_PROMISE_20262) {
                int i = 0;
                /*
                 * software reset -  this is required because the bios
                 * will set UDMA timing on if the hdd supports it. The
                 * user may want to turn udma off. A bug in the pdc20262
                 * is that it cannot handle a downgrade in timing from UDMA
                 * to DMA. Disk accesses after issuing a set feature command
                 * will result in errors. A software reset leaves the timing
                 * registers intact, but resets the drives.
                 */


Second bomb to dodge is the mixing of drive classes on the same ribbon.

        /*
         * Set the control register to use the 66Mhz system
         * clock for UDMA 3/4 mode operation. If one drive on
         * a channel is U66 capable but the other isn't we
         * fall back to U33 mode. The BIOS INT 13 hooks turn
         * the clock on then off for each read/write issued. I don't
         * do that here because it would require modifying the
         * kernel, seperating the fop routines from the kernel or
         * somehow hooking the fops calls. It may also be possible to
         * leave the 66Mhz clock on and readjust the timing
         * parameters.
         */

Note that these are comments from "Promise"........

I understand that it is tough to see/find the micro-variations.
Orginally I got to the point of crippling the driver to force all devices
to ATA-33 on the Ultra66 card.  The have identical timing codes one you
remove the ATA-66 setup calls.

I hope this clears the mud.

Cheers,

Andre Hedrick
The Linux IDE guy

On Sun, 31 Oct 1999, Philip Blundell wrote:

> >The warning and disk death could go on for ever..........but doing what
> >you just did and advised people to do is "FOOLISH"........
> 
> So what is it that makes the 20262 incompatible with the 20246?  Looking at 
> the code in 2.3 they seem to be substantially the same.
> 
> p.
> 
> 

Reply via email to