1#!/bin/sh 2# $NetBSD: walnut-mkimg.sh,v 1.3 2005/12/11 12:17:11 christos Exp $ 3 4# Convert a kernel to an tftp image loadable by the IBM PowerPC OpenBIOS. 5 6magic=5394511 # IBM OpenBIOS magic number 0x0052504f 7 8if [ $# -ne 2 ] ; then 9 echo usage: $0 kernel image 1>&2 10 exit 1 11fi 12 13kernel=$1; shift 14output=$1; shift 15 16: ${OBJDUMP=objdump} 17: ${OBJCOPY=objcopy} 18 19start=`${OBJDUMP} -f ${kernel} | awk '/start address/ { print $NF }'` 20start=`printf "%d" $start` 21${OBJCOPY} -O binary ${kernel} ${kernel}.bin.$$ 22size=`/bin/ls -l ${kernel}.bin.$$ | awk '{ printf "%d", ( $5 + 511 ) / 512 }'` 23 24printf "%d\n%d\n%d\n0\n%d\n0\n0\n0\n" $magic $start $size $start | 25 awk '{ 26 printf "%c", int($0 / 256 / 256 / 256) % 256; 27 printf "%c", int($0 / 256 / 256 ) % 256; 28 printf "%c", int($0 / 256 ) % 256; 29 printf "%c", int($0 ) % 256; 30 } 31 ' > ${output} 32 33cat ${kernel}.bin.$$ >> ${output} 34 35rm -f ${kernel}.bin.$$ 36exit 37