43 lines
1021 B
ArmAsm
43 lines
1021 B
ArmAsm
/*
|
|
* arch/arm/mach-prima2/include/mach/debug-macro.S
|
|
*
|
|
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
*
|
|
* Licensed under GPLv2 or later.
|
|
*/
|
|
|
|
#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1)
|
|
#define SIRFSOC_UART1_PA_BASE 0xb0060000
|
|
#elif defined(CONFIG_DEBUG_SIRFMARCO_UART1)
|
|
#define SIRFSOC_UART1_PA_BASE 0xcc060000
|
|
#else
|
|
#define SIRFSOC_UART1_PA_BASE 0
|
|
#endif
|
|
|
|
#define SIRFSOC_UART1_VA_BASE 0xFEC60000
|
|
|
|
#define SIRFSOC_UART_TXFIFO_STATUS 0x0114
|
|
#define SIRFSOC_UART_TXFIFO_DATA 0x0118
|
|
|
|
#define SIRFSOC_UART1_TXFIFO_FULL (1 << 5)
|
|
#define SIRFSOC_UART1_TXFIFO_EMPTY (1 << 6)
|
|
|
|
.macro addruart, rp, rv, tmp
|
|
ldr \rp, =SIRFSOC_UART1_PA_BASE @ physical
|
|
ldr \rv, =SIRFSOC_UART1_VA_BASE @ virtual
|
|
.endm
|
|
|
|
.macro senduart,rd,rx
|
|
str \rd, [\rx, #SIRFSOC_UART_TXFIFO_DATA]
|
|
.endm
|
|
|
|
.macro busyuart,rd,rx
|
|
.endm
|
|
|
|
.macro waituart,rd,rx
|
|
1001: ldr \rd, [\rx, #SIRFSOC_UART_TXFIFO_STATUS]
|
|
tst \rd, #SIRFSOC_UART1_TXFIFO_EMPTY
|
|
beq 1001b
|
|
.endm
|
|
|