Module Name:    src
Committed By:   skrll
Date:           Fri Jan 18 19:41:03 UTC 2019

Modified Files:
        src/sys/stand/efiboot: boot.c version

Log Message:
Add support for "bootargs" environment variable from jmcneill@

Doesn't work with some (all?) u-boots.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/stand/efiboot/boot.c
cvs rdiff -u -r1.8 -r1.9 src/sys/stand/efiboot/version

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/stand/efiboot/boot.c
diff -u src/sys/stand/efiboot/boot.c:1.14 src/sys/stand/efiboot/boot.c:1.15
--- src/sys/stand/efiboot/boot.c:1.14	Thu Nov 15 23:52:33 2018
+++ src/sys/stand/efiboot/boot.c	Fri Jan 18 19:41:03 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: boot.c,v 1.14 2018/11/15 23:52:33 jmcneill Exp $	*/
+/*	$NetBSD: boot.c,v 1.15 2019/01/18 19:41:03 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2016 Kimihiro Nonaka <non...@netbsd.org>
@@ -73,11 +73,13 @@ static char default_device[32];
 static char initrd_path[255];
 static char dtb_path[255];
 static char netbsd_path[255];
+static char netbsd_args[255];
 
 #define	DEFTIMEOUT	5
 #define DEFFILENAME	names[0]
 
 int	set_bootfile(const char *);
+int	set_bootargs(const char *);
 
 void	command_boot(char *);
 void	command_dev(char *);
@@ -328,6 +330,15 @@ set_bootfile(const char *arg)
 	return 0;
 }
 
+int
+set_bootargs(const char *arg)
+{
+	if (strlen(arg) + 1 > sizeof(netbsd_args))
+		return ERANGE;
+	strcpy(netbsd_args, arg);
+	return 0;
+}
+
 void
 print_banner(void)
 {
@@ -376,6 +387,15 @@ read_env(void)
 		set_default_device(s);
 		FreePool(s);
 	}
+
+	s = efi_env_get("bootargs");
+	if (s) {
+#ifdef EFIBOOT_DEBUG
+		printf(">> Setting default boot args to '%s' from environment\n", s);
+#endif
+		set_bootargs(s);
+		FreePool(s);
+	}
 }
 
 void
@@ -401,7 +421,7 @@ boot(void)
 		if (c != '\r' && c != '\n' && c != '\0')
 			bootprompt(); /* does not return */
 
-		exec_netbsd(netbsd_path, "");
+		exec_netbsd(netbsd_path, netbsd_args);
 	}
 
 	bootprompt();	/* does not return */

Index: src/sys/stand/efiboot/version
diff -u src/sys/stand/efiboot/version:1.8 src/sys/stand/efiboot/version:1.9
--- src/sys/stand/efiboot/version:1.8	Thu Nov 15 23:52:33 2018
+++ src/sys/stand/efiboot/version	Fri Jan 18 19:41:03 2019
@@ -1,4 +1,4 @@
-$NetBSD: version,v 1.8 2018/11/15 23:52:33 jmcneill Exp $
+$NetBSD: version,v 1.9 2019/01/18 19:41:03 skrll Exp $
 
 NOTE ANY CHANGES YOU MAKE TO THE EFI BOOTLOADER HERE.  The format of this
 file is important - make sure the entries are appended on end, last item
@@ -12,3 +12,4 @@ is taken as the current.
 1.5:	EFI runtime support.
 1.6:	Add GPT support.
 1.7:	Add NFS support.
+1.8:	Add support for "bootargs" environment variable.

Reply via email to