forked from Minki/linux
5f2c1b30c7
0ea1293
(arm: return both physical and virtual addresses from addruart)
changed the way the 'addruart' worked, making it return both the virt
and phys addresses. Unfortunately, for footbridge, these were reversed.
Fix that. Tested on Netwinder.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
56 lines
1.2 KiB
ArmAsm
56 lines
1.2 KiB
ArmAsm
/* arch/arm/mach-footbridge/include/mach/debug-macro.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 <asm/hardware/dec21285.h>
|
|
|
|
#ifndef CONFIG_DEBUG_DC21285_PORT
|
|
/* For NetWinder debugging */
|
|
.macro addruart, rp, rv
|
|
mov \rp, #0x000003f8
|
|
orr \rv, \rp, #0xff000000 @ virtual
|
|
orr \rp, \rp, #0x7c000000 @ physical
|
|
.endm
|
|
|
|
#define UART_SHIFT 0
|
|
#define FLOW_CONTROL
|
|
#include <asm/hardware/debug-8250.S>
|
|
|
|
#else
|
|
/* For EBSA285 debugging */
|
|
.equ dc21285_high, ARMCSR_BASE & 0xff000000
|
|
.equ dc21285_low, ARMCSR_BASE & 0x00ffffff
|
|
|
|
.macro addruart, rp, rv
|
|
.if dc21285_low
|
|
mov \rp, #dc21285_low
|
|
.else
|
|
mov \rp, #0
|
|
.endif
|
|
orr \rv, \rp, #0x42000000
|
|
orr \rp, \rp, #dc21285_high
|
|
.endm
|
|
|
|
.macro senduart,rd,rx
|
|
str \rd, [\rx, #0x160] @ UARTDR
|
|
.endm
|
|
|
|
.macro busyuart,rd,rx
|
|
1001: ldr \rd, [\rx, #0x178] @ UARTFLG
|
|
tst \rd, #1 << 3
|
|
bne 1001b
|
|
.endm
|
|
|
|
.macro waituart,rd,rx
|
|
.endm
|
|
#endif
|