root/arch/arm/boot/compressed/debug.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #include <linux/linkage.h>
   3 #include <asm/assembler.h>
   4 
   5 #ifndef CONFIG_DEBUG_SEMIHOSTING
   6 
   7 #include CONFIG_DEBUG_LL_INCLUDE
   8 
   9 ENTRY(putc)
  10         addruart r1, r2, r3
  11         waituart r3, r1
  12         senduart r0, r1
  13         busyuart r3, r1
  14         mov      pc, lr
  15 ENDPROC(putc)
  16 
  17 #else
  18 
  19 ENTRY(putc)
  20         adr     r1, 1f
  21         ldmia   r1, {r2, r3}
  22         add     r2, r2, r1
  23         ldr     r1, [r2, r3]
  24         strb    r0, [r1]
  25         mov     r0, #0x03               @ SYS_WRITEC
  26    ARM( svc     #0x123456       )
  27 #ifdef CONFIG_CPU_V7M
  28  THUMB( bkpt    #0xab           )
  29 #else
  30  THUMB( svc     #0xab           )
  31 #endif
  32         mov     pc, lr
  33         .align  2
  34 1:      .word   _GLOBAL_OFFSET_TABLE_ - .
  35         .word   semi_writec_buf(GOT)
  36 ENDPROC(putc)
  37 
  38         .bss
  39         .global semi_writec_buf
  40         .type   semi_writec_buf, %object
  41 semi_writec_buf:
  42         .space  4
  43         .size   semi_writec_buf, 4
  44 
  45 #endif

/* [<][>][^][v][top][bottom][index][help] */