#!/bin/sh
#  Load voice modules
#

#
# Now setup default values
#

# never edit this var
VTP_ENV_TAG='vtp_env_start'
# end
#edit by luguanjun

export NUM_CHAN_DSP=2
export VOICE_CHANNELS=2
export NFSSERVER=''
export NFSEXPORT=''
export MNTDIR='/vop'
export VOICEROOT=''
export VOICE_SLEEP1=1
export VOICE_SLEEP2=1
export VOICE_SLEEP3=1
export LOG_FILE=/dev/null
export DSP_IMAGE=/lib/dspimage.ld
export DATA_CHANNELS=0
export SPY_LEVEL=2
export PRELOAD_DSP=0
#export vop_ip_interface=eth0
export vop_ip_interface=br0
export VOICE_APP=/usr/sbin/ggsip
#export VOICE_APP=/var/ggsip
export NMM_BCONFIG='/var/tmp/nmmconf'
export ATPM_BCONFIG='/var/tmp/atpmconf'
export TIUHWMODULE=tiuhw_an_26
export SPY_NO_PROV=0
export MODUME_PLACE=/modules
# user specific env end

# never edit this var
VTP_ENV_TAG='vtp_env_end'
# end

BRCM_MODUME_PLACE=/lib/modules/2.6.30/extra

# add by guang on 20080508
if [ -e /var/ggsip ]
then
    export VOICE_APP=/var/ggsip
fi
# add end

#
# Firstly convert bootloader environment variables into
# shell exports
#
export TELE_IF="INTERNAL"
#cat /proc/ticfg/env | (
#    while read VAR VAL
#    do
#        echo export $VAR=\'$VAL\'
#    done
#) > /var/tmp/env

#vop_ip_if=$(cat /proc/ticfg/env | grep VOP_IP_IF | cut -f2)

# Following are the valid options:
# br0  - for ethernet
# nas0 - for DSL

#if [ "$vop_ip_if" = "" ] ; then
#	vop_ip_if=eth0
#fi
#echo $vop_ip_if
#export vop_ip_interface=$vop_ip_if


if [ -f /var/tmp/core ]
then
  cat /var/tmp/core
  rm -f /var/tmp/core
fi

if [ "X$TIUHWDBG" != "X" ]
then
	echo $TIUHWDBG >/proc/sys/kernel/printk
fi

if [ "X$FPGAMODULE" = "X" ] 
then
if [ "X$TIUHAL" = "X" ]
then
    export TIUHAL=UNKNOWN
    if [ "X$TELE_IF" = "XINTERNAL" ]
    then
#        export TIUHAL=tiuhal
        export TIUHAL=tiuhal_26
    fi
    if [ "X$TELE_IF" = "XEXTERNAL" ]
    then
        export TIUHAL=hw_fpga1
    fi
fi
else
	export TIUHAL=$FPGAMODULE
fi


if [ "X$VOICEROOT" != "X" ]
then
    cd $VOICEROOT
    export VOICEROOT=$VOICEROOT/
else 
    export VOICEROOT='/vop/'
fi


#RESET_CAUSE=`cat /proc/avalanche/reset_cause`
#if [ ! -f /var/tmp/reset_cause  -a X$RESET_CAUSE = X0 ]
#then
#   export hw_reset=1
#else
#    export hw_reset=0
#fi
#echo $RESET_CAUSE > /var/tmp/reset_cause


##################################################################

#echo 1 > /proc/net/voice
TIUHAL_INT=$TIUHAL
TIUHWMODULE_INT=$TIUHWMODULE
(
# NOTE: Order matters and there can be differences between platforms!

#mod by pangjr on 20080808 for insmod linux 2.6 modules
#    for MODULE in  mxpmod.o mxpmem.o $TIUHAL_INT.o  hw_dspmod.o tiuhw_mod.o $TIUHWMODULE_INT.o

for MODULE in $BRCM_MODUME_PLACE/dspdd.ko $BRCM_MODUME_PLACE/endpointdd.ko $MODUME_PLACE/mxpmod.ko $MODUME_PLACE/mxpmem.ko $MODUME_PLACE/$TIUHAL_INT.ko $MODUME_PLACE/tiuhw_mod_26.ko $MODUME_PLACE/$TIUHWMODULE_INT.ko
#mod end
    do
	echo Loading $MODULE
	#insmod $MODULE
	insmod $MODULE
	#echo $MODULE load failed > /dev/console
        # exit 1
        echo module loaded $MODULE
        echo module loaded $MODULE > /dev/console
    done
) 

# return code of subshell shows whether the modules are loaded properly.
r=$?
echo module return value $r > /dev/console

if [ "$r" != "0" ]
then
  #echo Modules are not loaded properly, exit voice_app > /dev/console
  #lsmod > /dev/console
  sleep 1
  #exit 2
fi 

echo current modules loaded > /dev/console 
cat /proc/modules > /dev/console 

#mknod /dev/mxp c 241 0
#mknod /dev/AclDsp c 234 0 

if [ ! -f $VOICE_APP ]
then
  echo Invalid VOICE_APP $VOICE_APP > /dev/console
  sleep 45
  exit
fi

sleep $VOICE_SLEEP1


chmod 777 $VOICE_APP
exec $VOICE_APP $VOICE_PARAM > /dev/console

cat /proc/mxp/core > /dev/console

sleep $VOICE_SLEEP3



exit 1





