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