On 02/24/2015 08:59 PM, Arnd Bergmann wrote:
> On Tuesday 24 February 2015 20:04:17 Chanwoo Choi wrote:
>> On 02/24/2015 06:48 PM, Arnd Bergmann wrote:
>>> On Tuesday 24 February 2015 17:52:01 Chanwoo Choi wrote:
>>>>
>>>> But, I have a question.
>>>> If we put the aliases into the board dts file instaed of SoC dtsi,
>>>> each board dts file may use the different alias name about same phandle.
>>>
>>> Yes, that is the idea. In particular with the uarts, the intention is
>>> that the numbering of the device nodes in /dev is the same that is
>>> printed on the board (if any), which may be different from the numbering
>>> internal to the SoC.
>>
>> I check the uart device with Exynos5433 SoC based on Linux 4.0-rc1
>> If some board use the serial_0 and serial_3 as following in board dtsi,
>>
>>         &serial_0 {             --> UART 0 device
>>                 status = "okay";
>>         };
>>
>>         &serial_3 {             --> UART 3 device
>>                 status = "okay";
>>         };
>>
>> The serial core driver create the follwoing /dev/ttySACx device node
>> by using the number of alias. It maintain the same device number of internel 
>> to the SoC.
>>
>>         root@localhost:~# ls /dev/ttySAC
>>         ttySAC1  ttySAC3  
>>
> 
> I'm not completely following. So you have set the serial1 alias to
> the &serial_0 device node and serial3 to &serial_3?
> 
> Why not use serial0=&serial_0 and serial1=&serial_3? Does the serial0
> alias have a special meaning?

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@chan) 
(gcc version 4.9.2 20140904 (prerelease) (crosstool-NG l5
[snip]
[    0.000000] Kernel command line: console=ttySAC1,115200 
earlycon=exynos4210,0x14C20000
[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;
        };

Thanks,
Chanwoo Choi



--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to