aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-footbridge/include/mach
diff options
context:
space:
mode:
authorJeremy Kerr <jeremy.kerr@canonical.com>2010-07-06 06:30:06 -0400
committerNicolas Pitre <nico@fluxnic.net>2010-10-20 00:27:33 -0400
commit0ea1293009826da45e1019f45dfde1e557bb30df (patch)
tree7111bcd355921f03415182845e5f236ffe1896f4 /arch/arm/mach-footbridge/include/mach
parent1ea64615601229f0dc16dee91dc5b50216411baa (diff)
arm: return both physical and virtual addresses from addruart
Rather than checking the MMU status in every instance of addruart, do it once in kernel/debug.S, and change the existing addruart macros to return both physical and virtual addresses. The main debug code can then select the appropriate address to use. This will also allow us to retreive the address of a uart for the MMU state that we're not current in. Updated with fixes for OMAP from Jason Wang <jason77.wang@gmail.com> and Tony Lindgren <tony@atomide.com>, and fix for versatile express from Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>. Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Jason Wang <jason77.wang@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Tested-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-footbridge/include/mach')
-rw-r--r--arch/arm/mach-footbridge/include/mach/debug-macro.S22
1 files changed, 10 insertions, 12 deletions
diff --git a/arch/arm/mach-footbridge/include/mach/debug-macro.S b/arch/arm/mach-footbridge/include/mach/debug-macro.S
index 60dda1318f22..3c9e0c40c679 100644
--- a/arch/arm/mach-footbridge/include/mach/debug-macro.S
+++ b/arch/arm/mach-footbridge/include/mach/debug-macro.S
@@ -15,12 +15,10 @@
15 15
16#ifndef CONFIG_DEBUG_DC21285_PORT 16#ifndef CONFIG_DEBUG_DC21285_PORT
17 /* For NetWinder debugging */ 17 /* For NetWinder debugging */
18 .macro addruart, rx, tmp 18 .macro addruart, rp, rv
19 mrc p15, 0, \rx, c1, c0 19 mov \rp, #0x000003f8
20 tst \rx, #1 @ MMU enabled? 20 orr \rv, \rp, #0x7c000000 @ physical
21 moveq \rx, #0x7c000000 @ physical 21 orr \rp, \rp, #0xff000000 @ virtual
22 movne \rx, #0xff000000 @ virtual
23 orr \rx, \rx, #0x000003f8
24 .endm 22 .endm
25 23
26#define UART_SHIFT 0 24#define UART_SHIFT 0
@@ -32,14 +30,14 @@
32 .equ dc21285_high, ARMCSR_BASE & 0xff000000 30 .equ dc21285_high, ARMCSR_BASE & 0xff000000
33 .equ dc21285_low, ARMCSR_BASE & 0x00ffffff 31 .equ dc21285_low, ARMCSR_BASE & 0x00ffffff
34 32
35 .macro addruart, rx, tmp 33 .macro addruart, rp, rv
36 mrc p15, 0, \rx, c1, c0
37 tst \rx, #1 @ MMU enabled?
38 moveq \rx, #0x42000000
39 movne \rx, #dc21285_high
40 .if dc21285_low 34 .if dc21285_low
41 orrne \rx, \rx, #dc21285_low 35 mov \rp, #dc21285_low
36 .else
37 mov \rp, #0
42 .endif 38 .endif
39 orr \rv, \rp, #0x42000000
40 orr \rp, \rp, #dc21285_high
43 .endm 41 .endm
44 42
45 .macro senduart,rd,rx 43 .macro senduart,rd,rx