[PATCH v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

Arnd Bergmann arnd at arndb.de
Thu Feb 26 07:42:09 PST 2015


On Thursday 26 February 2015 17:18:41 Chanwoo Choi wrote:
> I add following aliases and serial_1/serial_3 dt node in board dtsi:
> I tested that change the alias of serial_x node.
>         
>         aliases {
>                 serial0 = &serial_1;
>                 serial1 = &serial_3;
>         };
> 
>         /* Add 'linux,stdout-path' property to print kernel log by using ealycon */
>         chosen {
>                 linux,stdout-path = &serial_1;
>         };
> 
>         [snip]
> 
>         /* serial_1 is used for printing kernel log throught JIG cable */
>         &serial_1 {
>                 status = "okay";
>         };
> 
>         &serial_3 {
>                 status = "okay";
>         };
> 
> In result, serial driver create the /dev/ttySAC0 for serial_1 and /dev/ttySAC1 for serial_3.
> But, I cannot complete the kernel booting and stop it with following kernel log
> 
> [    0.000000] Booting Linux on physical CPU 0x100
> [    0.000000] Initializing cgroup subsys cpuset
> [    0.000000] Initializing cgroup subsys cpu
> [    0.000000] Initializing cgroup subsys cpuacct
> [    0.000000] Linux version 4.0.0-rc1-00066-g49bfcec-dirty (cwchoi00 at chan) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG l5
> [snip]
> [    0.000000] Kernel command line: console=ttySAC1,115200 earlycon=exynos4210,0x14C20000

What is the "earlycon=exynos4210,0x14C20000" doing here? Should that not just be
"earlycon=exynos" or something like that when you set the correct stdout-path?

> [snip]
> [    0.651647] dma-pl330 15610000.pdma: Loaded driver for PL330 DMAC-341330
> [    0.651851] dma-pl330 15610000.pdma:         DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
> [    0.658566] dma-pl330 15600000.pdma: Loaded driver for PL330 DMAC-341330
> [    0.662872] dma-pl330 15600000.pdma:         DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
> [    0.672487] dma-pl330 11420000.adma: Loaded driver for PL330 DMAC-341330
> [ 8466.414900] dma-pl330 11420000.adma:         DBUFF-8x8bytes Num_Chans-8 Num_Peri-16 Num_Events-8
> [ 8466.481648] 14c20000.serial: ttySAC0 at MMIO 0x14c20000 (irq = 21, base_baud = 0) is a S3C6400/10
> (dont' print any kernel log)
> 
> So, I change the kernel command line about ('console' bootparam) as following:
> because tty framework must use the 'console' bootparam to print kernel log.
> - original     : Kernel command line: console=ttySAC1,115200 ... (cannot the kernel log from serial driver probed)
> - modification : Kernel command line: console=ttySAC0,115200 ... (got the successful kernel booting)
> 
> After modification, I got the successful kernel booting.
> 
> If should use the serial_0 device and then modify the 'aliases' as following:
> I have to modify the commandline of bootloader if the commandline of bootloader is used
> instad of default kernel command line.
> 
>         aliases {
>                 serial0 = &serial_0;
>                 serial1 = &serial_1;
>                 serial2 = &serial_3;
>         };

If you need the numbers to match, maybe there is still a bug in the serial port
driver and it uses some arbitrary number (e.g. probe order, or ascending
MMIO address) for the console instead of the alias?

	Arnd



More information about the linux-arm-kernel mailing list