Re: [PATCH] PIIX: fix 82371MX enablebits

From: Alan Cox
Date: Thu May 11 2006 - 16:14:45 EST


On Iau, 2006-05-11 at 23:50 +0400, Sergei Shtylyov wrote:
> According to the datasheet, Intel 82371MX (MPIIX) actually has only a
> single IDE channel mapped to the primary or secondary ports depending on the
> value of the bit 14 of the IDETIM register at PCI config. offset 0x6C (the
> register at 0x6F which the driver refers to. doesn't exist). So, disguise the
> controller as dual channel and set enablebits masks/values such that only
> either primary or secondary channel is detected enabled. Also, preclude the
> IDE probing code from reading PCI BARs, this controller just doesn't have them
> (it's not the separate PCI function like the other PCI controllers), it only
> decodes the legacy addresses.

There are lots and lots of other things you need to fix to make MPIIX
work with that driver. It has only a single timing register for one so
you must switch timing as you flip drive. Also it is not an IDE class
device so the PCI native/legacy and simplex stuff is not valid. Finally
the PIIX driver pokes several registers it doesn't even have.

What else - oh yes the piix driver doesn't even tune the timings, so it
doesn't work anyway.


Thats why drivers/scsi/pata_mpiix is a separate driver. Really if you
want to try and rescue the old PIIX driver you should split out PIIX3
and MPIIX into their own drivers.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/