ARM: add an extra temp register to the low level debugging addruart macro
[linux-2.6.git] / arch / arm / mach-footbridge / include / mach / debug-macro.S
1 /* arch/arm/mach-footbridge/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
14 #include <asm/hardware/dec21285.h>
15
16 #ifndef CONFIG_DEBUG_DC21285_PORT
17         /* For NetWinder debugging */
18                 .macro  addruart, rp, rv, tmp
19                 mov     \rp, #0x000003f8
20                 orr     \rv, \rp, #0xff000000   @ virtual
21                 orr     \rp, \rp, #0x7c000000   @ physical
22                 .endm
23
24 #define UART_SHIFT      0
25 #define FLOW_CONTROL
26 #include <asm/hardware/debug-8250.S>
27
28 #else
29 #include <mach/hardware.h>
30         /* For EBSA285 debugging */
31                 .equ    dc21285_high, ARMCSR_BASE & 0xff000000
32                 .equ    dc21285_low,  ARMCSR_BASE & 0x00ffffff
33
34                 .macro  addruart, rp, rv, tmp
35                 .if     dc21285_low
36                 mov     \rp, #dc21285_low
37                 .else
38                 mov     \rp, #0
39                 .endif
40                 orr     \rv, \rp, #dc21285_high
41                 orr     \rp, \rp, #0x42000000
42                 .endm
43
44                 .macro  senduart,rd,rx
45                 str     \rd, [\rx, #0x160]      @ UARTDR
46                 .endm
47
48                 .macro  busyuart,rd,rx
49 1001:           ldr     \rd, [\rx, #0x178]      @ UARTFLG
50                 tst     \rd, #1 << 3
51                 bne     1001b
52                 .endm
53
54                 .macro  waituart,rd,rx
55                 .endm
56 #endif