Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5932ae3f authored by Deepak Saxena's avatar Deepak Saxena Committed by Russell King
Browse files

[PATCH] ARM: 2745/1: Fix IXP4xx debug macros



Patch from Deepak Saxena

Current IXP4xx debug macros do not work in the small window between
the MMU being enabled and the call to map_io() b/c the standard
peripheral mapping is not properly setup for use with the low-level
debug code. This patch creates a new section-aligned mapping for the
UART specifically for use with the debug macros.

Signed-off-by: Deepak Saxena
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent c4982887
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -141,7 +141,15 @@ static struct map_desc ixp4xx_io_desc[] __initdata = {
		.physical	= IXP4XX_PCI_CFG_BASE_PHYS,
		.length		= IXP4XX_PCI_CFG_REGION_SIZE,
		.type		= MT_DEVICE
	},
#ifdef CONFIG_DEBUG_LL
	{	/* Debug UART mapping */
		.virtual	= IXP4XX_DEBUG_UART_BASE_VIRT,
		.physical	= IXP4XX_DEBUG_UART_BASE_PHYS,
		.length		= IXP4XX_DEBUG_UART_REGION_SIZE,
		.type		= MT_DEVICE
	}
#endif
};

void __init ixp4xx_map_io(void)
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
                mrc     p15, 0, \rx, c1, c0
                tst     \rx, #1                 @ MMU enabled?
                moveq   \rx, #0xc8000000
		orrne	\rx, \rx, #0x00b00000
                movne   \rx, #0xff000000
                add     \rx,\rx,#3              @ Uart regs are at off set of 3 if
						@ byte writes used - Big Endian.
+10 −0
Original line number Diff line number Diff line
@@ -69,6 +69,16 @@
#define IXP4XX_PERIPHERAL_BASE_VIRT	(0xFFBF2000)
#define IXP4XX_PERIPHERAL_REGION_SIZE	(0x0000C000)

/*
 * Debug UART
 *
 * This is basically a remap of UART1 into a region that is section
 * aligned so that it * can be used with the low-level debug code.
 */
#define	IXP4XX_DEBUG_UART_BASE_PHYS	(0xC8000000)
#define	IXP4XX_DEBUG_UART_BASE_VIRT	(0xffb00000)
#define	IXP4XX_DEBUG_UART_REGION_SIZE	(0x00001000)

#define IXP4XX_EXP_CS0_OFFSET	0x00
#define IXP4XX_EXP_CS1_OFFSET   0x04
#define IXP4XX_EXP_CS2_OFFSET   0x08