diff options
| author | Marius Strobl <marius@FreeBSD.org> | 2018-02-05 00:18:21 +0000 |
|---|---|---|
| committer | Marius Strobl <marius@FreeBSD.org> | 2018-02-05 00:18:21 +0000 |
| commit | ba8d50d08b9df4e8213f9a6997ff6792ecebcd9b (patch) | |
| tree | 3a4cd6a315fe9ca904fe8a6b919f592442368faa /tools/boot | |
| parent | 74a53bd1315341bc33f9dd0dc589d0397080f270 (diff) | |
Notes
Diffstat (limited to 'tools/boot')
| -rwxr-xr-x | tools/boot/install-boot.sh | 15 | ||||
| -rwxr-xr-x | tools/boot/rootgen.sh | 55 |
2 files changed, 55 insertions, 15 deletions
diff --git a/tools/boot/install-boot.sh b/tools/boot/install-boot.sh index d2b3eacfa48f9..e5201e050b28f 100755 --- a/tools/boot/install-boot.sh +++ b/tools/boot/install-boot.sh @@ -78,12 +78,22 @@ boot_nogeli_mbr_ufs_legacy() { doit gpart bootcode -b ${mbr0} ${dev} s=$(findpart $dev "freebsd-ufs") if [ -z "$s" ] ; then - die "No freebsd-zfs slice found" + die "No freebsd-ufs slice found" fi doit gpart bootcode -p ${mbr2} ${dev}s${s} exit 0 } +boot_nogeli_vtoc8_ufs_ofw() { + dev=$1 + dst=$2 + + # For non-native builds, ensure that geom_part(4) supports VTOC8. + kldload geom_part_vtoc8.ko + doit gpart bootcode -p ${vtoc8} ${dev} + exit 0 +} + DESTDIR=/ # Note: we really don't support geli boot in this script yet. @@ -128,6 +138,9 @@ gptzfs2=${DESTDIR}/boot/gptzfsboot mbr0=${DESTDIR}/boot/boot0 mbr2=${DESTDIR}/boot/boot +# VTOC8 +vtoc8=${DESTDIR}/boot/boot1 + # sanity check here eval boot_${geli}_${scheme}_${fs}_${bios} $dev $DESTDIR $opts || echo "Unsupported boot env: ${geli}-${scheme}-${fs}-${bios}" diff --git a/tools/boot/rootgen.sh b/tools/boot/rootgen.sh index b0b4571a76b9b..98e726f6a3704 100755 --- a/tools/boot/rootgen.sh +++ b/tools/boot/rootgen.sh @@ -193,6 +193,29 @@ mk_geli_mbr_zfs_both() { # u-boot # powerpc +mk_sparc64_nogeli_vtoc8_ufs_ofw() { + src=$1 + img=$2 + mntpt=$3 + geli=$4 + scheme=$5 + fs=$6 + bios=$7 + + cat > ${src}/etc/fstab <<EOF +/dev/ada0a / ufs rw 1 1 +EOF + makefs -t ffs -B big -s 200m ${img} ${src} + md=$(mdconfig -f ${img}) + # For non-native builds, ensure that geom_part(4) supports VTOC8. + kldload geom_part_vtoc8.ko + gpart create -s VTOC8 ${md} + gpart add -t freebsd-ufs ${md} + ${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} + mdconfig -d -u ${md} + rm -f ${src}/etc/fstab +} + qser="-serial telnet::4444,server -nographic" # https://wiki.freebsd.org/QemuRecipes @@ -276,10 +299,8 @@ qemu_i386_both() # qemu-system-ppc64 -drive file=/path/to/disk.img,format=raw # sparc64 -# 10.3 works, 12-current (which one?) hangs # qemu-system-sparc64 -drive file=/path/to/disk.img,format=raw - # Misc variables SRCTOP=$(make -v SRCTOP) cd ${SRCTOP}/stand @@ -293,6 +314,9 @@ DESTDIR=${OBJDIR}/boot-tree rm -rf ${DESTDIR} mkdir -p ${DESTDIR}/boot/defaults mkdir -p ${DESTDIR}/boot/kernel +# XXX boot1 exists only on sparc64 +cp /boot/boot1 ${DESTDIR}/boot +cp /boot/loader ${DESTDIR}/boot cp /boot/kernel/kernel ${DESTDIR}/boot/kernel echo -h -D -S115200 > ${DESTDIR}/boot.config # XXX @@ -396,18 +420,21 @@ for arch in powerpc powerpc64; do done for arch in sparc64; do - for scheme in sun; do - fs=ufs - for bios in ofw; do - # Create sparse file and mount newly created filesystem(s) on it - img=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.img - sh=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.sh - echo "vvvvvvvvvvvvvvvvvvvvvv Creating $img vvvvvvvvvvvvvvvvvvvvvvv" - rm -f ${img}* - eval mk_${geli}_${scheme}_${fs}_${bios} ${DESTDIR} ${img} ${MNTPT} ${geli} ${scheme} ${fs} ${bios} - eval qemu_${arch}_${bios} ${img} ${sh} - [ -n "${SUDO_USER}" ] && chown ${SUDO_USER} ${img}* - echo "^^^^^^^^^^^^^^^^^^^^^^ Creating $img ^^^^^^^^^^^^^^^^^^^^^^^" + for geli in nogeli; do + for scheme in vtoc8; do + for fs in ufs; do + for bios in ofw; do + # Create sparse file and mount newly created filesystem(s) on it + img=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.img + sh=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.sh + echo "vvvvvvvvvvvvvvvvvvvvvv Creating $img vvvvvvvvvvvvvvvvvvvvvvv" + rm -f ${img}* + eval mk_${arch}_${geli}_${scheme}_${fs}_${bios} ${DESTDIR} ${img} ${MNTPT} ${geli} ${scheme} ${fs} ${bios} + eval qemu_${arch}_${bios} ${img} ${sh} + [ -n "${SUDO_USER}" ] && chown ${SUDO_USER} ${img}* + echo "^^^^^^^^^^^^^^^^^^^^^^ Creating $img ^^^^^^^^^^^^^^^^^^^^^^^" + done + done done done done |
