• Ian Abbott's avatar
    PCI: Add workaround for PLX PCI 9050 BAR alignment erratum · 21c5fd97
    Ian Abbott authored
    The PLX PCI 9050 PCI Target bridge controller has a bug that prevents
    its local configuration registers being read through BAR0 (memory) or
    BAR1 (i/o) if the base address lies on an odd 128-byte boundary, i.e. if
    bit 7 of the base address is non-zero.  This bug is described in the PCI
    9050 errata list, version 1.4, May 2005.  It was fixed in the
    pin-compatible PCI 9052, which can be distinguished from the PCI 9050 by
    checking the revision in the PCI header, which is hard-coded for these
    chips.
    
    Workaround the problem by re-allocating the affected regions to a
    256-byte boundary.  Note that BAR0 and/or BAR1 may have been disabled
    (size 0) during initialization of the PCI chip when its configuration is
    read from a serial EEPROM.
    
    Currently, the fix-up has only been used for devices with the default
    vendor and device ID of the PLX PCI 9050.  The PCI 9052 shares the same
    default device ID as the PCI 9050 but they have different PCI revision
    codes.
    Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    21c5fd97
quirks.c 113 KB