Commit 44a4ed42 authored by Tobias Klauser's avatar Tobias Klauser Committed by Ley Foon Tan
Browse files

nios2: enable earlycon support



Enable generic earlycon support for nios2. This e.g. allows to use a
8250/16650 UART as earlycon.

In order to get the earlycon, we just need to call parse_early_param()
in early_init_devtree() as soon as the device tree is initially scanned.
By adding an stdout-path property to the dts (done in this patch for
10m50_devboard), the earlycon can be used.

In order to provide early printk support, we need to provide a dummy
implementation of early_console_write(), so that
arch/nios2/kernel/early_printk.c can still be compiled if neither
SERIAL_ALTERA_JTAGUART_CONSOLE nor SERIAL_ALTERA_UART_CONSOLE is
selected. As soon as the altera_uart and altera_jtaguart support
earlycon, the entire file can be removed.

Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
Acked-by: default avatarLey Foon Tan <ley.foon.tan@intel.com>
parent 57ac76ed
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ config EARLY_PRINTK
	bool "Activate early kernel debugging"
	default y
	select SERIAL_CORE_CONSOLE
	depends on SERIAL_ALTERA_JTAGUART_CONSOLE || SERIAL_ALTERA_UART_CONSOLE
	help
	  Enable early printk on console
	  This is useful for kernel debugging when your machine crashes very
+2 −1
Original line number Diff line number Diff line
@@ -244,6 +244,7 @@
	};

	chosen {
		bootargs = "debug console=ttyS0,115200";
		bootargs = "debug earlycon console=ttyS0,115200";
		stdout-path = &a_16550_uart_0;
	};
};
+5 −2
Original line number Diff line number Diff line
@@ -81,8 +81,11 @@ static void early_console_write(struct console *con, const char *s, unsigned n)
}

#else
# error Neither SERIAL_ALTERA_JTAGUART_CONSOLE nor SERIAL_ALTERA_UART_CONSOLE \
selected

static void early_console_write(struct console *con, const char *s, unsigned n)
{
}

#endif

static struct console early_console_prom = {
+2 −0
Original line number Diff line number Diff line
@@ -137,6 +137,8 @@ asmlinkage void __init nios2_boot_init(unsigned r4, unsigned r5, unsigned r6,
		strncpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
#endif
#endif

	parse_early_param();
}

void __init setup_arch(char **cmdline_p)