summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Austin <jonathan.austin@arm.com>2012-03-05 12:28:14 +0000
committerMarc Zyngier <marc.zyngier@arm.com>2012-04-20 14:54:51 +0100
commitf11aed1a1bc12e5badee6fb871ddacc0c7f2e18c (patch)
treebe6d4b54c978bec4c13a67aa6e9c7365acb39022
parent0c7dd332c9c8b40eee4ab8acc317600db04cc7b3 (diff)
ARM: vexpress: remove fragile UART detection mechanism
The code to 'guess' the UART base address for vexpress platforms reads from the Configuration Base Register. This is not present on all Versatile Express platforms and the attempt to access co-processor 15 with opcode 4 causes an abort. This patch replaces the fuzzy guesswork code with the original, hard coded value that is appropriate for Cortex A9. A subsequent patch is provided in this series to choose an appropriate location using Kconfig Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
-rw-r--r--arch/arm/mach-vexpress/include/mach/uncompress.h22
1 files changed, 1 insertions, 21 deletions
diff --git a/arch/arm/mach-vexpress/include/mach/uncompress.h b/arch/arm/mach-vexpress/include/mach/uncompress.h
index 7dab5596b868..7972c5748d0e 100644
--- a/arch/arm/mach-vexpress/include/mach/uncompress.h
+++ b/arch/arm/mach-vexpress/include/mach/uncompress.h
@@ -22,27 +22,7 @@
#define AMBA_UART_CR(base) (*(volatile unsigned char *)((base) + 0x30))
#define AMBA_UART_FR(base) (*(volatile unsigned char *)((base) + 0x18))
-#define UART_BASE 0x10009000
-#define UART_BASE_RS1 0x1c090000
-
-static unsigned long get_uart_base(void)
-{
- unsigned long mpcore_periph;
-
- /*
- * Make an educated guess regarding the memory map:
- * - the original A9 core tile, which has MPCore peripherals
- * located at 0x1e000000, should use UART at 0x10009000
- * - all other (RS1 complaint) tiles use UART mapped
- * at 0x1c090000
- */
- asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (mpcore_periph));
-
- if (mpcore_periph == 0x1e000000)
- return UART_BASE;
- else
- return UART_BASE_RS1;
-}
+#define get_uart_base() (0x10000000 + 0x00009000)
/*
* This does not append a newline