Index: head/sys/boot/efi/boot1/fat-arm64.tmpl.bz2.uu =================================================================== --- head/sys/boot/efi/boot1/fat-arm64.tmpl.bz2.uu (revision 323553) +++ head/sys/boot/efi/boot1/fat-arm64.tmpl.bz2.uu (nonexistent) @@ -1,26 +0,0 @@ -FAT template boot filesystem created by generate-fat.sh -DO NOT EDIT -$FreeBSD$ -begin 644 fat-arm64.tmpl.bz2 -M0EIH.3%!629364C65#T`&U;_____Z^KJZ_^N_^O^J_^[OJ[NK^JJ^KZNKNNJ -MZNKNZOJ^P`+\#0``0`#0#)D&@TR8AD`,0!D--&`@:!H&@`!B#)IHR:--#(9, -MAA`8F@Q,0,#52`_U4?J@`&AH```:`:``````T-`T&@R&@T``````````$``T -M`R9!H-,F(9`#$`9#31@(&@:!H``8@R::,FC30R&3(80&)H,3$#`521(]I1I) -MF*:8C1Z`F0:`TR,@:&C30:`R!HTT,$!DTT-J:&@R&C)IA,:F33(S4]-3`--$ -MZ--B6=6F1M!<28FJA"+E)$0B<@B(B"TK+:2%L)0B!"'(D$$(9F:@LRO+Q;TL -MNJ9YY2QZK1*-0US5+UM6R;E?-T_QQG*=-<9#J:#>R[!&-40;(2B`0AE9=956 -MO+"IH&,8M=KEBF(3,A$H5JU%:M6K5K1-.A)------6K35I*TJU:M6K[LK*RLK*RLK*INY)IIIIIIL6F3333 -M333=7VLL91VEN[UP[M$I,5X--+@R1:XKTL?G%LL>,D\Y*-*DU+6MB^YMF\7S -MB,!S6CMPUEU'H'B0`4V-'(@!JKN]^?Z<]*UB`&/9J#*9N@O9.H6FYDN5AT,L -MS-UAW-A;:O3J61R=".=)EY-(TK3M8US8NM;1N&\<%Q%^Y3"9%=8Z-AUMYA;W -MPYKK)5;?@6D;$DWL"J0LE*.Q]RA>Q[,;.QH%VDM/KGE)[.JBX4T=56_.0JD: -MUL&Q73$OR;=NF^?PXKCL%SF=:1FKO&W%A1)O,YWU&FM;1N]W0QW=6U*UDS]Q -M0M\CN\G:L^KT%O2U%G0;335JJYFAG8I,5$D?:UC\'Z/U;QO7`<)_3CL!R7/= -M%B=L<+`H+J1;6??%$1%*H8[34M_N$+V0O6O;YJ7!95E7%<9?L%R7-83#:)BY -M(D$F?DZ4B^,W)%W)SY(X;B/[<9?L\P'_-*YCPGRLLY=[?HU\D?[A\BDOL -MP)20P6A(;UG$,HJ0@""#-QRL -MK%;U%@U#)LDM5=:+-(N(1@I4IJ5*E2I54DID4DDDDDE*E)2BI1I4J5*EU;!) -M%))))))CE"2*222222VAMLQPP,#`P,#`P(X"!`@0($"!`@0($"!"A0[?7Q3* -M5*E2I4J5"A0H4*%"A04*%"A0H4+.ST&QK*RLK*RLK*RA>Q22222226J1)))) -M)))E.[CDIL[6:1_==<1)HM-I)YW&BA1::S+:)65-0B]%&'M(M0NH;>IIW;(JNVEFI;>C')YXV5+]XBB)\ -M[ZEVKL@W3>-^_IQW*(%VV;@O/<5F69*8X9GXH9&+#BAR'^.4Y;FM,Y[HL!@OY8;$?8S;J7G.0^F*'/Q;^A`$$ -7$8`%A.GB7Z'$1=)_XNY(IPH2`GA(C"`` -` -end Property changes on: head/sys/boot/efi/boot1/fat-i386.tmpl.bz2.uu ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/boot/efi/boot1/fat-arm.tmpl.bz2.uu =================================================================== --- head/sys/boot/efi/boot1/fat-arm.tmpl.bz2.uu (revision 323553) +++ head/sys/boot/efi/boot1/fat-arm.tmpl.bz2.uu (nonexistent) @@ -1,26 +0,0 @@ -FAT template boot filesystem created by generate-fat.sh -DO NOT EDIT -$FreeBSD$ -begin 644 fat-arm.tmpl.bz2 -M0EIH.3%!62936>#67)H`&U9_____Z^KJZ_ZN_^O^J_^[OJ[NK^JJ^KZNKNNJ -MZNKNZOJ^P`+\```"``:`T::-`:8@P@&1D-!H:808)B:#0`T``,$T#!,@PC09 -M#33"9,0`T(`!H#1IHT!IB#"`9&0T&AIA!@F)H-`#0``P30,$R#"-!D--,)DQ -M`#0@`&@-&FC0&F(,(!D9#0:&F$&"8F@T`-``#!-`P3(,(T&0TTPF3$`-`522 -M$_(H2-DT0T:8C(T!H!ZC30R-&@-`,@&C1H:`:#1M3(T,@:::/1#331FII@)@ -M)Z:)RK5N6<7,O<%[)S4ZD(ODD1"*2"(B(+E99)"P2A$"$.#(((0Z^BHO)97* -MKNTS2;//!6_,:)5IVI>LPGUM8_)MV&_QO'$Y;`J/TETR.=50:\2B`0AF9 -M<_.ME;:;0N<9%D%\Q['*&6B4*U:JM6K5JUQ12I)1111116K45I*TJU:M6K<: -MZ424444448Y-1)111111[F<_6R+%BQ8L6+$X3333333333333333=7Z\E2M6 -MK5JU:M--------->R44444447N#[%BQ8L6+%BQ-M)*******,!0HHHHHHHY[ -M-RR5757;.MS?HE)GL[:M-Q)&/TG09Q6MZ%)XJ4>^]M6W8C@..T= -MV&HOX\@T$`%JWHY$`-/ZV!A?)K>YEEZ1`#*,&#,]G484F/7/RDR%Y4Q?U[J:^S$]EPK -MD81)^D"%H^>2OU:FLC31KK??,_$ES74S%+)U7JU5D:VQD)R-2U3"7[FWW -M-DPVV;ANV^9-R&"T;G,A>6EJ3:=EVE6ENKC#PZG.]=9:75*G=>-4N\OA]'=- -M`L[RN\MM/>Z'8:6Q.RAWU+=HOHDCZ6H?8_!^+:-JVS^6Z;UP'#>T*HB+3GM+4VVS(NQ)&K?`_9IW\,PS#$;QOG"<-QV*QFB8^2)!)H). -M7(_@P9(R$G)DCMYF,_-.ITPZ5:L^\19>>T2K3OA>TUS8M>VJ_;9P7"8;&7&8R51N>F -M1E%A#6+F9*H@$(9J%%%%%%%$>!!!!!!!!! -M!!!!!!!#76C@OM;-N%^W[!<=H[<-1 -MRR"SVLL>LG*Z1G+K%N;);>IIYL-7L*D[Q-SH;5D;RU_+ZK.+TEMX%K(QQ813V:GS1ZT;"R\!H$K/Z:=%386M -MPJL..`X;BN0SS2,I;U*I;;.]O5ZMI9CMV -MY(;8*\CXX-SPW(^Z5WIWPW0V@?7DLGZ@QJQHC6!J-\U[>@T$2F)3"7UM2V+: -M+YMFW;MO6^<-@L)R7+XU0JB(L,KI:F[OD%ZUC=-0WB\7C? -M."P'%83CL1BM$RLHD):&7,DOSLY1=2Y,H_EOG`<%YS0,!Q&$XS]')8CXEXP_ -MFX2-7*,#%P;!Q]V)E#BO"83#?\V3C..Y#E,1?L5S&,NC%DQI>;+`DS>NQL5? -?+6IF915V$0"$)@`M+"Q)@(_9+!?^+N2*<*$AXA*8A@`` -` -end Property changes on: head/sys/boot/efi/boot1/fat-amd64.tmpl.bz2.uu ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/boot/efi/boot1/Makefile =================================================================== --- head/sys/boot/efi/boot1/Makefile (revision 323553) +++ head/sys/boot/efi/boot1/Makefile (revision 323554) @@ -1,160 +1,158 @@ # $FreeBSD$ MAN= .include MK_SSP= no PROG= boot1.sym INTERNALPROG= WARNS?= 6 # We implement a slightly non-standard %S in that it always takes a # CHAR16 that's common in UEFI-land instead of a wchar_t. This only # seems to matter on arm64 where wchar_t defaults to an int instead # of a short. There's no good cast to use here so just ignore the # warnings for now. CWARNFLAGS.boot1.c+= -Wno-format # Disable warnings that are currently incompatible with the zfs boot code CWARNFLAGS.zfs_module.c += -Wno-array-bounds CWARNFLAGS.zfs_module.c += -Wno-cast-align CWARNFLAGS.zfs_module.c += -Wno-cast-qual CWARNFLAGS.zfs_module.c += -Wno-missing-prototypes CWARNFLAGS.zfs_module.c += -Wno-sign-compare CWARNFLAGS.zfs_module.c += -Wno-unused-parameter CWARNFLAGS.zfs_module.c += -Wno-unused-function CWARNFLAGS.skein.c += -Wno-cast-align .if ${COMPILER_TYPE} == "clang" CWARNFLAGS.skein.c += -Wno-missing-variable-declarations .else if ${COMPILER_TYPE} == "gcc" CWARNFLAGS.skein.c += -Wno-missing-declarations .endif # architecture-specific loader code SRCS= boot1.c self_reloc.c start.S ufs_module.c .if ${MK_ZFS} != "no" SRCS+= zfs_module.c SRCS+= skein.c skein_block.c # Do not unroll skein loops, reduce code size CFLAGS+= -DSKEIN_LOOP=111 .PATH: ${.CURDIR}/../../../crypto/skein .endif .if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} > 40201 CWARNFLAGS.self_reloc.c+= -Wno-error=maybe-uninitialized .endif CFLAGS+= -I. CFLAGS+= -I${.CURDIR}/../include CFLAGS+= -I${.CURDIR}/../include/${MACHINE} CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include CFLAGS+= -I${.CURDIR}/../../.. CFLAGS+= -DEFI_UFS_BOOT .ifdef(EFI_DEBUG) CFLAGS+= -DEFI_DEBUG .endif .if ${MK_ZFS} != "no" CFLAGS+= -I${.CURDIR}/../../zfs/ CFLAGS+= -I${.CURDIR}/../../../cddl/boot/zfs/ CFLAGS+= -I${.CURDIR}/../../../crypto/skein CFLAGS+= -DEFI_ZFS_BOOT .endif # Always add MI sources and REGULAR efi loader bits .PATH: ${.CURDIR}/../loader/arch/${MACHINE} .PATH: ${.CURDIR}/../loader .PATH: ${.CURDIR}/../../common CFLAGS+= -I${.CURDIR}/../../common FILES= boot1.efi boot1.efifat FILESMODE_boot1.efi= ${BINMODE} LDSCRIPT= ${.CURDIR}/../loader/arch/${MACHINE}/ldscript.${MACHINE} LDFLAGS+= -Wl,-T${LDSCRIPT},-Bsymbolic,-znotext -shared .if ${MACHINE_CPUARCH} == "aarch64" CFLAGS+= -mgeneral-regs-only .endif .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" CFLAGS+= -fPIC LDFLAGS+= -Wl,-znocombreloc .endif LIBEFI= ${.OBJDIR}/../libefi/libefi.a # # Add libstand for the runtime functions used by the compiler - for example # __aeabi_* (arm) or __divdi3 (i386). # as well as required string and memory functions for all platforms. # DPADD+= ${LIBEFI} ${LIBSTAND} LDADD+= ${LIBEFI} -lstand DPADD+= ${LDSCRIPT} NM?= nm OBJCOPY?= objcopy .if ${MACHINE_CPUARCH} == "amd64" EFI_TARGET= efi-app-x86_64 .elif ${MACHINE_CPUARCH} == "i386" EFI_TARGET= efi-app-ia32 .else EFI_TARGET= binary .endif # Arbitrarily set the PE/COFF header timestamps to 1 Jan 2016 00:00:00 # for build reproducibility. SOURCE_DATE_EPOCH?=1451606400 boot1.efi: ${PROG} if ${NM} ${.ALLSRC} | grep ' U '; then \ echo "Undefined symbols in ${.ALLSRC}"; \ exit 1; \ fi SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ ${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ -j .dynamic -j .dynsym -j .rel.dyn \ -j .rela.dyn -j .reloc -j .eh_frame \ --output-target=${EFI_TARGET} ${.ALLSRC} ${.TARGET} boot1.o: ${.CURDIR}/../../common/ufsread.c # The following inserts our objects into a template FAT file system # created by generate-fat.sh .include "${.CURDIR}/Makefile.fat" boot1.efifat: boot1.efi @set -- `ls -l ${.ALLSRC}`; \ x=$$(($$5-${BOOT1_MAXSIZE})); \ if [ $$x -ge 0 ]; then \ echo "boot1 $$x bytes too large; regenerate FAT templates?" >&2 ;\ exit 1; \ fi echo ${.OBJDIR} - uudecode ${.CURDIR}/fat-${MACHINE}.tmpl.bz2.uu - mv fat-${MACHINE}.tmpl.bz2 ${.TARGET}.bz2 - bzip2 -f -d ${.TARGET}.bz2 + xz -d -c ${.CURDIR}/fat-${MACHINE}.tmpl.xz > ${.TARGET} ${DD} if=${.ALLSRC} of=${.TARGET} seek=${BOOT1_OFFSET} conv=notrunc CLEANFILES= boot1.efi boot1.efifat .include beforedepend ${OBJS}: machine CLEANFILES+= machine machine: .NOMETA ln -sf ${.CURDIR}/../../../${MACHINE}/include machine .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" beforedepend ${OBJS}: x86 CLEANFILES+= x86 x86: .NOMETA ln -sf ${.CURDIR}/../../../x86/include x86 .endif Index: head/sys/boot/efi/boot1/Makefile.fat =================================================================== --- head/sys/boot/efi/boot1/Makefile.fat (revision 323553) +++ head/sys/boot/efi/boot1/Makefile.fat (revision 323554) @@ -1,4 +1,4 @@ # This file autogenerated by generate-fat.sh - DO NOT EDIT # $FreeBSD$ BOOT1_OFFSET=0x2d -BOOT1_MAXSIZE=131072 +BOOT1_MAXSIZE=393216 Index: head/sys/boot/efi/boot1/fat-amd64.tmpl.xz =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/x-xz Property changes on: head/sys/boot/efi/boot1/fat-amd64.tmpl.xz ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/x-xz \ No newline at end of property Index: head/sys/boot/efi/boot1/fat-arm.tmpl.xz =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/x-xz Property changes on: head/sys/boot/efi/boot1/fat-arm.tmpl.xz ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/x-xz \ No newline at end of property Index: head/sys/boot/efi/boot1/fat-arm64.tmpl.xz =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/x-xz Property changes on: head/sys/boot/efi/boot1/fat-arm64.tmpl.xz ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/x-xz \ No newline at end of property Index: head/sys/boot/efi/boot1/fat-i386.tmpl.xz =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/x-xz Property changes on: head/sys/boot/efi/boot1/fat-i386.tmpl.xz ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/x-xz \ No newline at end of property Index: head/sys/boot/efi/boot1/generate-fat.sh =================================================================== --- head/sys/boot/efi/boot1/generate-fat.sh (revision 323553) +++ head/sys/boot/efi/boot1/generate-fat.sh (revision 323554) @@ -1,85 +1,79 @@ #!/bin/sh # This script generates the dummy FAT filesystem used for the EFI boot # blocks. It uses newfs_msdos to generate a template filesystem with the # relevant interesting files. These are then found by grep, and the offsets # written to a Makefile snippet. # # Because it requires root, and because it is overkill, we do not # do this as part of the normal build. If makefs(8) grows workable FAT # support, this should be revisited. # $FreeBSD$ FAT_SIZE=1600 #Size in 512-byte blocks of the produced image BOOT1_OFFSET=2d -BOOT1_SIZE=128k +BOOT1_SIZE=384k if [ $(id -u) != 0 ]; then echo "${0##*/}: must run as root" >&2 exit 1 fi # Record maximum boot1 size in bytes case $BOOT1_SIZE in *k) BOOT1_MAXSIZE=$(expr ${BOOT1_SIZE%k} '*' 1024) ;; *) BOOT1_MAXSIZE=$BOOT1_SIZE ;; esac echo '# This file autogenerated by generate-fat.sh - DO NOT EDIT' > Makefile.fat echo "# \$FreeBSD\$" >> Makefile.fat echo "BOOT1_OFFSET=0x$BOOT1_OFFSET" >> Makefile.fat echo "BOOT1_MAXSIZE=$BOOT1_MAXSIZE" >> Makefile.fat while read ARCH FILENAME; do # Generate 800K FAT image OUTPUT_FILE=fat-${ARCH}.tmpl dd if=/dev/zero of=$OUTPUT_FILE bs=512 count=$FAT_SIZE DEVICE=`mdconfig -a -f $OUTPUT_FILE` newfs_msdos -F 12 -L EFI $DEVICE mkdir stub mount -t msdosfs /dev/$DEVICE stub # Create and bless a directory for the boot loader mkdir -p stub/efi/boot # Make a dummy file for boot1 echo 'Boot1 START' | dd of=stub/efi/boot/$FILENAME cbs=$BOOT1_SIZE count=1 conv=block # Provide a fallback startup.nsh echo $FILENAME > stub/efi/boot/startup.nsh umount stub mdconfig -d -u $DEVICE rmdir stub # Locate the offset of the fake file OFFSET=$(hd $OUTPUT_FILE | grep 'Boot1 START' | cut -f 1 -d ' ') # Convert to number of blocks OFFSET=$(echo 0x$OFFSET | awk '{printf("%x\n",$1/512);}') # Validate the offset if [ $OFFSET != $BOOT1_OFFSET ]; then echo "Incorrect offset $OFFSET != $BOOT1_OFFSET" >&2 exit 1 fi - bzip2 $OUTPUT_FILE - echo 'FAT template boot filesystem created by generate-fat.sh' > $OUTPUT_FILE.bz2.uu - echo 'DO NOT EDIT' >> $OUTPUT_FILE.bz2.uu - echo "\$FreeBSD\$" >> $OUTPUT_FILE.bz2.uu - - uuencode $OUTPUT_FILE.bz2 $OUTPUT_FILE.bz2 >> $OUTPUT_FILE.bz2.uu - rm $OUTPUT_FILE.bz2 + xz -f $OUTPUT_FILE done <