linux-stable/arch
Pali Rohár 8bfb959ea2 arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0
commit a1cc1697bb upstream.

Legacy and old PCI I/O based cards do not support 32-bit I/O addressing.

Since commit 64f160e19e ("PCI: aardvark: Configure PCIe resources from
'ranges' DT property") kernel can set different PCIe address on CPU and
different on the bus for the one A37xx address mapping without any firmware
support in case the bus address does not conflict with other A37xx mapping.

So remap I/O space to the bus address 0x0 to enable support for old legacy
I/O port based cards which have hardcoded I/O ports in low address space.

Note that DDR on A37xx is mapped to bus address 0x0. And mapping of I/O
space can be set to address 0x0 too because MEM space and I/O space are
separate and so do not conflict.

Remapping IO space on Turris Mox to different address is not possible to
due bootloader bug.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reported-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 76f6386b25 ("arm64: dts: marvell: Add Aardvark PCIe support for Armada 3700")
Cc: stable@vger.kernel.org # 64f160e19e ("PCI: aardvark: Configure PCIe resources from 'ranges' DT property")
Cc: stable@vger.kernel.org # 514ef1e62d ("arm64: dts: marvell: armada-37xx: Extend PCIe MEM space")
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-16 14:16:01 +01:00
..
alpha
arc
arm ARM: Spectre-BHB: provide empty stub for non-config 2022-03-16 14:16:01 +01:00
arm64 arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0 2022-03-16 14:16:01 +01:00
c6x
csky perf: Protect perf_guest_cbs with RCU 2022-01-20 09:17:50 +01:00
h8300
hexagon hexagon: clean up timer-regs.h 2021-11-26 10:39:19 +01:00
ia64 ia64: ensure proper NUMA distance and possible map initialization 2022-03-08 19:09:34 +01:00
m68k m68k: set a default value for MEMORY_RESERVE 2021-11-18 14:04:24 +01:00
microblaze
mips MIPS: Octeon: Fix build errors using clang 2022-01-27 10:54:23 +01:00
nds32 perf: Protect perf_guest_cbs with RCU 2022-01-20 09:17:50 +01:00
nios2 nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST 2021-11-02 19:48:23 +01:00
openrisc openrisc: Add clone3 ABI wrapper 2022-01-27 10:54:06 +01:00
parisc parisc/unaligned: Fix ldw() and stw() unalignment handlers 2022-03-02 11:42:46 +01:00
powerpc powerpc/lib/sstep: fix 'ptesync' build error 2022-02-23 12:01:03 +01:00
riscv riscv: Fix auipc+jalr relocation range checks 2022-03-16 14:16:01 +01:00
s390 s390/extable: fix exception table sorting 2022-03-08 19:09:36 +01:00
sh sh: define __BIG_ENDIAN for math-emu 2021-11-26 10:39:12 +01:00
sparc
um um: registers: Rename function names to avoid conflicts and build problems 2022-01-27 10:54:18 +01:00
x86 x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT 2022-03-11 12:11:50 +01:00
xtensa xtensa: xtfpga: Try software restart before simulating CPU reset 2021-10-27 09:56:47 +02:00
.gitignore
Kconfig arch/cc: Introduce a function to check for confidential computing features 2021-11-18 14:04:32 +01:00