2
1

versatile-nommu.patch 1.3 KB

123456789101112131415161718192021222324252627282930
  1. From b7c1666813424d329868335c8faf8886b0f85b6c Mon Sep 17 00:00:00 2001
  2. From: Greg Ungerer <gerg@linux-m68k.org>
  3. Date: Thu, 11 Aug 2016 21:33:11 +1000
  4. Subject: [PATCH] arm: fix versatile platform to work in no-MMU mode
  5. If CONFIG_MMU is disabled then do not carry out the virtual memory address
  6. translation for IO devices.
  7. With this fix in place we can run the ARM Versatile board (including its
  8. qemu emulation) as a no-MMU Linux system.
  9. Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
  10. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
  11. diff -Nur linux-4.4.17.orig/arch/arm/mach-versatile/include/mach/hardware.h linux-4.4.17/arch/arm/mach-versatile/include/mach/hardware.h
  12. --- linux-4.4.17.orig/arch/arm/mach-versatile/include/mach/hardware.h 2016-08-10 11:49:43.000000000 +0200
  13. +++ linux-4.4.17/arch/arm/mach-versatile/include/mach/hardware.h 2016-08-25 23:19:03.691716292 +0200
  14. @@ -30,8 +30,12 @@
  15. #define VERSATILE_PCI_VIRT_BASE (void __iomem *)0xe8000000ul
  16. #define VERSATILE_PCI_CFG_VIRT_BASE (void __iomem *)0xe9000000ul
  17. +#ifdef CONFIG_MMU
  18. /* macro to get at MMIO space when running virtually */
  19. #define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
  20. +#else
  21. +#define IO_ADDRESS(x) (x)
  22. +#endif
  23. #define __io_address(n) ((void __iomem __force *)IO_ADDRESS(n))