0001
0002
0003
0004
0005
0006
0007
0008
0009 .macro addruart, rp, rv, tmp
0010 ldr \rp, =CONFIG_DEBUG_UART_PHYS
0011 ldr \rv, =CONFIG_DEBUG_UART_VIRT
0012 .endm
0013
0014 .macro senduart, rd, rx
0015 ARM_BE8(rev \rd, \rd )
0016 @ Write the 1 character to UARTDM_TF
0017 str \rd, [\rx, #0x70]
0018 .endm
0019
0020 .macro waituartcts,rd,rx
0021 .endm
0022
0023 .macro waituarttxrdy, rd, rx
0024 @ check for TX_EMT in UARTDM_SR
0025 ldr \rd, [\rx, #0x08]
0026 ARM_BE8(rev \rd, \rd )
0027 tst \rd, #0x08
0028 bne 1002f
0029 @ wait for TXREADY in UARTDM_ISR
0030 1001: ldr \rd, [\rx, #0x14]
0031 ARM_BE8(rev \rd, \rd )
0032 tst \rd, #0x80
0033 beq 1001b
0034 1002:
0035 @ Clear TX_READY by writing to the UARTDM_CR register
0036 mov \rd, #0x300
0037 ARM_BE8(rev \rd, \rd )
0038 str \rd, [\rx, #0x10]
0039 @ Write 0x1 to NCF register
0040 mov \rd, #0x1
0041 ARM_BE8(rev \rd, \rd )
0042 str \rd, [\rx, #0x40]
0043 @ UARTDM reg. Read to induce delay
0044 ldr \rd, [\rx, #0x08]
0045 .endm
0046
0047 .macro busyuart, rd, rx
0048 .endm