uboot-tools/0016-automatically-add-console-to-bootline-when-not-exist.patch
2014-04-26 21:49:55 -05:00

61 lines
1.8 KiB
Diff

From 7dace4fe678448c98ebb7beaa01ca64788ab02b4 Mon Sep 17 00:00:00 2001
From: Dennis Gilmore <dennis@ausil.us>
Date: Wed, 23 Apr 2014 15:54:57 -0500
Subject: [PATCH 16/36] automatically add console= to bootline when not
existing
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, allows us to not need to modify the config in a disk image
---
common/cmd_pxe.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c
index 9c43e63..eb5f9c3 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);
--
1.9.0