xref: /netbsd-src/sys/arch/evbppc/compile/walnut-mkimg.sh (revision eb7c1594f145c931049e1fd9eb056a5987e87e59)
1#!/bin/sh
2# $NetBSD: walnut-mkimg.sh,v 1.1 2002/12/09 12:15:50 scw Exp $
3
4# Convert a kernel to an tftp image loadable by the walnut IBM openbios.
5
6if [ $# -ne 2 ] ; then
7	echo usage: $0 kernel image 1>&2
8	exit 1
9fi
10
11kernel=$1; shift
12output=$1; shift
13
14: ${OBJDUMP=objdump}
15: ${OBJCOPY=objcopy}
16
17start=`${OBJDUMP} -f ${kernel} | awk '/start address/ { print $NF }'`
18start=`printf "%d" $start`
19${OBJCOPY} -O binary ${kernel} ${kernel}.bin.$$
20size=`/bin/ls -l ${kernel}.bin.$$ | awk '{ printf "%d", ( $5 + 511 ) / 512 }'`
21
22printf "%d\n%d\n0\n%d\n0\n0\n0\n" $start $size $start |
23    awk 'BEGIN { printf "\x00\x52\x50\x4f" }
24	{
25		printf "%c", $0 / 256 / 256 / 256 ;
26		printf "%c", $0 / 256 / 256 ;
27		printf "%c", $0 / 256 ;
28		printf "%c", $0 ;
29	}
30    ' > ${output}
31
32cat ${kernel}.bin.$$ >> ${output}
33
34rm -f ${kernel}.bin.$$
35exit
36