//
//
// Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
//                                                                                  
// This program and the accompanying materials are licensed and made available under
// the terms and conditions of the BSD License that accompanies this distribution.  
// The full text of the license may be found at                                     
// http://opensource.org/licenses/bsd-license.php.                                  
//                                                                                  
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,            
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.    
//                                                                                  
//
//
//
// Module Name:
//
//   Main.vfi
//
// Abstract:
//
//   Driver Setup formset.
//
// Revision History:
//
// --*/

form formid = ROOT_MAIN_FORM_ID,

  title    = STRING_TOKEN(STR_MAIN_TITLE);

  subtitle text = STRING_TOKEN(STR_BIOS_INFORMATION_TITLE);

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_IFWI_VERSION_STRING),
    text   = STRING_TOKEN(STR_IFWI_VERSION_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_BIOS_VERSION_STRING),
    text   = STRING_TOKEN(STR_BIOS_VERSION_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_BIOS_VENDOR_STRING),
    text   = STRING_TOKEN(STR_BIOS_VENDOR_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_CORE_VERSION_STRING),
    text   = STRING_TOKEN(STR_CORE_VERSION_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_BIOS_BUILD_TIME_STRING),
    text   = STRING_TOKEN(STR_BIOS_BUILD_TIME_VALUE),
    flags  = 0,
    key    = 0;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  subtitle text = STRING_TOKEN(STR_PROCESSOR_INFO_STRING);
  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_VERSION_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_VERSION_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_SKU_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_SKU_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_SPEED_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_SPEED_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_ID_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_ID_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_MICROCODE_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_MICROCODE_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_CORE_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_CORE_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_EM64T_CAPABILITY_STRING),
    text   = STRING_TOKEN(STR_EM64T_CAPABILITY_VALUE),
    flags  = 0,
    key    = 0;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  goto PLATFORM_INFORMATION_FORM_ID,
    prompt = STRING_TOKEN(STR_PLATFORM_INFORMATION_TITLE),
    help   = STRING_TOKEN(STR_PLATFORM_INFORMATION_HELP);

  subtitle text = STRING_TOKEN(STR_NULL_STRING);
  //
  // Date and Time section
  //
  date    year varid  = Date.Year,    // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from
    prompt      = STRING_TOKEN(STR_DATE_PROMPT),
    help        = STRING_TOKEN(STR_DATE_YEAR_HELP),
    minimum     = 2003,
    maximum     = 2100,
    step        = 1,
    default     = 2003,

    month varid = Date.Month,    // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from
    prompt      = STRING_TOKEN(STR_DATE_PROMPT),
    help        = STRING_TOKEN(STR_DATE_MONTH_HELP),
    minimum     = 1,
    maximum     = 12,
    step        = 1,
    default     = 1,

    day varid   = Date.Day,          // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from
    prompt      = STRING_TOKEN(STR_DATE_PROMPT),
    help        = STRING_TOKEN(STR_DATE_DAY_HELP),
    minimum     = 1,
    maximum     = 31,
    step        = 0x1,
    default     = 1,

    // If the day is 31 AND months is any of the following 2, 4, 6, 9, 11
    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),
      ideqval Date.Day == 31
      AND
      ideqvallist Date.Month == 2 4 6 9 11
    endif

    // If the day is 30 AND month is 2
    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),
      ideqval Date.Day == 30
      AND
      ideqval Date.Month == 2
    endif

    // If the day is 29 AND month is 2 AND it year is NOT a leapyear
    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),
      ideqval Date.Day == 0x29
      AND
      ideqval Date.Month == 2
      AND
      NOT
      ideqvallist Date.Year == 2004 2008 2012 2016 2020 2024 2028 2032 2036 2040 2044 2048 2052 2056 2060 2064 2068 2072 2076 2080 2084 2088 2092 2096
    endif

  enddate;

  time    hour varid  = Time.Hours,         // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from
    prompt      = STRING_TOKEN(STR_TIME_PROMPT),
    help        = STRING_TOKEN(STR_TIME_HOUR_HELP),
    minimum     = 0,
    maximum     = 23,
    step        = 1,
    default     = 0,

    minute varid  = Time.Minutes,       // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from
    prompt        = STRING_TOKEN(STR_TIME_PROMPT),
    help          = STRING_TOKEN(STR_TIME_MINUTE_HELP),
    minimum       = 0,
    maximum       = 59,
    step          = 1,
    default       = 0,

    second varid  = Time.Seconds,       // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from
    prompt        = STRING_TOKEN(STR_TIME_PROMPT),
    help          = STRING_TOKEN(STR_TIME_SECOND_HELP),
    minimum       = 0,
    maximum       = 59,
    step          = 1,
    default       = 0,
  endtime;

endform;

form formid = PLATFORM_INFORMATION_FORM_ID,

  title    = STRING_TOKEN(STR_PLATFORM_INFORMATION_TITLE);

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  subtitle text = STRING_TOKEN(STR_PLATFORM_FIRMWARE_STRING);
  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_SOC_STRING),
    text   = STRING_TOKEN(STR_SOC_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_MRC_VERSION_STRING),
    text   = STRING_TOKEN(STR_MRC_VERSION_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PUNIT_FW_STRING),
    text   = STRING_TOKEN(STR_PUNIT_FW_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PMC_FW_STRING),
    text   = STRING_TOKEN(STR_PMC_FW_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_KSC_FW_STRING),
    text   = STRING_TOKEN(STR_KSC_FW_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_SEC_VERSION_STRING),
    text   = STRING_TOKEN(STR_SEC_VERSION_VALUE),
    flags  = 0,
    key    = 0;

  suppressif ideqval Setup.GOPEnable == 0;
  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_GOP_STRING),
    text   = STRING_TOKEN(STR_GOP_VALUE),
    flags  = 0,
    key    = 0;
  endif;

  suppressif ideqval Setup.GOPEnable == 1;
  text
    help   = STRING_TOKEN(STR_CHIP_IGD_VBIOS_REV_HELP),
    text   = STRING_TOKEN(STR_CHIP_IGD_VBIOS_REV_NAME),
    text   = STRING_TOKEN(STR_CHIP_IGD_VBIOS_REV_VALUE),
    flags  = 0,
    key    = 0;
  endif;

  text
    help   = STRING_TOKEN(STR_CPU_FLAVOR_HELP),
    text   = STRING_TOKEN(STR_CPU_FLAVOR_NAME),
    text   = STRING_TOKEN(STR_CPU_FLAVOR_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_BOARD_ID_HELP),
    text   = STRING_TOKEN(STR_BOARD_ID_NAME),
    text   = STRING_TOKEN(STR_BOARD_ID_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_FAB_ID_HELP),
    text   = STRING_TOKEN(STR_FAB_ID_STRING),
    text   = STRING_TOKEN(STR_FAB_ID_VALUE),
    flags  = 0,
    key = 0;


  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  subtitle text = STRING_TOKEN(STR_MEMORY_INFORMATION_STRING);
  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_TOTAL_MEMORY_SIZE_PROMPT),
    text   = STRING_TOKEN(STR_TOTAL_MEMORY_SIZE_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_SYSTEM_MEMORY_SPEED_STRING),
    text   = STRING_TOKEN(STR_SYSTEM_MEMORY_SPEED_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_L1_DATA_CACHE_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_L1_DATA_CACHE_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_L1_INSTR_CACHE_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_L1_INSTR_CACHE_VALUE),
    flags  = 0,
    key    = 0;

  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_L2_CACHE_STRING),
    text   = STRING_TOKEN(STR_PROCESSOR_L2_CACHE_VALUE),
    flags  = 0,
    key    = 0;

endform;

