diff options
Diffstat (limited to 'arch/arm/boot/compressed/debug.S')
| -rw-r--r-- | arch/arm/boot/compressed/debug.S | 28 | 
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  | 
