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.
This commit is contained in:
Warner Losh 2015-12-19 19:01:42 +00:00
parent c869e67208
commit 7a80f343f3

View File

@ -55,6 +55,8 @@ __FBSDID("$FreeBSD$");
#include <fdt_platform.h> #include <fdt_platform.h>
#endif #endif
extern EFI_SYSTEM_TABLE *ST;
static const char howto_switches[] = "aCdrgDmphsv"; static const char howto_switches[] = "aCdrgDmphsv";
static int howto_masks[] = { static int howto_masks[] = {
RB_ASKNAME, RB_CDROM, RB_KDB, RB_DFLTROOT, RB_GDB, RB_MULTIPLE, 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"); "device tree blob found!\n");
#endif #endif
file_addmetadata(kfp, MODINFOMD_KERNEND, sizeof kernend, &kernend); file_addmetadata(kfp, MODINFOMD_KERNEND, sizeof kernend, &kernend);
file_addmetadata(kfp, MODINFOMD_FW_HANDLE, sizeof ST, &ST);
bi_load_efi_data(kfp); bi_load_efi_data(kfp);