patch-2.4.19 linux-2.4.19/arch/arm/kernel/debug-armv.S
Next file: linux-2.4.19/arch/arm/kernel/dma-arc.c
Previous file: linux-2.4.19/arch/arm/kernel/compat.c
Back to the patch index
Back to the overall index
- Lines: 57
- Date:
Fri Aug 2 17:39:42 2002
- Orig file:
linux-2.4.18/arch/arm/kernel/debug-armv.S
- Orig date:
Thu Oct 25 13:53:45 2001
diff -urN linux-2.4.18/arch/arm/kernel/debug-armv.S linux-2.4.19/arch/arm/kernel/debug-armv.S
@@ -164,28 +164,49 @@
.endm
#elif defined(CONFIG_ARCH_SA1100)
+
.macro addruart,rx
mrc p15, 0, \rx, c1, c0
tst \rx, #1 @ MMU enabled?
moveq \rx, #0x80000000 @ physical base address
movne \rx, #0xf8000000 @ virtual address
- @add \rx, \rx, #0x00050000 @ Ser3
- add \rx, \rx, #0x00010000 @ Ser1
+
+ @ We probe for the active serial port here, coherently with
+ @ the comment in include/asm-arm/arch-sa1100/uncompress.h.
+ @ We assume r1 can be clobbered.
+
+ @ see if Ser3 is active
+ add \rx, \rx, #0x00050000
+ ldr r1, [\rx, #UTCR3]
+ tst r1, #UTCR3_TXE
+
+ @ if Ser3 is inactive, then try Ser1
+ addeq \rx, \rx, #(0x00010000 - 0x00050000)
+ ldreq r1, [\rx, #UTCR3]
+ tsteq r1, #UTCR3_TXE
+
+ @ if Ser1 is inactive, then try Ser2
+ addeq \rx, \rx, #(0x00030000 - 0x00010000)
+ ldreq r1, [\rx, #UTCR3]
+ tsteq r1, #UTCR3_TXE
+
+ @ if all ports are inactive, then there is nothing we can do
+ moveq pc, lr
.endm
.macro senduart,rd,rx
- str \rd, [\rx, #0x14] @ UTDR
+ str \rd, [\rx, #UTDR]
.endm
.macro waituart,rd,rx
-1001: ldr \rd, [\rx, #0x20] @ UTSR1
- tst \rd, #1 << 2 @ UTSR1_TNF
+1001: ldr \rd, [\rx, #UTSR1]
+ tst \rd, #UTSR1_TNF
beq 1001b
.endm
.macro busyuart,rd,rx
-1001: ldr \rd, [\rx, #0x20] @ UTSR1
- tst \rd, #1 << 0 @ UTSR1_TBY
+1001: ldr \rd, [\rx, #UTSR1]
+ tst \rd, #UTSR1_TBY
bne 1001b
.endm
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)