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 <[email protected]>
@@ -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.