* Cory Maccarrone <darkstar6262@xxxxxxxxx> [100309 15:38]: > On Tue, Mar 9, 2010 at 7:56 AM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > > > > Does your system boot without any patches if DEBUG_LL is not set > > in your .config? > > No, it doesn't. Seems like the debugging code is still trying to run, > even disabled. If I add in that check, it'll boot with DEBUG_LL not > set, but won't without that. Sorry for the delay on this. How about with the following patch with DEBUG_LL not set? Note that this is using the shift register now too. Regards, Tony
>From 240b34f7efbf26ad4f39438d055b0931e8e7496e Mon Sep 17 00:00:00 2001 From: Tony Lindgren <tony@xxxxxxxxxxx> Date: Mon, 15 Mar 2010 10:47:08 -0700 Subject: [PATCH] omap: Add back UART MDR1 check into uncompress.h Recent DEBUG_LL and uncompress.h changes removed the check_port() as pointed out by Cory Maccarrone <darkstar6262@xxxxxxxxx>. This causes some boards to not boot, so add back the MDR1 register check. The MDR1 register tells the mode of omap uart. Based on an earlier patch by Cory Maccarrone <darkstar6262@xxxxxxxxx>. Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> diff --git a/arch/arm/plat-omap/include/plat/uncompress.h b/arch/arm/plat-omap/include/plat/uncompress.h index 81d9ec5..dc37b2c 100644 --- a/arch/arm/plat-omap/include/plat/uncompress.h +++ b/arch/arm/plat-omap/include/plat/uncompress.h @@ -24,6 +24,8 @@ #include <plat/serial.h> +#define MDR1_MODE_MASK 0x07 + static volatile u8 *uart1_base; static int uart1_shift; @@ -48,6 +50,10 @@ static void putc(int c) if (!uart_base) return; + /* Check for UART 16x mode */ + if ((uart_base[UART_OMAP_MDR1 << uart_shift] & MDR1_MODE_MASK) != 0) + return; + while (!(uart_base[UART_LSR << uart_shift] & UART_LSR_THRE)) barrier(); uart_base[UART_TX << uart_shift] = c;