stm32.S 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) STMicroelectronics SA 2017 - All Rights Reserved
  4. * Author: Gerald Baeza <[email protected]> for STMicroelectronics.
  5. */
  6. #ifdef CONFIG_STM32F4_DEBUG_UART
  7. #define STM32_USART_SR_OFF 0x00
  8. #define STM32_USART_TDR_OFF 0x04
  9. #endif
  10. #if defined(CONFIG_STM32F7_DEBUG_UART) || defined(CONFIG_STM32H7_DEBUG_UART) || \
  11. defined(CONFIG_STM32MP1_DEBUG_UART)
  12. #define STM32_USART_SR_OFF 0x1C
  13. #define STM32_USART_TDR_OFF 0x28
  14. #endif
  15. #define STM32_USART_TC (1 << 6) /* Tx complete */
  16. #define STM32_USART_TXE (1 << 7) /* Tx data reg empty */
  17. .macro addruart, rp, rv, tmp
  18. ldr \rp, =CONFIG_DEBUG_UART_PHYS @ physical base
  19. ldr \rv, =CONFIG_DEBUG_UART_VIRT @ virt base
  20. .endm
  21. .macro senduart,rd,rx
  22. strb \rd, [\rx, #STM32_USART_TDR_OFF]
  23. .endm
  24. .macro waituartcts,rd,rx
  25. .endm
  26. .macro waituarttxrdy,rd,rx
  27. 1001: ldr \rd, [\rx, #(STM32_USART_SR_OFF)] @ Read Status Register
  28. tst \rd, #STM32_USART_TXE @ TXE = 1 = tx empty
  29. beq 1001b
  30. .endm
  31. .macro busyuart,rd,rx
  32. 1001: ldr \rd, [\rx, #(STM32_USART_SR_OFF)] @ Read Status Register
  33. tst \rd, #STM32_USART_TC @ TC = 1 = tx complete
  34. beq 1001b
  35. .endm