// /** @file
//
// Copyright (c) 2004  - 2016, Intel Corporation. All rights reserved.<BR>
//

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

//

//
//
//
// Module Name:
//
//   SourthClusterConfig.vfi
//
// Abstract:
//
//   Driver Setup formset.
//
//Revision History:
//  ------------------------------------------------------------------------------
//  Rev   Date<MM/DD/YYYY>    Name    Description
//  ------------------------------------------------------------------------------

// **/

//
// South Cluster Configuration Form
//

form formid = SOUTH_CLUSTER_FORM_ID,
  title    = STRING_TOKEN(STR_SOUTH_CLUSTER_TITLE);

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  //
  // Jump to PCIe Configuration Form
  //
  goto PCIE_DEVICE_OPTIONS_FORM_ID,
    prompt = STRING_TOKEN(STR_PCIE_OPTIONS_FORM_TITLE),
    help = STRING_TOKEN(STR_PCIE_OPTIONS_FORM_HELP);

  //
  // Jump to USB Configuration Form
  //
  goto USB_OPTIONS_FORM_ID,
    prompt = STRING_TOKEN(STR_USB_OPTIONS_FORM_TITLE),
    help = STRING_TOKEN(STR_USB_OPTIONS_FORM_HELP);
  //
  // Jump to Azalia Configuration Form
  //
  goto AZALIA_OPTIONS_FORM_ID,
    prompt = STRING_TOKEN(STR_AZALIA_OPTIONS_FORM_TITLE),
    help   = STRING_TOKEN(STR_AZALIA_OPTIONS_FORM_HELP);

  //
  // Jump to Drive Configuration Form
  //
  goto DRIVE_CONFIGURATION_ID,
    prompt = STRING_TOKEN(STR_IDE_FORM_TITLE),
    help   = STRING_TOKEN(STR_IDE_FORM_HELP);
  //
  // Jump to LAN Configuration Form
  //

  //
  // Jump to LPSS Configuration Form
  //
  goto LPSS_CONFIGURATION_ID,
    prompt = STRING_TOKEN(STR_LPSS_SCC_FORM_TITLE),
    help   = STRING_TOKEN(STR_LPSS_SCC_FORM_HELP);

  //
  // Jump to Misc Configuration Form
  //
  goto MISC_OPTIONS_FORM_ID,
    prompt = STRING_TOKEN(STR_MISC_OPTION_FORM_TITLE),
    help   = STRING_TOKEN(STR_MISC_OPTION_FORM_HELP);
endform;

