Re: how to handle pata_via when controller not in fully-pci-native mode (two irqs?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, Matt.

Matt Sealey wrote:
> Tejun Heo wrote:
>> I forgot about the PCI resource fix up done for legacy hosts.  I think
>> making the host legacy is the best way to take here considering that -
>> no change for both ide and libata, just some fix up in platform code.
>> ATA native/legacy thing doesn't mean much.  It's just how the resources
>> are allocated.  Is there any specific reason to use native mode?
> 
> Yes, legacy mode means there are several "io ports" mapped into the
> 0 thru 0x1000 addresses. This might work in Linux, granted, but I am
> not sure it is a good idea in the first place.
> 
> Mapping io ports to anywhere but the PCI io space is just an ugly
> solution. The ATA native/legacy thing means a lot, as there is no
> "legacy" on PowerPC. It's a PCI device, so we should try and fix up
> it's actions as a PCI device, however, making it truly conform will
> break any "not entirely compatible" drivers break (via8cxxx being
> the biggest culprit). Therefore no firmware fixes for thee.

For libata, being native or legacy doesn't really mean that much.  With
the patch posted yesterday[1], the only difference is how IRQs are
requested.  Other than that, libata initializes aa legacy controller the
same way as a native controller, so you can use mmio exactly the same way.

> I do think we can knock it into full PCI native mode from the platform
> fixups though, as a kernel option. Old drivers will work fine, old
> kernels will work fine, and optionally old behaviour can be left, but
> anyone building a new kernel with pata_via and no via8cxxx (i.e. all
> new distributions) can enable the new behaviour.

That would work too but if you do PCI header fix up for legacy host,
nothing needs to be changed and nothing needs to be selected during
boot.  Both via82cxxx and pata_via would just work.  The controller's
PCI BARs contain valid values on entering kernel, right?  The only thing
you have to do is flipping the legacy bit in platform PCI fix up code.

-- 
tejun

[1] http://article.gmane.org/gmane.linux.ide/20357
-
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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux