summaryrefslogtreecommitdiffstats
path: root/sys/boot/efi/loader
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2015-12-19 19:01:42 +0000
committerimp <imp@FreeBSD.org>2015-12-19 19:01:42 +0000
commit02742ba285e8e8670e8855fdbe66e0f82d9b4bb6 (patch)
tree9726de6148a128e86da0961cf1351fd6fc0fdc54 /sys/boot/efi/loader
parent8343c406db08ecfbfbde5f7677b17a74b24a3645 (diff)
downloadFreeBSD-src-02742ba285e8e8670e8855fdbe66e0f82d9b4bb6.zip
FreeBSD-src-02742ba285e8e8670e8855fdbe66e0f82d9b4bb6.tar.gz
Pass the UEFI system table into the kernel from the boot loader via
the FW_HANDLE metadata item. The kernel can get the rest of what it needs from this.
Diffstat (limited to 'sys/boot/efi/loader')
-rw-r--r--sys/boot/efi/loader/bootinfo.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/boot/efi/loader/bootinfo.c b/sys/boot/efi/loader/bootinfo.c
index f9f8229..0b7b7ef 100644
--- a/sys/boot/efi/loader/bootinfo.c
+++ b/sys/boot/efi/loader/bootinfo.c
@@ -55,6 +55,8 @@ __FBSDID("$FreeBSD$");
#include <fdt_platform.h>
#endif
+extern EFI_SYSTEM_TABLE *ST;
+
static const char howto_switches[] = "aCdrgDmphsv";
static int howto_masks[] = {
RB_ASKNAME, RB_CDROM, RB_KDB, RB_DFLTROOT, RB_GDB, RB_MULTIPLE,
@@ -435,6 +437,7 @@ bi_load(char *args, vm_offset_t *modulep, vm_offset_t *kernendp)
"device tree blob found!\n");
#endif
file_addmetadata(kfp, MODINFOMD_KERNEND, sizeof kernend, &kernend);
+ file_addmetadata(kfp, MODINFOMD_FW_HANDLE, sizeof ST, &ST);
bi_load_efi_data(kfp);
OpenPOWER on IntegriCloud