at91.S 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (C) 2003-2005 SAN People
  4. *
  5. * Debugging macro include header
  6. */
  7. #define AT91_DBGU_SR (0x14) /* Status Register */
  8. #define AT91_DBGU_THR (0x1c) /* Transmitter Holding Register */
  9. #define AT91_DBGU_TXRDY (1 << 1) /* Transmitter Ready */
  10. #define AT91_DBGU_TXEMPTY (1 << 9) /* Transmitter Empty */
  11. .macro addruart, rp, rv, tmp
  12. ldr \rp, =CONFIG_DEBUG_UART_PHYS @ System peripherals (phys address)
  13. ldr \rv, =CONFIG_DEBUG_UART_VIRT @ System peripherals (virt address)
  14. .endm
  15. .macro senduart,rd,rx
  16. strb \rd, [\rx, #(AT91_DBGU_THR)] @ Write to Transmitter Holding Register
  17. .endm
  18. .macro waituarttxrdy,rd,rx
  19. 1001: ldr \rd, [\rx, #(AT91_DBGU_SR)] @ Read Status Register
  20. tst \rd, #AT91_DBGU_TXRDY @ DBGU_TXRDY = 1 when ready to transmit
  21. beq 1001b
  22. .endm
  23. .macro waituartcts,rd,rx
  24. .endm
  25. .macro busyuart,rd,rx
  26. 1001: ldr \rd, [\rx, #(AT91_DBGU_SR)] @ Read Status Register
  27. tst \rd, #AT91_DBGU_TXEMPTY @ DBGU_TXEMPTY = 1 when transmission complete
  28. beq 1001b
  29. .endm