On Tue, 03 Jul 2007 14:41:55 +0100
Matt Sealey <[EMAIL PROTECTED]> wrote:
> The chip isn't in legacy mode. We never set it to legacy mode. Legacy mode
> would not work.
> It's set to native mode. However the PCI class code does not reflect this :)
By the time the OS has booted to the point the IDE layer runs the PCI
class code has been read and pci->resource[] arrays have been set up for
the legacy addresses not the PCI BAR ones.
So with a current kernel at the point the pci header quirks run you can
load the PCI bar values back into the pci->resource[] array. The code is
designed to allow for this. Unfortunately libata then ignores the values
provided because some changes haven't been made that have been pending
for ages. I'll push the relevant trivial bits to Andrew today after
testing them
> The old Via driver checked the host controller configuration space, rather
> than trust the PCI class code and the ATA specs, it seems? Well, you would
> know since you wrote it?
Not those bits.
The intended code flow is this
pci probe
early quirk
class IDE legacy
Load the resources 0 to 3 specially
header quirk
resource tree reserved
libata
Use resource 0-3 for legacy or native
Right now the last bit is using hardcoded numbers that need fixing up.
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html