• Thomas Petazzoni's avatar
    ARM: 7683/1: pci: add a align_resource hook · 029baf14
    Thomas Petazzoni authored
    The PCI specifications says that an I/O region must be aligned on a 4
    KB boundary, and a memory region aligned on a 1 MB boundary.
    
    However, the Marvell PCIe interfaces rely on address decoding windows
    (which allow to associate a range of physical addresses with a given
    device). For PCIe memory windows, those windows are defined with a 1
    MB granularity (which matches the PCI specs), but PCIe I/O windows can
    only be defined with a 64 KB granularity, so they have to be 64 KB
    aligned. We therefore need to tell the PCI core about this special
    alignement requirement.
    
    The PCI core already calls pcibios_align_resource() in the ARM PCI
    core, specifically for such purposes. So this patch extends the ARM
    PCI core so that it calls a ->align_resource() hook registered by the
    PCI driver, exactly like the existing ->map_irq() and ->swizzle()
    hooks.
    
    A particular PCI driver can register a align_resource() hook, and do
    its own specific alignement, depending on the specific constraints of
    the underlying hardware.
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    029baf14
bios32.c 16.8 KB