Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[muen/linux.git] / arch / arm / boot / compressed / debug.S
1 #include <linux/linkage.h>
2 #include <asm/assembler.h>
3
4 #ifndef CONFIG_DEBUG_SEMIHOSTING
5
6 #include CONFIG_DEBUG_LL_INCLUDE
7
8 ENTRY(putc)
9         addruart r1, r2, r3
10         waituart r3, r1
11         senduart r0, r1
12         busyuart r3, r1
13         mov      pc, lr
14 ENDPROC(putc)
15
16 #else
17
18 ENTRY(putc)
19         adr     r1, 1f
20         ldmia   r1, {r2, r3}
21         add     r2, r2, r1
22         ldr     r1, [r2, r3]
23         strb    r0, [r1]
24         mov     r0, #0x03               @ SYS_WRITEC
25    ARM( svc     #0x123456       )
26  THUMB( svc     #0xab           )
27         mov     pc, lr
28         .align  2
29 1:      .word   _GLOBAL_OFFSET_TABLE_ - .
30         .word   semi_writec_buf(GOT)
31 ENDPROC(putc)
32
33         .bss
34         .global semi_writec_buf
35         .type   semi_writec_buf, %object
36 semi_writec_buf:
37         .space  4
38         .size   semi_writec_buf, 4
39
40 #endif