#!/bin/sh
# Copyright (c) 2006, Technologic Systems.
# All rights reserved.
#
# Roots to NAND flash chip, assumes /dev/mtdblock/3 YAFFS type filesystem
# Symlink to /linuxrc and run 'save' to use.

mount -t proc proc /proc

export CONSOLE=/dev/ttyAM0

insmod -q -f /ts7xxx_nand.o >/dev/null 2>&1

mount -t yaffs /dev/mtdblock/3 /mnt/root >/dev/null 2>&1
export BOOTTIME=`eptime`
cd /proc

if [ -e /mnt/root/fastboot -o ! -e /mnt/root/bin/mount ]; then
  (
  export ENV=/shinit
  setcons

  if [ -e /var/ascu/uploads/uploads/swupdate.tar ]; then
    cd /var/ascu/uploads/uploads/update/
    tar xf ../swupdate.tar > /dev/null 2> /dev/null
    rm ../swupdate.tar
    # use the swupdate.sh in the new load if possible
    if [ -e ./swupdate.sh ]; then
      ./swupdate.sh
    else
      cd /mnt/root
      if [ -e /usr/bin/swupdate.sh ]; then
        /usr/bin/swupdate.sh
      fi
    fi
  fi

  ) <$CONSOLE >$CONSOLE 2>&1
  killall busybox
fi
cd /mnt/root

( 
stty -F $CONSOLE ospeed 115200 >/dev/null 2>&1 
echo ">> Booting Linux..." 
setcons
) >$CONSOLE <$CONSOLE 2>&1

insmod -q -f bootloader.o >/dev/null 2>&1
KCMD="console=`basename $CONSOLE`,115200 root=/dev/mtdblock/3" 
bootload -c "$KCMD" /mnt/root/vmlinux.bin >/dev/null 2>&1
pivot_root . initrd

./bin/mount -n --move initrd/dev dev
./bin/mount -n --move initrd/proc proc
exec ./usr/sbin/chroot . ./sbin/init <.$CONSOLE >.$CONSOLE 2>&1
