GNU Linux-libre 5.4.274-gnu1
[releases.git] / arch / arm / include / debug / icedcc.S
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  *  arch/arm/include/debug/icedcc.S
4  *
5  *  Copyright (C) 1994-1999 Russell King
6  */
7
8                 @@ debug using ARM EmbeddedICE DCC channel
9
10                 .macro  addruart, rp, rv, tmp
11                 .endm
12
13 #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) || defined(CONFIG_CPU_V7)
14
15                 .macro  senduart, rd, rx
16                 mcr     p14, 0, \rd, c0, c5, 0
17                 .endm
18
19                 .macro  busyuart, rd, rx
20 1001:
21                 mrc     p14, 0, \rx, c0, c1, 0
22                 tst     \rx, #0x20000000
23                 beq     1001b
24                 .endm
25
26                 .macro  waituart, rd, rx
27                 mov     \rd, #0x2000000
28 1001:
29                 subs    \rd, \rd, #1
30                 bmi     1002f
31                 mrc     p14, 0, \rx, c0, c1, 0
32                 tst     \rx, #0x20000000
33                 bne     1001b
34 1002:
35                 .endm
36
37 #elif defined(CONFIG_CPU_XSCALE)
38
39                 .macro  senduart, rd, rx
40                 mcr     p14, 0, \rd, c8, c0, 0
41                 .endm
42
43                 .macro  busyuart, rd, rx
44 1001:
45                 mrc     p14, 0, \rx, c14, c0, 0
46                 tst     \rx, #0x10000000
47                 beq     1001b
48                 .endm
49
50                 .macro  waituart, rd, rx
51                 mov     \rd, #0x10000000
52 1001:
53                 subs    \rd, \rd, #1
54                 bmi     1002f
55                 mrc     p14, 0, \rx, c14, c0, 0
56                 tst     \rx, #0x10000000
57                 bne     1001b
58 1002:
59                 .endm
60
61 #else
62
63                 .macro  senduart, rd, rx
64                 mcr     p14, 0, \rd, c1, c0, 0
65                 .endm
66
67                 .macro  busyuart, rd, rx
68 1001:
69                 mrc     p14, 0, \rx, c0, c0, 0
70                 tst     \rx, #2
71                 beq     1001b
72
73                 .endm
74
75                 .macro  waituart, rd, rx
76                 mov     \rd, #0x2000000
77 1001:
78                 subs    \rd, \rd, #1
79                 bmi     1002f
80                 mrc     p14, 0, \rx, c0, c0, 0
81                 tst     \rx, #2
82                 bne     1001b
83 1002:
84                 .endm
85
86 #endif  /* CONFIG_CPU_V6 */