![Lennert Buytenhek](/assets/img/avatar_default.png)
Patch from Lennert Buytenhek The debug-8250 macros do byte accesses, which means that if we're in big-endian mode, we need to logically OR the UART address with 3, as the LSB byte lane (where UART data and status is transferred) has the highest byte address in the word when we are in big-endian mode. It's unclear why this problem didn't surface earlier. Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
27 lines
707 B
ArmAsm
27 lines
707 B
ArmAsm
/*
|
|
* include/asm-arm/arch-ixp23xx/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/arch/ixp23xx.h>
|
|
|
|
.macro addruart,rx
|
|
mrc p15, 0, \rx, c1, c0
|
|
tst \rx, #1 @ mmu enabled?
|
|
ldreq \rx, =IXP23XX_PERIPHERAL_PHYS @ physical
|
|
ldrne \rx, =IXP23XX_PERIPHERAL_VIRT @ virtual
|
|
#ifdef __ARMEB__
|
|
orr \rx, \rx, #0x00000003
|
|
#endif
|
|
.endm
|
|
|
|
#define UART_SHIFT 2
|
|
#include <asm/hardware/debug-8250.S>
|