summaryrefslogtreecommitdiff
path: root/Core/EM/PCI/PciBus.sd
diff options
context:
space:
mode:
Diffstat (limited to 'Core/EM/PCI/PciBus.sd')
-rw-r--r--Core/EM/PCI/PciBus.sd1067
1 files changed, 1067 insertions, 0 deletions
diff --git a/Core/EM/PCI/PciBus.sd b/Core/EM/PCI/PciBus.sd
new file mode 100644
index 0000000..404482b
--- /dev/null
+++ b/Core/EM/PCI/PciBus.sd
@@ -0,0 +1,1067 @@
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//**********************************************************************
+
+//**********************************************************************
+// $Header: /Alaska/BIN/Core/Modules/PciBus/PciBus.sd 22 9/10/12 12:54p Yakovlevs $
+//
+// $Revision: 22 $
+//
+// $Date: 9/10/12 12:54p $
+//**********************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/BIN/Core/Modules/PciBus/PciBus.sd $
+//
+// 22 9/10/12 12:54p Yakovlevs
+// [TAG] EIP93341
+// [Category] Improvement
+// [Description] Preserve PCI DEV/LNK/SLT control register in S3 resume
+// path.
+// [Files] PciBus.c PciBus.sd PciBus.uni PciSetup.h PciPort.c
+//
+// 21 2/27/12 6:39p Artems
+// EIP 83608: Added MANUFACTURING flag to setup controls
+//
+// 20 11/09/11 1:54p Yakovlevs
+// [TAG] EIP71380
+// [Category] New Feature
+// [Description] Core support for CSM opt-out feature
+// [Files] PciBus.c; PciPort.c; PciBus.sd; PciBus.uni; PciSetup.h;
+// PciBusSetup.c;
+//
+// 18 4/05/11 11:21a Yakovlevs
+// [TAG] EIP53475
+// [Category] New Feature
+// [Description] PCI Express 3.0 support added. And minor bug fix.
+// [Files] PciBus.c; PciHostBridge.c; PciBus.h; PciHostBridge.c;
+// PciPort.c;
+//
+// 17 1/20/11 3:13p Yakovlevs
+// [TAG] EIP48181
+// [Category] Improvement
+// [Description] Update the PciBus eModule to utilize Setup
+// Customization
+// [Files] PciBus.sd
+//
+// 16 12/08/10 3:18p Yakovlevs
+// Removed Setup Option "Selectable DeEmphasis" since it is HwInit Bit.
+//
+// 15 11/22/10 10:44a Yakovlevs
+// Removed STR_HORIZONTAL_D_LINE string since it creates problems with
+// reduced screen resolution.
+//
+// 14 10/01/10 12:27p Felixp
+// Link Training Defaults changed.
+//
+// 13 4/13/10 12:02p Yakovlevs
+// Changed Default ADPM settings to disable.
+//
+// 12 3/01/10 6:09p Yakovlevs
+// Pci Express V2.1 Support Added.
+//
+// 10 12/04/09 12:00p Felixp
+// UEFI 2.1 support.
+//
+// 9 3/23/09 4:57p Yakovlevs
+// Added generic support for PCI Express Hot-Plug.
+//
+// 8 10/16/08 6:13p Fasihm
+// Also added the MANUFACTURING flag to the setup questions.
+//
+// 7 9/25/08 11:47a Yakovlevs
+// Added Pci Bus Driver version display.
+//
+// 5 3/30/07 5:19p Robert
+// Updated Strings
+//
+// 4 3/30/07 2:57p Robert
+//
+// 3 3/14/07 2:04p Yakovlevs
+// Hode PciOption Rom Option from PCI Setup Screen
+//
+// 2 3/13/07 8:32p Yakovlevs
+//
+// 1 3/12/07 12:07p Yakovlevs
+//
+
+//
+//**********************************************************************
+//<AMI_FHDR_START>
+//
+// Name: PCIBus.sd
+//
+// Description: PCI/PCIExpress/PCIX settings
+//
+//<AMI_FHDR_END>
+//**********************************************************************
+
+#ifdef SETUP_DATA_DEFINITION
+/***********************************************************/
+/* Put NVRAM data definitions here.
+/* For example: UINT8 Data1;
+/* These definitions will be converted by the build process
+/* to a definitions of SETUP_DATA fields.
+/***********************************************************/
+#if ABOVE_4G_PCI_DECODE
+ UINT8 Above4gDecode; //[Disable]\ Enable
+#endif
+
+ //General PCI Settings: [] - default
+ UINT8 PciLatency; //[32]\ 64 \ 96 \ 128 \ 160 \ 192 \ 224 \ 248
+ UINT8 VgaPallete; //[Disable]\ Enable
+ UINT8 PerrEnable; //[Disable]\ Enable
+ UINT8 SerrEnable; //[Disable]\ Enable
+
+#if PCI_X_SUPPORT
+ UINT8 PciXLatency; // 32 \[64]\ 96 \ 128 \ 160 \ 192 \ 224 \ 248
+#endif
+
+#if PCI_EXPRESS_SUPPORT
+ //PCI Express Device Settings: [] - default
+ UINT8 RelaxedOrdering; //[Disable]\ Enable
+ UINT8 ExtTagField; //[Disable]\ Enable
+ UINT8 NoSnoop; // Disable \[Enable]
+ UINT8 MaxPayload; //[Auto]\ 128 \ 256 \ 512 \ 1024 \ 2048 \ 4096 (in bytes)
+ UINT8 MaxReadRequest; //[Auto]\ 128 \ 256 \ 512 \ 1024 \ 2048 \ 4096 (in bytes)
+ //PCI Express Link settings: [] - default
+ UINT8 AspmMode; //[Disable]\ Auto \ Force L0
+ UINT8 ExtendedSynch; //[Disable]\ Enable
+ UINT8 LnkTrRetry; //[Disable]\ 2 \ 3 \ 5
+ UINT16 LnkTrTimeout; //[1...1000] (Microseconds uS)
+ UINT8 LnkDisable; //[Keep ON == 0] / Disable ==1
+ UINT8 S3PciExpressScripts; //[Disable]\ Enable
+
+#if PCI_EXPRESS_GEN2_SUPPORT
+ //Gen2 Device Settings
+ UINT8 ComplTimeOut; //[Disable]\ Default \ SHORT \ LONG
+ UINT8 AriFwd; //[Disable]\ Enable
+ UINT8 AtomOpReq; //[Disable]\ Enable
+ UINT8 AtomOpEgressBlk; //[Disable]\ Enable
+ UINT8 IDOReq; //[Disable]\ Enable
+ UINT8 IDOCompl; //[Disable]\ Enable
+ UINT8 LtrReport; //[Disable]\ Enable
+ UINT8 E2ETlpPrBlk; //[Disable]\ Enable
+
+ //Gen2 Link Settings
+ UINT8 LnkSpeed; //[Auto]\ Forse to 5.0 GT/s \Force to 2.5 GT/s
+ UINT8 DeEmphasis; //[-3.5 dB]\ -6.0 dB
+ UINT8 ClockPm; //[Disable]\ Enable
+ UINT8 ComplSos; //[Disable]\ Enable
+ UINT8 HwAutoWidth; //[Enable]\ Disable LNK_CNT_REG #1
+ UINT8 HwAutoSpeed; //[Enable]\ Disable
+#endif
+
+#endif
+
+//Hotplug stuff.
+#if AMI_HOTPLUG_INIT_SUPPORT
+ UINT8 HotPlugEnable; // Disable \[Enable]
+ UINT8 BusPadd; // Disable \[1]\ 2 \ 3 \ 4 \ 5
+ //Following field stored in units of KB
+ UINT8 IoPadd; // Disable \[ 4K]\ 8K \ 16K \ 32K
+ //Following fields stored in units of MB
+ UINT8 Mmio32Padd; // Disable \ 1M \ 4M \ 8M \[16M]\ 32M \ 64M \128M
+ UINT8 Mmio32PfPadd; // Disable \ 1M \ 4M \ 8M \[16M]\ 32M \ 64M \128M
+ //for 512 and 1G 1 byte storege is not enough...
+ UINT16 Mmio64Padd; //[Disable]\ 1M \ 4M \ 8M \ 16M \ 32M \ 64M \ 128M \ 256M \ 512M \ 1G
+ UINT16 Mmio64PfPadd; //[Disable]\ 1M \ 4M \ 8M \ 16M \ 32M \ 64M \ 128M \ 256M \ 512M \ 1G
+#endif
+
+#endif //SETUP_DATA_DEFINITION
+
+#if defined(VFRCOMPILE) && !defined(CONTROLS_ARE_DEFINED)
+#define CONTROL_DEFINITION
+#endif
+
+#ifdef CONTROL_DEFINITION
+
+#if ABOVE_4G_PCI_DECODE
+#define PCIBUS_ONEOF_ABOVE4GDECODE\
+ oneof varid = SETUP_DATA.Above4gDecode,\
+ prompt = STRING_TOKEN(STR_PCI_4G_PROMPT),\
+ help = STRING_TOKEN(STR_PCI_4G_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+#else
+#define PCIBUS_ONEOF_ABOVE4GDECODE
+#endif // #if ABOVE_4G_PCI_DECODE
+
+#define PCIBUS_ONEOF_PCILATENCY\
+ oneof varid = SETUP_DATA.PciLatency,\
+ prompt = STRING_TOKEN(STR_PCI_LATENCY_PROMPT),\
+ help = STRING_TOKEN(STR_PCI_LATENCY_HELP),\
+ option text = STRING_TOKEN(STR_PCI_32), value = 32, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_64), value = 64, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_96), value = 96, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_128), value = 128, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_160), value = 160, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_192), value = 192, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_224), value = 224, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_248), value = 248, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_VGAPALLETE\
+ oneof varid = SETUP_DATA.VgaPallete,\
+ prompt = STRING_TOKEN(STR_PCI_VGASNOOP_PROMPT),\
+ help = STRING_TOKEN(STR_PCI_VGASNOOP_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_PERRENABLE\
+ oneof varid = SETUP_DATA.PerrEnable,\
+ prompt = STRING_TOKEN(STR_PCI_PERR_PROMPT),\
+ help = STRING_TOKEN(STR_PCI_PERR_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_SERRENABLE\
+ oneof varid = SETUP_DATA.SerrEnable,\
+ prompt = STRING_TOKEN(STR_PCI_SERR_PROMPT),\
+ help = STRING_TOKEN(STR_PCI_SERR_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#if PCI_X_SUPPORT
+#define PCIBUS_ONEOF_PCIXLATENCY\
+ oneof varid = SETUP_DATA.PciXLatency,\
+ prompt = STRING_TOKEN(STR_PCIX_LATENCY_PROMPT),\
+ help = STRING_TOKEN(STR_PCI_LATENCY_HELP),\
+ option text = STRING_TOKEN(STR_PCI_32), value = 32, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_64), value = 64, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_96), value = 96, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_128), value = 128, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_160), value = 160, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_192), value = 192, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_224), value = 224, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_PCI_248), value = 248, flags = RESET_REQUIRED;\
+ endoneof;
+#else
+#define PCIBUS_ONEOF_PCIXLATENCY
+#endif // #if PCI_X_SUPPORT
+
+#if PCI_EXPRESS_SUPPORT
+
+#define PCIBUS_ONEOF_RELAXEDORDERING\
+ oneof varid = SETUP_DATA.RelaxedOrdering,\
+ prompt = STRING_TOKEN(STR_PCIE_RELAXEDORDERING_PROMPT),\
+ help = STRING_TOKEN(STR_PCIE_RELAXEDORDERING_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_EXTTAGFIELD\
+ oneof varid = SETUP_DATA.ExtTagField,\
+ prompt = STRING_TOKEN(STR_PCIE_EXTTAGFLD_PROMPT),\
+ help = STRING_TOKEN(STR_PCIE_EXTTAGFLD_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_NOSNOOP\
+ oneof varid = SETUP_DATA.NoSnoop,\
+ prompt = STRING_TOKEN(STR_PCIE_NOSNOOP_PROMPT),\
+ help = STRING_TOKEN(STR_PCIE_NOSNOOP_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_MAXPAYLOAD\
+ oneof varid = SETUP_DATA.MaxPayload,\
+ prompt = STRING_TOKEN(STR_PCIE_MAXPAYLOAD_PROMPT),\
+ help = STRING_TOKEN(STR_PCIE_MAXPAYLOAD_HELP),\
+ option text = STRING_TOKEN(STR_AUTO), value = 55, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP128), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP256), value = 1, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP512), value = 2, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP1024), value = 3, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP2048), value = 4, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP4096), value = 5, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_MAXREADREQUEST\
+ oneof varid = SETUP_DATA.MaxReadRequest,\
+ prompt = STRING_TOKEN(STR_PCIE_MAXREADREQUEST_PROMPT),\
+ help = STRING_TOKEN(STR_PCIE_MAXREADREQUEST_HELP),\
+ option text = STRING_TOKEN(STR_AUTO), value = 55, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP128), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP256), value = 1, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP512), value = 2, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP1024), value = 3, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP2048), value = 4, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_MP4096), value = 5, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_ASPMMODE\
+ oneof varid = SETUP_DATA.AspmMode,\
+ prompt = STRING_TOKEN(STR_PCIE_ASPM_PROMPT),\
+ help = STRING_TOKEN(STR_PCIE_ASPM_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_AUTO), value = 55, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_FORCE_L0), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_EXTENDEDSYNCH\
+ oneof varid = SETUP_DATA.ExtendedSynch,\
+ prompt = STRING_TOKEN(STR_PCIE_EXTD_SYNCH_PROMPT),\
+ help = STRING_TOKEN(STR_PCIE_EXTD_SYNCH_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_LNKTRRETRY\
+ oneof varid = SETUP_DATA.LnkTrRetry,\
+ prompt = STRING_TOKEN(STR_LNK_TR_RETRY_PROMPT),\
+ help = STRING_TOKEN(STR_LNK_TR_RETRY_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_2), value = 2, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_3), value = 3, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_5), value = 5, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_NUM_LNKTRTIMEOUT\
+ numeric varid = SETUP_DATA.LnkTrTimeout,\
+ prompt = STRING_TOKEN(STR_LNK_TR_TIMEOUT_PROMPT),\
+ help = STRING_TOKEN(STR_LNK_TR_TIMEOUT_HELP),\
+ flags = RESET_REQUIRED,\
+ minimum = 10,\
+ maximum = 10000,\
+ step = 10,\
+ option text = STRING_TOKEN(STR_EMPTY), value = 100, flags = DEFAULT | MANUFACTURING;\
+ endnumeric;
+
+#define PCIBUS_ONEOF_LNKDISABLE\
+ oneof varid = SETUP_DATA.LnkDisable,\
+ prompt = STRING_TOKEN(STR_LNK_UNPOPULATED_PROMPT),\
+ help = STRING_TOKEN(STR_LNK_UNPOPULATED_HELP),\
+ option text = STRING_TOKEN(STR_KEEP_ON), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_DISABLE), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_S3PCIEXPRESSSCRIPTS\
+ oneof varid = SETUP_DATA.S3PciExpressScripts,\
+ prompt = STRING_TOKEN(STR_DEV_S3_PCIE_SCRIPTS_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_S3_PCIE_SCRIPTS_HELP),\
+ option text = STRING_TOKEN(STR_ENABLED), value = 0xFF, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0x00, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ endoneof;
+
+#if PCI_EXPRESS_GEN2_SUPPORT
+#define PCIBUS_ONEOF_COMPLTIMEOUT\
+ oneof varid = SETUP_DATA.ComplTimeOut,\
+ prompt = STRING_TOKEN(STR_DEV_COMPL_TIMEOUT_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_COMPL_TIMEOUT_HELP),\
+ option text = STRING_TOKEN(STR_DEFAULT), value = 0xFF, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_SHORT), value = 0x55, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_LONG), value = 0xAA, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_DISABLED),value = 0x00, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_ARIFWD\
+ oneof varid = SETUP_DATA.AriFwd,\
+ prompt = STRING_TOKEN(STR_DEV_ARI_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_ARI_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_ATOMOPREQ\
+ oneof varid = SETUP_DATA.AtomOpReq,\
+ prompt = STRING_TOKEN(STR_DEV_AOP_REQ_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_AOP_REQ_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_ATOMOPEGRESSBLK\
+ oneof varid = SETUP_DATA.AtomOpEgressBlk,\
+ prompt = STRING_TOKEN(STR_DEV_AOP_EGRESS_BLK_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_AOP_EGRESS_BLK_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_IDOREQ\
+ oneof varid = SETUP_DATA.IDOReq,\
+ prompt = STRING_TOKEN(STR_DEV_IDO_REQ_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_IDO_REQ_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_IDOCOMPL\
+ oneof varid = SETUP_DATA.IDOCompl,\
+ prompt = STRING_TOKEN(STR_DEV_IDO_COMPL_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_IDO_COMPL_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_LTRREPORT\
+ oneof varid = SETUP_DATA.LtrReport,\
+ prompt = STRING_TOKEN(STR_DEV_LTR_REPORT_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_LTR_REPORT_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_E2ETLPPRBLK\
+ oneof varid = SETUP_DATA.E2ETlpPrBlk,\
+ prompt = STRING_TOKEN(STR_DEV_E2E_TLP_BLK_PROMPT),\
+ help = STRING_TOKEN(STR_DEV_E2E_TLP_BLK_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+
+#define PCIBUS_ONEOF_LNKSPEED\
+ oneof varid = SETUP_DATA.LnkSpeed,\
+ prompt = STRING_TOKEN(STR_LNK_SPEED_PROMPT),\
+ help = STRING_TOKEN(STR_LNK_SPEED_HELP),\
+ option text = STRING_TOKEN(STR_AUTO), value = 55, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_2_5G), value = 1, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_5_0G), value = 2, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_CLOCKPM\
+ oneof varid = SETUP_DATA.ClockPm,\
+ prompt = STRING_TOKEN(STR_LNK_CLOCK_PM_PROMPT),\
+ help = STRING_TOKEN(STR_LNK_CLOCK_PM_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_COMPLSOS\
+ oneof varid = SETUP_DATA.ComplSos,\
+ prompt = STRING_TOKEN(STR_LNK_COMPL_SOS_PROMPT),\
+ help = STRING_TOKEN(STR_LNK_COMPL_SOS_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_HWAUTOWIDTH\
+ oneof varid = SETUP_DATA.HwAutoWidth,\
+ prompt = STRING_TOKEN(STR_LNK_HW_AUTO_WIDTH_PROMPT),\
+ help = STRING_TOKEN(STR_LNK_HW_AUTO_WIDTH_HELP),\
+ option text = STRING_TOKEN(STR_ENABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_DISABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_HWAUTOSPEED\
+ oneof varid = SETUP_DATA.HwAutoSpeed,\
+ prompt = STRING_TOKEN(STR_LNK_HW_AUTO_SPEED_PROMPT),\
+ help = STRING_TOKEN(STR_LNK_HW_AUTO_SPEED_HELP),\
+ option text = STRING_TOKEN(STR_ENABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_DISABLED), value = 1, flags = RESET_REQUIRED;\
+ endoneof;
+#else
+
+#define PCIBUS_ONEOF_COMPLTIMEOUT
+#define PCIBUS_ONEOF_ARIFWD
+#define PCIBUS_ONEOF_ATOMOPREQ
+#define PCIBUS_ONEOF_ATOMOPEGRESSBLK
+#define PCIBUS_ONEOF_IDOREQ
+#define PCIBUS_ONEOF_IDOCOMPL
+#define PCIBUS_ONEOF_LTRREPORT
+#define PCIBUS_ONEOF_E2ETLPPRBLK
+#define PCIBUS_ONEOF_LNKSPEED
+#define PCIBUS_ONEOF_CLOCKPM
+#define PCIBUS_ONEOF_COMPLSOS
+#define PCIBUS_ONEOF_HWAUTOWIDTH
+#define PCIBUS_ONEOF_HWAUTOSPEED
+
+#endif//PCI_EXPRESS_GEN2_SUPPORT
+
+#else
+#define PCIBUS_ONEOF_RELAXEDORDERING
+#define PCIBUS_ONEOF_EXTTAGFIELD
+#define PCIBUS_ONEOF_NOSNOOP
+#define PCIBUS_ONEOF_MAXPAYLOAD
+#define PCIBUS_ONEOF_MAXREADREQUEST
+#define PCIBUS_ONEOF_ASPMMODE
+#define PCIBUS_ONEOF_EXTENDEDSYNCH
+#define PCIBUS_ONEOF_LNKTRRETRY
+#define PCIBUS_NUM_LNKTRTIMEOUT
+#define PCIBUS_ONEOF_LNKDISABLE
+#define PCIBUS_ONEOF_S3PCIEXPRESSSCRIPTS
+
+#endif // #if PCI_EXPRESS_SUPPORT
+
+#if AMI_HOTPLUG_INIT_SUPPORT
+#define PCIBUS_ONEOF_HOTPLUGENABLE\
+ oneof varid = SETUP_DATA.HotPlugEnable,\
+ prompt = STRING_TOKEN(STR_HOTPLUG_ENABLE_PROMPT),\
+ help = STRING_TOKEN(STR_HOTPLUG_ENABLE_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_BUSPADD\
+ oneof varid = SETUP_DATA.BusPadd,\
+ prompt = STRING_TOKEN(STR_BUS_PADD_PROMPT),\
+ help = STRING_TOKEN(STR_BUS_PADD_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_1), value = 1, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_2), value = 2, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_3), value = 3, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_4), value = 4, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_5), value = 5, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_IOPADD\
+ oneof varid = SETUP_DATA.IoPadd,\
+ prompt = STRING_TOKEN(STR_IO_PADD_PROMPT),\
+ help = STRING_TOKEN(STR_IO_PADD_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_4K), value = 4, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_8K), value = 8, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_16K), value = 16, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_32K), value = 32, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_MMIO32PADD\
+ oneof varid = SETUP_DATA.Mmio32Padd,\
+ prompt = STRING_TOKEN(STR_MMIO32_PADD_PROMPT),\
+ help = STRING_TOKEN(STR_MMIO32_PADD_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_1M), value = 1, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_2M), value = 2, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_4M), value = 4, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_8M), value = 8, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_16M), value = 16, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_32M), value = 32, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_64M), value = 64, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_128M),value = 128, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_MMIO32PFPADD\
+ oneof varid = SETUP_DATA.Mmio32PfPadd,\
+ prompt = STRING_TOKEN(STR_MMIO32PF_PADD_PROMPT),\
+ help = STRING_TOKEN(STR_MMIO32PF_PADD_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_1M), value = 1, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_2M), value = 2, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_4M), value = 4, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_8M), value = 8, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_16M), value = 16, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_32M), value = 32, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_64M), value = 64, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_128M),value = 128, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_MMIO64PADD\
+ oneof varid = SETUP_DATA.Mmio64Padd,\
+ prompt = STRING_TOKEN(STR_MMIO64_PADD_PROMPT),\
+ help = STRING_TOKEN(STR_MMIO64_PADD_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_1M), value = 1, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_2M), value = 2, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_4M), value = 4, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_8M), value = 8, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_16M), value = 16, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_32M), value = 32, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_64M), value = 64, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_128M),value = 128, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_256M), value = 256, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_512M), value = 512, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_1G), value = 1024, flags = RESET_REQUIRED;\
+ endoneof;
+
+#define PCIBUS_ONEOF_MMIO64PFPADD\
+ oneof varid = SETUP_DATA.Mmio64PfPadd,\
+ prompt = STRING_TOKEN(STR_MMIO64PF_PADD_PROMPT),\
+ help = STRING_TOKEN(STR_MMIO64PF_PADD_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_1M), value = 1, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_2M), value = 2, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_4M), value = 4, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_8M), value = 8, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_16M), value = 16, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_32M), value = 32, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_64M), value = 64, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_128M), value = 128, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_256M), value = 256, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_512M), value = 512, flags = RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_1G), value = 1024, flags = RESET_REQUIRED;\
+ endoneof;
+
+#else
+#define PCIBUS_ONEOF_HOTPLUGENABLE
+#define PCIBUS_ONEOF_BUSPADD
+#define PCIBUS_ONEOF_IOPADD
+#define PCIBUS_ONEOF_MMIO32PADD
+#define PCIBUS_ONEOF_MMIO32PFPADD
+#define PCIBUS_ONEOF_MMIO64PADD
+#define PCIBUS_ONEOF_MMIO64PFPADD
+#endif
+
+#endif //#ifdef CONTROL_DEFINITION
+
+#ifdef CONTROLS_WITH_DEFAULTS
+ // PCIBUS_FORM_PCI
+ PCIBUS_ONEOF_ABOVE4GDECODE
+ PCIBUS_ONEOF_PCILATENCY
+ PCIBUS_ONEOF_VGAPALLETE
+ PCIBUS_ONEOF_PERRENABLE
+ PCIBUS_ONEOF_SERRENABLE
+ PCIBUS_ONEOF_PCIXLATENCY
+
+ //PCIBUS_FORM_PCI_EXPRESS
+ PCIBUS_ONEOF_RELAXEDORDERING
+ PCIBUS_ONEOF_EXTTAGFIELD
+ PCIBUS_ONEOF_NOSNOOP
+ PCIBUS_ONEOF_MAXPAYLOAD
+ PCIBUS_ONEOF_MAXREADREQUEST
+ PCIBUS_ONEOF_ASPMMODE
+ PCIBUS_ONEOF_EXTENDEDSYNCH
+ PCIBUS_ONEOF_LNKTRRETRY
+ PCIBUS_NUM_LNKTRTIMEOUT
+ PCIBUS_ONEOF_LNKDISABLE
+ PCIBUS_ONEOF_S3PCIEXPRESSSCRIPTS
+
+ // PCIBUS_FORM_PCI_EXPRESS2
+#if PCI_EXPRESS_GEN2_SUPPORT
+ PCIBUS_ONEOF_COMPLTIMEOUT
+ PCIBUS_ONEOF_ARIFWD
+ PCIBUS_ONEOF_ATOMOPREQ
+ PCIBUS_ONEOF_ATOMOPEGRESSBLK
+ PCIBUS_ONEOF_IDOREQ
+ PCIBUS_ONEOF_IDOCOMPL
+ PCIBUS_ONEOF_LTRREPORT
+ PCIBUS_ONEOF_E2ETLPPRBLK
+ PCIBUS_ONEOF_LNKSPEED
+ PCIBUS_ONEOF_CLOCKPM
+ PCIBUS_ONEOF_COMPLSOS
+ PCIBUS_ONEOF_HWAUTOWIDTH
+ PCIBUS_ONEOF_HWAUTOSPEED
+#endif
+
+ // PCIBUS_FORM_PCIHP
+ PCIBUS_ONEOF_HOTPLUGENABLE
+ PCIBUS_ONEOF_BUSPADD
+ PCIBUS_ONEOF_IOPADD
+ PCIBUS_ONEOF_MMIO32PADD
+ PCIBUS_ONEOF_MMIO32PFPADD
+ PCIBUS_ONEOF_MMIO64PADD
+ PCIBUS_ONEOF_MMIO64PFPADD
+
+#endif //#ifdef CONTROLS_WITH_DEFAULTS
+
+
+#ifdef ADVANCED_FORM_SET
+
+ #ifndef SUPPRESS_GRAYOUT_ENDIF //old Core
+ #define SUPPRESS_GRAYOUT_ENDIF endif;
+ #endif
+
+ #ifdef FORM_SET_ITEM
+ // Define controls to be added to the main page of the formset
+ #endif
+
+ #ifdef FORM_SET_GOTO
+ // Define goto commands for the forms defined in this file
+ goto PCI_FORM_ID,
+ prompt = STRING_TOKEN(STR_PCI_FORM),
+ help = STRING_TOKEN(STR_PCI_FORM_HELP);
+ #endif
+
+
+#ifdef FORM_SET_FORM
+//
+// Define forms
+//
+
+//////////////////////////////////////////////////////////////
+//============================================================
+//Main PCI Form START
+//------------------------------------------------------------
+#ifndef PCIBUS_FORM_PCI
+#define PCIBUS_FORM_PCI
+//------------------------------------------------------------
+
+ form formid = AUTO_ID(PCI_FORM_ID),
+ title = STRING_TOKEN(STR_PCI_FORM);
+
+ //Display PCI Bus Driver Version.
+ text
+ help = STRING_TOKEN(STR_PCI_FORM_HELP),
+ text = STRING_TOKEN(STR_PCI_DRIVER_VER_PROMPT),
+ text = STRING_TOKEN(STR_PCI_DRIVER_VER),
+ flags = 0,
+ key = 0;
+
+ SEPARATOR
+
+#if ABOVE_4G_PCI_DECODE == 1
+ SEPARATOR
+ //Display PCI 64 bit Handling Subtitle
+ SUBTITLE(STRING_TOKEN(STR_PCI_64_SUB))
+// UINT8 Above4gDecode //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_ABOVE4GDECODE
+ endif;
+#endif
+
+
+ SEPARATOR
+
+ SUBTITLE(STRING_TOKEN(STR_PCI_SETTINGS))
+
+// UINT8 PciLatency; //[32]\ 64 \ 96 \ 128 \ 160 \ 192 \ 224 \ 248
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_PCILATENCY
+ endif;
+
+// UINT8 VgaPallete; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_VGAPALLETE
+ endif;
+
+// UINT8 PerrEnable //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_PERRENABLE
+ endif;
+
+// UINT8 SerrEnable //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_SERRENABLE
+ endif;
+
+
+#if PCI_X_SUPPORT
+ SEPARATOR
+ SUBTITLE(STRING_TOKEN(STR_PCIX))
+// UINT8 PciXLatency; // 32 \[64]\ 96 \ 128 \ 160 \ 192 \ 224 \ 248
+
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_PCIXLATENCY
+ endif;
+#endif
+
+#if PCI_EXPRESS_SUPPORT
+
+ SEPARATOR
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ goto PCI_PCIE1_FORM_ID,
+ prompt = STRING_TOKEN(STR_PCI_PCIE1_FORM),
+ help = STRING_TOKEN(STR_PCI_PCIE1_FORM_HELP);
+ endif;
+
+#if PCI_EXPRESS_GEN2_SUPPORT == 1
+ SEPARATOR
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ goto PCI_PCIE2_FORM_ID,
+ prompt = STRING_TOKEN(STR_PCI_PCIE2_FORM),
+ help = STRING_TOKEN(STR_PCI_PCIE2_FORM_HELP);
+ endif;
+#endif
+
+
+#endif
+
+#if AMI_HOTPLUG_INIT_SUPPORT
+
+ SEPARATOR
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ goto PCI_HP_FORM_ID,
+ prompt = STRING_TOKEN(STR_PCI_HP_FORM),
+ help = STRING_TOKEN(STR_PCI_HP_FORM_HELP);
+ endif;
+
+#endif
+
+endform; // PCI_FORM_ID
+//------------------------------------------------------------
+#endif //PCIBUS_FORM_PCI
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//Main PCI Form END
+//============================================================
+
+//============================================================
+//PCI Express Form START
+//------------------------------------------------------------
+#if PCI_EXPRESS_SUPPORT
+
+#ifndef PCIBUS_FORM_PCI_EXPRESS
+#define PCIBUS_FORM_PCI_EXPRESS
+
+ // Define PCIe Settings Form
+ form formid = AUTO_ID(PCI_PCIE1_FORM_ID),
+ title = STRING_TOKEN(STR_PCI_PCIE1_FORM);
+
+//PCI Express Device Settings: [] - default
+ SUBTITLE(STRING_TOKEN(STR_PCIE_DEVICE))
+
+// UINT8 RelaxedOrdering; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_RELAXEDORDERING
+ endif;
+// UINT8 ExtTagField; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_EXTTAGFIELD
+ endif;
+
+// UINT8 NoSnoop; // Disable \[Enable]
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_NOSNOOP
+ endif;
+
+
+// UINT8 MaxPayload //[Auto]\ 128 \ 256 \ 512 \ 1024 \ 2048 \ 4096 (in bytes)
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_MAXPAYLOAD
+ endif;
+
+
+// UINT8 MaxReadRequest //[Auto]\ 128 \ 256 \ 512 \ 1024 \ 2048 \ 4096 (in bytes)
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_MAXREADREQUEST
+ endif;
+
+//PCI Express Link settings: [] - default
+ SEPARATOR
+ SUBTITLE(STRING_TOKEN(STR_PCIE_LINK))
+// UINT8 AspmMode; //[Disabled]\ Auto \ Force L0
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_ASPMMODE
+ endif;
+
+ SUBTITLE(STRING_TOKEN(STR_PCIE_LINK_WARN3))
+ SUBTITLE(STRING_TOKEN(STR_PCIE_LINK_WARN4))
+
+
+// UINT8 ExtendedSynch //[Disable]\ Enable
+
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_EXTENDEDSYNCH
+ endif;
+
+ SEPARATOR
+// UINT8 LnkTrRetry; //[Disable]\ 2 \ 3 \ 5
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_LNKTRRETRY
+ endif;
+
+// UINT8 LnkTrTimeout; //[10...1000] uS
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_NUM_LNKTRTIMEOUT
+ endif;
+
+// UINT8 EmptyLnkDisable //[Enable]\ Disable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_LNKDISABLE
+ endif;
+// UINT8 S3PciExpressScripts; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_S3PCIEXPRESSSCRIPTS
+ endif;
+
+ endform; //PCI_PCIE2_FORM_ID
+#endif //PCIBUS_FORM_PCI_EXPRESS
+//------------------------------------------------------------
+//PCI Express Form END
+//============================================================
+
+
+#if PCI_EXPRESS_GEN2_SUPPORT == 1
+//============================================================
+//PCI Express Gen II Form START
+//------------------------------------------------------------
+
+#ifndef PCIBUS_FORM_PCI_EXPRESS2
+#define PCIBUS_FORM_PCI_EXPRESS2
+
+ form formid = AUTO_ID(PCI_PCIE2_FORM_ID),
+ title = STRING_TOKEN(STR_PCI_PCIE2_FORM);
+
+ SUBTITLE(STRING_TOKEN(STR_PCIE2_DEVICE))
+// UINT8 ComplTimeOut; //[Disable]\ Auto \ Default
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_COMPLTIMEOUT
+ endif;
+
+// UINT8 AriFwd; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_ARIFWD
+ endif;
+
+// UINT8 AtomOpReq; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_ATOMOPREQ
+ endif;
+
+// UINT8 AtomOpEgressBlk; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_ATOMOPEGRESSBLK
+ endif;
+
+// UINT8 IDOReq; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_IDOREQ
+ endif;
+
+// UINT8 IDOCompl; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_IDOCOMPL
+ endif;
+
+// UINT8 LtrReport; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_LTRREPORT
+ endif;
+
+
+// UINT8 E2ETlpPrBlk; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_E2ETLPPRBLK
+ endif;
+//============================================================
+
+ SEPARATOR
+ SUBTITLE(STRING_TOKEN(STR_PCIE2_LINK))
+//Gen2 Link Settings
+// UINT8 LnkSpeed; //[Auto]\ Force to 2.5 GHz
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_LNKSPEED
+ endif;
+
+
+// UINT8 ComplSos; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_CLOCKPM
+ endif;
+
+
+// UINT8 ComplSos; //[Disable]\ Enable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_COMPLSOS
+ endif;
+
+// UINT8 HwAutoWidth; //[Enable]\ Disable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_HWAUTOWIDTH
+ endif;
+
+// UINT8 HwAutoSpeed; //[Enable]\ Disable
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_HWAUTOSPEED
+ endif;
+ endform; //PCIBUS_FORM_PCI_EXPRESS2
+
+#endif//PCIBUS_FORM_PCI_EXPRESS2
+
+#endif//PCI_EXPRESS_GEN2_SUPPORT
+
+#endif//PCI_EXPRESS_SUPPORT
+//PCI Express Form END
+//-----------------------------------------------------------
+
+//-----------------------------------------------------------
+//Hotplug Form
+#if AMI_HOTPLUG_INIT_SUPPORT == 1
+ // Define HOTPLUG form
+
+#ifndef PCIBUS_FORM_PCIHP
+#define PCIBUS_FORM_PCIHP
+
+ form formid = AUTO_ID(PCI_HP_FORM_ID),
+ title = STRING_TOKEN(STR_PCI_HP_FORM);
+
+ SEPARATOR
+ SUBTITLE(STRING_TOKEN(STR_PCI_HP_FORM))
+ SEPARATOR
+
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_HOTPLUGENABLE
+ endif;
+
+ SEPARATOR
+
+#if PCI_FIXED_BUS_ASSIGNMENT == 0
+ suppressif ideqval SETUP_DATA.HotPlugEnable == 0;
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_BUSPADD
+ SUPPRESS_GRAYOUT_ENDIF
+#endif
+
+ //UINT8 IoPadd; // Disable \[ 4K]\ 8K \ 16K \ 32K
+ suppressif ideqval SETUP_DATA.HotPlugEnable == 0;
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_IOPADD
+ SUPPRESS_GRAYOUT_ENDIF
+
+ //Following fields stored in units of MB
+ //UINT8 Mmio32Padd; // Disable \ 1M \ 2M \4M \ 8M \[16M]\ 32M \ 64M \128M
+ suppressif ideqval SETUP_DATA.HotPlugEnable == 0;
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_MMIO32PADD
+ SUPPRESS_GRAYOUT_ENDIF
+
+ //UINT8 Mmio32PfPadd; // Disable \ 1M \ 4M \ 8M \[16M]\ 32M \ 64M \128M
+ suppressif ideqval SETUP_DATA.HotPlugEnable == 0;
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_MMIO32PFPADD
+ SUPPRESS_GRAYOUT_ENDIF
+
+
+//-----------------------------------------------------------
+#if ABOVE_4G_PCI_DECODE == 1
+
+ //for 512 and 1G 1 byte storege is not enough...
+ //UINT16 Mmio64Padd; //[Disable]\ 1M \ 4M \ 8M \ 16M \ 32M \ 64M \ 128M \ 256M \ 512M \ 1G
+ suppressif ideqval SETUP_DATA.HotPlugEnable == 0 OR
+ ideqval SETUP_DATA.Above4gDecode == 0;
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_MMIO64PADD
+ SUPPRESS_GRAYOUT_ENDIF
+
+ //UINT16 Mmio64PfPadd; //[Disable]\ 1M \ 4M \ 8M \ 16M \ 32M \ 64M \ 128M \ 256M \ 512M \ 1G
+ suppressif ideqval SETUP_DATA.HotPlugEnable == 0 OR
+ ideqval SETUP_DATA.Above4gDecode == 0;
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ PCIBUS_ONEOF_MMIO64PFPADD
+ SUPPRESS_GRAYOUT_ENDIF
+
+#endif //ABOVE_4G_PCI_DECODE
+
+ endform; //PCI_HP_FORM_ID
+#endif // #ifndef PCIBUS_FORM_PCIHP
+
+#endif //HOTPLUG_SUPPORT
+//-----------------------------------------------------------
+
+//-----------------------------------------------------------
+#endif // FORM_SET_FORM
+
+//-----------------------------------------------------------
+#endif // ADVANCED_FORM_SET
+
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************