From 634c55543a24e459900fdbad229eb01baae63680 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Fri, 31 Oct 2014 20:07:54 +0100 Subject: [PATCH] efi: generate /386/efiboot.fat for generating efi bootable cd images (see -E option of mk9660) --- sys/man/8/9boot | 3 ++- sys/src/boot/efi/mkfile | 37 ++++++++++++++++++++++++++----------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/sys/man/8/9boot b/sys/man/8/9boot index 5e778906f..7fb2fd853 100644 --- a/sys/man/8/9boot +++ b/sys/man/8/9boot @@ -1,6 +1,6 @@ .TH 9BOOT 8 .SH NAME -9bootfat, 9bootiso, 9bootpxe, bootia32.efi, bootx64.efi \- PC bootloader for FAT, ISO and PXE network booting +9bootfat, 9bootiso, 9bootpxe, bootia32.efi, bootx64.efi, efiboot.fat \- PC bootloader for FAT, ISO and PXE network booting .SH SYNOPSIS Started by PC BIOS or chainloaded by partition bootsector .SH DESCRIPTION @@ -118,6 +118,7 @@ BIOS booting. .br .B /386/bootx64.efi .br +.B /386/efiboot.fat .SH SOURCE .BR /sys/src/boot/pc .br diff --git a/sys/src/boot/efi/mkfile b/sys/src/boot/efi/mkfile index 2dddd1e4e..89ad24318 100644 --- a/sys/src/boot/efi/mkfile +++ b/sys/src/boot/efi/mkfile @@ -1,4 +1,4 @@ -TARG=bootia32.efi bootx64.efi +TARG=bootia32.efi bootx64.efi efiboot.fat HFILES=fns.h mem.h IMAGEBASE=0x8000 CFLAGS=-FTVw @@ -7,8 +7,7 @@ PEFLAGS=$CFLAGS '-DIMAGEBASE='$IMAGEBASE all:V: $TARG install:V: $TARG - cp bootia32.efi /386 - cp bootx64.efi /386 + cp $prereq /386 bootia32.efi: pe32.8 efi.8 fs.8 pxe.8 iso.8 sub.8 8l -l -H3 -T$IMAGEBASE -o $target $prereq @@ -58,11 +57,10 @@ sub.6: sub.c %.6: $HFILES - -test.fat:D: bootia32.efi bootx64.efi +efiboot.fat:D: bootia32.efi bootx64.efi s = $target.$pid rm -f $target - dd -if /dev/zero -of $target -bs 65536 -count 128 + dd -if /dev/zero -of $target -bs 1024 -count 1024 disk/format -xd -t hard $target dossrv -f $target $s mount -c /srv/$s /n/esp @@ -70,21 +68,38 @@ test.fat:D: bootia32.efi bootx64.efi mkdir /n/esp/efi/boot cp bootia32.efi /n/esp/efi/boot cp bootx64.efi /n/esp/efi/boot - cp /386/9pcf /n/esp - echo 'bootfile=9pcf' >/n/esp/plan9.ini unmount /n/esp rm /srv/$s -test.iso:D: test.fat + +test.iso:D: efiboot.fat rm -fr tmp mkdir tmp - cp test.fat tmp mkdir tmp/cfg mkdir tmp/386 + cp efiboot.fat tmp/386 + cp /386/9bootiso tmp/386 cp /386/9pcf tmp/386 echo 'bootfile=/386/9pcf' >tmp/cfg/plan9.ini - disk/mk9660 -E test.fat -p <{echo +} -s tmp $target + disk/mk9660 -B 386/9bootiso -E 386/efiboot.fat -p <{echo +} -s tmp $target rm -r tmp +test.fat:D: bootia32.efi bootx64.efi + s = $target.$pid + rm -f $target + dd -if /dev/zero -of $target -bs 65536 -count 128 + disk/format -xd -t hard $target + dossrv -f $target $s + mount -c /srv/$s /n/esp + mkdir /n/esp/efi + mkdir /n/esp/efi/boot + cp bootia32.efi /n/esp/efi/boot + cp bootx64.efi /n/esp/efi/boot + cp /386/9pcf /n/esp + echo 'bootfile=9pcf' >/n/esp/plan9.ini + unmount /n/esp + rm /srv/$s + + clean:V: rm -f *.[68] *.out $TARG test.* -- 2.44.0