linux/arch/arm64
Lorenzo Pieralisi 72407514c9 ARM64: PCI: do not enable resources on PROBE_ONLY systems
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: Lorenzo 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: Will Deacon <will.deacon@arm.com>
2015-07-30 20:17:07 +01:00
..
boot arm64: enable more compressed Image formats 2015-07-27 11:08:39 +01:00
configs arm64: defconfig: Add Ceva ahci to the defconfig 2015-07-06 17:22:59 +01:00
crypto Merge branch 'mvebu/drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc 2015-06-19 22:07:07 +08:00
include arm64: cmpxchg: truncate sub-word signed types before comparison 2015-07-30 20:16:53 +01:00
kernel ARM64: PCI: do not enable resources on PROBE_ONLY systems 2015-07-30 20:17:07 +01:00
kvm arm64: kvm: Adopt new alternative assembler macros 2015-07-27 11:08:40 +01:00
lib arm64: atomics: prefetch the destination word for write prior to stxr 2015-07-27 15:28:53 +01:00
mm arm64: mm: mark create_mapping as __init 2015-07-28 11:36:09 +01:00
net arm64: bpf: fix endianness conversion bugs 2015-06-26 14:15:39 +01:00
xen arm: xen: implement multicall hypercall support. 2014-04-24 13:09:46 +01:00
Kconfig arm64: kconfig: group the v8.1 features together 2015-07-27 15:54:13 +01:00
Kconfig.debug coresight: moving to new "hwtracing" directory 2015-04-03 16:17:04 +02:00
Makefile arm64: atomics: patch in lse instructions when supported by the CPU 2015-07-27 15:28:50 +01:00