diff options
Diffstat (limited to 'include/asm-arm/arch-sa1100/debug-macro.S')
-rw-r--r-- | include/asm-arm/arch-sa1100/debug-macro.S | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/include/asm-arm/arch-sa1100/debug-macro.S b/include/asm-arm/arch-sa1100/debug-macro.S new file mode 100644 index 000000000000..755fa3453862 --- /dev/null +++ b/include/asm-arm/arch-sa1100/debug-macro.S | |||
@@ -0,0 +1,57 @@ | |||
1 | /* linux/include/asm-arm/arch-sa1100/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 | |||
14 | .macro addruart,rx | ||
15 | mrc p15, 0, \rx, c1, c0 | ||
16 | tst \rx, #1 @ MMU enabled? | ||
17 | moveq \rx, #0x80000000 @ physical base address | ||
18 | movne \rx, #0xf8000000 @ virtual address | ||
19 | |||
20 | @ We probe for the active serial port here, coherently with | ||
21 | @ the comment in include/asm-arm/arch-sa1100/uncompress.h. | ||
22 | @ We assume r1 can be clobbered. | ||
23 | |||
24 | @ see if Ser3 is active | ||
25 | add \rx, \rx, #0x00050000 | ||
26 | ldr r1, [\rx, #UTCR3] | ||
27 | tst r1, #UTCR3_TXE | ||
28 | |||
29 | @ if Ser3 is inactive, then try Ser1 | ||
30 | addeq \rx, \rx, #(0x00010000 - 0x00050000) | ||
31 | ldreq r1, [\rx, #UTCR3] | ||
32 | tsteq r1, #UTCR3_TXE | ||
33 | |||
34 | @ if Ser1 is inactive, then try Ser2 | ||
35 | addeq \rx, \rx, #(0x00030000 - 0x00010000) | ||
36 | ldreq r1, [\rx, #UTCR3] | ||
37 | tsteq r1, #UTCR3_TXE | ||
38 | |||
39 | @ if all ports are inactive, then there is nothing we can do | ||
40 | moveq pc, lr | ||
41 | .endm | ||
42 | |||
43 | .macro senduart,rd,rx | ||
44 | str \rd, [\rx, #UTDR] | ||
45 | .endm | ||
46 | |||
47 | .macro waituart,rd,rx | ||
48 | 1001: ldr \rd, [\rx, #UTSR1] | ||
49 | tst \rd, #UTSR1_TNF | ||
50 | beq 1001b | ||
51 | .endm | ||
52 | |||
53 | .macro busyuart,rd,rx | ||
54 | 1001: ldr \rd, [\rx, #UTSR1] | ||
55 | tst \rd, #UTSR1_TBY | ||
56 | bne 1001b | ||
57 | .endm | ||