aboutsummaryrefslogtreecommitdiff
path: root/release/powerpc
diff options
context:
space:
mode:
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>2018-01-01 03:33:01 +0000
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>2018-01-01 03:33:01 +0000
commit9fb36b5eaeb584c7060ba97980ca8068bbc61514 (patch)
tree7790345e08e9b115d066bf89e68b75b6d10d36af /release/powerpc
parentd3e909e7bbe92adf3f055a97387fac93943d84d7 (diff)
downloadsrc-9fb36b5eaeb584c7060ba97980ca8068bbc61514.tar.gz
src-9fb36b5eaeb584c7060ba97980ca8068bbc61514.zip
After removal of loader.ps3, change petitboot configuration in release media
to directly kexec the kernel. Unlike the old loader.ps3 code, this also works on PowerNV systems, which also use petitboot. MFC after: 1 month
Notes
Notes: svn path=/head/; revision=327456
Diffstat (limited to 'release/powerpc')
-rw-r--r--release/powerpc/mkisoimages.sh42
1 files changed, 24 insertions, 18 deletions
diff --git a/release/powerpc/mkisoimages.sh b/release/powerpc/mkisoimages.sh
index ef61f9cbb2e7..02e2d58160af 100644
--- a/release/powerpc/mkisoimages.sh
+++ b/release/powerpc/mkisoimages.sh
@@ -23,20 +23,38 @@
# extra-bits-dir, if provided, contains additional files to be merged
# into base-bits-dir as part of making the image.
+
if [ "$1" = "-b" ]; then
+ bootable=1
+ shift
+else
+ bootable=""
+fi
+
+if [ $# -lt 3 ]; then
+ echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]"
+ exit 1
+fi
+
+LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
+NAME="$1"; shift
+
+if [ -n "$bootable" ]; then
+ echo "Building bootable disc"
+
# 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 ' ')
OFFSET=0x$(echo 0x$OFFSET | awk '{printf("%x\n",$1/512);}')
- dd if="$4/boot/loader" of=/tmp/hfs-boot-block seek=$OFFSET conv=notrunc
+ dd if="$1/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 -p "$4/ppc/chrp"
- cp "$4/boot/loader" "$4/ppc/chrp"
- cat > "$4/ppc/bootinfo.txt" << EOF
+ mkdir -p "$1/ppc/chrp"
+ cp "$1/boot/loader" "$1/ppc/chrp"
+ cat > "$1/ppc/bootinfo.txt" << EOF
<chrp-boot>
<description>FreeBSD Install</description>
<os-name>FreeBSD</os-name>
@@ -45,22 +63,10 @@ if [ "$1" = "-b" ]; then
EOF
bootable="$bootable -o chrp-boot"
- # Playstation 3 boot code
- echo "FreeBSD Install='/boot/loader.ps3'" > "$4/etc/kboot.conf"
-
- shift
-else
- bootable=""
+ # Petitboot config for PS3/PowerNV
+ echo FreeBSD Install=\'/boot/kernel/kernel vfs.root.mountfrom=cd9660:/dev/iso9660/$LABEL\' > "$1/etc/kboot.conf"
fi
-if [ $# -lt 3 ]; then
- echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]"
- exit 1
-fi
-
-LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
-NAME="$1"; shift
-
publisher="The FreeBSD Project. https://www.FreeBSD.org/"
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"