# HG changeset patch # Parent ae1860eac3cadb8e0650110cf016e4ec5089a6d0 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. diff -r ae1860eac3ca sys/boot/amd64/efi/bootinfo.c --- a/sys/boot/amd64/efi/bootinfo.c +++ b/sys/boot/amd64/efi/bootinfo.c @@ -47,6 +47,8 @@ #include "framebuffer.h" #include "x86_efi.h" +extern EFI_SYSTEM_TABLE *ST; + UINTN x86_efi_mapkey; static const char howto_switches[] = "aCdrgDmphsv"; @@ -360,6 +362,7 @@ bi_load(char *args, vm_offset_t *modulep file_addmetadata(kfp, MODINFOMD_HOWTO, sizeof howto, &howto); file_addmetadata(kfp, MODINFOMD_ENVP, sizeof envp, &envp); file_addmetadata(kfp, MODINFOMD_KERNEND, sizeof kernend, &kernend); + file_addmetadata(kfp, MODINFOMD_FW_HANDLE, sizeof ST, &ST); bi_load_efi_data(kfp); diff -r ae1860eac3ca sys/boot/i386/efi/bootinfo.c --- a/sys/boot/i386/efi/bootinfo.c +++ b/sys/boot/i386/efi/bootinfo.c @@ -42,6 +42,8 @@ #include "libi386.h" #include +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,