powerpc/boot: Parse chosen/cmdline-timeout parameter
On some platforms a 5 second timeout during boot might be quite long, so make it configurable. Run the loop at least once to let the user stop the boot by holding a key pressed. If the timeout is set to 0, don't wait for input, which can be used as a workaround if the boot hangs on random data coming in on the serial port. Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net> [mpe: Changelog wording & whitespace] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
90029640fd
commit
4b4b13d5fe
@@ -144,13 +144,24 @@ static char cmdline[BOOT_COMMAND_LINE_SIZE]
|
||||
|
||||
static void prep_cmdline(void *chosen)
|
||||
{
|
||||
unsigned int getline_timeout = 5000;
|
||||
int v;
|
||||
int n;
|
||||
|
||||
/* Wait-for-input time */
|
||||
n = getprop(chosen, "linux,cmdline-timeout", &v, sizeof(v));
|
||||
if (n == sizeof(v))
|
||||
getline_timeout = v;
|
||||
|
||||
if (cmdline[0] == '\0')
|
||||
getprop(chosen, "bootargs", cmdline, BOOT_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, BOOT_COMMAND_LINE_SIZE);
|
||||
if (console_ops.edit_cmdline && getline_timeout)
|
||||
console_ops.edit_cmdline(cmdline, BOOT_COMMAND_LINE_SIZE, getline_timeout);
|
||||
|
||||
printf("\n\r");
|
||||
|
||||
/* Put the command line back into the devtree for the kernel */
|
||||
|
Reference in New Issue
Block a user