[ARM] Collect Primecell PL01x-based debug implementations together
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Thu, 16 Mar 2006 20:50:34 +0000 (20:50 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 21 Mar 2006 22:05:58 +0000 (22:05 +0000)
Several ARM machine implementations used a PL01x primecell compatible
serial port for debugging purposes, and indepdently implemented the low
level debug macros every time.  Provide a common implementation and
convert these implementations to use this version.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
include/asm-arm/arch-integrator/debug-macro.S
include/asm-arm/arch-realview/debug-macro.S
include/asm-arm/arch-versatile/debug-macro.S
include/asm-arm/hardware/debug-pl01x.S [new file with mode: 0644]

index 031d309..85b327c 100644 (file)
@@ -11,8 +11,6 @@
  *
 */
 
-#include <linux/amba/serial.h>
-
                .macro  addruart,rx
                mrc     p15, 0, \rx, c1, c0
                tst     \rx, #1                 @ MMU enabled?
                addne   \rx, \rx, #0x16000000 >> 4
                .endm
 
-               .macro  senduart,rd,rx
-               strb    \rd, [\rx, #UART01x_DR]
-               .endm
-
-               .macro  waituart,rd,rx
-1001:          ldr     \rd, [\rx, #0x18]       @ UARTFLG
-               tst     \rd, #1 << 5            @ UARTFLGUTXFF - 1 when full
-               bne     1001b
-               .endm
-
-               .macro  busyuart,rd,rx
-1001:          ldr     \rd, [\rx, #0x18]       @ UARTFLG
-               tst     \rd, #1 << 3            @ UARTFLGUBUSY - 1 when busy
-               bne     1001b
-               .endm
+#include <asm/hardware/debug-pl01x.S>
index 017ad99..f17efc6 100644 (file)
@@ -11,8 +11,6 @@
  *
 */
 
-#include <linux/amba/serial.h>
-
                .macro  addruart,rx
                mrc     p15, 0, \rx, c1, c0
                tst     \rx, #1                 @ MMU enabled?
                orr     \rx, \rx, #0x00009000
                .endm
 
-               .macro  senduart,rd,rx
-               strb    \rd, [\rx, #UART01x_DR]
-               .endm
-
-               .macro  waituart,rd,rx
-1001:          ldr     \rd, [\rx, #0x18]       @ UARTFLG
-               tst     \rd, #1 << 5            @ UARTFLGUTXFF - 1 when full
-               bne     1001b
-               .endm
-
-               .macro  busyuart,rd,rx
-1001:          ldr     \rd, [\rx, #0x18]       @ UARTFLG
-               tst     \rd, #1 << 3            @ UARTFLGUBUSY - 1 when busy
-               bne     1001b
-               .endm
+#include <asm/hardware/debug-pl01x.S>
index ef61671..fe106d1 100644 (file)
@@ -11,8 +11,6 @@
  *
 */
 
-#include <linux/amba/serial.h>
-
                .macro  addruart,rx
                mrc     p15, 0, \rx, c1, c0
                tst     \rx, #1                 @ MMU enabled?
                orr     \rx, \rx, #0x00001000
                .endm
 
-               .macro  senduart,rd,rx
-               strb    \rd, [\rx, #UART01x_DR]
-               .endm
-
-               .macro  waituart,rd,rx
-1001:          ldr     \rd, [\rx, #0x18]       @ UARTFLG
-               tst     \rd, #1 << 5            @ UARTFLGUTXFF - 1 when full
-               bne     1001b
-               .endm
-
-               .macro  busyuart,rd,rx
-1001:          ldr     \rd, [\rx, #0x18]       @ UARTFLG
-               tst     \rd, #1 << 3            @ UARTFLGUBUSY - 1 when busy
-               bne     1001b
-               .endm
+#include <asm/hardware/debug-pl01x.S>
diff --git a/include/asm-arm/hardware/debug-pl01x.S b/include/asm-arm/hardware/debug-pl01x.S
new file mode 100644 (file)
index 0000000..db0d0f7
--- /dev/null
@@ -0,0 +1,29 @@
+/* linux/include/asm-arm/arch-integrator/debug-macro.S
+ *
+ * Debugging macro include header
+ *
+ *  Copyright (C) 1994-1999 Russell King
+ *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+*/
+#include <linux/amba/serial.h>
+
+               .macro  senduart,rd,rx
+               strb    \rd, [\rx, #UART01x_DR]
+               .endm
+
+               .macro  waituart,rd,rx
+1001:          ldr     \rd, [\rx, #UART01x_FR]
+               tst     \rd, #UART01x_FR_TXFF
+               bne     1001b
+               .endm
+
+               .macro  busyuart,rd,rx
+1001:          ldr     \rd, [\rx, #UART01x_FR]
+               tst     \rd, #UART01x_FR_BUSY
+               bne     1001b
+               .endm