From 6ac9f44f0674b7dae7a1a93e38c54906cfad28b2 Mon Sep 17 00:00:00 2001 From: Carl-Johan Irekvist Date: Wed, 8 Dec 2010 11:07:53 +0530 Subject: [PATCH] --- yaml --- r: 226011 b: refs/heads/master c: ec4a637d35d4e05d1f43a68d647fb2453891379a h: refs/heads/master i: 226009: 11019f1dca04811b17c8e8f5085b0c2eb5da469e 226007: 66e74c223a0228c76067cec5787bce5042edbcda v: v3 --- [refs] | 2 +- .../arm/mach-ux500/include/mach/uncompress.h | 23 +++++++++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 7c0a8bb7195e..15cb41a341bf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e8b1cc3a341684dfc02fd02f52308752b031668c +refs/heads/master: ec4a637d35d4e05d1f43a68d647fb2453891379a diff --git a/trunk/arch/arm/mach-ux500/include/mach/uncompress.h b/trunk/arch/arm/mach-ux500/include/mach/uncompress.h index 0271ca0a83df..9a6614c6808e 100644 --- a/trunk/arch/arm/mach-ux500/include/mach/uncompress.h +++ b/trunk/arch/arm/mach-ux500/include/mach/uncompress.h @@ -19,38 +19,43 @@ #define __ASM_ARCH_UNCOMPRESS_H #include +#include #include +#include #include -#define U8500_UART_DR 0x80007000 -#define U8500_UART_LCRH 0x8000702c -#define U8500_UART_CR 0x80007030 -#define U8500_UART_FR 0x80007018 +static u32 ux500_uart_base; static void putc(const char c) { /* Do nothing if the UART is not enabled. */ - if (!(__raw_readb(U8500_UART_CR) & 0x1)) + if (!(__raw_readb(ux500_uart_base + UART011_CR) & 0x1)) return; if (c == '\n') putc('\r'); - while (__raw_readb(U8500_UART_FR) & (1 << 5)) + while (__raw_readb(ux500_uart_base + UART01x_FR) & (1 << 5)) barrier(); - __raw_writeb(c, U8500_UART_DR); + __raw_writeb(c, ux500_uart_base + UART01x_DR); } static void flush(void) { - if (!(__raw_readb(U8500_UART_CR) & 0x1)) + if (!(__raw_readb(ux500_uart_base + UART011_CR) & 0x1)) return; - while (__raw_readb(U8500_UART_FR) & (1 << 3)) + while (__raw_readb(ux500_uart_base + UART01x_FR) & (1 << 3)) barrier(); } static inline void arch_decomp_setup(void) { + if (machine_is_u8500()) + ux500_uart_base = U8500_UART2_BASE; + else if (machine_is_u5500()) + ux500_uart_base = U5500_UART0_BASE; + else /* not much can be done to help here */ + ux500_uart_base = U8500_UART2_BASE; } #define arch_decomp_wdog() /* nothing to do here */