diff options
Diffstat (limited to 'include/asm-arm/arch-lh7a40x/debug-macro.S')
-rw-r--r-- | include/asm-arm/arch-lh7a40x/debug-macro.S | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/asm-arm/arch-lh7a40x/debug-macro.S b/include/asm-arm/arch-lh7a40x/debug-macro.S new file mode 100644 index 000000000000..421dcd6a8506 --- /dev/null +++ b/include/asm-arm/arch-lh7a40x/debug-macro.S | |||
@@ -0,0 +1,39 @@ | |||
1 | /* linux/include/asm-arm/arch-lh7a40x/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 | @ It is not known if this will be appropriate for every 40x | ||
15 | @ board. | ||
16 | |||
17 | .macro addruart,rx | ||
18 | mrc p15, 0, \rx, c1, c0 | ||
19 | tst \rx, #1 @ MMU enabled? | ||
20 | mov \rx, #0x00000700 @ offset from base | ||
21 | orreq \rx, \rx, #0x80000000 @ physical base | ||
22 | orrne \rx, \rx, #0xf8000000 @ virtual base | ||
23 | .endm | ||
24 | |||
25 | .macro senduart,rd,rx | ||
26 | strb \rd, [\rx] @ DATA | ||
27 | .endm | ||
28 | |||
29 | .macro busyuart,rd,rx @ spin while busy | ||
30 | 1001: ldr \rd, [\rx, #0x10] @ STATUS | ||
31 | tst \rd, #1 << 3 @ BUSY (TX FIFO not empty) | ||
32 | bne 1001b @ yes, spin | ||
33 | .endm | ||
34 | |||
35 | .macro waituart,rd,rx @ wait for Tx FIFO room | ||
36 | 1001: ldrb \rd, [\rx, #0x10] @ STATUS | ||
37 | tst \rd, #1 << 5 @ TXFF (TX FIFO full) | ||
38 | bne 1001b @ yes, spin | ||
39 | .endm | ||