#!/bin/sh

cross=sh4-motorola-linux-gnu-

kernel_pre="$1"
initrd_image="$2"
boot_image="$3"
bin_dir="$4"
dest=$(mktemp -d rd.XXXXXX)
architecture="1"
image_type="$IMAGE_TYPE"
[ "$image_type" = "golden" ] && image_type="2" || image_type="1"

kernel_reloc=$(${cross}objdump -h $kernel_pre | grep ' \.empty_zero_page' | awk '{print $4}')
kernel_entry=$(${cross}objdump -h $kernel_pre | grep ' \.text' | awk '{print $4}')

# Convert the kernel to a raw binary file
${cross}objcopy -O binary $kernel_pre $dest/kernel_pre.bin

# Create the boot image header
$bin_dir/add_bootimage_header \
    $architecture $image_type \
    $dest/kernel_pre.bin 0x$kernel_reloc \
    0x$kernel_entry $initrd_image > $dest/header

# Create boot image by adding all parts together
cat $dest/header $dest/kernel_pre.bin $initrd_image > $boot_image

# Clean up
rm -rf $dest
