• Gavin Shan's avatar
    powerpc/powernv: Extend PCI bridge resources · 40e2a47e
    Gavin Shan authored
    The PCI slots are associated with root port or downstream ports
    of the PCIe switch connected to root port. When adapter is hot
    added to the PCI slot, it usually requests more IO or memory
    resource from the directly connected parent bridge (port) and
    update the bridge's windows accordingly. The resource windows
    of upstream bridges can't be updated automatically. It possibly
    leads to unbalanced resource across the bridges: The window of
    downstream bridge is overruning that of upstream bridge. The
    IO or MMIO path won't work.
    
    This resolves the above issue by extending bridge windows of
    root port and upstream port of the PCIe switch connected to
    the root port to PHB's windows.
    
    The windows of root port and bridge behind that are extended to
    the PHB's windows to accomodate the PCI hotplug happening in
    future. The PHB's 64KB 32-bits MSI region is included in bridge's
    M32 windows (in hardware) though it's excluded in the corresponding
    resource, as the bridge's M32 windows have 1MB as their minimal
    alignment. We observed EEH error during system boot when the MSI
    region is included in bridge's M32 window.
    
    This excludes top 1MB (including 64KB 32-bits MSI region) region
    from bridge's M32 windows when extending them.
    Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    40e2a47e
pci-ioda.c 98.6 KB