xref: /netbsd-src/sys/arch/evbppc/compile/walnut-mkimg.sh (revision 8b0f9554ff8762542c4defc4f70e1eb76fb508fa)
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