diff options
Diffstat (limited to 'common/cmd_pxe.c')
-rw-r--r-- | common/cmd_pxe.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c index 9c43e63da8..eb5f9c38f3 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,21 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) } #endif - if (label->append) + if (label->append) { len += strlen(label->append); + /* check for a console line in the boot args passed in from the + * config file. If there is no console line and the enviornment + * has a console variable add it to the bootargs + */ + if ( !strstr(label->append, "console=") ) { + printf("no console= \n"); + if (getenv("console")) { + sprintf(console, " console=%s", + getenv("console")); + len += strlen(console); + } + } + } if (len) { bootargs = malloc(len + 1); @@ -675,6 +689,8 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) bootargs[0] = '\0'; if (label->append) strcpy(bootargs, label->append); + if (strlen(console) > 0) + strcat(bootargs, console); strcat(bootargs, ip_str); strcat(bootargs, mac_str); |