slimbootloader/Platform/CoffeelakeBoardPkg/CfgData/Template_CfgData.yaml

233 lines
12 KiB
YAML

## @file
#
# Slim Bootloader CFGDATA Template File.
#
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
CFGHDR_TMPL: >
- CfgHeader :
length : 0x04
value : {0x01:2b, ((_LENGTH_$(1)_)/4):10b, $(3):4b, $(4):4b, $(2):12b}
- CondValue :
length : 0x04
value : 0x00000000
FEATURES_TMPL: >
- $ACTION :
page : PLT_FEATURES:FEATURES:"Features"
- $ACTION :
page : PLT_FEATURES
- Features :
- $STRUCT :
name : PlatformFeatures
struct : FEATURES_DATA
length : 0x04
value : $(1)
- Acpi :
name : ACPI Enable
type : Combo
option : $EN_DIS
help : >
Enable/Disable ACPI feature. 1:ACPI Enabled, 0:ACPI Disabled
length : 1b
- MeasuredBoot :
name : MeasuredBoot Enable
type : Combo
option : $EN_DIS
help : >
Enable/Disable MeasuredBoot feature. 1:MeasuredBoot Enabled, 0:MeasuredBoot Disabled
length : 1b
- Vt :
name : VT Enable
type : Combo
option : $EN_DIS
help : >
Enable/Disable Vt-x/Vt-d feature. 1:VT Enabled, 0:VT Disabled
length : 1b
- eMMCTuning :
name : eMMC Tuning Enable
type : Combo
option : $EN_DIS
help : >
Enable/Disable EMMC feature, if disabled get the DLLs from DLL config data
length : 1b
- DciDebug :
name : DCI Debug Enable
type : Combo
option : $EN_DIS
help : >
Enable/Disable DCI Debug feature. 1:DCI Debug Enabled, 0:DCI Debug Disabled
length : 1b
- Rsvd1 :
name : Reserved
type : Reserved
length : 27b
GPIO_TMPL: >
- $ACTION :
page : GIO_$(1):GIO:"GPIO $(1)"
- $ACTION :
page : GIO_$(1)
- GpioPinConfig0_$(1) :
- $STRUCT :
name : GPIO $(1) PIN Config0
type : EditNum, HEX, (0x00000000,0xFFFFFFFF)
help : >
GPIO $(1) PIN Configuration
length : 0x04
value : $(2)
- GPIOPADMode_$(1) :
name : PadMode
type : Combo
option : 0x0:Hardware Default, 0x1:GPIO control of the pad, 0x3:Native function 1 < $(4) >, 0x5:Native function 2 < $(5) >, 0x7:Native function 3 < $(6) >, 0x9:Native function 4 < $(7) >
help : >
GPIO PAD Mode. If GPIO is set to one of NativeX modes then following settings are not applicable and can be skipped:-
Interrupt related settings, Host Software Ownership, Output/Input enabling/disabling, Output lock
condition : $(COND_GPIO_SKIP)
length : 5b
- GPIOHostSoftPadOwn_$(1) :
name : HostSoftPadOwn
type : Combo
option : 0x0:Host Ownership Default(Leave ownership value unmodified), 0x1:Host ownership to ACPI, 0x3:Host ownership to GPIO Driver mode
help : >
GPIO Host Software Pad Ownership. This setting affects GPIO interrupt status registers. Depending on chosen ownership
some GPIO Interrupt status register get updated and other masked:-
- HOST ownership to ACPI - Use this setting if pad is not going to be used by GPIO OS driver.
If GPIO is configured to generate SCI/SMI/NMI then this setting must be used for interrupts to work.
- HOST ownership to GPIO Driver mode - Use this setting only if GPIO pad should be controlled by GPIO OS Driver.
GPIO OS Driver will be able to control the pad if appropriate entry in ACPI exists.
condition : $(COND_GPIO_SKIP)
length : 2b
- GPIODirection_$(1) :
name : Direction
type : Combo
option : 0x0:DirDefault, 0x9:DirInOut, 0x19:DirInInvOut, 0xB:DirIn, 0x1B:DirInInv, 0x5:DirOut, 0x7:DirNone
help : >
GPIO Host Software Pad Ownership:
- DirDefault = Leave pad direction setting unmodified, - DirInOut = Set pad for both output and input,
- DirInInvOut = Set pad for both output and input with inversion, - DirIn = Set pad for input only,
- DirInInv = Set pad for input with inversion, - DirOut = Set pad for output only,
- DirNone = Disable both output and input.
condition : $(COND_GPIO_SKIP)
length : 6b
- GPIOOutputState_$(1) :
name : OutputState
type : Combo
option : 0x0:OutDefault, 0x1:OutLow, 0x3:OutHigh
help : >
GPIO Output State.This field is relevant only if output is enabled:-
- OutDefault = Leave output value unmodified, - OutLow = Set output to low, - OutHigh = Set output to high
condition : $(COND_GPIO_SKIP)
length : 2b
- GPIOInterruptConfig_$(1) :
name : InterruptConfig
type : Combo
option : >
0x0:IntDefault , 0x1:IntDisable, 0x3:IntNmi , 0x5:IntSmi, 0x9:IntSci, 0x11:IntApic, 0x20:IntLevel, 0x60:IntEdge, 0xA0:IntLvlEdgDis, 0xE0:IntBothEdge,
0x31:IntLevel | IntApic, 0x29:IntLevel | IntSci, 0x25:IntLevel | IntSmi, 0x69:IntEdge | IntSci, 0x71:IntEdge | IntApic, 0x65:IntEdge | IntSmi, 0x60:IntEdge | IntDefault,
0xA1:IntLvlEdgDis | IntDisable
help : >
GPIO Interrupt Configuration - This setting is applicable only if pad is in GPIO mode and has input enabled.
GPIO_INT_CONFIG allows to choose which interrupt is generated (IOxAPIC/SCI/SMI/NMI) and how it is triggered (edge or level).
Refer to PADCFG_DW0 register description in EDS for details on this settings. Field from GpioIntNmi to GpioIntApic can be OR'ed with
GpioIntLevel to GpioIntBothEdge to describe an interrupt e.g. GpioIntApic | GpioIntLevel.
If GPIO is set to cause an SCI then also GPI_GPE_EN is enabled for this pad.
If GPIO is set to cause an NMI then also GPI_NMI_EN is enabled for this pad.
Not all GPIO are capable of generating an SMI or NMI interrupt.
When routing GPIO to cause an IOxAPIC interrupt care must be taken, as this interrupt cannot be shared and its IRQn number is not configurable.
If GPIO is under GPIO OS driver control and appropriate ACPI GpioInt descriptor exist then use only trigger type setting (from GpioIntLevel to GpioIntBothEdge).
This type of GPIO Driver interrupt doesn't have any additional routing setting required to be set by BIOS. Interrupt is handled by GPIO OS Driver.
- IntDefault = Leave value of interrupt routing unmodified, - IntDisable = Disable IOxAPIC/SCI/SMI/NMI interrupt generation,
- IntNmi = Enable NMI interrupt only, - IntSmi = Enable SMI interrupt only, - IntSci = Enable SCI interrupt only, - IntApic = Enable IOxAPIC interrupt only,
- IntLevel = Set interrupt as level triggered, - IntEdge = Set interrupt as edge triggered, - IntLvlEdgDis = Disable interrupt trigger, - IntBothEdge = Set interrupt as both edge triggered
condition : $(COND_GPIO_SKIP)
length : 9b
- GPIOResetConfig_$(1) :
name : Power/ResetConfig
type : Combo
option : 0x0:ResetDefault, 0x1:ResetResume, 0x3:HostDeepReset, 0x5:PlatformReset, 0x7:DswReset
help : >
GPIO Power Configuration. This allows to set GPIO Reset type which will be used to reset certain GPIO settings.
- ResetDefault = Leave value of pad reset unmodified, - ResumeReset = Pad setting will reset on DeepSx transition and G3,
- HostDeepReset = Pad settings will reset on:Warm/Cold/Global reset,DeepSx transition,G3,
- PlatformReset = Pad settings will reset on:S3/S4/S5 transition, Warm/Cold/Global reset, DeepSx transition, G3
- DswReset = Pad settings will reset on G3
condition : $(COND_GPIO_SKIP)
length : 8b
- GpioPinConfig1_$(1) :
- $STRUCT :
name : GPIO $(1) PIN Config1
type : EditNum, HEX, (0x00000000,0xFFFFFFFF)
help : >
GPIO $(1) PIN Configuration
length : 0x04
value : $(3)
- GPIOElectricalCfg_$(1) :
name : GPIO ElectricalCfg
type : Combo
option : 0x0:TermDefault, 0x1:TermNone, 0x5:TermNone, 0x9:TermWpd20K, 0x13:TermWpu1K, 0x17:TermWpu2K, 0x15:TermWpu5K, 0x19:TermWpu20K, 0x1B:TermWpu1K2K, 0x1F:TermNative, 0x20:NoTolerance1v8, 0x60:Tolerance1v8
help : >
GPIO Electrical Configuration. Set GPIO termination and Pad Tolerance.(applicable only for some pads):-
- TermDefault = Leave termination setting unmodified, - TermNone = None, - TermWpd5K = 5kOhm weak pull-down, - TermWpd20K = 20kOhm weak pull-down,
- TermWpu1K = 1kOhm weak pull-up, - TermWpu2K = 2kOhm weak pull-up, - TermWpu5K = 5kOhm weak pull-up, - TermWpu20K = 20kOhm weak pull-up, - TermWpu1K2K = 1kOhm & 2kOhm weak pull-up,
- TermNative = Native function. This setting is applicable only to some native modes,
- NoTolerance1v8 = Disable 1.8V pad tolerance, Tolerance1v8 = Enable 1.8V pad tolerance
condition : $(COND_GPIO_SKIP)
length : 9b
- GPIOLockConfig_$(1) :
name : LockConfig
type : Combo
option : 0x0:LockDefault, 0x1:PadConfigLock, 0x3:PadConfigUnlock, 0x5:PadLock , 0xC:OutputStateUnlock, 0xF:PadUnlock
help : >
GPIO Lock Configuration.
- LockDefault = Leave value of pad as-is, - PadConfigLock = Lock Pad configuration,
- PadConfigUnlock = Leave Pad configuration unlocked, - PadLock = Lock both Pad configuration and output control,
- OutputStateUnlock = Leave Pad output control unlocked, PadUnlock = Leave both Pad configuration and output control unlocked
condition : $(COND_GPIO_SKIP)
length : 4b
- Reserved1_$(1) :
name : Reserved1
type : Reserved
length : 3b
- PadNum_$(1) :
name : PadNum
type : Reserved
length : 8b
- GrpIdx_$(1) :
name : GrpIdx
type : Reserved
length : 5b
- Reserved2_$(1) :
name : Reserved2
type : Reserved
length : 1b
- Hide_$(1) :
name : Hide
type : Reserved
length : 1b
- GPIOSkip_$(1) :
name : GPIO Skip
type : Combo
option : $EN_DIS
help : >
ENABLE- Skip GPIO PAD programming (keep the defaults). DISABLE- Program GPIO PAD configuration.
order : 0000.0000
length : 1b
- !include Platform/CommonBoardPkg/CfgData/Template_BootOption.yaml
- !include Template_PcieRp.yaml
- !include Template_Spd.yaml