Matt Sealey wrote: > I'm a litle confused here. > > Page 10 (4.2.1) so I just mask off bit 0 and bit 2 of the class prog-if byte and set > it to "compatible" mode which will basically mean PCI mapped registers and > two IRQs? This corresponds with the table on Page 7 (4.2.1.1).. > > Checked the Pegasos IDE class code and in the firmware it's set to 0x1018F so, I > would assume the correct value is 0x1018A (knocking out the "native mode"). > > Okay! Great. This looks easy. Just gotta decode PCI addresses in Forth now.. I think I wrote this in the bugzilla entry but my memory is fuzzy as always, so I'll repeat it here. If you turn off the native bits, libata-sff will use ATA_PRIMARY_CMD and its friends to determine IO ports and ATA_PRIMARY_IRQ and friends to determine IRQs. PCI BAR is only used to determine IO ports for BMDMA register. ie. The legacy mode means "there's no standard way to configure the damn thing. Just believe what the arch code says. However, BMDMA is introduced after PCI so let's use PCI BAR for it." So, if you're gonna make the controller legacy (which I think is the correct way), don't forget to update those arch macros. -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html