//****************************************************************************
//                   INTEL CORPORATION PROPRIETARY INFORMATION
//       This software is supplied under the terms of a license agreement or
//       nondisclosure agreement with Intel Corporation and may not be copied
//       or disclosed except in accordance with the terms of that agreement.
//         Copyright (c) 2016 Intel Corporation. All Rights Reserved.
//****************************************************************************
//
// NOTE: Please use only TAB stops for indentation when editing this file!
//

CONFIGURATION  "Revision S2600TP_109"
DISPLAY        "FRU & SDR Update Package for Intel(R) Server Board S2600TPx (S2600TP_109)"
DISPLAY        "Copyright (c) 2016 Intel Corporation"
DISPLAY        " "


// Detect baseboard by looking at the BMC product ID
//
PROBE          "BASEBOARD_PRODID" "73"
FOUND          "S2600TLP" "WRONG_PKG"

IFSET "WRONG_PKG"
// {
  DISPLAY ""
  DISPLAY "This is the incorrect FRU/SDR package for this baseboard."
  DISPLAY ""
  ERRORLEVEL 1
// }
ENDIF


IFSET "S2600TLP"
// {
  // Uncomment to force manual Chassis selection
  //SET "CHASSIS_MENU"

  // Uncomment to allow setting Board Mfg FRU fields
  //SET "ALLOW_BRD_UPDATE"

	// Determine if this is a S2600TPF, S2600TP, S2600TPR or a S2600TPFR board
	FRUNAME     "SYSTEM"
	FRUADDRESS  0
	FRUAREA "BOARD" VALIDATE "BB_FRU_IPMI"
	IFSET "BB_FRU_IPMI"
		PROBE FRUFIELD "PN" "S2600TPFR"
		FOUND	"TPF_FRU_PN" ""
		IFSET "TPF_FRU_PN"
			SET "S2600TPFR"
		ELSE
			PROBE FRUFIELD "PN" "S2600TPR"
			FOUND "TPR_FRU_PN" ""
			IFSET "TPR_FRU_PN"
				SET "S2600TPR"
			ELSE
				PROBE FRUFIELD "PN" "S2600TPF"
				FOUND "TP_FRU_PN" ""
				IFSET "TP_FRU_PN"
					SET "S2600TPF"
				ELSE
					PROBE FRUFIELD "PN" "S2600TP"
					FOUND "TP_FRU_PN" ""
					IFSET "TP_FRU_PN"
						SET "S2600TPP"
					ELSE
						SET "NO_TLP_FRU"
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ELSE
		DISPLAY "No Valid Baseboard FRU detected!"
		SET "NO_TLP_FRU"
	ENDIF
	
	DISPLAY		""
	IFSET "S2600TPFR"
		DISPLAY		"Intel(R) Server Board S2600TPFR detected"
	ELSE
		IFSET "S2600TPR"
			DISPLAY		"Intel(R) Server Board S2600TPR detected"
		ELSE
			IFSET "S2600TPF"
				DISPLAY		"Intel(R) Server Board S2600TPF detected"
			ELSE
				IFSET "S2600TPP"
					DISPLAY		"Intel(R) Server Board S2600TP detected"
				ELSE
					DISPLAY		"Intel(R) Server Board S2600TP? detected"
				ENDIF
			ENDIF
		ENDIF
	ENDIF
  
  DISPLAY        ""
  MENUTITLE      "Select the function you want to perform:"
  MENU           "SDR"       "Update only the SDR"
  MENU           "FRU"       "Update only the FRU"
  MENU           "BOTH"      "Update both the SDR and the FRU"
  MENU           "ASSET"     "Modify the Asset Tag Only"  
  // MENU        "FCT"       "Functional Test"
  // MENU        "FOQM"      "Functional Outgoing Manufacturing Test"
  // MENU        "SHIPPING"  "Default shipping configuration"
  MENU           "EXIT1"     "Exit FRU/SDR update"
  MENUPROMPT
  DISPLAY        " "

  IFSET "BOTH"
    SET "SDR"
    SET "FRU"
  ENDIF

  // Skip HW probing if one of the manufacturing specific configurations is selected
  IFSET "FCT"
    SET "MFG_CONFIG"
    SET "SKIP_PROBE"
  ENDIF

  IFSET "FOQM"
    SET "MFG_CONFIG"
    SET "SKIP_PROBE"
  ENDIF

  IFSET "SHIPPING"
    SET "MFG_CONFIG"
    SET "SKIP_PROBE"
  ENDIF

  IFSET "EXIT1"
  // {
    DISPLAY "Exiting without performing any updates"
  ELSE
    // Skip all hardware probing and program the selected manufacturing configuration
    IFSET "MFG_CONFIG"
        SDRNAME   "S2600TP.sdr"        // Update SDR Repository
    ENDIF

    SET "CONTINUE"

    IFSET "SDR"
    // {
      IFSET "CHASSIS_MENU"
      ELSE
        DISPLAY "Auto-detecting chassis model and attached hardware."
        DISPLAY "This may take up to 1 minute to complete."

        // Is a HSBP FRU device present?
        PROBE "IMBDEVICE" "08"
        FOUND "HSBP_FRU" ""
      ENDIF

      IFSET "HSBP_FRU" "CONTINUE"
      // {
        //DISPLAY "HSBP FRU is detected"
        FRUNAME     "SYSTEM"
        FRUADDRESS  08
        FRUAREA     "BOARD" VALIDATE HSBP_FRU_IPMI
        IFSET "HSBP_FRU_IPMI"
        // {
          FRUAREA "BOARD"
          //PROBE FRUFIELD "MN" "Intel Corporation"           
            PROBE FRUFIELD "PN" "F2U12X35S3"
            FOUND "2U4N_BP_X35" "CONTINUE_PROBE"

          IFSET "CONTINUE_PROBE"
            CLEAR "CONTINUE_PROBE"
            PROBE FRUFIELD "PN" "F2U16X25S3"
            FOUND "2U4N_BP_X25" "CONTINUE_PROBE"
          ENDIF
	  
          IFSET "CONTINUE_PROBE"
            CLEAR "CONTINUE_PROBE"
            PROBE FRUFIELD "PN" "FHW12X35HSBP12G"
            FOUND "2U4N_BP_X35" "CONTINUE_PROBE"
          ENDIF
	  
          IFSET "CONTINUE_PROBE"
            CLEAR "CONTINUE_PROBE"
            PROBE FRUFIELD "PN" "FHW16X25HSBP12G"
            FOUND "2U4N_BP_X25" "CONTINUE_PROBE"
          ENDIF
		  
	 IFSET "CONTINUE_PROBE"
            CLEAR "CONTINUE_PROBE"
            PROBE FRUFIELD "PN" "FHW24X25HSBP12G"
            FOUND "24HDDHSBP" "CONTINUE_PROBE"
          ENDIF

          IFSET "CONTINUE_PROBE"  
          // {
            CLEAR "CONTINUE_PROBE"
          // }
          ELSE
          // {
            SET "INTEL_HSBP"
          // }
          ENDIF

          CLEAR "CONTINUE_PROBE"
        // }
        ENDIF  // HSBP_FRU_IPMI

        IFSET "INTEL_HSBP"
        // {
          // Is a Node Presence device present?
          PROBE "PING" "03" "30"
          FOUND "NODE"

          IFSET "NODE"
            DISPLAY "NODE Presence is present"
            SET "BCP_2U4N"
          ELSE
            DISPLAY "NODE ERROR!"
            SET "CHASSIS_MENU"
          ENDIF
        // }
        ELSE  // INTEL_HSBP
        // {
          DISPLAY ""
          //DISPLAY "HSBP FRU device is detected but not INTEL HSBP."
          //DISPLAY "Reverting to Manual Chassis Selection."
          //SET "OTHER"
          DISPLAY "SDR auto-update failed due to chassis type could not be detected."
          DISPLAY ""      
          DISPLAY "Falling back to Other Chassis. Please update SDR by legacy process."
          SET "CHASSIS_MENU"
        // }
        ENDIF  // INTEL_HSBP
    // }
    ELSE  // HSBP_FRU
    // {
        DISPLAY ""
        //DISPLAY "HSBP FRU device is not detected."
        //DISPLAY "Reverting to Manual Chassis Selection."
        DISPLAY "SDR auto-update failed due to chassis type could not be detected."
        DISPLAY ""      
        DISPLAY "Falling back to Other Chassis. Please update SDR by legacy process."
        //SET "OTHER"
        SET "CHASSIS_MENU"
    // }
    ENDIF  // HSBP_FRU

    IFSET "BCP_2U4N"
    // {
      SET "SYS_FAN_2U4N"
    // }
    ENDIF

    //****************************************************************************************************
    // Display chassis selection menu only if auto-detection fails
    //*****************************************************************************************************
    IFSET "CHASSIS_MENU"
    // {
      //************************************************************************
      // If we could not detect a chassis type, signal Auto Config by setting
      // the AUTO_CFG_ERR_CHASSIS_DETECT tag.
      //************************************************************************
      SET "AUTO_CFG_ERR_CHASSIS_DETECT"

      DISPLAY " "
      MENUTITLE   "Select the chassis:"
      MENU        "2U4N_BP_X35"  "H2312 chassis"
      MENU        "2U4N_BP_X25"  "H2216 chassis"
      MENU        "TEST_PLATE"  "Test Plate for NPI:PO Kit"
      MENU        "OTHER"        "Other Chassis"
      MENUPROMPT
      DISPLAY ""
       
    // }
    ENDIF

		IFSET "CHASSIS_MENU"
			DISPLAY " "
			DISPLAY "Continuing to probe chassis hardware."
		ENDIF

      // Is a power supply module installed at the PS1 slot?
      //PROBE "IMBDEVICE" "02"
      PROBE "PING" "0F" "A0"
      FOUND "PS1" "NO_PS1"
                    
      // Is a power supply module installed at the PS2 slot?                
      //PROBE "IMBDEVICE" "03"
      PROBE "PING" "0F" "A2"
      FOUND "PS2" "NO_PS2"

      IFSET "NO_PS1" "NO_PS2"
        DISPLAY ""
        DISPLAY "Unable to communicate with any power supply modules."
        DISPLAY ""
      ENDIF

      IFSET "PS1"
      // {
        FRUNAME "SYSTEM"
        FRUADDRESS 02
        FRUAREA "PRODUCT" VALIDATE PS1_FRU_IPMI
                    
        IFSET "PS1_FRU_IPMI"
        // {
          SET "STICKY_VALID_PS1"
          SET "CONTINUE_PROBE"
          FRUAREA "PRODUCT"
          PROBE FRUFIELD "PN" "IS162F22"
          FOUND "PS1_1600W" ""
          IFSET "PS1_1600W" 
            CLEAR "CONTINUE_PROBE"
            SET "STICKY_PS1_1600W"
          ENDIF
          
		  PROBE FRUFIELD "PN" "PSSF222201A"
          FOUND "PS1_2200W" ""
          IFSET "PS1_2200W" 
            CLEAR "CONTINUE_PROBE"
            SET "STICKY_PS1_2200W"
          ENDIF
		  
          IFSET "CONTINUE_PROBE"
            DISPLAY ""
            DISPLAY "Power supply 1 detected but unable to identify model."
            DISPLAY "Sensors for power supply 1 will not be installed."  
            CLEAR "STICKY_PS1_1600W"
            CLEAR "STICKY_PS1_2200W"
          ENDIF
        // }
        ELSE
        // {
          DISPLAY ""
          DISPLAY "Power supply 1 detected but its FRU data is invalid."
          DISPLAY "Sensors for power supply 1 will not be installed."
          CLEAR "STICKY_PS1_1600W"
          CLEAR "STICKY_PS1_2200W"
        // }
        ENDIF
      // }
      ENDIF  // PS1

      IFSET "PS2"
      // {
        FRUNAME "SYSTEM"
        FRUADDRESS 03
        FRUAREA "PRODUCT" VALIDATE PS2_FRU_IPMI

        IFSET "PS2_FRU_IPMI"
        // {
          SET "STICKY_VALID_PS2"
          SET "CONTINUE_PROBE"
          FRUAREA "PRODUCT"
          PROBE FRUFIELD "PN" "IS162F22"
          FOUND "PS2_1600W" ""
          IFSET "PS2_1600W" 
            CLEAR "CONTINUE_PROBE"
            SET "STICKY_PS2_1600W"
          ENDIF

          PROBE FRUFIELD "PN" "PSSF222201A"
          FOUND "PS2_2200W" ""
          IFSET "PS2_2200W" 
            CLEAR "CONTINUE_PROBE"
            SET "STICKY_PS2_2200W"
          ENDIF
		  
          IFSET "CONTINUE_PROBE"
            DISPLAY ""
            DISPLAY "Power supply 2 detected but unable to identify model."
            DISPLAY "Sensors for power supply 2 will not be installed."
            CLEAR "STICKY_PS2_1600W"
            CLEAR "STICKY_PS1_2200W"
          ENDIF
        // }
        ELSE
        // {
          DISPLAY ""
          DISPLAY "Power supply 2 detected but its FRU data is invalid."
          DISPLAY "Sensors for power supply 2 will not be installed."
          CLEAR "STICKY_PS2_1600W"
		  CLEAR "STICKY_PS1_2200W"
        // }
        ENDIF
      // }
      ENDIF  // PS2

      IFSET   "SKIP_PROBE" // {
        // Skip probing the hardware 
      ELSE 
        // Is there a FRU storage device on the I/O (LAN) module?        
        PROBE "IMBDEVICE" "09"
        FOUND "IO_MODULE_FRU"

        IFSET "IO_MODULE_FRU"
          SET "IO_MODULE"
        ELSE
          // If no FRU on the module, check for a Temperature sensor response.
          // Note that this is risky in the case of a temp sensor part that may
          // hang the bus if 2 bytes are not read from it.
          PROBE "PING" "05" "94"
          FOUND "IO_MODULE_TEMP"
          IFSET "IO_MODULE_TEMP"
            SET "IO_MODULE"
          ENDIF
        ENDIF

        // Probe the hardware to discover installed devices
        PROBE    "PROCESSOR"    1
        FOUND    "PROCESSOR_1"    ""

        PROBE    "PROCESSOR"    2
        FOUND    "PROCESSOR_2"    ""

        PROBE "PING" "03" "9A"
        FOUND "HSBP_TEMP" ""
		
        // Is there a FRU storage device on SAS Bridge board?       
        PROBE "IMBDEVICE" "FE"
        FOUND "LSISAS3008_FRU"
 
        IFSET "LSISAS3008_FRU"
          SET "LSISAS3008"
        ELSE
          // If no FRU on the module, check for a Temperature sensor response.
	      // Probe the LSI3008 Temperature 
          PROBE "PING" "05" "9E"
          FOUND "LSISAS3008_Temp"
          IFSET "LSISAS3008_Temp"
            SET "LSISAS3008"	
          ENDIF		  
        ENDIF
      // }
      ENDIF

      IFSET "SKIP_UPDATE" // {
        // Do not print out a summary of detected hardware if skipping the update
      ELSE
        // Print out summary of detected hardware
        DISPLAY ""
        DISPLAY "                                Detected Hardware"
        DISPLAY "********************************************************************************"

        IFSET   "2U4N_BP_X35"
          DISPLAY "Intel(R) Server Chassis H2000G Product Family"
        ENDIF

        IFSET   "2U4N_BP_X25"
          DISPLAY "Intel(R) Server Chassis H2000G Product Family"
        ENDIF

        IFSET   "TEST_PLATE"
          DISPLAY "Open Test Plate Chassis"
        ENDIF

        IFSET "S2600TPFR"
				DISPLAY "Intel(R) Server Board S2600TPFR"
			ELSE
				IFSET "S2600TPR"
					DISPLAY "Intel(R) Server Board S2600TPR"
				ELSE
					IFSET "S2600TPF"
						DISPLAY "Intel(R) Server Board S2600TPF"
					ELSE
						IFSET "S2600TPP"
							DISPLAY "Intel(R) Server Board S2600TP"
						ELSE
							DISPLAY "Intel(R) Server Board S2600TPx"
						ENDIF
					ENDIF
				ENDIF
			ENDIF

        IFSET    "PROCESSOR_1"
          DISPLAY "Intel(R) Xeon(R) Processor E5-2600 in socket 1"
        ENDIF

        IFSET    "PROCESSOR_2"
          DISPLAY "Intel(R) Xeon(R) Processor E5-2600 in socket 2"
        ENDIF

        DISPLAY "Baseboard FRU Device"

        IFSET     "STICKY_PS1_1600W"
          DISPLAY "1600 Watt Power Supply Module 1"
          DISPLAY "Power Supply Module 1 FRU Device"
        ENDIF

        IFSET "STICKY_PS2_1600W"
          DISPLAY "1600 Watt Power Supply Module 2"
          DISPLAY "Power Supply Module 2 FRU Device"
        ENDIF

		IFSET     "STICKY_PS1_2200W"
          DISPLAY "2200 Watt Power Supply Module 1"
          DISPLAY "Power Supply Module 1 FRU Device"
        ENDIF

        IFSET "STICKY_PS2_2200W"
          DISPLAY "2200 Watt Power Supply Module 2"
          DISPLAY "Power Supply Module 2 FRU Device"
        ENDIF
		
        IFSET "STICKY_VALID_PS1" "STICKY_VALID_PS2"
          DISPLAY "Redundant Power Supply Configuration"
          SET "STICKY_REDUNDANT_PS"
        ENDIF

        IFSET "2U4N_BP_X35"
          DISPLAY "HSBP is a 2U 12 slot 3.5 inch HDD Backplane"
        ENDIF

        IFSET "2U4N_BP_X25"
          DISPLAY "HSBP is a 2U 16 slot 2.5 inch HDD Backplane"
        ENDIF

	IFSET "24HDDHSBP"
          DISPLAY "HSBP is a 2U 24 slot 2.5 inch HDD Backplane"
        ENDIF
		
        IFSET "IO_MODULE_FRU"
          DISPLAY "IO Module FRU Storage Device"
        ENDIF

        IFSET "IO_MODULE"
          DISPLAY "IO Module Temperature Device"
        ENDIF

        IFSET "LAN_LEASH"
          DISPLAY "Powerville Temperature is detected."
        ENDIF 

	IFSET "LSISAS3008"
          DISPLAY "LSISAS3008 Temperature is detected"
        ENDIF
		
        DISPLAY "********************************************************************************"
      // }
      ENDIF

      //*****************************************************************
      // Set additional SDR tags based on chassis detected
      //*****************************************************************  
      IFSET "2U4N_BP_X35"
        // Set additional SDR tags for the H2300 chassis
      ENDIF

      IFSET "2U4N_BP_X25"
        // Set additional SDR tags for the H2200 chassis
      ENDIF
            
      IFSET "OTHER"
      // {
        //System Fans
        DISPLAY ""
        PROMPT  "Is System Fan 1A installed (Y/N)?"
        YES     "OTHER_FAN_1A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 1B installed (Y/N)?"
        YES     "OTHER_FAN_1B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 2A installed (Y/N)?"
        YES     "OTHER_FAN_2A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 2B installed (Y/N)?"
        YES     "OTHER_FAN_2B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 3A installed (Y/N)?"
        YES     "OTHER_FAN_3A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 3B installed (Y/N)?"
        YES     "OTHER_FAN_3B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 4A installed (Y/N)?"
        YES     "OTHER_FAN_4A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 4B installed (Y/N)?"
        YES     "OTHER_FAN_4B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 5A installed (Y/N)?"
        YES     "OTHER_FAN_5A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 5B installed (Y/N)?"
        YES     "OTHER_FAN_5B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 6A installed (Y/N)?"
        YES     "OTHER_FAN_6A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 6B installed (Y/N)?"
        YES     "OTHER_FAN_6B"
        NO      ""

        CLEAR "BCP_2U4N"
        CLEAR "SYS_FAN_2U4N"
        CLEAR "2U4N_BP_X35"
        CLEAR "2U4N_BP_X25"
        CLEAR "TEST_PLATE"
        CLEAR "STICKY_PS1_1600W"
        CLEAR "STICKY_PS2_1600W"
		CLEAR "STICKY_PS1_2200W"
        CLEAR "STICKY_PS2_2200W"
        CLEAR "STICKY_REDUNDANT_PS"
        CLEAR "HSBP_TEMP"
      // }
      ENDIF

      IFSET "SHIPPING"
      // {
      	CLEAR "BCP_2U4N"
        CLEAR "SYS_FAN_2U4N"
        CLEAR "2U4N_BP_X35"
        CLEAR "2U4N_BP_X25"
        CLEAR "TEST_PLATE"
        CLEAR "STICKY_PS1_1600W"
        CLEAR "STICKY_PS2_1600W"
		CLEAR "STICKY_PS1_2200W"
        CLEAR "STICKY_PS2_2200W"
        CLEAR "STICKY_REDUNDANT_PS"
        CLEAR "HSBP_TEMP"
        // Set additional SDR tags for the SHIPPING chassis
      // }
      ENDIF

      IFSET "TEST_PLATE"
      // {
        //System Fans
        DISPLAY " "
        PROMPT  "Is System Fan 1A installed (Y/N)?"
        YES     "SYSTEM_FAN_1A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 1B installed (Y/N)?"
        YES     "SYSTEM_FAN_1B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 2A installed (Y/N)?"
        YES     "SYSTEM_FAN_2A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 2B installed (Y/N)?"
        YES     "SYSTEM_FAN_2B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 3A installed (Y/N)?"
        YES     "SYSTEM_FAN_3A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 3B installed (Y/N)?"
        YES     "SYSTEM_FAN_3B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 4A installed (Y/N)?"
        YES     "SYSTEM_FAN_4A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 4B installed (Y/N)?"
        YES     "SYSTEM_FAN_4B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 5A installed (Y/N)?"
        YES     "SYSTEM_FAN_5A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 5B installed (Y/N)?"
        YES     "SYSTEM_FAN_5B"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 6A installed (Y/N)?"
        YES     "SYSTEM_FAN_6A"
        NO      ""

        DISPLAY " "
        PROMPT  "Is System Fan 6B installed (Y/N)?"
        YES     "SYSTEM_FAN_6B"
        NO      ""

        CLEAR "BCP_2U4N"
        CLEAR "SYS_FAN_2U4N"
        CLEAR "2U4N_BP_X35"
        CLEAR "2U4N_BP_X25"
      // }
      ENDIF

      // Clear temp tags used for setting STICKY tags (i.e. Power Supply tags).
      // This prevents Auto-Config from updating SDRs unnecessarily when a PS is removed.
      // NOTE: This feature only works on BMC FW 0.23 or later
      CLEAR "PS1"
      CLEAR "PS2"
      CLEAR "NO_PS1"
      CLEAR "NO_PS2"
      CLEAR "PS1_FRU_IPMI"
      CLEAR "PS2_FRU_IPMI"
      CLEAR "PS1_1600W"
      CLEAR "PS2_1600W"
	  CLEAR "PS1_2200W"
      CLEAR "PS2_2200W"
      CLEAR "CONTINUE"
    
      // Update the SDR Repository with selected records
      IFSET "SKIP_UPDATE"
        // Do nothing
      ELSE
        // Update SDR Repository
        SDRNAME   "S2600TP.sdr"

        // Run the init agent so new SDR data is read and used
        RUN_INIT_AGENT
      ENDIF
    // } // SDR
    ENDIF
      
    //*****************************************************************************
    // FRU file or asset tag programming
    //*****************************************************************************
    // Process Asset tag if requested.  
    IFSET "ASSET"
    // {   
      FRUNAME     "SYSTEM"
      FRUADDRESS  "IMBDEVICE" FF 20
      FRUAREA     "PRODUCT"  
      FRUFIELD    "AT" "@STDIN:ASCII"
    ELSE
      // Begin baseboard FRU update
      IFSET "FRU"
      // {
        IFSET "NO_TLP_FRU"
          DISPLAY " "
          DISPLAY "FRU Board P/N data is invalid."
          CLEAR "NO_TLP_FRU"
	  
        ELSE
        // {
          DISPLAY     " "

		IFSET       "S2600TPFR"
			FRUNAME     "S2600TPFR.fru"
		ELSE
			IFSET	"S2600TPR"
              	FRUNAME     "S2600TPR.fru"
			ELSE
				IFSET	"S2600TPF"
					FRUNAME     "S2600TPF.fru"
				ELSE
					FRUNAME	    "S2600TP.fru"
				ENDIF
			ENDIF
        ENDIF

          FRUAREA     "HEADER"
          FRUAREA     "INTERNALUSE"
          FRUAREA     "CHASSIS"
          FRUFIELD    "CT" 

          PROMPT      "Do you want to update the chassis info area of the FRU (Y/N)?"
          YES         "UPD_CHS"
          NO          ""

          IFSET "UPD_CHS"
          // {        
            DISPLAY     " "
  
            PROMPT      "Do you want to enter the chassis serial number (Y/N)?"
            YES         "CHASS_SN"
            NO          ""

            IFSET       "CHASS_SN"
              FRUFIELD    "S#" "@STDIN:ASCII"
            ENDIF

            DISPLAY     " "

            PROMPT      "Do you want to enter the chassis part number (Y/N)?"
            YES         "CHASS_PN"
            NO          ""

            IFSET       "CHASS_PN"
              FRUFIELD    "P#" "@STDIN:ASCII"
            ENDIF

            DISPLAY     " "
	    
            PROMPT    "Do you want to enter data into the additional chassis field 1 (Y/N)?"
            YES         "CHASS_INFO_1"
            NO          ""

            IFSET       "CHASS_INFO_1"
              FRUFIELD  "AM1" "@STDIN:ASCII"
            ENDIF

            DISPLAY    " "

            PROMPT    "Do you want to enter data into the additional chassis field 2 (Y/N)?"
            YES         "CHASS_INFO_2"
            NO          ""

            IFSET       "CHASS_INFO_2"
              FRUFIELD  "AM2" "@STDIN:ASCII"
            ENDIF
          // }
          ENDIF

          IFSET "ALLOW_BRD_UPDATE"
          // {
              CLEAR "ALLOW_BRD_UPDATE"
 
            PROMPT  "Do you want to update Board info area of the FRU (Y/N)?"
            YES     "UPD_BRD"
            NO      ""


            IFSET "UPD_BRD"
            // {
              // Update board area
              FRUAREA     "BOARD"
              FRUFIELD    "P#"
              FRUFIELD    "S#"

              DISPLAY      " "
	      
              PROMPT      "Do you want to enter the Board part number (Y/N)?"
              YES         "BRD_PN"
              NO          ""

              IFSET "BRD_PN"
                FRUFIELD    "P#" "@STDIN:ASCII"
              ENDIF

              DISPLAY     " "

              PROMPT      "Do you want to enter the Board serial number (Y/N)?"
              YES         "BRD_SN"
              NO          ""

              IFSET "BRD_SN"
                FRUFIELD    "S#" "@STDIN:ASCII"
              ENDIF
            // }
            ENDIF

          // }
          ENDIF

	      DISPLAY     " "
		  
          FRUAREA     "PRODUCT"
          PROMPT      "Do you want to update the product info area of the FRU (Y/N)?"
          YES     "UPD_PRD"
          NO      ""

          IFSET "UPD_PRD"
          // {
            FRUFIELD    "MN"
            FRUFIELD    "PN"        
            FRUFIELD    "PV"
            DISPLAY      " "
            PROMPT      "Do you want to enter the product Version (Y/N)?"
            YES         "PROD_PV"
            NO          ""

            IFSET "PROD_PV"
              FRUFIELD    "PV" "@STDIN:ASCII"
            ENDIF

            DISPLAY     " "
	    
            PROMPT      "Do you want to enter the product part number (Y/N)?"
            YES         "PROD_PN"
            NO          ""

            IFSET "PROD_PN"
              FRUFIELD    "P#" "@STDIN:ASCII"
            ENDIF

            DISPLAY     " "

            PROMPT      "Do you want to enter the product serial number (Y/N)?"
            YES         "PROD_SN"
            NO          ""

            IFSET "PROD_SN"
              FRUFIELD    "S#" "@STDIN:ASCII"
            ENDIF

            DISPLAY     " "

            PROMPT      "Do you want to enter a product asset tag (Y/N)?"
            YES         "PROD_ASSET"
            NO          ""

            IFSET "PROD_ASSET"
              FRUFIELD    "AT" "@STDIN:ASCII"
            ENDIF
          // }
          ENDIF
        // } FRU PN
        ENDIF
      // } FRU
      ENDIF
    // } Asset
    ENDIF
  // }  Not EXIT1
  ENDIF
// }  S2600TLP
ENDIF

