svn commit: r328865 - head/tools/boot
Marius Strobl
marius at FreeBSD.org
Mon Feb 5 00:18:22 UTC 2018
Author: marius
Date: Mon Feb 5 00:18:21 2018
New Revision: 328865
URL: https://svnweb.freebsd.org/changeset/base/328865
Log:
Flesh out the creation of sparc64 UFS images. This has only been verified
to yield working images in a native build as rootgen.sh generally doesn't
support cross-testing so far.
Modified:
head/tools/boot/install-boot.sh
head/tools/boot/rootgen.sh
Modified: head/tools/boot/install-boot.sh
==============================================================================
--- head/tools/boot/install-boot.sh Sun Feb 4 23:01:48 2018 (r328864)
+++ head/tools/boot/install-boot.sh Mon Feb 5 00:18:21 2018 (r328865)
@@ -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.
@@ -127,6 +137,9 @@ gptzfs2=${DESTDIR}/boot/gptzfsboot
# For MBR, we have lots of choices, but select boot0
mbr0=${DESTDIR}/boot/boot0
mbr2=${DESTDIR}/boot/boot
+
+# VTOC8
+vtoc8=${DESTDIR}/boot/boot1
# sanity check here
Modified: head/tools/boot/rootgen.sh
==============================================================================
--- head/tools/boot/rootgen.sh Sun Feb 4 23:01:48 2018 (r328864)
+++ head/tools/boot/rootgen.sh Mon Feb 5 00:18:21 2018 (r328865)
@@ -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
More information about the svn-src-head
mailing list