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.
>
>