From e87a850b9c92be6a8cf5735c516ec864d65f24dd Mon Sep 17 00:00:00 2001 From: Vineet Gupta Date: Mon, 31 Mar 2014 16:22:09 +0530 Subject: ARC: [arcfpga] Early ARC UART to be only activated by cmdline Earlier CONFIG_SERIAL_ARC_CONSOLE would unconditionally enable the legacy ARC UART based early console even if platform lacked that UART (e.g. nSIM OSCI platform). So a multi-platform image containing the 2 UART drivers won't work. Fix that by probing the driver only if "earlyprintk=ttyARC0" is present in cmdline. Reported-by: Chuck Jordan Signed-off-by: Vineet Gupta --- arch/arc/boot/dts/angel4.dts | 2 +- arch/arc/plat-arcfpga/platform.c | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/arch/arc/boot/dts/angel4.dts b/arch/arc/boot/dts/angel4.dts index bcf662d..5bb2fda 100644 --- a/arch/arc/boot/dts/angel4.dts +++ b/arch/arc/boot/dts/angel4.dts @@ -17,7 +17,7 @@ interrupt-parent = <&intc>; chosen { - bootargs = "console=ttyARC0,115200n8"; + bootargs = "console=ttyARC0,115200n8 earlyprintk=ttyARC0"; }; aliases { diff --git a/arch/arc/plat-arcfpga/platform.c b/arch/arc/plat-arcfpga/platform.c index f09e771..61c7e59 100644 --- a/arch/arc/plat-arcfpga/platform.c +++ b/arch/arc/plat-arcfpga/platform.c @@ -79,16 +79,11 @@ static void arc_fpga_serial_init(void) ARRAY_SIZE(fpga_early_devs)); /* - * ARC console driver registers itself as an early platform driver - * of class "earlyprintk". - * Install it here, followed by probe of devices. - * The installation here doesn't require earlyprintk in command line - * To do so however, replace the lines below with - * parse_early_param(); - * early_platform_driver_probe("earlyprintk", 1, 1); - * ^^ + * ARC console driver registers (build time) as an early platform driver + * of class "earlyprintk". However it needs explicit cmdline toggle + * "earlyprintk=ttyARC0" to be successfuly runtime registered. + * Otherwise the early probe below fails to find the driver */ - early_platform_driver_register_all("earlyprintk"); early_platform_driver_probe("earlyprintk", 1, 0); /* -- cgit v1.1