Use console config from adam2/pspboot environment (#1623).

SVN-Revision: 7107
This commit is contained in:
Eugene Konev 2007-05-06 13:30:38 +00:00
parent 0fb88f980d
commit f82141bce4
2 changed files with 39 additions and 1 deletions

View File

@ -10,7 +10,7 @@ CONFIG_BASE_SMALL=0
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_BOOT_ELF32=y
# CONFIG_BT is not set
CONFIG_CMDLINE="console=ttyS0,38400n8r init=/etc/preinit rootfstype=squashfs,jffs2,"
CONFIG_CMDLINE="init=/etc/preinit rootfstype=squashfs,jffs2,"
CONFIG_CPMAC=y
# CONFIG_CPU_BIG_ENDIAN is not set
CONFIG_CPU_HAS_LLSC=y

View File

@ -232,11 +232,49 @@ static void __init ar7_init_env(struct env_var *env)
}
}
static void __init console_config(void)
{
#ifdef CONFIG_SERIAL_8250_CONSOLE
char console_string[40];
int baud = 0;
char parity = '\0', bits = '\0', flow = '\0';
char *s, *p;
if (strstr(prom_getcmdline(), "console="))
return;
if ((s = prom_getenv("modetty0"))) {
baud = simple_strtoul(s, &p, 10);
s = p;
if (*s == ',') s++;
if (*s) parity = *s++;
if (*s == ',') s++;
if (*s) bits = *s++;
if (*s == ',') s++;
if (*s == 'h') flow = 'r';
}
if (baud == 0)
baud = 38400;
if (parity != 'n' && parity != 'o' && parity != 'e')
parity = 'n';
if (bits != '7' && bits != '8')
bits = '8';
if (flow == '\0')
flow = 'r';
sprintf(console_string, " console=ttyS0,%d%c%c%c", baud,
parity, bits, flow);
strcat(prom_getcmdline(), console_string);
#endif
}
void __init prom_init(void)
{
prom_printf("\nLINUX running...\n");
ar7_init_cmdline(fw_arg0, (char **)fw_arg1);
ar7_init_env((struct env_var *)fw_arg2);
console_config();
}
#define PORT(offset) (KSEG1ADDR(AR7_REGS_UART0 + (offset * 4)))