//
//
// Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
//                                                                                  

// SPDX-License-Identifier: BSD-2-Clause-Patent

//                                                                                  

//
//
//
// 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;

