diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-07-07 06:42:46 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-08-25 12:11:03 -0400 |
commit | 0b4cccbec60678212eccdb42dc1e1c233ddf7092 (patch) | |
tree | 6459ff818dec42f9e640bc3a6b4ab149f92b53cd /arch/arm/include/debug | |
parent | 2facbc88733b34e1f992cde054c88b8e07607043 (diff) |
ARM: debug: add support for word accesses to debug/8250.S
Add 32-bit word access support to debug/8250.S and convert Picoxcell
and SoCFPGA to this.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include/debug')
-rw-r--r-- | arch/arm/include/debug/8250.S | 24 | ||||
-rw-r--r-- | arch/arm/include/debug/8250_32.S | 27 | ||||
-rw-r--r-- | arch/arm/include/debug/picoxcell.S | 19 | ||||
-rw-r--r-- | arch/arm/include/debug/socfpga.S | 21 |
4 files changed, 21 insertions, 70 deletions
diff --git a/arch/arm/include/debug/8250.S b/arch/arm/include/debug/8250.S index 92cab395677a..7a2baf913aa0 100644 --- a/arch/arm/include/debug/8250.S +++ b/arch/arm/include/debug/8250.S | |||
@@ -14,14 +14,32 @@ | |||
14 | ldr \rv, =CONFIG_DEBUG_UART_VIRT | 14 | ldr \rv, =CONFIG_DEBUG_UART_VIRT |
15 | .endm | 15 | .endm |
16 | 16 | ||
17 | #ifdef CONFIG_DEBUG_UART_8250_WORD | ||
18 | .macro store, rd, rx:vararg | ||
19 | str \rd, \rx | ||
20 | .endm | ||
21 | |||
22 | .macro load, rd, rx:vararg | ||
23 | ldr \rd, \rx | ||
24 | .endm | ||
25 | #else | ||
26 | .macro store, rd, rx:vararg | ||
27 | strb \rd, \rx | ||
28 | .endm | ||
29 | |||
30 | .macro load, rd, rx:vararg | ||
31 | ldrb \rd, \rx | ||
32 | .endm | ||
33 | #endif | ||
34 | |||
17 | #define UART_SHIFT CONFIG_DEBUG_UART_8250_SHIFT | 35 | #define UART_SHIFT CONFIG_DEBUG_UART_8250_SHIFT |
18 | 36 | ||
19 | .macro senduart,rd,rx | 37 | .macro senduart,rd,rx |
20 | strb \rd, [\rx, #UART_TX << UART_SHIFT] | 38 | store \rd, [\rx, #UART_TX << UART_SHIFT] |
21 | .endm | 39 | .endm |
22 | 40 | ||
23 | .macro busyuart,rd,rx | 41 | .macro busyuart,rd,rx |
24 | 1002: ldrb \rd, [\rx, #UART_LSR << UART_SHIFT] | 42 | 1002: load \rd, [\rx, #UART_LSR << UART_SHIFT] |
25 | and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE | 43 | and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE |
26 | teq \rd, #UART_LSR_TEMT | UART_LSR_THRE | 44 | teq \rd, #UART_LSR_TEMT | UART_LSR_THRE |
27 | bne 1002b | 45 | bne 1002b |
@@ -29,7 +47,7 @@ | |||
29 | 47 | ||
30 | .macro waituart,rd,rx | 48 | .macro waituart,rd,rx |
31 | #ifdef CONFIG_DEBUG_UART_8250_FLOW_CONTROL | 49 | #ifdef CONFIG_DEBUG_UART_8250_FLOW_CONTROL |
32 | 1001: ldrb \rd, [\rx, #UART_MSR << UART_SHIFT] | 50 | 1001: load \rd, [\rx, #UART_MSR << UART_SHIFT] |
33 | tst \rd, #UART_MSR_CTS | 51 | tst \rd, #UART_MSR_CTS |
34 | beq 1001b | 52 | beq 1001b |
35 | #endif | 53 | #endif |
diff --git a/arch/arm/include/debug/8250_32.S b/arch/arm/include/debug/8250_32.S deleted file mode 100644 index 8db01eeabbb4..000000000000 --- a/arch/arm/include/debug/8250_32.S +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2011 Picochip Ltd., Jamie Iles | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | * | ||
8 | * Derived from arch/arm/mach-davinci/include/mach/debug-macro.S to use 32-bit | ||
9 | * accesses to the 8250. | ||
10 | */ | ||
11 | |||
12 | #include <linux/serial_reg.h> | ||
13 | |||
14 | .macro senduart,rd,rx | ||
15 | str \rd, [\rx, #UART_TX << UART_SHIFT] | ||
16 | .endm | ||
17 | |||
18 | .macro busyuart,rd,rx | ||
19 | 1002: ldr \rd, [\rx, #UART_LSR << UART_SHIFT] | ||
20 | and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE | ||
21 | teq \rd, #UART_LSR_TEMT | UART_LSR_THRE | ||
22 | bne 1002b | ||
23 | .endm | ||
24 | |||
25 | /* The UART's don't have any flow control IO's wired up. */ | ||
26 | .macro waituart,rd,rx | ||
27 | .endm | ||
diff --git a/arch/arm/include/debug/picoxcell.S b/arch/arm/include/debug/picoxcell.S deleted file mode 100644 index bc1f07c49cd4..000000000000 --- a/arch/arm/include/debug/picoxcell.S +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2011 Picochip Ltd., Jamie Iles | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | * | ||
8 | */ | ||
9 | |||
10 | #define UART_SHIFT 2 | ||
11 | #define PICOXCELL_UART1_BASE 0x80230000 | ||
12 | #define PHYS_TO_IO(x) (((x) & 0x00ffffff) | 0xfe000000) | ||
13 | |||
14 | .macro addruart, rp, rv, tmp | ||
15 | ldr \rv, =PHYS_TO_IO(PICOXCELL_UART1_BASE) | ||
16 | ldr \rp, =PICOXCELL_UART1_BASE | ||
17 | .endm | ||
18 | |||
19 | #include "8250_32.S" | ||
diff --git a/arch/arm/include/debug/socfpga.S b/arch/arm/include/debug/socfpga.S deleted file mode 100644 index 966b2f994946..000000000000 --- a/arch/arm/include/debug/socfpga.S +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1994-1999 Russell King | ||
3 | * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 as | ||
7 | * published by the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | #define UART_SHIFT 2 | ||
11 | #define DEBUG_LL_UART_OFFSET 0x00002000 | ||
12 | |||
13 | .macro addruart, rp, rv, tmp | ||
14 | mov \rp, #DEBUG_LL_UART_OFFSET | ||
15 | orr \rp, \rp, #0x00c00000 | ||
16 | orr \rv, \rp, #0xfe000000 @ virtual base | ||
17 | orr \rp, \rp, #0xff000000 @ physical base | ||
18 | .endm | ||
19 | |||
20 | #include "8250_32.S" | ||
21 | |||