svn commit: r330815 - head/stand/efi/loader

Warner Losh imp at FreeBSD.org
Mon Mar 12 21:40:28 UTC 2018


Author: imp
Date: Mon Mar 12 21:40:24 2018
New Revision: 330815
URL: https://svnweb.freebsd.org/changeset/base/330815

Log:
  Print the load and device path as well as BootCurrent and BootOrder
  
  Sponsored by: Netflix

Modified:
  head/stand/efi/loader/main.c

Modified: head/stand/efi/loader/main.c
==============================================================================
--- head/stand/efi/loader/main.c	Mon Mar 12 21:40:19 2018	(r330814)
+++ head/stand/efi/loader/main.c	Mon Mar 12 21:40:24 2018	(r330815)
@@ -312,6 +312,12 @@ main(int argc, CHAR16 *argv[])
 	int i, j, vargood, howto;
 	UINTN k;
 	int has_kbd;
+	CHAR16 *text;
+	UINT16 boot_current;
+	size_t sz;
+	UINT16 boot_order[100];
+	EFI_DEVICE_PATH *imgpath;
+	EFI_STATUS status;
 #if !defined(__arm__)
 	char buf[40];
 #endif
@@ -472,6 +478,36 @@ main(int argc, CHAR16 *argv[])
 	    ST->FirmwareRevision >> 16, ST->FirmwareRevision & 0xffff);
 
 	printf("\n%s", bootprog_info);
+
+	text = efi_devpath_name(img->FilePath);
+	if (text != NULL) {
+		printf("   Load Path: %S\n", text);
+		efi_setenv_freebsd_wcs("LoaderPath", text);
+		efi_free_devpath_name(text);
+	}
+
+	status = BS->HandleProtocol(img->DeviceHandle, &devid, (void **)&imgpath);
+	if (status == EFI_SUCCESS) {
+		text = efi_devpath_name(imgpath);
+		if (text != NULL) {
+			printf("   Load Device: %S\n", text);
+			efi_setenv_freebsd_wcs("LoaderDev", text);
+			efi_free_devpath_name(text);
+		}
+	}
+
+	boot_current = 0;
+	sz = sizeof(boot_current);
+	efi_global_getenv("BootCurrent", &boot_current, &sz);
+	printf("   BootCurrent: %04x\n", boot_current);
+
+	sz = sizeof(boot_order);
+	efi_global_getenv("BootOrder", &boot_order, &sz);
+	printf("   BootOrder:");
+	for (i = 0; i < sz / sizeof(boot_order[0]); i++)
+		printf(" %04x%s", boot_order[i],
+		    boot_order[i] == boot_current ? "[*]" : "");
+	printf("\n");
 
 	/*
 	 * Disable the watchdog timer. By default the boot manager sets


More information about the svn-src-all mailing list