diff options
author | Pawel Moll <pawel.moll@arm.com> | 2011-12-09 18:47:39 +0000 |
---|---|---|
committer | Pawel Moll <pawel.moll@arm.com> | 2012-02-24 09:18:20 +0000 |
commit | 6a3719562b69ffdfc36e829e19b35fda6ab19ca6 (patch) | |
tree | 0eb75a57e5f7b54d51d14c315f15cbc1433e2ee7 /arch/arm/mach-vexpress/include/mach/uncompress.h | |
parent | 8deed1786a6479d0ccda51226582920ab1d6976c (diff) | |
download | talos-op-linux-6a3719562b69ffdfc36e829e19b35fda6ab19ca6.tar.gz talos-op-linux-6a3719562b69ffdfc36e829e19b35fda6ab19ca6.zip |
ARM: vexpress: Motherboard RS1 memory map support
This patch adds support for RS1 memory map based Versatile Express
motherboard.
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Diffstat (limited to 'arch/arm/mach-vexpress/include/mach/uncompress.h')
-rw-r--r-- | arch/arm/mach-vexpress/include/mach/uncompress.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/arch/arm/mach-vexpress/include/mach/uncompress.h b/arch/arm/mach-vexpress/include/mach/uncompress.h index 7972c5748d0e..7dab5596b868 100644 --- a/arch/arm/mach-vexpress/include/mach/uncompress.h +++ b/arch/arm/mach-vexpress/include/mach/uncompress.h @@ -22,7 +22,27 @@ #define AMBA_UART_CR(base) (*(volatile unsigned char *)((base) + 0x30)) #define AMBA_UART_FR(base) (*(volatile unsigned char *)((base) + 0x18)) -#define get_uart_base() (0x10000000 + 0x00009000) +#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; +} /* * This does not append a newline |