#!/bin/sh

BOOT="/boot/firmware"
OEMDIR="/lib/oem-limerick-zynqmp-meta"
WORKDIR="/tmp"
TMPDIR="$WORKDIR/ImageDIR"

set -e

# Create the image.fit contains kernel and initrd
sVER=$1
echo "Get linux-image version ${sVER}"

if [ -n "$sVER" ]; then
    rm -rf $TMPDIR
    mkdir -p $TMPDIR/dtbs
    echo "Collect materials for image.fit"
    cp /boot/vmlinuz-$sVER $TMPDIR/Image
    cp /boot/initrd.img-$sVER $TMPDIR/initrd.img
    cp $OEMDIR/image.its $TMPDIR
    cp /lib/firmware/"$sVER"/device-tree/xilinx/* "$TMPDIR"/dtbs/
    echo "Generate image.fit"
    cd $TMPDIR
    mkimage -D "-I dts -O dtb -p 2000" -f image.its image.fit
    # DTB included
    # mkimage -D "-I dts -O dtb -p 2000" -f imageDTB.its image.fit

    echo "Upgrade image.fit ..."
    rm -f $BOOT/image.fit.tmp
    if [ -f "$BOOT/image.fit" ]; then
        mv $BOOT/image.fit $BOOT/image.fit.tmp
    fi
    cp $TMPDIR/image.fit $BOOT && sync
    cd $WORKDIR && rm -rf $TMPDIR
    echo "Done"
fi
exit 0
