Initial kernel command string (Was: Generating elf kernel ?)
tiejun.chen
tiejun.chen at windriver.com
Mon Sep 20 18:10:58 EST 2010
Guillaume Dargaud wrote:
>> I think you should modify the bootargs on your dts.
>> ------
>> chosen {
>> bootargs = "console=ttyS0 root=/dev/ram";
>> linux,stdout-path = "/plb at 0/serial at 83e00000";
>> } ;
>
> Thanks, that worked great, I now have a fully bootable not only kernel, but
> full OS as well.
Sounds good :)
>
>>> Also my previous kernel would wait for 2 seconds at the beginning to
>>> allow me to change the initial command string via the serial port, but
>>> now it just runs right through. How can I enable this option ?
>> It's possible on PowerPC kernel :)
>>
>> You can take a look at the file, arch/powerpc/boot/main.c.
>> ------
>> static void prep_cmdline(void *chosen)
>> {
>> if (cmdline[0] == '\0')
>> getprop(chosen, "bootargs", cmdline, COMMAND_LINE_SIZE-1);
>>
>> printf("\n\rLinux/PowerPC load: %s", cmdline);
>> /* If possible, edit the command line */
>> if (console_ops.edit_cmdline)
>> console_ops.edit_cmdline(cmdline, COMMAND_LINE_SIZE);
>> printf("\n\r");
>> .......
>>
>>
>> So you have to define one function, console_ops.edit_cmdline -->
>> serial_edit_cmdline. Or you can try bind this to your boot console ops
>> directly. Please refer to the file, arch/powerpc/boot/serial.c.
>
> So I forced
> console_ops.edit_cmdline = serial_edit_cmdline;
> in serial.c, bu that didn't do the trick...
Where are/how do your way implement? Can you paste your code sections here?
If I remember ML405 properly the serial port should be compliant to ns16550. So
I think the sub-functions, putc()/getc()/tstc(), should be from the file,
arch/powerpc/boot/ns16550.c. If so it's fine.
Maybe you can add some extra printf() into the function, serial_edit_cmdline, to
track this in detail.
Cheers
Tiejun
More information about the Linuxppc-dev
mailing list