• Lorenzo Pieralisi's avatar
    ARM64: PCI: do not enable resources on PROBE_ONLY systems · 72407514
    Lorenzo Pieralisi authored
    On ARM64 PROBE_ONLY PCI systems resources are not currently claimed,
    therefore they can't be enabled since they do not have a valid
    parent pointer; this in turn prevents enabling PCI devices on
    ARM64 PROBE_ONLY systems, causing PCI devices initialization to
    fail.
    
    To solve this issue, resources must be claimed when devices are
    added on PROBE_ONLY systems, which ensures that the resource hierarchy
    is validated and the resource tree is sane, but this requires changes
    in the ARM64 resource management that can affect adversely existing
    PCI set-ups (claiming resources on !PROBE_ONLY systems might break
    existing ARM64 PCI platform implementations).
    
    As a temporary solution in preparation for a proper resources claiming
    implementation in ARM64 core, to enable PCI PROBE_ONLY systems on ARM64,
    this patch adds a pcibios_enable_device() arch implementation that
    simply prevents enabling resources on PROBE_ONLY systems (mirroring ARM
    behaviour).
    
    This is always a safe thing to do because on PROBE_ONLY systems the
    configuration space set-up can be considered immutable, and it is in
    preparation of proper resource claiming that would finally validate
    the PCI resources tree in the ARM64 arch implementation on PROBE_ONLY
    systems.
    
    For !PROBE_ONLY systems resources enablement in pcibios_enable_device()
    on ARM64 is implemented as in current PCI core, leaving the behaviour
    unchanged.
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    72407514
pci.c 1.94 KB