#!/bin/sh

PATH='/sbin:/bin:/usr/sbin:/usr/bin'
USE_SDCTL=0

do_start() {

FPGA=`lspci | grep "Lattice Semiconductor" | awk '{ print $1}'`

if [ -z $FPGA ]; then
  echo FPGA not found
else
  echo FPGA is on pci $FPGA
  
  if [ ! -h /fpga ]; then
    echo creating symlink for FPGA
    ln -s /sys/bus/pci/devices/0000:$FPGA /fpga  
  else
    ls -go /fpga | grep "/sys/bus/pci/devices/0000:$FPGA"

    if [ $? != 0 ]; then
      echo FPGA link is wrong...fixing
      unlink /fpga
      ln -s /sys/bus/pci/devices/0000:$FPGA /fpga
    else
      echo FPGA link is correct
    fi
  fi
  echo 1 > /fpga/enable
  peekpoke 32 0xe8000204 0xefff0000 0

  eval `ts7800ctl -i`
  if [ "$buildmodel" != "TS-7800-V2-DMN1I" ]; then
    modprobe wilc-spi
    if [ $? -eq 0 ]; then
       echo BT_POWER_UP > /dev/wilc_bt
       echo BT_FW_CHIP_WAKEUP > /dev/wilc_bt
       echo BT_DOWNLOAD_FW > /dev/wilc_bt
    fi   
  fi
fi

   eval `ts7800ctl -i`
   stty -F /dev/ttyS0 115200


   if [ $USE_SDCTL -ne 0 ]; then
     pidof sdctl > /dev/null 2>&1
       if [ $? -eq 1 ]; then
         /sbin/sdctl --nodma --address 0xe8000100 --nbd lun0:disc > /dev/null 2>&1
         /sbin/blockdev --rereadpt /dev/nbd0 > /dev/null 2>&1
       fi


     if [ ! -h /dev/tssdcarda ];  then ln -s /dev/nbd0   /dev/tssdcarda;fi
     if [ ! -h /dev/tssdcarda1 ]; then ln -s /dev/nbd0p1 /dev/tssdcarda1;fi
     if [ ! -h /dev/tssdcarda2 ]; then ln -s /dev/nbd0p2 /dev/tssdcarda2;fi
     if [ ! -h /dev/tssdcarda3 ]; then ln -s /dev/nbd0p3 /dev/tssdcarda3;fi
     if [ ! -h /dev/tssdcarda4 ]; then ln -s /dev/nbd0p4 /dev/tssdcarda4;fi
     if [ ! -h /dev/tssdcardb ];  then ln -s /dev/nbd0   /dev/tssdcardb;fi
     if [ ! -h /dev/tssdcardb1 ]; then ln -s /dev/nbd0p1 /dev/tssdcardb1;fi
     if [ ! -h /dev/tssdcardb2 ]; then ln -s /dev/nbd0p2 /dev/tssdcardb2;fi
     if [ ! -h /dev/tssdcardb3 ]; then ln -s /dev/nbd0p3 /dev/tssdcardb3;fi
     if [ ! -h /dev/tssdcardb4 ]; then ln -s /dev/nbd0p4 /dev/tssdcardb4;fi
   else
     if [ ! -h /dev/tssdcardb ];  then ln -s /dev/tssdcarda  /dev/tssdcardb;fi
     if [ ! -h /dev/tssdcardb1 ]; then ln -s /dev/tssdcarda1 /dev/tssdcardb1;fi
     if [ ! -h /dev/tssdcardb2 ]; then ln -s /dev/tssdcarda2 /dev/tssdcardb2;fi
     if [ ! -h /dev/tssdcardb3 ]; then ln -s /dev/tssdcarda3 /dev/tssdcardb3;fi
     if [ ! -h /dev/tssdcardb4 ]; then ln -s /dev/tssdcarda4 /dev/tssdcardb4;fi
   fi

   if [ ! -h /dev/ttts0 ]; then ln -s /dev/ttyS2 /dev/ttts0;fi
   if [ ! -h /dev/ttts1 ]; then ln -s /dev/ttyS3 /dev/ttts1;fi
   if [ ! -h /dev/ttts2 ]; then ln -s /dev/ttyS4 /dev/ttts2;fi
   if [ ! -h /dev/ttts3 ]; then ln -s /dev/ttyS5 /dev/ttts3;fi
   if [ ! -h /dev/ttts4 ]; then ln -s /dev/ttyS6 /dev/ttts4;fi
   if [ ! -h /dev/ttts5 ]; then ln -s /dev/ttyS7 /dev/ttts5;fi
   if [ ! -h /dev/ttts6 ]; then ln -s /dev/ttyS8 /dev/ttts6;fi
   if [ ! -h /dev/ttts7 ]; then ln -s /dev/ttyS9 /dev/ttts7;fi
   if [ ! -h /dev/ttts8 ]; then ln -s /dev/ttyS10 /dev/ttts8;fi
   if [ ! -h /dev/ttts9 ]; then ln -s /dev/ttyS11 /dev/ttts9;fi

      

}

do_stop() {

echo stopping

killall -9 sdctl

}

case "$1" in   
  start)
   do_start
   exit 0
  ;;
 
  stop)
    do_stop
    exit 0
  ;;

  restart|reload|force-reload)
  log_warning_msg "Action '$1' is meaningless for this init script"
  exit 0
  ;;

esac


exit 0
