vexpress.S 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /* arch/arm/mach-realview/include/mach/debug-macro.S
  3. *
  4. * Debugging macro include header
  5. *
  6. * Copyright (C) 1994-1999 Russell King
  7. * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
  8. */
  9. #define DEBUG_LL_PHYS_BASE 0x10000000
  10. #define DEBUG_LL_UART_OFFSET 0x00009000
  11. #define DEBUG_LL_PHYS_BASE_RS1 0x1c000000
  12. #define DEBUG_LL_UART_OFFSET_RS1 0x00090000
  13. #define DEBUG_LL_UART_PHYS_CRX 0xb0090000
  14. #define DEBUG_LL_VIRT_BASE 0xf8000000
  15. #if defined(CONFIG_DEBUG_VEXPRESS_UART0_DETECT)
  16. .macro addruart,rp,rv,tmp
  17. .arch armv7-a
  18. @ Make an educated guess regarding the memory map:
  19. @ - the original A9 core tile (based on ARM Cortex-A9 r0p1)
  20. @ should use UART at 0x10009000
  21. @ - all other (RS1 complaint) tiles use UART mapped
  22. @ at 0x1c090000
  23. mrc p15, 0, \rp, c0, c0, 0
  24. movw \rv, #0xc091
  25. movt \rv, #0x410f
  26. cmp \rp, \rv
  27. @ Original memory map
  28. moveq \rp, #DEBUG_LL_UART_OFFSET
  29. orreq \rv, \rp, #DEBUG_LL_VIRT_BASE
  30. orreq \rp, \rp, #DEBUG_LL_PHYS_BASE
  31. @ RS1 memory map
  32. movne \rp, #DEBUG_LL_UART_OFFSET_RS1
  33. orrne \rv, \rp, #DEBUG_LL_VIRT_BASE
  34. orrne \rp, \rp, #DEBUG_LL_PHYS_BASE_RS1
  35. .endm
  36. #include <debug/pl01x.S>
  37. #endif