Author: emaste
Date: Thu Jan 7 02:22:45 2016
New Revision: 293297
URL: https://svnweb.freebsd.org/changeset/base/293297
Log:
MFC r280950: Move the efi loaders to be under sys/boot/efi
In HEAD this was done to support UEFI on arm64. Merging to stable/10 to
facilitate the merging of later UEFI changes.
Added:
stable/10/sys/boot/efi/boot1/
stable/10/sys/boot/efi/boot1/Makefile (contents, props changed)
stable/10/sys/boot/efi/boot1/Makefile.fat (contents, props changed)
stable/10/sys/boot/efi/boot1/boot1.c (contents, props changed)
stable/10/sys/boot/efi/boot1/fat.tmpl.bz2.uu (contents, props changed)
stable/10/sys/boot/efi/boot1/generate-fat.sh (contents, props changed)
stable/10/sys/boot/efi/loader/
stable/10/sys/boot/efi/loader/Makefile (contents, props changed)
stable/10/sys/boot/efi/loader/arch/
stable/10/sys/boot/efi/loader/arch/amd64/
stable/10/sys/boot/efi/loader/arch/amd64/Makefile.inc (contents, props
changed)
stable/10/sys/boot/efi/loader/arch/amd64/amd64_tramp.S (contents, props
changed)
stable/10/sys/boot/efi/loader/arch/amd64/elf64_freebsd.c (contents,
props changed)
stable/10/sys/boot/efi/loader/arch/amd64/framebuffer.c (contents, props
changed)
stable/10/sys/boot/efi/loader/arch/amd64/framebuffer.h (contents, props
changed)
stable/10/sys/boot/efi/loader/arch/amd64/ldscript.amd64 (contents, props
changed)
stable/10/sys/boot/efi/loader/arch/amd64/reloc.c (contents, props
changed)
stable/10/sys/boot/efi/loader/arch/amd64/start.S (contents, props
changed)
stable/10/sys/boot/efi/loader/autoload.c (contents, props changed)
stable/10/sys/boot/efi/loader/bootinfo.c (contents, props changed)
stable/10/sys/boot/efi/loader/conf.c (contents, props changed)
stable/10/sys/boot/efi/loader/copy.c (contents, props changed)
stable/10/sys/boot/efi/loader/devicename.c (contents, props changed)
stable/10/sys/boot/efi/loader/loader_efi.h (contents, props changed)
stable/10/sys/boot/efi/loader/main.c (contents, props changed)
stable/10/sys/boot/efi/loader/version (contents, props changed)
Modified:
stable/10/sys/boot/efi/Makefile
stable/10/sys/boot/efi/Makefile.inc
Modified: stable/10/sys/boot/efi/Makefile
==============================================================================
--- stable/10/sys/boot/efi/Makefile Thu Jan 7 02:06:14 2016
(r293296)
+++ stable/10/sys/boot/efi/Makefile Thu Jan 7 02:22:45 2016
(r293297)
@@ -2,4 +2,8 @@
SUBDIR= libefi
+.if ${MACHINE_CPUARCH} == "amd64"
+SUBDIR+= loader boot1
+.endif
+
.include <bsd.subdir.mk>
Modified: stable/10/sys/boot/efi/Makefile.inc
==============================================================================
--- stable/10/sys/boot/efi/Makefile.inc Thu Jan 7 02:06:14 2016
(r293296)
+++ stable/10/sys/boot/efi/Makefile.inc Thu Jan 7 02:22:45 2016
(r293297)
@@ -7,7 +7,10 @@ CFLAGS+= -march=i386
.endif
# Options used when building app-specific efi components
+# See conf/kern.mk for the correct set of these
CFLAGS+= -ffreestanding -fshort-wchar -Wformat
+CFLAGS+= -mno-red-zone
+CFLAGS+= -mno-mmx -mno-sse -mno-aes -mno-avx -msoft-float
LDFLAGS+= -nostdlib
.include "../Makefile.inc"
Added: stable/10/sys/boot/efi/boot1/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/10/sys/boot/efi/boot1/Makefile Thu Jan 7 02:22:45
2016 (r293297)
@@ -0,0 +1,84 @@
+# $FreeBSD$
+
+MAN=
+
+.include <bsd.own.mk>
+
+# In-tree GCC does not support __attribute__((ms_abi)).
+.if ${COMPILER_TYPE} != "gcc"
+
+MK_SSP= no
+
+PROG= loader.sym
+INTERNALPROG=
+
+# architecture-specific loader code
+SRCS= boot1.c reloc.c start.S
+
+CFLAGS+= -fPIC
+CFLAGS+= -I.
+CFLAGS+= -I${.CURDIR}/../include
+CFLAGS+= -I${.CURDIR}/../include/${MACHINE_CPUARCH}
+CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include
+CFLAGS+= -I${.CURDIR}/../../..
+
+# Always add MI sources and REGULAR efi loader bits
+.PATH: ${.CURDIR}/../loader/arch/amd64 ${.CURDIR}/../../common
+CFLAGS+= -I${.CURDIR}/../../common
+
+FILES= boot1.efi boot1.efifat
+FILESMODE_boot1.efi= ${BINMODE}
+
+LDSCRIPT=
${.CURDIR}/../loader/arch/${MACHINE_CPUARCH}/ldscript.${MACHINE_CPUARCH}
+LDFLAGS= -Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared -Wl,-znocombreloc
+
+${PROG}: ${LDSCRIPT}
+
+OBJCOPY?= objcopy
+OBJDUMP?= objdump
+
+.if ${MACHINE_CPUARCH} == "amd64"
+EFI_TARGET= efi-app-x86_64
+.elif ${MACHINE_CPUARCH} == "i386"
+EFI_TARGET= efi-app-ia32
+.endif
+
+boot1.efi: loader.sym
+ if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \
+ ${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \
+ exit 1; \
+ fi
+ ${OBJCOPY} -j .text -j .sdata -j .data \
+ -j .dynamic -j .dynsym -j .rel.dyn \
+ -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \
+ --output-target=${EFI_TARGET} ${.ALLSRC} ${.TARGET}
+
+boot1.o: ${.CURDIR}/../../common/ufsread.c
+
+# The following inserts out objects into a template FAT file system
+# created by generate-fat.sh
+
+.include "${.CURDIR}/Makefile.fat"
+
+boot1.efifat: boot1.efi
+ echo ${.OBJDIR}
+ uudecode ${.CURDIR}/fat.tmpl.bz2.uu
+ mv fat.tmpl.bz2 ${.TARGET}.bz2
+ bzip2 -f -d ${.TARGET}.bz2
+ dd if=boot1.efi of=${.TARGET} seek=${BOOT1_OFFSET} conv=notrunc
+
+CLEANFILES= boot1.efifat
+
+.endif # ${COMPILER_TYPE} != "gcc"
+
+.include <bsd.prog.mk>
+
+beforedepend ${OBJS}: machine x86
+
+CLEANFILES+= machine x86 boot1.efi
+
+machine:
+ ln -sf ${.CURDIR}/../../../amd64/include machine
+
+x86:
+ ln -sf ${.CURDIR}/../../../x86/include x86
Added: stable/10/sys/boot/efi/boot1/Makefile.fat
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/10/sys/boot/efi/boot1/Makefile.fat Thu Jan 7 02:22:45
2016 (r293297)
@@ -0,0 +1,3 @@
+# This file autogenerated by generate-fat.sh - DO NOT EDIT
+# $FreeBSD$
+BOOT1_OFFSET=0x2d