
From: Dennis Gilmore dennis@ausil.us
if there is a console variable in the u-boot environment and not one on the append line from syslinux config add what is in the environment to the bootargs.
This is necessary to allow distros to have a single extlinux/extlinux.conf file which will work on multiple boards, even if these boards have different consoles (e.g. ttyS0 vs ttyAMA0).
Signed-off-by: Hans de Goede hdegoede@redhat.com --- common/cmd_pxe.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c index ba48692..147d7d1 100644 --- a/common/cmd_pxe.c +++ b/common/cmd_pxe.c @@ -606,6 +606,7 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) char initrd_str[22]; char mac_str[29] = ""; char ip_str[68] = ""; + char console[30] = ""; char *bootargs; int bootm_argc = 3; int len = 0; @@ -665,8 +666,14 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) } #endif
- if (label->append) + if (label->append) { len += strlen(label->append); + /* If no console in append and $console is set, use it */ + if (!strstr(label->append, "console=") && getenv("console")) { + sprintf(console, " console=%s", getenv("console")); + len += strlen(console); + } + }
if (len) { bootargs = malloc(len + 1); @@ -675,6 +682,7 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) bootargs[0] = '\0'; if (label->append) strcpy(bootargs, label->append); + strcat(bootargs, console); strcat(bootargs, ip_str); strcat(bootargs, mac_str);