]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blob - arch/arm/include/debug/icedcc.S
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
[mirror_ubuntu-hirsute-kernel.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 */