form formid = PCIE_DEVICE_OPTIONS_FORM_ID,

  title    = STRING_TOKEN(STR_PCIE_OPTIONS_FORM_TITLE);

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

    oneof varid   = Setup.PcieRootPortSpeed[0],
      prompt      = STRING_TOKEN (STR_PCIE_SPEED_PROMPT0),
      help        = STRING_TOKEN (STR_PCIE_SPEED_HELP),
      option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED;
      option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED;
    endoneof;
    oneof varid   = Setup.PcieRootPortSpeed[1],
      prompt      = STRING_TOKEN (STR_PCIE_SPEED_PROMPT1),
      help        = STRING_TOKEN (STR_PCIE_SPEED_HELP),
      option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED;
      option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED;
    endoneof;
    oneof varid   = Setup.PcieRootPortSpeed[2],
      prompt      = STRING_TOKEN (STR_PCIE_SPEED_PROMPT2),
      help        = STRING_TOKEN (STR_PCIE_SPEED_HELP),
      option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED;
      option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED;
    endoneof;
    oneof varid   = Setup.PcieRootPortSpeed[3],
      prompt      = STRING_TOKEN (STR_PCIE_SPEED_PROMPT3),
      help        = STRING_TOKEN (STR_PCIE_SPEED_HELP),
      option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED;
      option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED;
    endoneof;
  //
  //PCIe Port
  //
  oneof varid  = Setup.IchPciExp[0],
    prompt   = STRING_TOKEN(STR_ICH_PCIERP1_PROMPT),
    help     = STRING_TOKEN(STR_ICH_PCIERP_HELP),
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
  endoneof;

  suppressif ideqval Setup.IchPciExp[0] == 0x0;
    oneof varid    = Setup.IchPciExp[1],
      prompt   = STRING_TOKEN(STR_ICH_PCIERP2_PROMPT),
      help     = STRING_TOKEN(STR_ICH_PCIERP_HELP),
      option text = STRING_TOKEN(STR_ENABLE), value=1, flags= RESET_REQUIRED;
      option text = STRING_TOKEN(STR_DISABLE), value=0, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;
  endif;

  suppressif NOT ideqval Setup.IchPciExp[0] == 0x0;
  text
    help   = STRING_TOKEN(STR_ICH_PCIERP_HELP),
    text   = STRING_TOKEN(STR_ICH_PCIERP2_PROMPT),
    text   = STRING_TOKEN(STR_ICH_PCIERP_DISABLE_HELP),
    flags  = 0,
    key    = 0;
  endif;

  suppressif ideqval Setup.IchPciExp[0] == 0x0;
    oneof varid    = Setup.IchPciExp[2],
      prompt   = STRING_TOKEN(STR_ICH_PCIERP3_PROMPT),
      help     = STRING_TOKEN(STR_ICH_PCIERP_HELP),
      option text = STRING_TOKEN(STR_ENABLE), value=1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
    endoneof;
  endif;

  suppressif NOT ideqval Setup.IchPciExp[0] == 0x0;
  text
    help   = STRING_TOKEN(STR_ICH_PCIERP_HELP),
    text   = STRING_TOKEN(STR_ICH_PCIERP3_PROMPT),
    text   = STRING_TOKEN(STR_ICH_PCIERP_DISABLE_HELP),
    flags  = 0,
    key    = 0;
  endif;

  suppressif ideqval Setup.IchPciExp[0] == 0x0;
    oneof varid    = Setup.IchPciExp[3],
      prompt   = STRING_TOKEN(STR_ICH_PCIERP4_PROMPT),
      help     = STRING_TOKEN(STR_ICH_PCIERP_HELP),
      option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_DISABLE), value=0, flags= 0 | RESET_REQUIRED;
    endoneof;
  endif;

  suppressif NOT ideqval Setup.IchPciExp[0] == 0x0;
  text
    help   = STRING_TOKEN(STR_ICH_PCIERP_HELP),
    text   = STRING_TOKEN(STR_ICH_PCIERP4_PROMPT),
    text   = STRING_TOKEN(STR_ICH_PCIERP_DISABLE_HELP),
    flags  = 0,
    key    = 0;
  endif;


endform;

