Add (somewhat speculative) bootable CD support for PAPR/pSeries-type

systems. In principle, FreeBSD should run on at least some of these
already, and support for the remainder will hopefully show up eventually,
so add this while I'm thinking about it.
This commit is contained in:
Nathan Whitehorn 2011-05-12 15:03:17 +00:00
parent 6ac75c91b7
commit 2a2fbadf4f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=221814

View File

@ -24,6 +24,7 @@
# into base-bits-dir as part of making the image.
if [ "x$1" = "x-b" ]; then
# Apple boot code
uudecode -o /tmp/hfs-boot-block.bz2 `dirname $0`/hfs-boot.bz2.uu
bzip2 -d /tmp/hfs-boot-block.bz2
OFFSET=$(hd /tmp/hfs-boot-block | grep 'Loader START' | cut -f 1 -d ' ')
@ -31,6 +32,19 @@ if [ "x$1" = "x-b" ]; then
dd if=$4/boot/loader of=/tmp/hfs-boot-block seek=$OFFSET conv=notrunc
bootable="-o bootimage=macppc;/tmp/hfs-boot-block -o no-emul-boot"
# pSeries/PAPR boot code
mkdir $4/ppc
cat > $4/ppc/bootinfo.txt << EOF
<CHRP-BOOT>
<DESCRIPTION>FreeBSD/powerpc</DESCRIPTION>
<OS-NAME>FreeBSD</OS-NAME>
<BOOT-SCRIPT>
boot &device;:&partition;,\boot\loader &device;:0
</BOOT-SCRIPT>
</CHRP-BOOT>
EOF
shift
else
bootable=""
@ -48,3 +62,5 @@ echo "/dev/iso9660/`echo $LABEL | tr '[:lower:]' '[:upper:]'` / cd9660 ro 0 0" >
makefs -t cd9660 $bootable -o rockridge -o label=$LABEL $NAME $*
rm $1/etc/fstab
rm /tmp/hfs-boot-block
rm -rf $1/ppc