summaryrefslogtreecommitdiffstats
path: root/sys/boot/amd64/efi/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/boot/amd64/efi/main.c')
-rw-r--r--sys/boot/amd64/efi/main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/boot/amd64/efi/main.c b/sys/boot/amd64/efi/main.c
index d1ea9c3..eb6e69a 100644
--- a/sys/boot/amd64/efi/main.c
+++ b/sys/boot/amd64/efi/main.c
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
#include <efilib.h>
#include <bootstrap.h>
+#include <smbios.h>
#include "x86_efi.h"
extern char bootprog_name[];
@@ -59,6 +60,7 @@ main(int argc, CHAR16 *argv[])
{
char vendor[128];
EFI_LOADED_IMAGE *img;
+ EFI_GUID *guid;
int i;
/*
@@ -124,6 +126,14 @@ main(int argc, CHAR16 *argv[])
archsw.arch_copyout = x86_efi_copyout;
archsw.arch_readin = x86_efi_readin;
+ for (i = 0; i < ST->NumberOfTableEntries; i++) {
+ guid = &ST->ConfigurationTable[i].VendorGuid;
+ if (!memcmp(guid, &smbios, sizeof(EFI_GUID))) {
+ smbios_detect(ST->ConfigurationTable[i].VendorTable);
+ break;
+ }
+ }
+
interact(); /* doesn't return */
return (EFI_SUCCESS); /* keep compiler happy */
OpenPOWER on IntegriCloud