ks8695.S 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * arch/arm/include/debug/ks8695.S
  3. *
  4. * Copyright (C) 2006 Ben Dooks <ben@simtec.co.uk>
  5. * Copyright (C) 2006 Simtec Electronics
  6. *
  7. * KS8695 - Debug macros
  8. *
  9. * This program is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License version 2 as
  11. * published by the Free Software Foundation.
  12. */
  13. #define KS8695_UART_PA 0x03ffe000
  14. #define KS8695_UART_VA 0xf00fe000
  15. #define KS8695_URTH (0x04)
  16. #define KS8695_URLS (0x14)
  17. #define URLS_URTE (1 << 6)
  18. #define URLS_URTHRE (1 << 5)
  19. .macro addruart, rp, rv, tmp
  20. ldr \rp, =KS8695_UART_PA @ physical base address
  21. ldr \rv, =KS8695_UART_VA @ virtual base address
  22. .endm
  23. .macro senduart, rd, rx
  24. str \rd, [\rx, #KS8695_URTH] @ Write to Transmit Holding Register
  25. .endm
  26. .macro busyuart, rd, rx
  27. 1001: ldr \rd, [\rx, #KS8695_URLS] @ Read Line Status Register
  28. tst \rd, #URLS_URTE @ Holding & Shift registers empty?
  29. beq 1001b
  30. .endm
  31. .macro waituart, rd, rx
  32. 1001: ldr \rd, [\rx, #KS8695_URLS] @ Read Line Status Register
  33. tst \rd, #URLS_URTHRE @ Holding Register empty?
  34. beq 1001b
  35. .endm