aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/hardware
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2022-08-25 10:51:42 +0200
committerArnd Bergmann <arnd@arndb.de>2022-09-15 15:59:16 +0200
commitbe7f3f901c619e24c93b8044c074306feedd8ee9 (patch)
treeab75c282a3d657d40bd3a15d3fb81057cafba8ee /arch/arm/include/asm/hardware
parentARM: footbridge: move isa-dma support into footbridge (diff)
downloadlinux-dev-be7f3f901c619e24c93b8044c074306feedd8ee9.tar.xz
linux-dev-be7f3f901c619e24c93b8044c074306feedd8ee9.zip
ARM: footbridge: remove custom DMA address handling
Footbridge is the last Arm platform that has its own __virt_to_bus()/__bus_to_virt()/phys_to_dma()/dma_to_phys() abstraction, but this is just a simple offset now. For PCI devices, the offset that is programmed into the PCI bridge must also be set in each device using dma_direct_set_offset(). As Arm does not have a pcibios_bus_add_device() helper yet, just use a bus notifier for this. For the ISA DMA, drivers now pass a non-translated physical address into set_dma_addr(), so they have to be converted back with the corresponding isa_bus_to_virt() function and then into the correct bus address with the offset using the isa_dma_dev. Tested-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/include/asm/hardware')
-rw-r--r--arch/arm/include/asm/hardware/dec21285.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/include/asm/hardware/dec21285.h b/arch/arm/include/asm/hardware/dec21285.h
index eee390e8d4dc..894f2a635cbb 100644
--- a/arch/arm/include/asm/hardware/dec21285.h
+++ b/arch/arm/include/asm/hardware/dec21285.h
@@ -22,6 +22,13 @@
#define DC21285_IO(x) (x)
#endif
+/*
+ * The footbridge is programmed to expose the system RAM at 0xe0000000.
+ * The requirement is that the RAM isn't placed at bus address 0, which
+ * would clash with VGA cards.
+ */
+#define BUS_OFFSET 0xe0000000
+
#define CSR_PCICMD DC21285_IO(0x0004)
#define CSR_CLASSREV DC21285_IO(0x0008)
#define CSR_PCICACHELINESIZE DC21285_IO(0x000c)