• Lorenzo Pieralisi's avatar
    ARM: Implement pci_remap_cfgspace() interface · b9cdbe6e
    Lorenzo Pieralisi authored
    The PCI bus specification (rev 3.0, 3.2.5 "Transaction Ordering and
    Posting") defines rules for PCI configuration space transactions ordering
    and posting, that state that configuration writes have to be non-posted
    transactions.
    
    Current ioremap interface on ARM provides mapping functions that provide
    "bufferable" writes transactions (ie ioremap uses MT_DEVICE memory type)
    aka posted writes, so PCI host controller drivers have no arch interface to
    remap PCI configuration space with memory attributes that comply with the
    PCI specifications for configuration space.
    
    Implement an ARM specific pci_remap_cfgspace() interface that allows to map
    PCI config memory regions with MT_UNCACHED memory type (ie strongly ordered
    - non-posted writes), providing a remap function that complies with PCI
    specifications for config space transactions.
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Russell King <linux@armlinux.org.uk>
    b9cdbe6e
ioremap.c 12.3 KB