summaryrefslogtreecommitdiffstats
path: root/sys/boot/efi/loader
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2015-04-10 18:49:43 +0000
committeremaste <emaste@FreeBSD.org>2015-04-10 18:49:43 +0000
commitd03e11cb10b3c15c6d6539521bea58dd4d8cd0d9 (patch)
tree04fe815089864848e562890ca36c82900c646ba1 /sys/boot/efi/loader
parentee55ee8e46b4f41aa1c642d0acf32a4acacbcb5f (diff)
downloadFreeBSD-src-d03e11cb10b3c15c6d6539521bea58dd4d8cd0d9.zip
FreeBSD-src-d03e11cb10b3c15c6d6539521bea58dd4d8cd0d9.tar.gz
Add build support for i386 loader.efi
Kernel changes are required for this to be useful but this will allow others to experiment. Differential Revision: https://reviews.freebsd.org/D2276
Diffstat (limited to 'sys/boot/efi/loader')
-rw-r--r--sys/boot/efi/loader/arch/i386/Makefile.inc11
-rw-r--r--sys/boot/efi/loader/arch/i386/elf32_freebsd.c6
2 files changed, 17 insertions, 0 deletions
diff --git a/sys/boot/efi/loader/arch/i386/Makefile.inc b/sys/boot/efi/loader/arch/i386/Makefile.inc
new file mode 100644
index 0000000..b339f56
--- /dev/null
+++ b/sys/boot/efi/loader/arch/i386/Makefile.inc
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+SRCS+= start.S \
+ efimd.c \
+ elf32_freebsd.c \
+ exec.c \
+ reloc.c
+
+.PATH: ${.CURDIR}/../../i386/libi386
+SRCS+= nullconsole.c \
+ comconsole.c
diff --git a/sys/boot/efi/loader/arch/i386/elf32_freebsd.c b/sys/boot/efi/loader/arch/i386/elf32_freebsd.c
index 9a1458e..bae8f7b 100644
--- a/sys/boot/efi/loader/arch/i386/elf32_freebsd.c
+++ b/sys/boot/efi/loader/arch/i386/elf32_freebsd.c
@@ -48,6 +48,12 @@ static int elf32_obj_exec(struct preloaded_file *amp);
struct file_format i386_elf = { elf32_loadfile, elf32_exec };
struct file_format i386_elf_obj = { elf32_obj_loadfile, elf32_obj_exec };
+struct file_format *file_formats[] = {
+ &i386_elf,
+ &i386_elf_obj,
+ NULL
+};
+
/*
* There is an ELF kernel and one or more ELF modules loaded.
* We wish to start executing the kernel image, so make such
OpenPOWER on IntegriCloud