<%page args="kernels, runtime_img, runtime_base, basearch, outroot, arch"/>
<%
configdir="tmp/config_files/uboot"
PXEBOOTDIR="images/pxeboot"
BOOTDIR="boot"
KERNELDIR=PXEBOOTDIR
LIVEDIR="LiveOS"

# different platforms use different kernel load addresses.
# include a 'baseline' kernel for no 'flavor'.
kernelAddress = { 'baseline' : '0x00008000',
                  'highbank' : '0x00008000',
                  'imx'      : '0x90008000',
                  'kirkwood' : '0x00008000',
                  'mvebu'    : '0x00008000',
                  'omap'     : '0x80008000',
                  'tegra'    : '0x00008000',
                }
%>

mkdir ${LIVEDIR}
install ${runtime_img} ${LIVEDIR}/squashfs.img
treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img

# Add platforms to treeinfo for Beaker support.
treeinfo ${basearch} platforms highbank,imx,mvebu,omap,tegra

## install kernels
mkdir ${KERNELDIR}
%for kernel in kernels:
    %if kernel.flavor:
        installkernel images-${kernel.flavor}-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor}
        installinitrd images-${kernel.flavor}-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img

        %if doupgrade:
            ## install upgrade image
            installupgradeinitrd images-${kernel.flavor}-${basearch} ${kernel.upgrade.path} ${KERNELDIR}/upgrade-${kernel.flavor}.img
        %endif

        ## create U-Boot wrapped images

        runcmd mkimage \
             -A arm -O linux -T ramdisk -C none \
             -a 0 -e 0 \
             -n "${product.name} ${product.version} ${kernel.flavor} ${kernel.arch}" \
             -d ${outroot}/${KERNELDIR}/initrd-${kernel.flavor}.img \
                ${outroot}/${KERNELDIR}/uInitrd-${kernel.flavor}

        runcmd mkimage \
             -A arm -O linux -T kernel -C none \
             -a ${kernelAddress[kernel.flavor]} -e ${kernelAddress[kernel.flavor]} \
             -n "${product.name} ${product.version} ${kernel.flavor} ${kernel.arch}" \
             -d ${outroot}/${KERNELDIR}/vmlinuz-${kernel.flavor} \
                ${outroot}/${KERNELDIR}/uImage-${kernel.flavor}

        treeinfo images-${kernel.flavor}-${basearch} uimage ${KERNELDIR}/uImage-${kernel.flavor}
        treeinfo images-${kernel.flavor}-${basearch} uinitrd ${KERNELDIR}/uInitrd-${kernel.flavor}

    %else:
        installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
        installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img

        %if doupgrade:
            ## install upgrade image
            installupgradeinitrd images-${basearch} ${kernel.upgrade.path} ${KERNELDIR}/upgrade.img
        %endif

        ## create U-Boot wrapped images

        runcmd mkimage \
             -A arm -O linux -T ramdisk -C none \
             -a 0 -e 0 \
             -n "${product.name} ${product.version} ${kernel.arch}" \
             -d ${outroot}/${KERNELDIR}/initrd.img \
                ${outroot}/${KERNELDIR}/uInitrd

        runcmd mkimage \
             -A arm -O linux -T kernel -C none \
             -a ${kernelAddress['baseline']} -e ${kernelAddress['baseline']} \
             -n "${product.name} ${product.version} ${kernel.arch}" \
             -d ${outroot}/${KERNELDIR}/vmlinuz \
                ${outroot}/${KERNELDIR}/uImage

        treeinfo images-${basearch} uimage ${KERNELDIR}/uImage
        treeinfo images-${basearch} uinitrd ${KERNELDIR}/uInitrd

    %endif
%endfor


## FIXME: ARM may need some extra boot config

