• Benjamin Herrenschmidt's avatar
    [POWERPC] 4xx: PLB to PCI Express support · a2d2e1ec
    Benjamin Herrenschmidt authored
    This adds to the previous 2 patches the support for the 4xx PCI Express
    cells as found in the 440SPe revA, revB and 405EX.
    
    Unfortunately, due to significant differences between these, and other
    interesting "features" of those pieces of HW, the code isn't as simple
    as it is for PCI and PCI-X and some of the functions differ significantly
    between the 3 implementations. Thus, not only this code can only support
    those 3 implementations for now and will refuse to operate on any other,
    but there are added ifdef's to avoid the bloat of building a fairly large
    amount of code on platforms that don't need it.
    
    Also, this code currently only supports fully initializing root complex
    nodes, not endpoint. Some more code will have to be lifted from the
    arch/ppc implementation to add the endpoint support, though it's mostly
    differences in memory mapping, and the question on how to represent
    endpoint mode PCI in the device-tree is thus open.
    
    Many thanks to Stefan Roese for testing & fixing up the 405EX bits !
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarStefan Roese <sr@denx.de>
    Signed-off-by: default avatarJosh Boyer <jwboyer@linux.vnet.ibm.com>
    a2d2e1ec
ppc4xx_pci.c 39.6 KB