piix vs ata_piix device ID tables
When I converted the Debian kernel configurations over from IDE to libata-based drivers, I compared the device ID tables for all the PCI drivers. I found that ata_piix handles most of the same devices as piix while pata_oldpiix and pata_mpiix each handle one more. However, 2 device IDs in piix are not in the device ID tables of any libata-based driver:
PCI_DEVICE_ID_INTEL_82371FB_0 == 0x122e (PIIX function 0)
piix seems to treat this the same as PCI_DEVICE_ID_INTEL_82371FB_1 == 0x1230, which is handled by pata_oldpiix. (This is weird; function 0 is supposed to be the ISA bridge!)
PCI_DEVICE_ID_INTEL_82801DB_1 == 0x24c1 (ICH4 device 31 function 1)
piix seems to treat this the same as most other ICH PATA interfaces, which are handled by ata_piix.
Does anyone know why these aren't handled by the libata-based drivers?
Ben.
Signature · 2 lines
Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse.
Quoted 7 lines · On Mon, 04 Oct 2010 04:50:52 +0100 Ben Hutchings <[email protected]> wrote:
When I converted the Debian kernel configurations over from IDE to libata-based drivers, I compared the device ID tables for all the PCI drivers. I found that
ata_piixhandles most of the same devices as piix whilepata_oldpiixandpata_mpiixeach handle one more. However, 2 device IDs in piix are not in the device ID tables of any libata-based driver:
Quoted 5 lines
PCI_DEVICE_ID_INTEL_82371FB_0==0x122e(PIIX function 0)piix seems to treat this the same as
PCI_DEVICE_ID_INTEL_82371FB_1==0x1230, which is handled bypata_oldpiix. (This is weird; function 0 is supposed to be the ISA bridge!)
Given that pre PIIX3 devices (MPIIX and PIIX original) never worked in the old IDE code (well sometimes semi-worked by accident because the BIOS values were right and they didn't break anything) I wouldn't draw any conclusions.
Quoted 6 lines
PCI_DEVICE_ID_INTEL_82801DB_1==0x24c1(ICH4 device 31 function 1)piix seems to treat this the same as most other ICH PATA interfaces, which are handled by
ata_piix.Does anyone know why these aren't handled by the libata-based drivers?
I don't know about 0x24C1 however it isn't listed in the Intel ICH programming manual so given we've also had no reports about it I suspect it's an error in the PIIX driver ?
Alan
Quoted 2 lines · Alan Cox
On Mon, 04 Oct 2010 04:50:52 +0100
Ben Hutchings <[email protected]> wrote:
[...]
Quoted 10 lines
Quoted 6 lines
PCI_DEVICE_ID_INTEL_82801DB_1==0x24c1(ICH4 device 31 function 1)piix seems to treat this the same as most other ICH PATA interfaces, which are handled by
ata_piix.Does anyone know why these aren't handled by the libata-based drivers?
I don't know about
0x24C1however it isn't listed in the Intel ICH programming manual so given we've also had no reports about it I suspect it's an error in the PIIX driver ?
Correction, this is a function of the ICH4-L not the ordinary ICH4. It is documented in
<http://www.intel.com/assets/pdf/specupdate/290745.pdf>.
Ben.
Signature · 2 lines
Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse.