#!/bin/sh
. /etc/init.d/functions
. /usr/sbin/platform_hw_functions
. /usr/sbin/platform_functions
. /usr/sbin/install_functions
export PATH=/bin:/sbin:/usr/sbin:/usr/bin
tvp_eeprom=/var/run/mainboardideeprom.dat
assembly_id=`get_ideeprom_assembly_id $tvp_eeprom`
cpu_board_rev=`cut -b 13-14 $tvp_eeprom`
ec_fpga_fail=0
re_fpga_fail=0
case $assembly_id in
    0c02)
        if [ -x /usr/sbin/ltc-script ];then
            /usr/sbin/ltc-script MEZZ
        fi
        isp -plat elit /usr/sbin/elit_ec_v2.3_port_v1.17_spansion.vme
        if [ $? -ne 0 ];then
            isp -plat elit /usr/sbin/elit_ec_v2.3_port_v1.17.vme
            if [ $? -ne 0 ];then
                echo "isp failed for EC FPGA"
                ec_fpga_fail=1
            fi
        fi
        isp -plat elit -re /usr/sbin/elit_re_v2.4.vme
        if [ $? -ne 0 ];then
            echo "isp failed for RE FPGA"
            re_fpga_fail=1
        fi
        if [ ${ec_fpga_fail} -eq 1 -o ${re_fpga_fail} -eq 1 ]; then
            exit 1
        else
            exit 0
        fi
        ;;
    0c39)
        if [ -x /usr/sbin/ltc-script ];then
            /usr/sbin/ltc-script 
        fi
        isp -plat elit /usr/sbin/elit_lite_ec_v2.3_port_v1.17_spansion.vme
        if [ $? -ne 0 ];then
            isp -plat elit /usr/sbin/elit_lite_ec_v2.3_port_v1.17.vme
            if [ $? -ne 0 ];then
                echo "isp failed for EC FPGA"
                ec_fpga_fail=1
            fi
        fi
        isp -plat elit -re /usr/sbin/elit_re_v2.4.vme
        if [ $? -ne 0 ];then
            echo "isp failed for RE FPGA"
            re_fpga_fail=1
        fi
        if [ ${ec_fpga_fail} -eq 1 -o ${re_fpga_fail} -eq 1 ]; then
            exit 1
        else
            exit 0
        fi
        ;;
    0c4b)
        if [ $cpu_board_rev -eq 01 ]; then
            echo "The major rev of CPU board is $cpu_board_rev"
            isp -plat pinnacle /usr/sbin/pinnacle_cpu_re_fpga_p1_v3.1.d_bg.vme
            if [ $? -ne 0 ];then
                echo "isp failed for RE FPGA"
                exit 1
            fi
        elif [ $cpu_board_rev -eq 02 ]; then
            echo "The major rev of CPU board is $cpu_board_rev"
            isp -plat pinnacle /usr/sbin/pinnacle_cpu_re_fpga_p2_v3.1.3_bg.vme 
            if [ $? -ne 0 ];then
                echo "isp failed for RE FPGA"
                exit 1
            fi
        else 
            echo "Not the valid CPU board ID to program"
        fi
        isp -plat pinnacle -m /usr/sbin/duckhorn_tmc_fpga_v5.2.4_bg.vme
        if [ $? -ne 0 ];then
            echo "isp failed for TMC FPGA"
            exit 1
        fi
        isp -plat pinnacle -m /usr/sbin/duckhorn_power_cpld_v0.1.6_bg.vme
        if [ $? -ne 0 ];then
            echo "isp failed for Power CPLD"
            exit 1
        fi
        isp -plat pinnacle -m /usr/sbin/duckhorn_optics_cpld_v6.1.6_bg.vme
        if [ $? -ne 0 ];then
            echo "isp failed for Optics CPLD"
            exit 1
        fi
        ;;  
    0c75)
        if [ -x /usr/sbin/ltc-script ];then
            /usr/sbin/ltc-script MEZZ 
        fi
        isp -plat elit /usr/sbin/elit_ec_v2.3_port_v1.17_spansion.vme
        if [ $? -ne 0 ];then
            isp -plat elit /usr/sbin/elit_ec_v2.3_port_v1.17.vme
            if [ $? -ne 0 ];then
                echo "isp failed for EC FPGA"
                ec_fpga_fail=1
            fi
        fi
        isp -plat elit -re /usr/sbin/elit_re_v2.4.vme
        if [ $? -ne 0 ];then
            echo "isp failed for RE FPGA"
            re_fpga_fail=1
        fi
        if [ ${ec_fpga_fail} -eq 1 -o ${re_fpga_fail} -eq 1 ]; then
            exit 1
        else
            exit 0
        fi
        ;;
    0c87|0c88|0c89|0c98|0c99|0c9a|0c9b)
        isp -plat porter /usr/sbin/porter_cpld_v09_06_0830.vme
        if [ $? -ne 0 ];then
            echo "isp failed for Power CPLD"
            exit 1
        fi
        ;;
    *)
        ;;
esac

