path: root/arch
diff options
authorTushar Behera <tushar.behera@linaro.org>2013-06-04 09:49:10 +0530
committerOlof Johansson <olof@lixom.net>2013-06-07 18:09:22 -0700
commit437d8ac510b90610da814ae25a7b79aaf3b4910f (patch)
tree714a1bb6d453e63d2ab65ab5ba44c3dbc399c1c1 /arch
parent0b6825585bb9a896cd10adfdaf6c3724c419311c (diff)
ARM: EXYNOS: uncompress - print debug messages if DEBUG_LL is defined
Printing low-level debug messages make an assumption that the specified UART port has been preconfigured by the bootloader. Incorrectly specified UART port results in system getting stalled while printing the message "Uncompressing Linux... done, booting the kernel" This UART port number is specified through S3C_LOWLEVEL_UART_PORT. Since the UART port might different for different board, it is not possible to specify it correctly for every board that use a common defconfig file. Calling this print subroutine only when DEBUG_LL fixes the problem. By disabling DEBUG_LL in default config file, we would be able to boot multiple boards with different default UART ports. With this current approach, we miss the print "Uncompressing Linux... done, booting the kernel." when DEBUG_LL is not defined. Signed-off-by: Tushar Behera <tushar.behera@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch')
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/plat-samsung/include/plat/uncompress.h b/arch/arm/plat-samsung/include/plat/uncompress.h
index 438b24846e7f..02b66d723d1a 100644
--- a/arch/arm/plat-samsung/include/plat/uncompress.h
+++ b/arch/arm/plat-samsung/include/plat/uncompress.h
@@ -66,6 +66,9 @@ uart_rd(unsigned int reg)
static void putc(int ch)
+ if (!config_enabled(CONFIG_DEBUG_LL))
+ return;
if (uart_rd(S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) {
int level;
@@ -118,7 +121,12 @@ static void arch_decomp_error(const char *x)
static inline void arch_enable_uart_fifo(void)
- u32 fifocon = uart_rd(S3C2410_UFCON);
+ u32 fifocon;
+ if (!config_enabled(CONFIG_DEBUG_LL))
+ return;
+ fifocon = uart_rd(S3C2410_UFCON);
if (!(fifocon & S3C2410_UFCON_FIFOMODE)) {
fifocon |= S3C2410_UFCON_RESETBOTH;

Privacy Policy