aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap1
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap1')
-rw-r--r--arch/arm/mach-omap1/include/mach/debug-macro.S68
1 files changed, 35 insertions, 33 deletions
diff --git a/arch/arm/mach-omap1/include/mach/debug-macro.S b/arch/arm/mach-omap1/include/mach/debug-macro.S
index 671408eb4ab4..6a0fa0462365 100644
--- a/arch/arm/mach-omap1/include/mach/debug-macro.S
+++ b/arch/arm/mach-omap1/include/mach/debug-macro.S
@@ -28,56 +28,58 @@ omap_uart_virt: .word 0x0
28 * the desired UART phys and virt addresses temporarily into 28 * the desired UART phys and virt addresses temporarily into
29 * the omap_uart_phys and omap_uart_virt above. 29 * the omap_uart_phys and omap_uart_virt above.
30 */ 30 */
31 .macro addruart, rx, tmp 31 .macro addruart, rp, rv
32 32
33 /* Use omap_uart_phys/virt if already configured */ 33 /* Use omap_uart_phys/virt if already configured */
349: mrc p15, 0, \rx, c1, c0 349: mrc p15, 0, \rp, c1, c0
35 tst \rx, #1 @ MMU enabled? 35 tst \rp, #1 @ MMU enabled?
36 ldreq \rx, =__virt_to_phys(omap_uart_phys) @ physical base address 36 ldreq \rp, =__virt_to_phys(omap_uart_phys) @ MMU not enabled
37 ldrne \rx, =omap_uart_virt @ virtual base 37 ldrne \rp, =omap_uart_phys @ MMU enabled
38 ldr \rx, [\rx, #0] 38 add \rv, \rp, #4 @ omap_uart_virt
39 cmp \rx, #0 @ is port configured? 39 ldr \rp, [\rp, #0]
40 ldr \rv, [\rv, #0]
41 cmp \rp, #0 @ is port configured?
42 cmpne \rv, #0
40 bne 99f @ already configured 43 bne 99f @ already configured
41 44
42 /* Check the debug UART configuration set in uncompress.h */ 45 /* Check the debug UART configuration set in uncompress.h */
43 mrc p15, 0, \rx, c1, c0 46 mrc p15, 0, \rp, c1, c0
44 tst \rx, #1 @ MMU enabled? 47 tst \rp, #1 @ MMU enabled?
45 ldreq \rx, =OMAP_UART_INFO 48 ldreq \rp, =OMAP_UART_INFO @ MMU not enabled
46 ldrne \rx, =__phys_to_virt(OMAP_UART_INFO) 49 ldrne \rp, =__phys_to_virt(OMAP_UART_INFO) @ MMU enabled
47 ldr \rx, [\rx, #0] 50 ldr \rp, [\rp, #0]
48 51
49 /* Select the UART to use based on the UART1 scratchpad value */ 52 /* Select the UART to use based on the UART1 scratchpad value */
5010: cmp \rx, #0 @ no port configured? 5310: cmp \rp, #0 @ no port configured?
51 beq 11f @ if none, try to use UART1 54 beq 11f @ if none, try to use UART1
52 cmp \rx, #OMAP1UART1 55 cmp \rp, #OMAP1UART1
53 beq 11f @ configure OMAP1UART1 56 beq 11f @ configure OMAP1UART1
54 cmp \rx, #OMAP1UART2 57 cmp \rp, #OMAP1UART2
55 beq 12f @ configure OMAP1UART2 58 beq 12f @ configure OMAP1UART2
56 cmp \rx, #OMAP1UART3 59 cmp \rp, #OMAP1UART3
57 beq 13f @ configure OMAP2UART3 60 beq 13f @ configure OMAP2UART3
58 61
59 /* Configure the UART offset from the phys/virt base */ 62 /* Configure the UART offset from the phys/virt base */
6011: mov \rx, #0x00fb0000 @ OMAP1UART1 6311: mov \rp, #0x00fb0000 @ OMAP1UART1
61 b 98f 64 b 98f
6212: mov \rx, #0x00fb0000 @ OMAP1UART1 6512: mov \rp, #0x00fb0000 @ OMAP1UART1
63 orr \rx, \rx, #0x00000800 @ OMAP1UART2 66 orr \rp, \rp, #0x00000800 @ OMAP1UART2
64 b 98f 67 b 98f
6513: mov \rx, #0x00fb0000 @ OMAP1UART1 6813: mov \rp, #0x00fb0000 @ OMAP1UART1
66 orr \rx, \rx, #0x00000800 @ OMAP1UART2 69 orr \rp, \rp, #0x00000800 @ OMAP1UART2
67 orr \rx, \rx, #0x00009000 @ OMAP1UART3 70 orr \rp, \rp, #0x00009000 @ OMAP1UART3
68 71
69 /* Store both phys and virt address for the uart */ 72 /* Store both phys and virt address for the uart */
7098: add \rx, \rx, #0xff000000 @ phys base 7398: add \rp, \rp, #0xff000000 @ phys base
71 mrc p15, 0, \tmp, c1, c0 74 mrc p15, 0, \rv, c1, c0
72 tst \tmp, #1 @ MMU enabled? 75 tst \rv, #1 @ MMU enabled?
73 ldreq \tmp, =__virt_to_phys(omap_uart_phys) 76 ldreq \rv, =__virt_to_phys(omap_uart_phys) @ MMU not enabled
74 ldrne \tmp, =omap_uart_phys 77 ldrne \rv, =omap_uart_phys @ MMU enabled
75 str \rx, [\tmp, #0] 78 str \rp, [\rv, #0]
76 sub \rx, \rx, #0xff000000 @ phys base 79 sub \rp, \rp, #0xff000000 @ phys base
77 add \rx, \rx, #0xfe000000 @ virt base 80 add \rp, \rp, #0xfe000000 @ virt base
78 ldreq \tmp, =__virt_to_phys(omap_uart_virt) 81 add \rv, \rv, #4 @ omap_uart_lsr
79 ldrne \tmp, =omap_uart_virt 82 str \rp, [\rv, #0]
80 str \rx, [\tmp, #0]
81 b 9b 83 b 9b
8299: 8499:
83 .endm 85 .endm