]> git.karo-electronics.de Git - karo-tx-linux.git/blob - arch/arm/include/debug/vexpress.S
ARM: highbank: move debug macros to include/debug
[karo-tx-linux.git] / arch / arm / include / debug / vexpress.S
1 /* arch/arm/mach-realview/include/mach/debug-macro.S
2  *
3  * Debugging macro include header
4  *
5  *  Copyright (C) 1994-1999 Russell King
6  *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11  */
12
13 #define DEBUG_LL_PHYS_BASE              0x10000000
14 #define DEBUG_LL_UART_OFFSET            0x00009000
15
16 #define DEBUG_LL_PHYS_BASE_RS1          0x1c000000
17 #define DEBUG_LL_UART_OFFSET_RS1        0x00090000
18
19 #define DEBUG_LL_VIRT_BASE              0xf8000000
20
21 #if defined(CONFIG_DEBUG_VEXPRESS_UART0_DETECT)
22
23                 .macro  addruart,rp,rv,tmp
24
25                 @ Make an educated guess regarding the memory map:
26                 @ - the original A9 core tile, which has MPCore peripherals
27                 @   located at 0x1e000000, should use UART at 0x10009000
28                 @ - all other (RS1 complaint) tiles use UART mapped
29                 @   at 0x1c090000
30                 mrc     p15, 4, \tmp, c15, c0, 0
31                 cmp     \tmp, #0x1e000000
32
33                 @ Original memory map
34                 moveq   \rp, #DEBUG_LL_UART_OFFSET
35                 orreq   \rv, \rp, #DEBUG_LL_VIRT_BASE
36                 orreq   \rp, \rp, #DEBUG_LL_PHYS_BASE
37
38                 @ RS1 memory map
39                 movne   \rp, #DEBUG_LL_UART_OFFSET_RS1
40                 orrne   \rv, \rp, #DEBUG_LL_VIRT_BASE
41                 orrne   \rp, \rp, #DEBUG_LL_PHYS_BASE_RS1
42
43                 .endm
44
45 #include <asm/hardware/debug-pl01x.S>
46
47 #elif defined(CONFIG_DEBUG_VEXPRESS_UART0_CA9)
48
49                 .macro  addruart,rp,rv,tmp
50                 mov     \rp, #DEBUG_LL_UART_OFFSET
51                 orr     \rv, \rp, #DEBUG_LL_VIRT_BASE
52                 orr     \rp, \rp, #DEBUG_LL_PHYS_BASE
53                 .endm
54
55 #include <asm/hardware/debug-pl01x.S>
56
57 #elif defined(CONFIG_DEBUG_VEXPRESS_UART0_RS1)
58
59                 .macro  addruart,rp,rv,tmp
60                 mov     \rp, #DEBUG_LL_UART_OFFSET_RS1
61                 orr     \rv, \rp, #DEBUG_LL_VIRT_BASE
62                 orr     \rp, \rp, #DEBUG_LL_PHYS_BASE_RS1
63                 .endm
64
65 #include <asm/hardware/debug-pl01x.S>
66
67 #else /* CONFIG_DEBUG_LL_UART_NONE */
68
69                 .macro  addruart, rp, rv, tmp
70                 /* Safe dummy values */
71                 mov     \rp, #0
72                 mov     \rv, #DEBUG_LL_VIRT_BASE
73                 .endm
74
75                 .macro  senduart,rd,rx
76                 .endm
77
78                 .macro  waituart,rd,rx
79                 .endm
80
81                 .macro  busyuart,rd,rx
82                 .endm
83
84 #endif