#!/bin/sh

. /env/config

if [ x$1 = xnand ]; then
	rootfs_loc=nand
	kernel_loc=nand
elif [ x$1 = xnor ]; then
	rootfs_loc=nor
	kernel_loc=nor
elif [ x$1 = xsata ]; then
	rootfs_loc=sata
	kernel_loc=sata
elif [ x$1 = xnfs ]; then
	rootfs_loc=net
	kernel_loc=nfs
elif [ x$1 = xtftp ]; then
	rootfs_loc=net
	kernel_loc=tftp
fi

if [ x$ip = xdhcp ]; then
	bootargs="$bootargs ip=dhcp"
elif [ x$ip = xnone ]; then
	bootargs="$bootargs ip=none"
else
	bootargs="$bootargs ip=$eth0.ipaddr::$eth0.gateway:$eth0.netmask:::"
fi


if [ x$rootfs_loc = xnet ]; then
	bootargs="$bootargs root=/dev/nfs nfsroot=$nfsroot,v3,tcp noinitrd"
elif [ x$rootfs_loc = xinitrd ]; then
	bootargs="$bootargs root=/dev/ram0 rdinit=/sbin/init"
elif [ x$rootfs_loc = xsata ]; then
	bootargs="$bootargs root=/dev/sda2 rootfstype=$rootfs_type rw noinitrd"
else
	if [ x$rootfs_loc = xnand ]; then
		rootfs_mtdblock=$rootfs_mtdblock_nand
	else
		rootfs_mtdblock=$rootfs_mtdblock_nor
	fi

	if [ x$rootfs_type = xubifs ]; then
		if [ -z $ubiroot ]; then
			ubiroot="rootfs"
		fi
		if [ x$rootfs_loc = xnand ]; then
			bootargs="$bootargs root=ubi0:$ubiroot ubi.mtd=$rootfs_mtdblock,4096"
		else
			bootargs="$bootargs root=ubi0:$ubiroot ubi.mtd=$rootfs_mtdblock"
		fi
	else
		bootargs="$bootargs root=/dev/mtdblock$rootfs_mtdblock"
	fi

	bootargs="$bootargs rootfstype=$rootfs_type rw noinitrd"
fi

if [ -n $nor_parts ]; then
	mtdparts="${mtdparts}${nor_device}:${nor_parts}"
fi

if [ -n $nand_parts ]; then
	if [ -n ${mtdparts} ]; then
		mtdparts="${mtdparts};"
	fi
	mtdparts="${mtdparts}${nand_device}:${nand_parts}"
fi

if [ -n $mtdparts ]; then
	bootargs="${bootargs} mtdparts=${mtdparts}"
fi

if [ -e /dev/ram0 ]; then
if [ ! -e /dev/ram0.kernelraw ]; then
	# arm raw kernel images are usually located at sdram start + 0x8000
	addpart /dev/ram0 8M@0x8000(kernelraw)
fi

if [ ! -e /dev/ram0.kernel ]; then
	# Here we can safely put the kernel without risking of overwriting it
	# while extracting
	addpart /dev/ram0 8M@8M(kernel)
fi
fi

if [ x$kernel_loc = xnfs ] || [ x$kernel_loc = xtftp ]; then
	if [ x$ip = xdhcp ]; then
		dhcp
	fi
	if [ $kernelimage_type = uimage ]; then
		netload="/dev/ram0.kernel"
	elif [ $kernelimage_type = zimage ]; then
		netload="/dev/ram0.kernel"
	elif [ $kernelimage_type = raw ]; then
		netload="/dev/ram0.kernelraw"
	elif [ $kernelimage_type = raw_lzo ]; then
		netload="/dev/ram0.kernel"
	else
		echo "error: set kernelimage_type to one of 'uimage', 'zimage', 'raw' or 'raw_lzo'"
		exit 1
	fi
	$kernel_loc $kernelimage $netload || exit 1
	kdev="$netload"
elif [ x$kernel_loc = xnor ]; then
	kdev="/dev/nor0.kernel"
elif [ x$kernel_loc = xnand ]; then
	kdev="/dev/nand0.kernel.bb"
elif [ x$kernel_loc = xsata ]; then
	addpart /dev/mem 3M@0x3008000(uImage)
	sata read 3008000 1 5000
	kdev="/dev/mem.uImage"
	sata stop
else
	echo "error: set kernel_loc to one of 'nfs', 'tftp', 'nand' or 'nor'"
	exit 1
fi

if [ -n $usb3_internal_clk ]; then
	bootargs="$bootargs usb3_internal_clk=$usb3_internal_clk"
fi

echo "booting kernel of type $kernelimage_type from $kdev"

if [ x$kernelimage_type = xuimage ]; then
	bootm $kdev
elif [ x$kernelimage_type = xzimage ]; then
	bootz $kdev
elif [ x$kernelimage_type = xraw ]; then
	if [ $kernel_loc != net ]; then
		cp $kdev /dev/ram0.kernelraw
	fi
	bootu /dev/ram0.kernelraw
elif [ x$kernelimage_type = xraw_lzo ]; then
	unlzo $kdev /dev/ram0.kernelraw
	bootu /dev/ram0.kernelraw
fi
