Home | History | Annotate | Line # | Download | only in compile
walnut-mkimg.sh revision 1.1.8.3
      1      1.1    scw #!/bin/sh
      2  1.1.8.3  skrll # $NetBSD: walnut-mkimg.sh,v 1.1.8.3 2004/09/21 13:15:01 skrll Exp $
      3      1.1    scw 
      4  1.1.8.1  skrll # Convert a kernel to an tftp image loadable by the IBM PowerPC OpenBIOS.
      5  1.1.8.1  skrll 
      6  1.1.8.1  skrll 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.1.8.1  skrll printf "%d\n%d\n%d\n0\n%d\n0\n0\n0\n" $magic $start $size $start |
     25  1.1.8.1  skrll     awk '{
     26  1.1.8.1  skrll 		printf "%c", int($0 / 256 / 256 / 256) % 256;
     27  1.1.8.1  skrll 		printf "%c", int($0 / 256 / 256      ) % 256;
     28  1.1.8.1  skrll 		printf "%c", int($0 / 256            ) % 256;
     29  1.1.8.1  skrll 		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