form formid = USB_OPTIONS_FORM_ID,

  title    = STRING_TOKEN(STR_USB_OPTIONS_FORM_TITLE);

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  oneof   varid   = Setup.UsbAutoMode,
    questionid  = 0x123A,
    prompt      = STRING_TOKEN(STR_USB_AUTO_MODE_PROMPT),
    help        = STRING_TOKEN(STR_USB_AUTO_MODE_HELP),
    flags       = INTERACTIVE,
    option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_DISABLE), value = 0, flags =  RESET_REQUIRED;
  endoneof;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);
  //
  //XHCI support
  //
  grayoutif ideqval Setup.UsbAutoMode == 0x1;
    grayoutif ideqval Setup.PchUsb20 == 0x1;
      oneof   varid   = Setup.UsbXhciSupport,
        questionid  = 0x123B,
        prompt      = STRING_TOKEN(STR_USB_XHCI_SUPPORT_PROMPT),
        help        = STRING_TOKEN(STR_USB_XHCI_SUPPORT_HELP),
        flags       = INTERACTIVE,
        option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
        option text = STRING_TOKEN(STR_DISABLE), value = 0, flags =  RESET_REQUIRED;
      endoneof;

      suppressif ideqval Setup.UsbXhciSupport == 0x0;
        oneof   varid   = Setup.Hsic0,
          prompt      = STRING_TOKEN(STR_USB_HSIC_0_PROMPT),
          help        = STRING_TOKEN(STR_USB_HSIC_0_HELP),
          option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED;
          option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
        endoneof;
      endif;

      oneof varid   = Setup.PchUsb30Mode,
        prompt      = STRING_TOKEN(STR_PCH_USB30_MODE_PROMPT),
        help        = STRING_TOKEN(STR_PCH_USB30_MODE_HELP),
        option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
        option text = STRING_TOKEN(STR_DISABLE), value = 0, flags =  RESET_REQUIRED;
      endoneof;

  oneof   varid   = Setup.UsbXhciLpmSupport,
        prompt      = STRING_TOKEN(STR_USB_XHCI_LPM_SUPPORT_PROMPT),
        help        = STRING_TOKEN(STR_USB_XHCI_LPM_SUPPORT_HELP),

        option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
        option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;

      endoneof;
    endif;
  endif;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  oneof varid   = Setup.PchUsbOtg,
    prompt      = STRING_TOKEN(STR_PCH_USB_OTG_PROMPT),
    help        = STRING_TOKEN(STR_PCH_USB_OTG_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
    option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags =  RESET_REQUIRED;
  endoneof;

  oneof varid   = Setup.PchUsbVbusOn,
    prompt      = STRING_TOKEN(STR_PCH_USB_VBUS_PROMPT),
    help        = STRING_TOKEN(STR_PCH_USB_VBUS_HELP),
    option text = STRING_TOKEN(STR_OFF), value = 0, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ON), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_AUTO), value = 2, flags = RESET_REQUIRED;
  endoneof;
  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  //
  //EHCI support
  //
  grayoutif ideqval Setup.UsbAutoMode == 0x1;
    grayoutif ideqval Setup.UsbXhciSupport == 0x1;
      oneof   varid   = Setup.PchUsb20,
        questionid  = 0x123C,
        prompt   = STRING_TOKEN(STR_PCH_USB21_PROMPT),
        help     = STRING_TOKEN(STR_PCH_USB2_HELP),
        flags    = INTERACTIVE,
        option text = STRING_TOKEN(STR_ENABLE), value = 1, flags =  RESET_REQUIRED;
        option text = STRING_TOKEN(STR_DISABLE), value= 0, flags= DEFAULT | MANUFACTURING |RESET_REQUIRED;
      endoneof;

      oneof varid  = Setup.PchUsbRmh,
        prompt   = STRING_TOKEN(STR_PCH_USBRMH_PROMPT),
        help     = STRING_TOKEN(STR_PCH_USBRMH_HELP),
        option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
        option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      endoneof;

      oneof varid  = Setup.PchEhciDebug,
        prompt   = STRING_TOKEN(STR_PCH_USB_EHCIDEBUG_PROMPT),
        help     = STRING_TOKEN(STR_PCH_USB_EHCIDEBUG_HELP),
        option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
        option text = STRING_TOKEN(STR_ENABLE),  value = 1, flags = RESET_REQUIRED;
      endoneof;

      suppressif TRUE;
        oneof varid   = Setup.EhciPllCfgEnable,
        prompt      = STRING_TOKEN(STR_EHCI_PLL_CFG_PROMPT),
        help        = STRING_TOKEN(STR_EHCI_PLL_CFG_RTD3_DIS_HELP),
        option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
        option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
        endoneof;
      endif;
    endif;

    //
    // Usb ports per-port disable control enable
    //
    oneof varid   = Setup.PchUsbPerPortCtl,
      prompt      = STRING_TOKEN(STR_PCH_USB_PER_PORT_PROMPT),
      help        = STRING_TOKEN(STR_PCH_USB_PER_PORT_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;

    suppressif ideqval Setup.PchUsbPerPortCtl == 0x0;
      oneof varid  = Setup.PchUsbPort[0],
      prompt   = STRING_TOKEN(STR_PCH_USB_PORT0_PROMPT),
      help     = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      endoneof;

      oneof varid  = Setup.PchUsbPort[1],
      prompt   = STRING_TOKEN(STR_PCH_USB_PORT1_PROMPT),
      help     = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      endoneof;

      oneof varid  = Setup.PchUsbPort[2],
      prompt   = STRING_TOKEN(STR_PCH_USB_PORT2_PROMPT),
      help     = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      endoneof;

      oneof varid  = Setup.PchUsbPort[3],
      prompt   = STRING_TOKEN(STR_PCH_USB_PORT3_PROMPT),
      help     = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      endoneof;
    endif;


  endif;

endform;

//
// SATA Controller
//
form formid = DRIVE_CONFIGURATION_ID,

  title    = STRING_TOKEN(STR_IDE_FORM_TITLE);

  //
  // Title on Drive Configuration Page
  //
  text
    help   = STRING_TOKEN(STR_NULL_STRING),
    text   = STRING_TOKEN(STR_IDE_FORM_TITLE),
    text   = STRING_TOKEN(STR_NULL_STRING),
    flags  = 0,
    key    = 0;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  subtitle text = STRING_TOKEN(STR_CHIPSET_SATA_STRING);

  oneof varid   = Setup.Sata,
    prompt      = STRING_TOKEN(STR_SATA_PROMPT),
    help        = STRING_TOKEN(STR_SATA_HELP),
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
  endoneof;

    oneof varid   = Setup.SataTestMode,
      prompt      = STRING_TOKEN(STR_SATA_TEST_MODE_PROMPT),
      help        = STRING_TOKEN(STR_SATA_TEST_MODE_HELP),
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;

  suppressif ideqval Setup.Sata == 0x00;
    oneof varid   = Setup.SataType,
      prompt      = STRING_TOKEN(STR_SATA_TYPE_PROMPT),
      help        = STRING_TOKEN(STR_SATA_TYPE_HELP1),
      option text = STRING_TOKEN(STR_SATA_IDE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_SATA_AHCI), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;

    text
      help   = STRING_TOKEN(STR_NULL_STRING),
      text   = STRING_TOKEN(STR_SATA0_STRING),
      text   = STRING_TOKEN(STR_SATA0_NAME),
      flags  = 0,
      key    = 0;

    text
      help   = STRING_TOKEN(STR_NULL_STRING),
      text   = STRING_TOKEN(STR_SATA1_STRING),
      text   = STRING_TOKEN(STR_SATA1_NAME),
      flags  = 0,
      key    = 0;

    suppressif ideqval Setup.SataType == 0x0;
      oneof varid   = Setup.Sata0HotPlugCap,
        prompt      = STRING_TOKEN(STR_SATA0_HOTPLUG_CAP_PROMPT),
        help        = STRING_TOKEN(STR_SATA_HOTPLUG_CAP_HELP),
        option text = STRING_TOKEN(STR_ENABLE), value= 1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
        option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
      endoneof;

      oneof varid   = Setup.Sata1HotPlugCap,
        prompt      = STRING_TOKEN(STR_SATA1_HOTPLUG_CAP_PROMPT),
        help        = STRING_TOKEN(STR_SATA_HOTPLUG_CAP_HELP),
        option text = STRING_TOKEN(STR_ENABLE), value= 1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
        option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
      endoneof;
    endif;

  endif;  //SATA enable

endform;

form formid = LPSS_CONFIGURATION_ID,

  title    = STRING_TOKEN(STR_LPSS_SCC_FORM_TITLE);

  subtitle text = STRING_TOKEN(STR_NULL_STRING);
  oneof varid   = Setup.LpssPciModeEnabled,
    prompt      = STRING_TOKEN(STR_LPSS_PCI_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_PCI_HELP),
    option text = STRING_TOKEN(STR_ACPI_MODE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_PCI_MODE), value=1, flags=0| RESET_REQUIRED;
  endoneof;
  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  subtitle text = STRING_TOKEN(STR_SCC_SETTING_SUBTITLE);
  oneof varid   = Setup.eMMCBootMode,
    prompt      = STRING_TOKEN(STR_EMMC_BOOT_PROMPT),
    help        = STRING_TOKEN(STR_EMMC_BOOT_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_AUTO_DETECT), value=1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC_BOOT_41), value=2, flags=0 | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC_BOOT_45), value=3, flags=0 | RESET_REQUIRED;
  endoneof;



   oneof varid   = Setup.SecureErase,
    questionid  = 0x1240,
    prompt      = STRING_TOKEN(STR_SECURE_ERASE_PROMPT),
    help        = STRING_TOKEN(STR_SECURE_ERASE_HELP),
    flags       = INTERACTIVE,
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags= DEFAULT |MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= RESET_REQUIRED;
  endoneof;



   subtitle text = STRING_TOKEN(STR_NULL_STRING);
