summaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/compressed/debug.S
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2013-06-20 21:13:55 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2013-06-20 21:13:55 -0700
commite6bca5a6a8a0cdc41a9e1e3e69bc8476ac6a8ed4 (patch)
tree2651a8a7b81ee71113bdeda8425a2083f2842b20 /arch/arm/boot/compressed/debug.S
parente8747f10ba3f7638b1c1fcab9c66a01733213d45 (diff)
parent7d132055814ef17a6c7b69f342244c410a5e000f (diff)
downloadlinux-stable-e6bca5a6a8a0cdc41a9e1e3e69bc8476ac6a8ed4.tar.gz
linux-stable-e6bca5a6a8a0cdc41a9e1e3e69bc8476ac6a8ed4.tar.bz2
linux-stable-e6bca5a6a8a0cdc41a9e1e3e69bc8476ac6a8ed4.zip
Merge tag 'v3.10-rc6' into x86/cleanups
Linux 3.10-rc6 We need a change that is the mainline tree for further work. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/arm/boot/compressed/debug.S')
-rw-r--r--arch/arm/boot/compressed/debug.S28
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/arm/boot/compressed/debug.S b/arch/arm/boot/compressed/debug.S
index 6e8382d5b7a4..5392ee63338f 100644
--- a/arch/arm/boot/compressed/debug.S
+++ b/arch/arm/boot/compressed/debug.S
@@ -1,6 +1,8 @@
#include <linux/linkage.h>
#include <asm/assembler.h>
+#ifndef CONFIG_DEBUG_SEMIHOSTING
+
#include CONFIG_DEBUG_LL_INCLUDE
ENTRY(putc)
@@ -10,3 +12,29 @@ ENTRY(putc)
busyuart r3, r1
mov pc, lr
ENDPROC(putc)
+
+#else
+
+ENTRY(putc)
+ adr r1, 1f
+ ldmia r1, {r2, r3}
+ add r2, r2, r1
+ ldr r1, [r2, r3]
+ strb r0, [r1]
+ mov r0, #0x03 @ SYS_WRITEC
+ ARM( svc #0x123456 )
+ THUMB( svc #0xab )
+ mov pc, lr
+ .align 2
+1: .word _GLOBAL_OFFSET_TABLE_ - .
+ .word semi_writec_buf(GOT)
+ENDPROC(putc)
+
+ .bss
+ .global semi_writec_buf
+ .type semi_writec_buf, %object
+semi_writec_buf:
+ .space 4
+ .size semi_writec_buf, 4
+
+#endif