forked from Minki/linux
76e3faf156
The PL01X debug code needs to take into account which endian mode the processor is running in. If it is big-endian, ensure the data is swapped appropriately. Note, we could do this slightly more efficiently if we have an macro to do the necessary swap for the bits used by test. Reviewed-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
39 lines
877 B
ArmAsm
39 lines
877 B
ArmAsm
/* arch/arm/include/debug/pl01x.S
|
|
*
|
|
* Debugging macro include header
|
|
*
|
|
* Copyright (C) 1994-1999 Russell King
|
|
* Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
*/
|
|
#include <linux/amba/serial.h>
|
|
|
|
#ifdef CONFIG_DEBUG_UART_PHYS
|
|
.macro addruart, rp, rv, tmp
|
|
ldr \rp, =CONFIG_DEBUG_UART_PHYS
|
|
ldr \rv, =CONFIG_DEBUG_UART_VIRT
|
|
.endm
|
|
#endif
|
|
|
|
.macro senduart,rd,rx
|
|
strb \rd, [\rx, #UART01x_DR]
|
|
.endm
|
|
|
|
.macro waituart,rd,rx
|
|
1001: ldr \rd, [\rx, #UART01x_FR]
|
|
ARM_BE8( rev \rd, \rd )
|
|
tst \rd, #UART01x_FR_TXFF
|
|
bne 1001b
|
|
.endm
|
|
|
|
.macro busyuart,rd,rx
|
|
1001: ldr \rd, [\rx, #UART01x_FR]
|
|
ARM_BE8( rev \rd, \rd )
|
|
tst \rd, #UART01x_FR_BUSY
|
|
bne 1001b
|
|
.endm
|