grayoutif NOT ideqval Setup.eMMCBootMode == 0x3;
  oneof varid   = Setup.LpsseMMC45Enabled,
    prompt      = STRING_TOKEN(STR_SCC_EMMC45_PROMPT),
    help        = STRING_TOKEN(STR_SCC_EMMC45_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=DEFAULT | RESET_REQUIRED;
  endoneof;
  oneof varid   = Setup.LpsseMMC45DDR50Enabled,
    prompt      = STRING_TOKEN(STR_SCC_EMMC45_DDR50_PROMPT),
    help        = STRING_TOKEN(STR_SCC_EMMC45_DDR50_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=DEFAULT | RESET_REQUIRED;
  endoneof;
    oneof varid   = Setup.LpsseMMC45HS200Enabled,
    prompt      = STRING_TOKEN(STR_SCC_EMMC45_HS200_PROMPT),
    help        = STRING_TOKEN(STR_SCC_EMMC45_HS200_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=DEFAULT| RESET_REQUIRED;
  endoneof;

  grayoutif ideqval Setup.LpsseMMC45DDR50Enabled == 0x1;
  oneof varid  = Setup.LpsseMMC45RetuneTimerValue,
    prompt = STRING_TOKEN(STR_SCC_EMMC45_RE_TUNE_TIMER_VALUE),
    help   = STRING_TOKEN(STR_SCC_EMMC45_RE_TUNE_TIMER_VALUE_HELP),
    option text = STRING_TOKEN(STR_EMMC45_TIMER_0), value = 0, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_1), value =1, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_2), value =2, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_3), value =3, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_4), value =4, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_5), value =5, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_6), value =6, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_7), value =7, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_8), value =8, flags = MANUFACTURING| DEFAULT|RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_9), value =9, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_10), value =10, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_11), value =11, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_12), value =12, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_13), value =13, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_14), value =14, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_EMMC45_TIMER_15), value =15, flags = RESET_REQUIRED;
  endoneof;
  endif;    // grayoutif ideqval Setup.LpsseMMC45DDR50Enabled == 0x1;
 endif;     // grayoutif NOT ideqval Setup.eMMCBootMode == 0x1;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);
  subtitle text = STRING_TOKEN(STR_NULL_STRING);
  oneof varid   = Setup.LpssSdioEnabled,
    prompt      = STRING_TOKEN(STR_SCC_SDIO_PROMPT),
    help        = STRING_TOKEN(STR_SCC_SDIO_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
  endoneof;

  oneof varid   = Setup.LpssSdcardEnabled,
    prompt      = STRING_TOKEN(STR_SCC_SDCARD_PROMPT),
    help        = STRING_TOKEN(STR_SCC_SDCARD_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT|MANUFACTURING | RESET_REQUIRED;
  endoneof;


grayoutif NOT ideqval Setup.LpssSdcardEnabled == 0x1;
  grayoutif ideqval Setup.LpssSdCardDDR50Enabled == 0x1;
  oneof varid   = Setup.LpssSdCardSDR25Enabled,
    prompt      = STRING_TOKEN(STR_SCC_SD_SDR25_PROMPT),
    help        = STRING_TOKEN(STR_SCC_SD_SDR25_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=0 | RESET_REQUIRED;
  endoneof;
  endif; // grayoutif ideqval Setup.LpsseMMC45DDR50Enabled == 0x1;

  grayoutif ideqval Setup.LpssSdCardSDR25Enabled == 0x1;
    oneof varid   = Setup.LpssSdCardDDR50Enabled,
    prompt      = STRING_TOKEN(STR_SCC_SD_DDR50_PROMPT),
    help        = STRING_TOKEN(STR_SCC_SD_DDR50_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=0 | RESET_REQUIRED;
    endoneof;
  endif; // grayoutif ideqval Setup.LpssSdCardSDR25Enabled == 0x1;

  oneof varid   = Setup.SdCardRemovable,
    prompt      = STRING_TOKEN(STR_SCC_SDCARD_REMOVABILITY),
    help        = STRING_TOKEN(STR_SCC_SDCARD_REMOVABILITY_HELP),
    option text = STRING_TOKEN(STR_SCC_SDCARD_NON_REMOVABLE), value=0, flags=0 | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_SCC_SDCARD_REMOVABLE), value=1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
  endoneof;

endif;     // grayoutif NOT ideqval Setup.LpssSdcardEnabled == 0x1;



  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  subtitle text = STRING_TOKEN(STR_LPSS1_SETTING_SUBTITLE);

  oneof varid   = Setup.LpssDma0Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_DMA1_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_DMA1_HELP),
    flags       = INTERACTIVE,
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED;
  endoneof;

  grayoutif ideqval Setup.LpssDma0Enabled == 0x00;
  oneof varid   = Setup.LpssHsuart0Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_HSUART1_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_HSUART1_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags= MANUFACTURING  | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= 0 | DEFAULT | RESET_REQUIRED;
  endoneof;
  endif;

  //Add control flow
  grayoutif ideqval Setup.LpssHsuart0Enabled == 0x00;
  oneof varid   = Setup.LpssHsuart0FlowControlEnabled,
    prompt      = STRING_TOKEN(STR_LPSS_HSUART1_FLOWCONTROL_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_HSUART1_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |DEFAULT | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= MANUFACTURING  | RESET_REQUIRED;
  endoneof;
  endif;

  grayoutif ideqval Setup.LpssDma0Enabled == 0x00;
  oneof varid   = Setup.LpssHsuart1Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_HSUART2_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_HSUART2_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=MANUFACTURING  | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= 0 | DEFAULT | RESET_REQUIRED;
  endoneof;
  endif;

  //Add control flow
  grayoutif ideqval Setup.LpssHsuart1Enabled == 0x00;
  oneof varid   = Setup.LpssHsuart1FlowControlEnabled,
    prompt      = STRING_TOKEN(STR_LPSS_HSUART2_FLOWCONTROL_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_HSUART1_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |DEFAULT | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= MANUFACTURING  | RESET_REQUIRED;
  endoneof;
  endif;


  grayoutif ideqval Setup.LpssDma0Enabled == 0x00;
  oneof varid   = Setup.LpssPwm0Enabled,
    prompt      = STRING_TOKEN(STR_PWM1_PROMPT),
    help        = STRING_TOKEN(STR_PWM1_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=MANUFACTURING  | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= 0 | DEFAULT | RESET_REQUIRED;
  endoneof;
  endif;

  grayoutif ideqval Setup.LpssDma0Enabled == 0x00;
  oneof varid   = Setup.LpssPwm1Enabled,
    prompt      = STRING_TOKEN(STR_PWM2_PROMPT),
    help        = STRING_TOKEN(STR_PWM2_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=MANUFACTURING  | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= 0 | DEFAULT | RESET_REQUIRED;
  endoneof;
  endif;

  grayoutif ideqval Setup.LpssDma0Enabled == 0x00;
  oneof varid   = Setup.LpssSpiEnabled,
    prompt      = STRING_TOKEN(STR_LPSS_SPI_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_SPI_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=MANUFACTURING  | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= 0 |DEFAULT | RESET_REQUIRED;
  endoneof;
  endif;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  subtitle text = STRING_TOKEN(STR_LPSS2_SETTING_SUBTITLE);

  oneof varid   = Setup.LpssDma1Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_DMA2_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_DMA2_HELP),
    flags       = INTERACTIVE,
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED;
  endoneof;

/*
  grayoutif ideqval Setup.LpssDma1Enabled == 0x00;
  oneof varid   = Setup.LpssI2C0Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_I2C1_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_I2C1_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |DEFAULT |RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= MANUFACTURING | RESET_REQUIRED;
  endoneof;
  endif;


  grayoutif ideqval Setup.LpssDma1Enabled == 0x00;
  oneof varid   = Setup.LpssI2C1Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_I2C2_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_I2C2_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |DEFAULT | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= MANUFACTURING | RESET_REQUIRED;
  endoneof;
  endif;

  grayoutif ideqval Setup.LpssDma1Enabled == 0x00;
  oneof varid   = Setup.LpssI2C2Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_I2C3_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_I2C3_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |DEFAULT | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= MANUFACTURING | RESET_REQUIRED;
  endoneof;
  endif;

  grayoutif ideqval Setup.LpssDma1Enabled == 0x00;
  oneof varid   = Setup.LpssI2C3Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_I2C4_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_I2C4_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |DEFAULT | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= MANUFACTURING | RESET_REQUIRED;
  endoneof;
  endif;

  grayoutif ideqval Setup.LpssDma1Enabled == 0x00;
  oneof varid   = Setup.LpssI2C4Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_I2C5_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_I2C5_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |DEFAULT | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= MANUFACTURING | RESET_REQUIRED;
  endoneof;
  endif;
*/
  grayoutif ideqval Setup.LpssDma1Enabled == 0x00;
  oneof varid   = Setup.LpssI2C5Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_I2C6_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_I2C6_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags=  DEFAULT |MANUFACTURING | RESET_REQUIRED;
  endoneof;
  endif;

  grayoutif ideqval Setup.LpssDma1Enabled == 0x00;
  oneof varid   = Setup.LpssI2C6Enabled,
    prompt      = STRING_TOKEN(STR_LPSS_I2C7_PROMPT),
    help        = STRING_TOKEN(STR_LPSS_I2C7_HELP_ENBDT_DEV_LIST),
    option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED;
  endoneof;
  endif;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);

  subtitle text = STRING_TOKEN(STR_I2C_DEVICE_SETTING_SUBTITLE);

  oneof varid   = Setup.I2CTouchAd,
    prompt      = STRING_TOKEN(STR_I2C_TOUCH_PROMPT),
    help        = STRING_TOKEN(STR_I2C_TOUCH_HELP),
    option text = STRING_TOKEN(STR_AUTO), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_I2C_FVP), value=0x4B, flags=0 | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_I2C_FFRD), value=0x4A, flags=0 | RESET_REQUIRED;
  endoneof;

 subtitle text = STRING_TOKEN(STR_NULL_STRING);

 oneof varid = Setup.SAR1,
    prompt         = STRING_TOKEN(STR_SAR_SENSOR_PROMPT),
    help           = STRING_TOKEN(STR_SAR_SENSOR_HELP),
    option text    = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
  endoneof;
endform;


//
//LAN Controller
//
form formid = LAN_OPTIONS_FORM_ID,

  title    = STRING_TOKEN(STR_LAN_OPTIONS_FORM_TITLE);

  subtitle text = STRING_TOKEN(STR_LAN_OPTIONS_FORM_TITLE);

  oneof varid = Setup.Lan,
    prompt   = STRING_TOKEN(STR_PCH_LAN_CONTROLLER),
    help     = STRING_TOKEN(STR_PCH_LAN_CONTROLLER_HELP),
    option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED;
    option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
  endoneof;

  suppressif ideqval Setup.Lan == 0;
    oneof varid = Setup.WakeOnLanS5,
      prompt   = STRING_TOKEN(STR_PCH_LAN_WOL_PROMPT),
      help     = STRING_TOKEN(STR_PCH_LAN_WOL_HELP),
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags =  DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
    endoneof;

    oneof varid = Setup.SlpLanLowDc,
      prompt   = STRING_TOKEN(STR_PCH_SLP_LAN_LOW_DC_PROMPT),
      help     = STRING_TOKEN(STR_PCH_SLP_LAN_LOW_DC_HELP),
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags =  DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
    endoneof;

    oneof varid = Setup.BootNetwork,
      prompt   = STRING_TOKEN(STR_PCH_PXEROM_CONTROL),
      help     = STRING_TOKEN(STR_PCH_PXEROM_CONTROL_HELP),
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags =  RESET_REQUIRED;
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
    endoneof;
  endif;

endform;

//
// Azalia Configuration
//
form formid = AZALIA_OPTIONS_FORM_ID,

  title    = STRING_TOKEN(STR_AZALIA_OPTIONS_FORM_TITLE);

  subtitle text = STRING_TOKEN(STR_AZALIA_OPTIONS_FORM_TITLE);
  oneof varid   = Setup.Lpe,
      prompt      = STRING_TOKEN(STR_LPE_PROMPT),
      help        = STRING_TOKEN(STR_LPE_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_LPE_PCI_MODE), value=1, flags=0 | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_LPE_ACPI_MODE), value=2, flags=0 | RESET_REQUIRED;
  endoneof;

  grayoutif NOT ideqval Setup.Lpe == 0x2;
  oneof varid   = Setup.LpeAudioReportedByDSDT,
      prompt      = STRING_TOKEN(STR_LPE_REPORTED_BY_DSDT_PROMPT),
      help        = STRING_TOKEN(STR_LPE_REPORTED_BY_DSDT_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value=1, flags=RESET_REQUIRED;
  endoneof;
  endif;

  subtitle text = STRING_TOKEN(STR_NULL_STRING);
  suppressif ideqval Setup.AzaliaDs == 0x1;
    oneof varid  = Setup.PchAzalia,
      prompt   = STRING_TOKEN(STR_PCH_AZALIA_PROMPT),
      help     = STRING_TOKEN(STR_PCH_AZALIA_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = 0 | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;
  endif;

  suppressif ideqval Setup.AzaliaDs == 0x0;
    text
      help   = STRING_TOKEN(STR_PCH_AZALIA_DS_SUPPORT),
      text   = STRING_TOKEN(STR_PCH_AZALIA_PROMPT),
      text   = STRING_TOKEN(STR_ENABLE),
      flags  = 0,
      key    = 0;
  endif;

  suppressif ideqval Setup.PchAzalia == 0x0;
    oneof varid  = Setup.AzaliaVCiEnable,
      prompt   = STRING_TOKEN(STR_AZALIA_VC_PROMPT),
      help     = STRING_TOKEN(STR_AZALIA_VC_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;
  endif;

  suppressif ideqval Setup.PchAzalia == 0x0;
    oneof varid  = Setup.AzaliaDs,
      prompt   = STRING_TOKEN(STR_AZALIA_DS_PROMPT),
      help     = STRING_TOKEN(STR_AZALIA_DS_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED;
    endoneof;
  endif;

  suppressif ideqval Setup.PchAzalia == 0x0;
    oneof varid  = Setup.AzaliaPme,
      prompt   = STRING_TOKEN(STR_AZALIA_PME_PROMPT),
      help     = STRING_TOKEN(STR_AZALIA_PME_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;

    oneof varid  = Setup.HdmiCodec,
      prompt   = STRING_TOKEN(STR_HDMI_CODEC_PROMPT),
      help     = STRING_TOKEN(STR_HDMI_CODEC_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;
  endif;

endform;

//
//  Misc Configuration
//
form formid = MISC_OPTIONS_FORM_ID,

  title    = STRING_TOKEN(STR_MISC_OPTION_FORM_TITLE);

  subtitle text = STRING_TOKEN(STR_MISC_OPTION_FORM_TITLE);
  //
  // HPET Disable/Enable
  //
  oneof   varid   = Setup.Hpet,
    prompt      = STRING_TOKEN(STR_HPET_PROMPT),
    help        = STRING_TOKEN(STR_HPET_HELP),
    option text = STRING_TOKEN(STR_DISABLE), value=0x00, flags=RESET_REQUIRED;
    option text = STRING_TOKEN(STR_ENABLE), value=0x01, flags=DEFAULT | RESET_REQUIRED;
  endoneof;

  oneof varid  = Setup.StateAfterG3,
     prompt   = STRING_TOKEN(STR_STATE_AFTER_G3),
     help     = STRING_TOKEN(STR_STATE_AFTER_G3_HELP),
     option text = STRING_TOKEN(STR_S0_AFTER_G3_STRING), value = 0, flags = DEFAULT | RESET_REQUIRED;
     option text = STRING_TOKEN(STR_S5_AFTER_G3_STRING), value = 1, flags = MANUFACTURING | RESET_REQUIRED;
  endoneof;

  oneof varid  = Setup.EnableClockSpreadSpec,
     prompt   = STRING_TOKEN(STR_CLOCK_SPREAD_SPEC_ENABLE),
     help     = STRING_TOKEN(STR_CLOCK_SPREAD_SPEC_ENABLE_HELP),
     option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
     option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED;
  endoneof;


  oneof varid  = Setup.UartInterface,
    prompt   = STRING_TOKEN(STR_PCH_UART_SELECT),
    help     = STRING_TOKEN(STR_PCH_UART_SELECT_HELP),
    option text = STRING_TOKEN(STR_UART_SELECT_PCU), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    option text = STRING_TOKEN(STR_UART_SELECT_SIO), value = 1, flags = RESET_REQUIRED;
  endoneof;

  suppressif ideqval Setup.LpssHsuart0Enabled == 1 OR ideqval Setup.UartInterface == 1;
    oneof varid  = Setup.PcuUart1,
      prompt   = STRING_TOKEN(STR_PCU_UART_A),
      help     = STRING_TOKEN(STR_PCU_UART_A_HELP),
      option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
      option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    endoneof;
  endif;

  oneof varid = Setup.SpiRwProtect,
    prompt         = STRING_TOKEN(STR_PCH_SPI_WP_PROMPT),
    help           = STRING_TOKEN(STR_PCH_SPI_WP_HELP),
    option text    = STRING_TOKEN(STR_PCH_SPI_WP_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_PCH_SPI_WP_ENABLE), value = 1, flags = RESET_REQUIRED;
  endoneof;

  oneof varid = Setup.MmioSize,
    prompt         = STRING_TOKEN(STR_MMIO_PROMPT),
    help           = STRING_TOKEN(STR_MMIO_HELP),
    option text    = STRING_TOKEN(STR_MMIO_0_75G_STRING), value = 0, flags = RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_MMIO_1G_STRING), value = 1, flags = RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_MMIO_1_25G_STRING), value = 2, flags = RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_MMIO_1_5G_STRING), value = 3, flags = RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_MMIO_2G_STRING), value = 4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
  endoneof;

  oneof varid = Setup.PcieDynamicGating,
    prompt         = STRING_TOKEN(STR_PCIEDYNCLK_PROMPT),
    help           = STRING_TOKEN(STR_PCIEDYNCLK_HELP),
    option text    = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED;
  endoneof;

  oneof varid = Setup.GpioWakeCapability,
    prompt         = STRING_TOKEN(STR_GPIO_WAKE_CAPABILITY_ENABLE),
    help           = STRING_TOKEN(STR_GPIO_WAKE_CAPABILITY_ENABLE_HELP),
    option text    = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED;
  endoneof;

  oneof varid = Setup.RtcBattery,
    prompt         = STRING_TOKEN(STR_RTC_BATTERY),
    help           = STRING_TOKEN(STR_RTC_BATTERY_HELP),
    option text    = STRING_TOKEN(STR_RTC_BATTERY_NOT_PRESENT), value = 0, flags = RESET_REQUIRED;
    option text    = STRING_TOKEN(STR_RTC_BATTERY_PRESENT), value = 1, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
  endoneof;

endform;

