12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766 |
- /** @file
- Header file for GOP Configuration Library
- Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef _GOP_CONFIG_LIB_H_
- #define _GOP_CONFIG_LIB_H_
- #include <Library/DebugLib.h>
- #include <Uefi/UefiBaseType.h>
- #pragma pack(1)
- #define GOP_CONFIG_VBT_REVISION 0xC1
- #define ChildStruct_MAX 8 ///< Maximum number of child structures in VBT
- #define CompressionStruct_MAX 2 ///< Maximum number of compression parameter structures in VBT.
- #define NO_DEVICE 0x00 ///< Defines a null display class.
- #define DISPLAY_PORT_ONLY 0x68C6 ///< Defines a display class of Integrated Display Port Only
- #define DISPLAY_PORT_HDMI_DVI_COMPATIBLE 0x60D6 ///< Defines a display class of Integrated DisplayPort with HDMI/DVI Compatible
- #define DISPLAY_PORT_DVI_COMPATIBLE 0x68D6 ///< Defines a display class of Integrated DisplayPort with DVI Compatible
- #define HDMI_DVI 0x60D2 ///< Defines a display class of Integrated HDMI/DVI
- #define DVI_ONLY 0x68D2 ///< Defines a display class of Integrated DVI Only
- #define MIPI_ONLY 0x1400
- #define eDP_ONLY 0x1806 ///< Defines a display class of eDP only
- #define AUX_CHANNEL_A 0x40
- #define AUX_CHANNEL_B 0x10
- #define AUX_CHANNEL_C 0x20
- #define AUX_CHANNEL_D 0x30
- #define NO_PORT 0x00 ///< Defines a output port NA
- #define HDMI_B 0x01 ///< Defines a output port HDMI-B
- #define HDMI_C 0x02 ///< Defines a output port HDMI-C
- #define HDMI_D 0x03 ///< Defines a output port HDMI-D
- #define HDMI_F 0x0E ///< Defines a output port HDMI-D
- #define DISPLAY_PORT_A 0x0A ///< Defines a output port DisplayPort A
- #define DISPLAY_PORT_B 0x07 ///< Defines a output port DisplayPort B
- #define DISPLAY_PORT_C 0x08 ///< Defines a output port DisplayPort C
- #define DISPLAY_PORT_D 0x09 ///< Defines a output port DisplayPort D
- #define DISPLAY_PORT_E 0x0B ///< Defines a output port DisplayPort E
- #define DISPLAY_PORT_F 0x0D ///< Defines a output port DisplayPort F
- #define PORT_MIPI_A 0x15 ///< Mipi Port A
- #define PORT_MIPI_C 0x17 ///< Mipi Port C
- typedef struct {
- UINT16 Dclk; // DClk in 10 KHz
- UINT8 HActive; // HActive [7:0]
- UINT8 HBlank; // HBlank [7:0]
- UINT8 HA_HB_UpperNibble; // Upper nibble = HActive [11:8]
- UINT8 VActive; // VActive [7:0]
- UINT8 VBlank; // VBlank [7:0]
- UINT8 VA_VB_UpperNibble; // Upper nibble = VActive [11:8]
- UINT8 HSyncOffset; // HSync offset from blank start LSB
- UINT8 HPulseWidth; // HSync Pulse Width, LSB
- UINT8 VsyncOffset_VpulseWidth_LSB; // Bits 7:4 = VSync offset [3:0]
- UINT8 HSO_HSPW_V_High; // Bits 7:6 = HSync Offset [9:8]
- UINT8 HorImageSize; // Horizontal Image Size
- UINT8 VerImageSize; // Vertical Image Size
- UINT8 HIS_VIS_High; // UpperLmtH_V Upper limits of H. and V. image size
- UINT8 HBorder; // Horizontal Border
- UINT8 VBorder; // Vertical Border
- UINT8 Flags; // Flags
- } DTD_STRUCTURE; // 18 Bytes
- typedef struct {
- UINT16 XRes;
- UINT16 YRes;
- UINT32 SerialNo;
- UINT8 Week;
- UINT8 Year;
- } PID_DATA; // 10 Bytes
- //
- // VBT Header
- //
- /**
- This structure defines the VBT Header.
- **/
- typedef struct {
- UINT8 Product_String[20]; ///< "$VBT_Cannonlake" is the product string
- UINT16 Version_Num; ///< Defines the VBT Header version number.
- UINT16 Header_Size; ///< Defines the size of VBT Header.
- UINT16 Table_Size; ///< Defines the size of complete VBT.
- UINT8 Checksum; ///< Defines the checksum of entire VBT
- UINT8 Reserved1; ///< Reserved field 1 of 1 byte.
- UINT32 Bios_Data_Offset; ///< Defines the offset of VBT Data block.
- UINT32 Aim_Data_Offset[4]; ///< 4 reserved pointers to VBT data blocks.
- } VBT_HEADER;
- /**
- This structure defines the VBT BIOS Data Block Header
- **/
- typedef struct {
- UINT8 BDB_Signature[16]; ///< Defines the Bios Data Block signature "BIOS_DATA_BLOCK".
- UINT16 BDB_Version; ///< Defines the VBT (data) version.
- UINT16 BDB_Header_Size; ///< Defines the size of VBT Bios data block header.
- UINT16 BDB_Size; ///< Defines the size of Bios data block.
- } VBT_BIOS_DATA_HEADER;
- /**
- This structure defines the BMP Signon Message and Copyright Message Structure
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines Block ID : 254
- UINT16 BlockSize; ///< Defines the size of BMP Signon block.
- UINT16 Bmp_BIOS_Size; ///< Defines the BIOS size 32k/48k/64k.
- UINT8 BIOS_Type; ///< Defines the type of BIOS desktop or mobile.
- UINT8 RelStatus; ///< Defines the release status of the current GOP driver.
- UINT8 BIOS_HW; ///< Defines the Hardware i.e. Cannonlake.
- UINT8 INT_HW; ///< Defines the integrated hardware supported eDP/HDMI/DP.
- UINT8 Build_Number[4]; ///< Defines the build number string.
- UINT8 SignOn[155]; ///< Defines the sign on message.
- UINT8 CopyRight[61]; ///< Defines the copyright message.
- } BMP_STRUCTURE_SIGNON;
- /**
- This structure defines the BMP General Bits
- **/
- typedef struct {
- UINT16 bmp_BIOS_CS; ///< Defines the start of BIOS code segment
- UINT8 bmp_DOS_Boot_Mode; ///< Defines the mode number to set when DOS is boot
- UINT8 bmp_BW_Percent; ///< Set percentage of total memory BW
- UINT8 bmp_Popup_Mem_Size; ///< Default Popup memory size in KB
- UINT8 bmp_Resize_PCI_BIOS; ///< BIOS size granularity in 0.5 KB
- UINT8 Switch_CRT_To_DDC2; ///< Obsolete field: Is the CRT already switched to DDC2
- UINT8 bmp_Allow_Config; ///< Bit 1 : 1, Enable aspect ratio for DOS
- ///< Bit 0 : 1, Allow boot to DVI even if it is not attached.
- } BMPGEN;
- /**
- This structure defines Block 254 (BMP structure)
- **/
- typedef struct {
- BMP_STRUCTURE_SIGNON bmp_Signon_Message; ///< Instance of signon and copyright message structure
- BMPGEN bmp_General_Bytes; ///< Instance of BMP General Bits structure.
- } BLOCK254_BMP_Structure;
- /**
- This structure defines Block 1 (General Bytes Definitions)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the Block ID (1)
- UINT16 BlockSize; ///< Defines the size of General bytes definition block.
- /**
- BMP General Bit Definitions 1\n
- Bit 7 = DVO A color flip bit
- = 0, No DVO A color flip
- = 1, Flip DVO A color
- Bits 6:4 = Clear screen (CLS) after Signon
- = 000, No CLS
- = 001, 0.5 sec pause and then CLS
- = 010, 1.0 sec pause and then CLS
- = 011, 1.5 sec pause and then CLS
- = 100, 2.0 sec pause and then CLS
- = 101, 2.5 sec pause and then CLS
- = 110, 3.0 sec pause and then CLS
- = 111, 3.5 sec pause and then CLS
- Bit 3 = 1 Enable Display Signon
- Bit 2 = 1 Enable Flex-aim Support
- Bits 1:0 = Flat panel fitting enabling
- = 00, Centering
- = 01, Reserved
- = 10, Aspect scaling
- = 11, Fullscreen
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 PanelFitterEnabling:2;
- UINT8 FlexAimSupportEnable:1;
- UINT8 DisplaySignonEnable:1;
- UINT8 ClearScreenTime:3;
- UINT8 DvoAColorFlipEnable:1;
- } Bits;
- } bmp_Bits_1;
- /**
- BMP General Bit Definitions\n
- Bit 7 = Hot plug support
- = 0, Hot plug disabled
- = 1, Hot plug enabled
- Bit 6 = Dynamic CD clock feature
- = 0, Dynamic CD clock feature is disabled
- = 1, Dynamic CD clock feature is enabled
- Bit 5 = Underscan support for VGA timings
- Bit 4 = Disable SSC in Dual Display Twin Mode. (This field is obsolete now. Kept for VBIOS only.)
- = 0, No
- = 1, Yes
- Bit 3 = LFP power state on override by 5f64h,08h
- = 0, No Override
- = 1, Override
- Bit 2 = Internal LVDS SSC frequency. (This field is obsolete now. Kept for VBIOS only.)
- = 0, 96/120MHz
- = 1, 100MHz
- Bit 1 = internal LVDS SSC (Spread Spectrum Clock) (This field is obsolete now. Kept for VBIOS only.)
- = 0, Disabled
- = 1, Enabled
- Bit 0 = KvmrSessionEnable.
- = 0, Disabled
- = 1, Enabled
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 KvmrSessionEnable:1;
- UINT8 Reserved_1:5;
- UINT8 DynamicCdClockEnable:1;
- UINT8 HotPlugEnable:1;
- } Bits;
- } bmp_Bits_2;
- /**
- BMP General Bit Definitions 3\n
- Bit 7 = Ignore strap status
- = 0 Do not ignore
- = 1 Ignore
- Bit 6 = Panel Timing algorithm
- = 0 Preferred timings
- = 1 Best fit timings
- Bit 5 Copy iLFP DTD to SDVO LVDS DTD
- = 0 Don't copy DTD
- = 1 Copy DTD to
- Bit 4 = VBIOS normal/extd. DT mode
- = 0 Normal mode
- = 1 DUAL mode
- Bit 3 = FDI RX Polarity
- = 0 Normal
- = 1 Inverted
- Bit 2 = Enable 180 Degree Rotation
- = 0 Disable
- = 1 Enable
- Bit 1 = Single DVI-I connector for CRT and DVI display: Obsolete field
- = 0 Disabled
- = 1 Enabled
- Bit 0 = Smooth Vision
- = 0 Disabled
- = 1 Enabled
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 Reserved1:1;
- UINT8 SingleDviiCrtConnector:1;
- UINT8 Enable180DegRotation:1;
- UINT8 FdiRxPolarity:1;
- UINT8 Reserved2:4;
- } Bits;
- } bmp_Bits_3;
- UINT8 Reserved; ///< Reserved field. It was Legacy_Monitor_Detect in previous platforms.
- /**
- Integrated display device support\n
- Bits 7:6 = Reserved
- Bit 5 = DP SSC Dongle Enable/Disable
- Bit 4 = DP SSC Frequency. (This field is obsolete now. Kept for VBIOS only.)
- = 0, 96 MHz
- = 1, 100 MHz
- Bit 3 = DP SSC Enable
- = 0, Disable
- = 1, Enable
- Bit 2 = Integrated EFP support
- = 0, Disable
- = 1, Enable
- Bit 1 = Integrated TV support. (This field is obsolete now. Kept for VBIOS only.)
- = 0, Disable
- = 1, Enable
- Bit 0 = Integrated CRT support: Obsolete field
- = 0, Disable
- = 1, Enable
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 CrtSupported:1;
- UINT8 TvSupported:1;
- UINT8 EfpSupported:1;
- UINT8 DpSscEnable:1;
- UINT8 DpSscFrequency:1;
- UINT8 DpDongleSscEnable:1;
- UINT8 Reserved1:2;
- } Bits;
- } Int_Displays_Support;
- } VBT_GENERAL1_INFO;
- /**
- This defines the Structure of PRD Boot Table Entry
- **/
- typedef struct {
- UINT8 AttachBits; ///< Bitmap representing the displays attached currently.
- UINT8 BootDev_PipeA; ///< Bitmap representing the display to boot on Pipe A.
- UINT8 BootDev_PipeB; ///< Bitmap representing the display to boot on Pipe B.
- } PRD_TABLE;
- /**
- This defines the structure of Block 254 (PRD Boot Table/Child Device List)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the Block ID (254)
- UINT16 BlockSize; ///< Defines the size of Block 254
- PRD_TABLE PRDTable[16]; ///< Defines the Child device list for enumerating child handles.
- UINT16 PRD_Boot_Table_Number_Of_Entries; ///< Number of entries in child device list.
- } PRD_BOOT_TABLE;
- /**
- This defines the Structure for a CHILD_STRUCT (used for all the displays).
- **/
- typedef struct {
- UINT16 DeviceHandle; ///< Unique ID indicating the group of display device (LFP/EFP1/EFP2/EFP3/EFP4).
- UINT16 DeviceClass; ///< Indicates the class of display device.
- UINT8 I2CSpeed; ///< Defines the I2C speed to be used for I2C transaction.
- /**
- Defines the DP on board redriver configuration.
- BIT[7] : Reserved
- BIT[6] : Is On Board DP Redriver Present
- 0 : No
- 1 : Yes
- BIT[5:3] : On Board Redriver VSwing Level
- 0 : Level 0
- 1 : Level 1
- 2 : Level 2
- 3 : Level 3
- Others : Reserved
- BIT[2:0] : On Board Redriver PreEmph Level
- 0 : Level 0
- 1 : Level 1
- 2 : Level 2
- 3 : Level 3
- Others : Reserved
- **/
- union{
- UINT8 Value;
- struct {
- UINT8 OnBoardPreEmphLevel:3;
- UINT8 OnBoardVSwingLevel:3;
- UINT8 OnBoardRedriverPresent:1;
- UINT8 Reserved:1;
- } Bits;
- } DpOnBoardRedriver;
- /**
- Defines the DP on dock redriver configuration.
- BIT[7] : Reserved
- BIT[6] : Is On Dock DP Redriver Present
- 0 : No
- 1 : Yes
- BIT[5:3] : On Dock Redriver VSwing Level
- 0 : Level 0
- 1 : Level 1
- 2 : Level 2
- 3 : Level 3
- Others : Reserved
- BIT[2:0] : On Dock Redriver PreEmph Level
- 0 : Level 0
- 1 : Level 1
- 2 : Level 2
- 3 : Level 3
- Others : Reserved
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 OnDockPreEmphLevel:3;
- UINT8 OnDockVSwingLevel:3;
- UINT8 OnDockRedriverPresent:1;
- UINT8 Reserved:1;
- } Bits;
- } DpOnDockRedriver;
- /**
- Defines the HDMI level shifter configuration.
- BIT[7:5] : Hdmi Maximum data rate
- BIT[4:0] : Hdmi Level shifter value
- **/
- union{
- UINT8 Value;
- struct {
- UINT8 HdmiLevelShifterValue:5;
- UINT8 HdmiMaxDataRateBits:3;
- } Bits;
- } HdmiLevelShifterConfig;
- UINT16 EFPDTDBufferPointer; ///< Pointer to the DTD timing to be used in case of edidless EFP.
- /**
- Defines the first set of flags.
- BIT[7-4] : Reserved
- BIT[3] : Dual pipe ganged display support
- 0 : Display uses a single pipe/port
- 1 : Display uses two distinct pipes/ports.
- BIT[2] : Compression Method Select
- 0 : Compression using picture parameter set (PPS)
- 1 : Compression using Capability parameter set (CPS)
- BIT[1] : Compression enable/disable for this display.
- 0 : Disabled
- 1 : Enabled
- BIT[0] : EDID less EFP Enable
- 0 : Enable support for EDID less EFP.
- 1 : Disable support for EDID less EFP.
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 EdidlessEfpEnable:1;
- UINT8 CompressionEnable:1;
- UINT8 CompressionMethod:1;
- UINT8 IsDualPortEnabled:1;
- UINT8 Reserved:4;
- } Bits;
- } Flags0;
- /**
- Defines the compression index field for the display.
- BITS[7-4] : Reserved
- BITS[3-0] : Compression Structure index in the block 55.
- 0x0 : Index 0 in block 55
- 0x1 : Index 1 in block 55
- 0xF : Not Applicable.
- Others : Reserved
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 IndexInBlock55:4;
- UINT8 Reserved:4;
- } Bits;
- } CompressionStructureIndex;
- UINT8 SlaveDdiPort; ///< The DVO port number of slave DDI to be used in case Flags0[3] = 1.
- UINT8 Reserved_1; ///< Reserved and might be used in other platforms.
- UINT16 AddInOffset; ///< Obsolete field.
- UINT8 DVOPort; ///< Specifies the port number of the display device represented in the device class.
- UINT8 I2CBus; ///< Specifies the GMBUS or I2C pin pair for add in card.
- UINT8 SlaveAddr; ///< Specifies the I2C address of the add in card.
- UINT8 DDCBus; ///< Specifies the GMBUS pin pair for EDID read.
- UINT16 TimingInfoPtr; ///< Pointer to the buffer where VBIOS stores the EDID of device.
- UINT8 DVOCfg; ///< Obsolete field.
- /**
- Flags 1\n
- Bits 7:5 : Reserved
- Bit 4 : HPD Sense Invert
- 0 : Invert not required (default)
- 1 : Invert required
- Bit 3 : IBoost feature enable/disable.
- 0 : IBoost feature is disabled.
- 1 : IBoost feature is enabled.
- Bit 2 : Hdmi 2.0 Motherboard Downsuppotred options
- 0 : Motherboard Down chip not supported
- 1 : Motherboard Down Chip Supported on the Board
- Bit 1 : Lane Reversal feature.
- 0 : Disable
- 1 : Enable
- Bit 0 : DP/HDMI routed to dock.
- 0 : Disable
- 1 : Enable
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 DockablePort:1;
- UINT8 EnableLaneReversal:1;
- UINT8 OnBoardLsPconDonglePresent:1;
- UINT8 IBoostEnable:1;
- UINT8 IsHpdInverted:1;
- UINT8 Reserved:3;
- } Bits;
- } Flags_1;
- UINT8 Compatibility; ///< Compatibility is used in VBIOS only. It was used before device class was defined.
- UINT8 AUX_Channel; ///< Specifies the aux channel to be used for display port devices.
- UINT8 Dongle_Detect; ///< Indicates whether dongle detect is enabled or not.
- UINT8 Capabilities; ///< Bits 1-0 indicate pipe capabilities whether display can be used on one pipe or both the pipes.
- UINT8 DVOWiring; ///< Obsolete field.
- UINT8 MipiBridgeType; ///< MIPI bridge type
- UINT16 DeviceClassExtension; ///< Obsolete.
- UINT8 DVOFunction; ///< Obsolete.
- /**
- Flags 2
- Bits 7:4 : DP Port trace length from silicon to output port on the board
- 0 : Default RVP length
- 1 : Short trace length
- 2 : Long trace length
- Bits 3:2 : Reserved
- Bit 1 : Indicates whether this port is Thunderbolt port or not.
- 0 : No
- 1 : Yes
- Bit 0 : DP 2 lane RCR# 1024829: USB type C to enable 2 lane DP display
- 0 : Disable
- 1 : Enable
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 UsbTypeCDongleEnabled:1; ///< Indicates whether this port is USB type C.
- UINT8 IsThunderboltPort:1; ///< Indicates whether this port is Thunderbolt. (ICL+)
- UINT8 Reserved:2; ///< Reserved for future use.
- UINT8 DpPortTraceLength:4; ///< Dp port trace length from silicon to port.
- } Bits;
- } Flags_2;
- UINT8 DP2XGpioIndex; ///< GPIO index number for the USB type C.
- UINT16 DP2XGpioNumber; ///< GPIO number for USB type C.
- /**
- IBoost magnitude field.
- Bits 7:4 : DP Boost magnitude
- 0 : 1
- 1 : 3
- 2 : 7
- Others : Reserved for WHL.
- Bits 3:0 : HDMI Boost magnitude
- 0 : 1
- 1 : 3
- 2 : 7
- Others : Reserved.
- **/
- union {
- UINT8 Value;
- struct {
- UINT8 DpEdpBoostMagnitude:4;
- UINT8 HdmiBoostMagnitude:4;
- } Bits;
- } BoostMagnitude;
- } CHILD_STRUCT;
- /**
- This structure defines Block 2 (General Bytes Definitions)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the Block ID : 2.
- UINT16 BlockSize; ///< Defines the size of VBT General Info 2 Block.
- UINT8 bmp_CRT_DDC_GMBUS_Pin; ///< Obsolete field: Selects the CRT DDC GMBUS pin pair.
- UINT8 bmp_DPMS_Bits; ///< BMP DPMS Bit Definitions.
- UINT16 bmp_Boot_Dev_Bits; ///< BMP Boot Device Bit Definitions.
- UINT8 SizeChild_Struct; ///< Size of the ChildStruc structure.
- CHILD_STRUCT Child_Struct[ChildStruct_MAX]; ///< This array defines all the supported child structures.
- } VBT_GENERAL2_INFO;
- /**
- This defines the structure of Block 3 (Original Display Toggle List)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the Block ID : 3
- UINT16 BlockSize; ///< Defines the size of Original Display Toggle List Block
- UINT8 bmp_Display_Detect; ///< Display must be attached or not
- } BLOCK03_ORIGINAL_DISPLAY_TOGGLE_LIST;
- /**
- This defines structure of a pointer table.
- **/
- typedef struct {
- UINT16 Offset; ///< Defines the offset of the table from start of BIOS Data block.
- UINT16 Size; ///< Defines the size of an entry of the table.
- } BMP_TABLE_PTR;
- /**
- This structure defines Block 252 (SBIOS Hooks and BMP Table Pointers).
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the Block ID : 252.
- UINT16 BlockSize; ///< Defines the size of SBIOS Hooks block.
- UINT8 SbiosHooks[18]; ///< This array defines a series of SBIOS hooks. Each entry represents one hook.
- BMP_TABLE_PTR BmpTablePtr[26]; ///< This array defines pointers to all the important tables in the VBT.
- } BLOCK252_SBIOS_Hook;
- /**
- This defines the structure of MMIO boot table entry
- **/
- typedef struct {
- UINT32 Register; ///< Defines the MMIO offset of the register.
- UINT32 Value; ///< Defines the default value of the register.
- } MMIO_BOOT_TABLE;
- /**
- This structure defines Block 6 (MMIO Register Block)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the Block ID : 6
- UINT16 BlockSize; ///< Defines the size of MMIO Register Table block.
- UINT16 RegTableId; ///< Defines the ID for MMIO register table (0xFFFC).
- UINT8 AccessFlag; ///< Defines the flag for data access size (02 for 4 byte read/write).
- MMIO_BOOT_TABLE MMIOBootTable[14]; ///< Array containing the MMIO register table.
- UINT16 TableEnd; ///< Special value describing End of table (0xFFFF).
- } BLOCK06_MMIO_REG_TABLE;
- /**
- This structure defines Block 7 (IO SW Flag Register Table)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines Block ID (7).
- UINT16 BlockSize; ///< Defines the size of IO SW Flag register table block.
- UINT16 RegTableId; ///< Defines the ID for IO SW Flag register table (0xFFFE).
- UINT8 GRIndexRegLsb; ///< Defines the read/write size. Value is 0xCE meaning 1 byte without mask.
- UINT8 IOSWFlagReg; ///< Defines the offset for the IO SW Flag register.
- UINT8 Value; ///< Defines the data/value for the register.
- UINT16 TableEnd; ///< Special value describing the end of table (0xFFFF).
- } BLOCK07_IOSWFLAG_REG_TABLE;
- /**
- This structure defines the entry of SWF table.
- **/
- typedef struct {
- UINT32 Register; ///< Defines the MMIO offset of the SWF register.
- UINT32 Value; ///< Defines the default value for the SWF register.
- } SWF_TABLE;
- /**
- This defines the structure of Block 8 (MMIO SW Flag Block).
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the Block ID : 8.
- UINT16 BlockSize; ///< Defines the size of MMIO SWF register table block.
- UINT16 RegTableId; ///< Defines the ID for MMIO SWF register table (0xFFFC).
- UINT8 AccessFlag; ///< Defines the data access size. Value is 0x02 meaning 4 bytes read/write.
- SWF_TABLE SWFTable[7]; ///< Array containing the MMIO SWF register table.
- UINT16 TableEnd; ///< Special value describing end of table (0xFFFF).
- } BLOCK08_MMIOSWFLAG_REG_TABLE;
- /**
- This structure defines the PSR feature table entry.
- **/
- typedef struct {
- UINT8 SRD_Enables; ///< Defines PSR features such as full link enable/disable and whether aux is required to wake up.
- UINT8 SRD_WaitTimes; ///< Defines lines to wait before link standby and idle frames to wait before SRD enable.
- UINT16 SRD_TP1_WakeupTime; ///< TP 1 wake up time in multiples of 100.
- UINT16 SRD_TP2_WakeupTime; ///< TP2/TP3 wake up time in multiples of 100
- } PSR_FEATURE_TABLE;
- /**
- This defines the structure of Block 9 (PSR Features Block)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the block ID : 9
- UINT16 BlockSize; ///< Defines the size of PSR Feature block.
- PSR_FEATURE_TABLE PSRFeatureTable[16]; ///< Array containing the PSR Feature table.
- } BLOCK09_PSR_FEATURE;
- /**
- This structure defines an entry of Mode Removal table.
- **/
- typedef struct {
- UINT16 XRes; ///< X resolution of the mode.
- UINT16 YRes; ///< Y resolution of the mode.
- UINT8 Bpp; ///< Bits per pixel of the mode.
- UINT16 RRate; ///< Refresh rate of the mode.
- UINT8 RFlags; ///< Flags specifying display type and functional area where the mode is to be removed.
- UINT16 PanelFlags; ///< Applicable to LFP only. Indicates which LFP panels the mode is to be removed.
- } MODE_REMOVAL_TABLE_ENTRY;
- /**
- This defines the structure of Block 10 (Mode Removal Block)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the Block ID : 10.
- UINT16 BlockSize; ///< Defines the size of Mode Removal table block.
- UINT8 EntrySize; ///< Defines the size of one entry of mode removal table.
- MODE_REMOVAL_TABLE_ENTRY ModeRemovalTable[20]; ///< Array containing the mode removal table.
- UINT16 Terminator; ///< Special value indicating end of mode removal table (0xFFFF).
- } BLOCK10_MODE_REMOVAL_TABLE;
- /**
- This defines the structure of Block 12 (Driver Features Data Block)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 12
- UINT16 BlockSize; ///< Defines the size of Driver features block.
- /**
- This field defines the various driver related bits:\n
- Bit 7 = Use 00000110h ID for Primary LFP
- = 0, No
- = 1, Yes
- Bit 6 = Enable/Disable Sprite in Clone Mode
- = 0, Disable
- = 1, Enable
- Bit 5 = Driver INT 15h hook
- = 0, Disable
- = 1, Enable
- Bit 4 = Dual View Zoom
- = 0, Disable
- = 1, Enable
- Bit 3 = Hot Plug DVO
- = 0, Disable
- = 1, Enable
- Bit 2 = Allow display switching when in Full Screen DOS.
- = 0, Block Display Switching
- = 1, Allow Display Switching
- Bit 1 = Block display switching when DVD active
- = 0, No Block Display Switching
- = 1, Block Display Switching
- Bit 0 = Boot device algorithm
- = 0, OS Default
- = 1, Driver Default
- **/
- UINT8 bmp_Driver_Bits;
- UINT16 bmp_Driver_Boot_Mode_X; ///< X resolution of driver boot mode.
- UINT16 bmp_Driver_Boot_Mode_Y; ///< Y resolution of driver boot mode.
- UINT8 bmp_Driver_Boot_Mode_BPP; ///< Bits per pixel of driver boot mode.
- UINT8 bmp_Driver_Boot_Mode_RR; ///< Refresh rate of driver boot mode.
- /**
- This field defines the extended driver bits 1.\n
- Bits [15:14] = Integrated HDMI configuration
- = 00b, No Integrated HDMI
- = 01b, Port-B Only
- = 10b, Port-C Only
- = 11b, Both Port-B and Port-C
- Bits 13 = TV Hotplug
- Bits [12:11] = LFP configuration
- = 00b, No LVDS
- = 01b, Integrated LVDS
- = 10b, SDVO LVDS
- = 11b, eDP
- Bit 10 = Obsolete field: CRT hotplug
- = 0, Disabled
- = 1, Enabled (Default)
- Bit 9 = SDVO device power down
- = 0, Disabled (Default)
- = 1, Enabled
- Bit 8 = Preserve Aspect Ratio
- = 0, Disabled (Default)
- = 1, Enabled
- Bit 7 = Display "Maintain Aspect Scaling" via CUI
- = 0, No
- = 1, Yes (Default)
- Bit 6 = Sprite Display Assignment when Overlay is Active in Clone Mode:
- = 0, Secondary
- = 1, Primary
- Bit 5 = Default Power Scheme user interface
- = 0, CUI
- = 1, 3rd Party Application
- Bit 4 = NT 4.0 Dual Display Clone Support
- = 0, Disable
- = 1, Enable
- Bit 3 = Default Render Clock Frequency
- = 0, High Frequency
- = 1, Low Frequency
- Bit 2 = Dual-Frequency Graphics Technology
- = 0, No
- = 1, Yes
- Bit 1 = Selective Mode Pruning
- = 0, No
- = 1, Yes
- Bit 0 = Enable LFP as primary
- = 0, Disable
- = 1, Enable
- **/
- UINT16 bmp_Ext_Driver_Bits;
- /**
- This defines the driver flags related to CUI Hot key.\n
- Bits [7:3] - Reserved
- Bit 2 = Display Subsystem Enable/Disable
- = 0, Enable (default Value)
- = 1, Disable
- Bit 1 = Embedded Platform
- = 0, False
- = 1, True
- Bit 0 = Define CUI HotK Displays Statically
- = 0, No
- = 1, Yes
- **/
- UINT8 bmp_Display_Detect_CUIHotK;
- UINT16 bmp_Legacy_CRT_Max_X; ///< Obsolete field: Defines the legacy CRT X resolution for driver boot mode.
- UINT16 bmp_Legacy_CRT_Max_Y; ///< Obsolete field: Defines the legacy CRT Y resolution for driver boot mode.
- UINT8 bmp_Legacy_CRT_Max_RR; ///< Obsolete field: Defines the legacy CRT refresh rate for driver boot mode.
- /**
- This field defines the extended driver bits 2.\n
- Bits [7:1] - Reserved
- Bit 0 = Enable Internal Source Termination for HDMI
- = 0, External Termination
- = 1, Internal Termination
- **/
- UINT8 bmp_Ext2_Driver_Bits;
- UINT8 bmp_VBT_Customization_Version; ///< Defines the customized VBT version number.
- /**
- This field defines all the driver feature flags.\n
- Bit 15 = PC Features Field's Validity
- = 0, Invalid
- = 1, Valid
- Bit 14 = Hpd_wake - HPD events are routed to display driver when system is in S0ix/DC9
- = 0, Disable
- = 1, Enable
- Bit 13 = Assertive Display Technology (ADT)
- = 0, Disable
- = 1, Enable
- Bit 12 = Dynamic Media Refresh Rate Switching (DMRRS)
- = 0, Disable
- = 1, Enable
- Bit 11 = Dynamic Frames Per Second (DFPS)
- = 0, Disable
- = 1, Enable
- Bit 10 = Intermediate Pixel Storage (IPS)
- = 0, Disable
- = 1, Enable
- Bit 9 = Panel Self Refresh (PSR)
- = 0, Disable
- = 1, Enable
- Bit 8 = Intel Turbo Boost Technology
- = 0, Disable
- = 1, Enable
- Bit 7 = Graphics Power Modulation Technology (GPMT)
- = 0, Disable
- = 1, Enable
- Bit 6 = Graphics Render Standby (RS)
- = 0, Disable
- = 1, Enable
- Bit 5 = Intel Display Refresh Rate Switching (DRRS)
- = 0, Disable
- = 1, Enable
- Bit 4 = Intel Automatic Display Brightness (ADB)
- = 0, Disable
- = 1, Enable
- Bit 3 = DxgkDDI Backlight Control (DxgkDdiBLC)
- = 0, Disable
- = 1, Enable
- Bit 2 = Intel Display Power Saving Technology (DPST)
- = 0, Disable
- = 1, Enable
- Bit 1 = Intel Smart 2D Display Technology (S2DDT)
- = 0, Disable
- = 1, Enable
- Bit 0 = Intel Rapid Memory Power Management (RMPM)
- = 0, Disable
- = 1, Enable
- **/
- UINT16 bmp_Driver_Feature_Flags;
- } BLOCK12_DRIVER_FEATURES;
- /**
- This defines the structure of Block 13 (Driver Persistence Options)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 13
- UINT16 BlockSize; ///< Defines the size of Driver Persistence options block.
- /**
- Defines the various persistence options.\n
- Bits [15:10] - Reserved
- Bit 9 = Docking Persistence Algorithm
- = 0, OS Default
- = 1, Driver Default
- Bit 8 = DVO Hot Plug Persistence on Mode
- Bit 7 = EDID Persistence on Mode
- Bit 6 = Hot Key Persistence on Mode
- = 0, No
- = 1, Yes
- Bit 5 = Hot Key Persistence on RestorePipe
- = 0, No
- = 1, Yes
- Bit 4 = Hot Key Persistence on RefreshRate
- = 0, No
- = 1, Yes
- Bit 3 = Hot Key Persistence on MDS/Twin
- = 0, No
- = 1, Yes
- Bit 2 = Power Management Persistence Algorithm
- = 0, OS Default
- = 1, Driver Default
- Bit 1 = Lid Switch Persistence Algorithm
- = 0, OS Default
- = 1, Driver Default
- Bit 0 = Hot Key Persistence Algorithm
- = 0, OS Default
- = 1, Driver Default
- **/
- UINT16 PersistenceAlgorithm;
- UINT8 PersistMaxconfig; ///< Maximum mode persistence configurations (10-200)
- } BLOCK13_DRIVER_PERSISTENCE;
- /**
- This defines the structure of Block 17 (SV Bits)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defnies the unique Block ID : 17
- UINT16 BlockSize; ///< Defines the size of SV Bits block.
- /**
- Bits [7:4] = Reserved
- Bit3 = Allow VBlank/VblankScanline timeout hang
- = 0, Disable
- = 1, Enable
- Bit2 = Special GMBus support
- = 0, Disable
- = 1, Enable
- Bit1 = Skip program pipe timings when set VGA modes
- = 0, Setmode skip DVO Update
- = 1, Setmode updates DVO
- Bit0 = Disable VGA fast arbiter
- = 0, Enabled
- = 1, Disabled
- **/
- UINT8 SvBits1;
- UINT8 SvBits2; ///< Reserved for future use.
- UINT8 SvBits3; ///< Reserved for future use.
- UINT8 SvBits4; ///< Reserved for future use.
- UINT8 SvBits5; ///< Reserved for future use.
- UINT8 SvBits6; ///< Reserved for future use.
- UINT8 SvBits7; ///< Reserved for future use.
- UINT8 SvBits8; ///< Reserved for future use.
- } BLOCK17_SV_BITS;
- /**
- This defines the structure of Block 18 (Driver Rotation)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 18
- UINT16 BlockSize; ///< Defines the size of Driver Rotation block.
- UINT8 RotationFeatureSupport; ///< Rotation feature support field used by driver.
- UINT8 Reserved1; ///< Reserved for future use.
- UINT16 Reserved2; ///< Reserved for future use.
- UINT32 Reserved3; ///< Reserved for future use.
- UINT32 Reserved4; ///< Reserved for future use.
- } BLOCK18_DRIVER_ROTATION;
- /**
- This structure defines an entry of OEM mode table.
- **/
- typedef struct {
- /**
- Mode Flags:
- Bits[7:3] = Reserved
- Bit 2 = Enable/disable this OEM mode in GOP driver.
- Bit 1 = Enable/disable this mode in Driver
- Bit 0 = Enable/disable this mode in VBIOS
- **/
- UINT8 ModeFlags;
- /**
- Display Device Flags:
- Bit 7 = LFP2
- Bit 6 = EFP2
- Bit 5 = EFP3
- Bit 4 = EFP4
- Bit 3 = LFP
- Bit 2 = EFP
- Bit 1 = Rsvd
- Bit 0 = Rsvd
- **/
- UINT8 DisplayFlags;
- UINT16 XRes; ///< Defines the X resolution of the mode.
- UINT16 YRes; ///< Defines the Y resolution of the mode.
- /**
- Defines the bits per pixel of the mode.
- Bit 7:3 = Reserved
- Bit 2 = 32 BPP
- Bit 1 = 16 BPP
- Bit 0 = 8 BPP
- **/
- UINT8 Bpp;
- UINT8 RRate; ///< Defines the refresh rate of the mode.
- DTD_STRUCTURE Dtd; ///< Defines the 18 byte timing config for the mode.
- } OEM_MODE_ENTRY;
- /**
- This defines the structure of Block 20 (OEM Mode Customization Block)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique block ID : 20
- UINT16 BlockSize; ///< Defines the size of OEM customization block.
- UINT8 NumOfEntry; ///< Defines the number of entries in OEM Mode table.
- UINT8 EntrySize; ///< Defines the size of one entry of OEM Mode table.
- OEM_MODE_ENTRY OemModeTable[6]; ///< Array defining the OEM mode table.
- } BLOCK20_OEM_CUSTOMIZATION;
- /**
- This defines the structure of Block 26 (TV options)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 26
- UINT16 BlockSize; ///< Defines the size of TV Options block.
- /**
- Defines the TV options:
- Bit 15 = D-Conector Support
- = 0, Disable
- = 1, Enable
- Bit 14 = Add 1776x1000 when 1080i is selected and add 1184x666 when 720p is selected
- = 0, Disable
- = 1, Enable
- Bit 13:12 Underscan/overscan for HDTV via DVI
- = 00b, Enable Underscan and Overscan modes (Default)
- = 01b, Enable only overscan modes
- = 10b, Enable only underscan modes
- Bits 11:2 = Reserved
- Bit 1:0 = Underscan/overscan for HDTV via Component (YPrPb)
- = 00b, Enable Underscan and Overscan modes (Default)
- = 01b, Enable only overscan modes
- = 10b, Enable only underscan modes
- **/
- UINT16 bmp_TV_Options_1;
- } BLOCK26_TV_OPTIONS;
- /**
- This structure defines the eDP panel power sequencing parameters.
- **/
- typedef struct {
- UINT16 T3; ///< Panel Power-Up Delay.
- UINT16 T8; ///< Panel Power-On to backlight Enable Delay.
- UINT16 T9; ///< Backlight-Off to Power-Down Delay.
- UINT16 T10; ///< Power-Down Delay.
- UINT16 T12; ///< Power Cycle Delay.
- } EDP_PWR_SEQ;
- /**
- This structure defines the PWM<-->Backlight delays for a single eDP panel.
- **/
- typedef struct {
- UINT16 PwmOnToBacklightEnableDelay; ///< PWM on to backight enable delay.
- UINT16 BacklightDisableToPwmOffDelay; ///< Backlight disable to PWM off delay.
- } EDP_PWM_BACKLIGHT_DELAYS;
- /**
- This defines FLT parameters for a single eDP panel.
- Bits[15:12] : VSwing level
- 0 : 0.4V (default)
- 1 : 0.6V
- 2 : 0.8V
- 3 : 1.2V
- Others : Reserved
- Bits[11:8] : Pre-emphasis level
- 0 : no pre-emphasis (default)
- 1 : 3.5dB
- 2 : 6dB
- 3 : 9.5dB
- Others : Reserved
- Bits[7:4] : Lane count (port width)
- 0 : x1 mode (default)
- 1 : x2 mode
- 2 : Reserved
- 3 : x4 mode
- Others : Reserved
- Bits[3:0] : data rate
- 0 : 1.62 Gbps
- 1 : 2.7 Gbps
- 2 : 5.4 Gbps
- Others : Reserved
- **/
- typedef union {
- UINT16 Value;
- struct {
- UINT16 DataRate:4;
- UINT16 LaneCount:4;
- UINT16 PreEmphasisLevel:4;
- UINT16 VSwingLevel:4;
- } Bits;
- } EDP_FAST_LINK_TRAINING_PARAMS;
- /**
- This defines Full link training parameters for a single eDP panel.
- Bits[7:4] : VSwing level
- 0 : 0.4V (default)
- 1 : 0.6V
- 2 : 0.8V
- 3 : 1.2V
- Others : Reserved
- Bits[3:0] : Pre-emphasis level
- 0 : no pre-emphasis (default)
- 1 : 3.5dB
- 2 : 6dB
- 3 : 9.5dB
- Others : Reserved
- **/
- typedef union {
- UINT8 Value;
- struct {
- UINT8 PreEmphasisLevel:4;
- UINT8 VSwingLevel:4;
- } Bits;
- } EDP_FULL_LINK_TRAINING_PARAMS;
- /**
- This defines the structure of Apical Parameters for a single eDP panel.
- **/
- typedef struct {
- UINT32 PanelOui; ///< Apical IP specific field for Panel OUI
- UINT32 DPCDBaseAddress; ///< Apical IP specific field for DPCD Base address
- UINT32 DPCDIrdidixControl0; ///< Apical IP specific field for DPCD Idridix Control 0
- UINT32 DPCDOptionSelect; ///< Apical IP specific field for DPCD option select
- UINT32 DPCDBacklight; ///< Apical IP specific field for DPCD backlight
- UINT32 AmbientLight; ///< Apical IP specific field for Ambient light
- UINT32 BacklightScale; ///< Apical IP specific field for backlight scale
- } EDP_APICAL_PARAMS;
- /**
- This defines the structure of Block 27 (eDP Display Block)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 27
- UINT16 BlockSize; ///< Defines the size of eDP display VBT block.
- EDP_PWR_SEQ eDP_PWR_SEQ[16]; ///< Array defining the panel power sequencing for all 16 eDP panels.
- /**
- Defines the panel color depth in bits per pixel. 2 Bits for each Panel.
- Bits[1:0] Panel color depth for Panel #1
- = 00, 18bpp
- = 01, 24bpp
- = 10, 30bpp
- = 11, 36bpp
- **/
- UINT32 eDP_Panel_Color_Depth;
- /**
- Array containing the FLT parameters of 16 eDP panels.
- **/
- EDP_FAST_LINK_TRAINING_PARAMS eDP_Fast_Link_Training_Params[16];
- /**
- This field defines the eDP sDRRS MSA Timing Delay for all 16 eDP panels. 2 Bits for Each Panel.
- Bits[1:0] for Panel #1
- = 00, Line 1
- = 01, Line 2
- = 10, Line 3
- = 11, Line 4
- **/
- UINT32 eDP_sDRRS_MSA_Delay;
- /**
- Defines the S3D feature enable/disable for all 16 eDP panels. 1 Bit for Each Panel.
- Bits[0] for Panel #1
- = 0, S3D disabled for this panel
- = 1, S3D enabled for this panel
- **/
- UINT16 eDP_S3D_Feature;
- /**
- Defines the T3 optimization enable/disable for all 16 panels. 1 Bit for each panel.
- Bits[0] = Panel #1
- = 0, T3 optimization disabled for this panel
- = 1, T3 optimization enabled for this panel
- **/
- UINT16 eDP_T3_Optmization;
- /**
- Defines the Edp vswing and pre-emphasis for all 16 panels. 4 Bits for Each Panel
- Bits[3:0] = Panel #1
- = 0, Use table 1 for this panel.
- = 1, Use table 2 for this panel.
- **/
- UINT64 VswingPreEmphasisTableNum;
- /**
- Defines the Edp fast link training support on all 16 panels. 1 Bit for Each Panel
- Bits[0] = Panel #1
- = 0, FastLinkTraining feature is disabled for this panel
- = 1, FastLinkTraining feature is enabled for this panel
- **/
- UINT16 EdpFastLinkTrainingSupportOnPanel;
- /**
- Defines whether the Set power state at DPCD 600h is to be done in eDP enable/disable sequence.
- Bits[0] = Panel #1
- = 0, Set power state at DPCD 600h feature is disabled for this panel
- = 1, Set power state at DPCD 600h feature is enabled for this panel
- **/
- UINT16 SetPowerStateAtDPCD600h; //This is not used currently
- /**
- Array defining the PWM <--> Backlight related delays for 16 panels.
- **/
- EDP_PWM_BACKLIGHT_DELAYS eDP_Pwm_BackLight_Delays[16];
- /**
- Defines the Edp full link training support on all 16 panels. 1 Bit for Each Panel.
- \verbatim
- Bits[0] : Panel #1
- 0 : Initial vswing and pre-emphasis levels are not provided for Full link training
- 1 : Initial vswing and pre-emphasis levels are provided for Full link training
- Bits 1 to 15 are for panel # 2 to 16.
- \endverbatim
- **/
- UINT16 InitialFullLinkTrainingParamsProvidedInVbt;
- /**
- Array containing the initial Vswing and Pre-emphasis parameters for Full link training.
- **/
- EDP_FULL_LINK_TRAINING_PARAMS eDP_Full_Link_Training_Params[16];
- /**
- Defines the Edp Apical assertive display IP support on all 16 panels. 1 Bit for Each Panel.
- Bit 0 : Panel #1
- 0 : Apical assertive display IP is disabled for this panel.
- 1 : Apical assertive display IP is enabled for this panel.
- Bits 1 to 15 are for panel # 2 to 16.
- **/
- UINT16 IsApicalAssertiveDisplayIpEnable;
- /**
- Array containing the Apical parameters for all 16 panels
- **/
- EDP_APICAL_PARAMS eDP_Apcial_Params[16];
- } BLOCK27_EDP_FEATURES;
- /**
- This defines the structure of Block 28 (Edidless EFP support DTD timings)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 28
- UINT16 BlockSize; ///< Defines the size of Edidless EFP support block.
- DTD_STRUCTURE Edidless_EFP_DTD_Struc[4]; ///< Array defining the DTD timing for 3 EFP devices.
- } BLOCK28_EDIDLESS_EFP;
- /**
- This defines the structure of toggle list entry.
- **/
- typedef struct {
- /**
- Defines the display device selection for toggling
- Bit 15 = EFP4.3 (Reserved for WHL)
- Bit 14 = EFP3.3
- Bit 13 = EFP2.3
- Bit 12 = EFP1.3
- Bit 11 = EFP4.2 (Reserved for WHL)
- Bit 10 = EFP3.2
- Bit 9 = EFP2.2
- Bit 8 = EFP1.2
- Bit 7 = LFP2
- Bit 6 = EFP2
- Bit 5 = EFP3
- Bit 4 = EFP4
- Bit 3 = LFP
- Bit 2 = EFP
- Bit 1 = TV
- Bit 0 = CRT
- **/
- UINT16 DisplayDevice;
- } CNL_TOGGLE_LIST_ENTRY;
- /**
- This defines the structure of Block 31 (Toggle Lists for Cannonlake)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 31
- UINT16 BlockSize; ///< Defines the size of Toggle List Block.
- UINT16 NumOfEntry1; ///< Defines the number of entries in toggle list 1.
- UINT8 EntrySize1; ///< Defines the size of toggle list entry present in list 1.
- CNL_TOGGLE_LIST_ENTRY ToggleList1Entry[16]; ///< Array defining the toggle list 1.
- UINT16 NumOfEntry2; ///< Defines the number of entries in toggle list 2.
- UINT8 EntrySize2; ///< Defines the size of toggle list entry present in list 2.
- CNL_TOGGLE_LIST_ENTRY ToggleList2Entry[8]; ///< Array defining the toggle list 2.
- UINT16 NumOfEntry3; ///< Defines the number of entries in toggle list 3.
- UINT8 EntrySize3; ///< Defines the size of toggle list entry present in list 3.
- CNL_TOGGLE_LIST_ENTRY ToggleList3Entry[8]; ///< Array defining the toggle list 3.
- UINT16 NumOfEntry4; ///< Defines the number of entries in toggle list 4.
- UINT8 EntrySize4; ///< Defines the size of toggle list entry present in list 4.
- CNL_TOGGLE_LIST_ENTRY ToggleList4Entry[8]; ///< Array defining the toggle list 4.
- } BLOCK31_TOGGLE_LIST;
- /**
- This defines the structure of Display device removal configuration entry.
- **/
- typedef struct {
- /**
- Defines the display device configuration to be removed.
- Bit 15 = EFP4.3 (Reserved for WHL)
- Bit 14 = EFP3.3
- Bit 13 = EFP2.3
- Bit 12 = EFP1.3
- Bit 11 = EFP4.2 (Reserved for WHL)
- Bit 10 = EFP3.2
- Bit 9 = EFP2.2
- Bit 8 = EFP1.2
- Bit 7 = LFP2
- Bit 6 = EFP2
- Bit 5 = EFP3
- Bit 4 = EFP4
- Bit 3 = LFP
- Bit 2 = EFP
- Bit 1 = TV
- Bit 0 = CRT
- **/
- UINT16 DisplayDeviceConfiguration;
- } CNL_DISPLAY_CONFIGURATION_ENTRY;
- /**
- This defines the structure of Block 32 (Display removal configuration Block)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID = 32
- UINT16 BlockSize; ///< Defines the size of Display removal configuration block.
- UINT8 NumOfEntry; ///< Defines the number of entries in display removal configuraion table.
- UINT8 EntrySize; ///< Defines the size of 1 entry in display removal configuration table.
- CNL_DISPLAY_CONFIGURATION_ENTRY RemoveDisplayConfiguration[15]; ///< Array defining the display removal configuration table.
- }BLOCK32_DISPLAY_CONFIGURATION_REMOVAL;
- /**
- This defines the Local Flat panel basic details such as resolution and the various registers.
- **/
- typedef struct {
- UINT16 XRes; ///< X resolution of the panel.
- UINT16 YRes; ///< Y resolution of the panel.
- UINT32 LVDSDigDisReg; ///< MMIO offset of LFP digital display port register.
- UINT32 LVDSDigDisVal; ///< Value of LFP digital display port register.
- UINT32 OnSeqDelayReg; ///< MMIO offset of Panel power on sequencing delay register.
- UINT32 OnSeqDelayVal; ///< Value of Panel power on sequencing delay register.
- UINT32 OffSeqDelayReg; ///< MMIO offset of Panel power off sequencing delay register.
- UINT32 OffSeqDelayVal; ///< Value of Panel power off sequencing delay register.
- UINT32 CycleDelay_RefDivReg; ///< MMIO offset of Panel power cycle delay and reference divider register.
- UINT32 CycleDelay_RefDivVal; ///< Value of Panel power cycle delay and reference divider register.
- UINT16 Terminate; ///< Special value 0xFFFF indicating end of data.
- } FP_DATA;
- /**
- This defines the structure consisting of all details for a single Local Flat panel.
- **/
- typedef struct {
- FP_DATA FP_Data; ///< Instance of ::FP_DATA structure.
- DTD_STRUCTURE DTD_Data; ///< Instance of ::DTD_STRUCTURE which contains the DTD timings for the panel.
- PID_DATA PID_Data; ///< Instance of ::PID_DATA structure which contains panel related information used by driver.
- } LVDS_FP_TABLE;
- /**
- This structure defines all the details regarding Backlight control for LFP.
- **/
- typedef struct {
- /**
- Defines the backlight features for the panel.
- Bits 7:6 = GMBus Speed:
- = 00, 100 KHz
- = 01, 50 KHz
- = 10, 400 KHz
- = 11, 1 MHz
- Bits 5:3 = Inverter GPIO Pins
- = 0, None
- = 1, I2C GPIO pins
- = 2, Analog CRT DDC pins
- = 3, DVI/LVDS DDC GPIO pins
- = 5, sDVO I2C GPIO pins
- Bit 2 = Inverter Polarity (i2c & PWM)
- = 0, Normal (0 = Minimum brightness)
- = 1, Inverted (0 = Maximum brightness)
- Bits 1:0 = BLC Inverter Type
- = 00, None/External
- = 01, i2c
- = 10, PWM
- = 11, Reserved
- **/
- UINT8 BLC_Ftr;
- UINT16 PWM_Freq; ///< PWM inverter frequency in KHz
- UINT8 Min_Brightness; ///< Minimum brightness in the range 0-255
- UINT8 I2C_Add; ///< I2C Inverter Slave Address
- UINT8 I2C_Command; ///< I2C Inverter command code
- } BLC;
- /**
- This defines the structure of Block 40 (LFP Features)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 40
- UINT16 BlockSize; ///< Defines the size of LFP Features block.
- UINT8 bmp_Panel_type; ///< Defines the panel type of LFP.
- UINT8 Skip1; ///< Obsoleted.
- /**
- Capabilities byte:
- Bit 15:7 = SW Workaround bits
- Bit 6 = Panel EDID support
- = 0, Disable
- = 1, Enable
- Bit 5 = Pixel dithering
- = 0, Disable
- = 1, Enable
- Bit 4 = Panel Fitting ratio calc.
- = 0 - Manual
- = 1 - Automatic
- Bit 3 = Panel Fitting Graphics mode
- = 0, Bilinear
- = 1, Enhanced
- Bit 2 = Panel Fitting Text mode
- = 0, Bilinear
- = 1, Enhanced
- Bit 1:0 = Panel Fitting Support
- = 00, No panel fitting
- = 01, Text panel fitting
- = 10, GFX panel fitting
- = 11, Text+GFX panel fitting
- **/
- UINT16 bmp_LVDS_Capabilities;
- /**
- Defines the channel type of LFP. 2 Bits for each Panel.
- Bits [0:1] for Panel #1
- = 00, Automatic (algorithm)
- = 01, Single Channel
- = 10, Dual Channel
- = 11, Reserved
- **/
- UINT32 INT_LVDS_Panel_Channel_Bits;
- UINT16 Enable_SSC_Bit; ///< LVDS Spread Spectrum Clock
- UINT16 SSC_Freq_Bit; ///< LVDS Spread Spectrum Clock Frequency
- UINT16 Disable_SSC_DDT_Bit; ///< Disable SSC in Dual Display Twin
- /**
- Defines the panel color depth. 1 Bits for each Panel.
- Bits[0] for Panel #01
- = 0, 18bpp
- = 1, 24bpp
- **/
- UINT16 INT_Panel_Color_Depth;
- /**
- Defines the Panel type. 2 Bits for each Panel.
- Bits [0:1] for Panel #1
- = 00, Static DRRS
- = 01, D2PO
- = 10, Seamless
- = 11, Reserved
- **/
- UINT32 DPS_Panel_Type_Bits;
- /**
- Defines the type of backlight control for the LFP. 2 bits for each Panel.
- Bits [0:1] for Panel #1
- = 00, Default
- = 01, CCFL backlight
- = 10, LED backlight
- = 11, Reserved
- **/
- UINT32 BLT_Control_Type_Bits;
- /**
- Defines the LFP power enable flag in S0 state for all 16 panels. 1 Bit for Each Panel.
- Bits[0] : Panel #1
- 0 : Do not keep LCDVCC on during S0 state.
- 1 : Keep LCDVCC on during S0 state.
- Bits 1 to 15 are for panel # 2 to 16.
- **/
- UINT16 LcdvccOnDuringS0State;
- } BLOCK40_LVDS_FEATURES;
- /**
- This structure defines the second type of BMP table pointers.
- This is used to store pointers to LFP Flat panel data, DTD and PID information.
- **/
- typedef struct {
- UINT16 Offset; ///< Offset of the table.
- UINT8 Size; ///< Size of the table.
- } BMP_TABLE_TYPE2_PTR;
- /**
- This structure defines a set of 3 pointers for LFP display.
- These pointers point to FP data, DTD and PID information respectively.
- **/
- typedef struct {
- BMP_TABLE_TYPE2_PTR FpTablePtr; ///< Pointer to FP Data of the LFP panel.
- BMP_TABLE_TYPE2_PTR DtdTablePtr; ///< Pointer to DTD of the LFP panel.
- BMP_TABLE_TYPE2_PTR PidTablePtr; ///< Pointer to the PID data of the LFP panel.
- } LFP_TABLE_POINTERS;
- /**
- This defines the structure of Block 41 (LFP Table Pointers for FPDATA, DTD and PID)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID:41
- UINT16 BlockSize; ///< Defines the size of LFP Table Pointer Block.
- UINT8 NumOfEntries; ///< Defines the number of entries in the Table.
- LFP_TABLE_POINTERS LfpTablePointers[16]; ///< Array of ::LFP_TABLE_POINTERS for all 16 panels.
- UINT16 LfpPanelNameTableOffset; ///< Offset of LFP panel names table.
- UINT8 LfpPanelNameLength; ///< Length of a single LFP panel's name.
- } BLOCK41_LFP_TABLE_POINTERS;
- /**
- This defines the structure of Block 42 (Complete LFP Panel Information)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique block ID : 42
- UINT16 BlockSize; ///< Defines the size of Complete LFP panel information for all 16 panels.
- LVDS_FP_TABLE LVDS_FP_Table[16]; ///< Array of ::LVDS_FP_TABLE containing data of 16 panels.
- UINT8 LFP_PANEL_NAMES[16][13];///< Array defining the panel names for all 16 panels.
- /**
- 1 Bit for Each Panel
- Bit0 = Scaling feature for panel 1.
- = 0, Scaling feature is disabled for this panel.
- = 1, Scaling feature is enabled for this panel.
- **/
- UINT16 EnableScaling; //This is not used currently
- /**
- Array defining DRRS minimum refresh rate. 1 Byte for Each Panel.
- **/
- UINT8 Seamless_DRRS_Min_RR[16];
- /**
- Array defining Pixel Overlap Count. 1 Byte for Each Panel.
- **/
- UINT8 PixelOverlapCount[16];
- } BLOCK42_LVDS_PANEL_INFO;
- typedef union {
- /**
- Backlight control parameters.\n
- Bits 7:4 : PWM Controller Selection
- 0 : Controller 0
- 1 : Controller 1
- 2 : Controller 2
- 3 : Controller 3
- Others : Reserved.
- Bits 3:0 : PWM Source Selection
- 0 : PMIC PWM
- 1 : LPSS PWM
- 2 : DISPLAY PWM
- 3 : CABC PWM
- Others : Reserved.
- **/
- UINT8 Value;
- struct {
- UINT8 PwmSourceSelection:4;
- UINT8 PwmControllerSelection:4;
- } Bits;
- } BKLT_CTRL_PARAMS;
- /**
- This defines the structure of Block 43 (LFP Brightness Control)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 43
- UINT16 BlockSize; ///< Defines the size of Brightness control block.
- UINT8 SIZE_BLCStruc; ///< Defines the size of single entry in Backlight control table for LFP.
- BLC BLC_Struct[16]; ///< Array defining the backlight control for 16 LFP panels.
- UINT8 Post_Brightness[16]; ///< Array defining the initial brightness for all 16 panels.
- BKLT_CTRL_PARAMS Brightness_Control[16]; ///< Array defining the brightness control method for all 16 panels
- } BLOCK43_LVDS_BLC;
- /**
- This defines the structure of Block 44 (LFP Power Conservation Features)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique block ID : 44
- UINT16 BlockSize; ///< Defines the size of LFP Power Conservation Features block.
- union {
- /**
- Bit[7] : ALS Enable/Disable
- 0 - Disable
- 1 - Enable
- Bit[6] : Display LACE support
- 0 - Not supported
- 1 - Supported
- Bit[5] : Default Display LACE enabled status
- 0 - Disabled
- 1 - Enabled
- Bit[4] : Reserved
- Bit[3:1] : Power conservation preference level.
- 4 is default in a range of 1 to 6.
- Bit[0] : Reserved
- **/
- UINT8 Value;
- struct {
- UINT8 Reserved:1;
- UINT8 PwrConservation:3;
- UINT8 Reserved_1:1;
- UINT8 DefalutDisplayLaceEnable:1;
- UINT8 DisplayLaceSupport:1;
- UINT8 AlsEnable:1;
- } Bits;
- } LfpFeatureBits;
- UINT16 AlsData[10]; ///< Defines the main ALS data.
- union {
- /**
- Bit[7:3] : Reserved
- Bit[2:0] : Aggressiveness Level Profile.
- 000 - Minimum
- 001 - Moderate
- 010 - High
- **/
- UINT8 Value;
- struct {
- UINT8 AggressionProfileLevel:3;
- UINT8 Reserved:5;
- } Bits;
- } LaceAggressivenessProfile; ///< Defines the LACE Aggressiveness Profile
- } BLOCK44_ALS;
- /**
- This defines the structure of Black Frame Insertion table entry.
- **/
- typedef struct {
- /**
- BFI Features\n
- Bit[7-2] : Reserved\n
- Bit[1] : Enable Brightness control in CUI\n
- Bit[0] : Enable BFI in driver
- **/
- UINT8 EnableBits;
- UINT8 BrightnessNonBFI; ///< Brightness percentage in non BFI mode
- } BFI;
- /**
- This defines the structure of Block 45 (Black Frame insertion Support for LFP)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 45
- UINT16 BlockSize; ///< Defines the size of Black frame insertion support block.
- UINT8 SIZE_BFIStruc; ///< Defines the size of 1 entry of black frame data.
- BFI BFI_Struct[16]; ///< Array defining the data of black frame insertion for all 16 panels.
- } BLOCK45_BFI_SUPPORT;
- /**
- This structure defines the chromaticity information for a single LFP panel.
- **/
- typedef struct {
- /**
- Defines the chromaticity feature enable bits
- Bits 7:2 = Reserved
- Bit 1 = Override EDID values for chromaticity if enabled, Instead Use VBT values
- = 0, Disable, Use the EDID values
- = 1, Enable, Use the values from the VBT
- Bit 0 = Enable chromaticity feature. EDID values will be used when this feature is enabled.
- = 0, Disable
- = 1, Enable
- **/
- UINT8 EnableBits;
- UINT8 Red_Green_1; ///< Red/green chormaticity coordinates at EDID offset 19h
- UINT8 Blue_White_1; ///< Blue/white chromatiity coordinates at EDID offset 1Ah
- UINT8 Red_X1; ///< Red x coordinate at EDID offset 1Bh
- UINT8 Red_Y1; ///< Red x coordinate at EDID offset 1Ch
- UINT8 Green_X1; ///< Green x coordinate at EDID offset 1Dh
- UINT8 Green_Y1; ///< Green x coordinate at EDID offset 1Eh
- UINT8 Blue_X1; ///< Blue x coordinate at EDID offset 1Fh
- UINT8 Blue_Y1; ///< Blue x coordinate at EDID offset 20h
- UINT8 White_X1; ///< White x coordinate at EDID offset 21h
- UINT8 White_Y1; ///< White x coordinate at EDID offset 22h
- } CHROMATICITY;
- /**
- This structure defines the Luminance information for a single LFP panel.
- **/
- typedef struct {
- /**
- Defines the chromaticity feature enable bits
- Bits 7:2 : Reserved
- Bit 1 : Enable Gamma feature.
- : if enabled, use gamma values from this block.
- 0 : Disable
- 1 : Enable
- Bit 0 : Enable Luminance feature.
- : if enabled, use values from this block.
- 0 : Disable
- 1 : Enable
- **/
- UINT8 EnableBits;
- /**
- Luminance info (refer DisplayID 2.0)
- 2 byte value, encoded in IEEE 754 half-precision binary floating point format
- **/
- UINT16 MinLuminance; ///< Native minimum luminance
- UINT16 MaxFullFrameLuminance; ///< Native maximum luminance (Full Frame)
- UINT16 MaxLuminance; ///< Native Maximum Luminance (1% Rectangular Coverage)
- /**
- Gamma EOTF
- Gamma values range from 00h through FFh which will come from VBT.
- Value shall define the gamma range, from 1.00 to 3.54.
- Field Value = (Gamma (value from VBT) + 100) / 100
- FFh = No gamma information shall be provided
- **/
- UINT8 Gamma;
- }LUMINANCE_AND_GAMMA;
- /**
- This defines the structure of Block 46 (Chromaticity Support)
- **/
- typedef struct {
- UINT8 BlockId; ///< Defines the unique Block ID : 46
- UINT16 BlockSize; ///< Defines the size of Chromaticity Block.
- CHROMATICITY Chromaticity_Struct[16]; ///< Defines the chromaticity information for all 16 panels.
- LUMINANCE_AND_GAMMA Luminance_Gamma_Struct[16]; ///< Defines the lumianance information for all 16 panels.
- } BLOCK46_CHROMATICITY_SUPPORT;
- /**
- This defines the structure of Block 51 (Fixed Mode Set)
- **/
- typedef struct{
- UINT8 BlockId; ///< Defines the unique block ID : 51.
- UINT16 BlockSize; ///< Defines the size of Fixed mode set feature block.
- UINT8 FeatureEnable; ///< Whether the fixed mode set feature is enabled/disabled.
- UINT32 XRes; ///< X resolution of the fixed mode.
- UINT32 YRes; ///< Y resolution of the fixed mode.
- } BLOCK51_FIXED_MODE_SET;
- /**
- This defines the Complete VBT Structure for generation purpose
- **/
- typedef struct {
- VBT_HEADER VbtHeader;
- VBT_BIOS_DATA_HEADER VbtBdbHeader;
- BLOCK254_BMP_Structure Block254BMPStructure;
- VBT_GENERAL1_INFO VbtGen1Info;
- PRD_BOOT_TABLE PrdBootTable;
- VBT_GENERAL2_INFO VbtGen2Info;
- BLOCK03_ORIGINAL_DISPLAY_TOGGLE_LIST Block03OriginalDisplayToggleList;
- BLOCK252_SBIOS_Hook Block252SbiosHook;
- BLOCK06_MMIO_REG_TABLE Block06MmioRegTable;
- BLOCK07_IOSWFLAG_REG_TABLE Block07IoswflagRegTable;
- BLOCK08_MMIOSWFLAG_REG_TABLE Block08MmioswflagRegTable;
- BLOCK09_PSR_FEATURE Block09PsrFeature;
- BLOCK10_MODE_REMOVAL_TABLE Block10ModeRemovalTable;
- BLOCK12_DRIVER_FEATURES Block12DriverFeatures;
- BLOCK13_DRIVER_PERSISTENCE Block13DriverPersistence;
- BLOCK17_SV_BITS Block17SvBits;
- BLOCK18_DRIVER_ROTATION Block18DriverRotation;
- BLOCK20_OEM_CUSTOMIZATION Block20OemCustomization;
- BLOCK26_TV_OPTIONS Block26TVOptions;
- BLOCK27_EDP_FEATURES Block27EDPFeatures;
- BLOCK28_EDIDLESS_EFP Block28EdidlessEFP;
- BLOCK31_TOGGLE_LIST Block31ToggleList;
- BLOCK32_DISPLAY_CONFIGURATION_REMOVAL Block32DisplayConfigurationRemoval;
- BLOCK40_LVDS_FEATURES Block40LVDSFeatures;
- BLOCK41_LFP_TABLE_POINTERS Block41LfpTablePointers;
- BLOCK42_LVDS_PANEL_INFO Block42LvdsPanelInfo;
- BLOCK43_LVDS_BLC Block43LVDSBlc;
- BLOCK44_ALS Block44Als;
- BLOCK46_CHROMATICITY_SUPPORT Block46ChromaticitySupport;
- BLOCK51_FIXED_MODE_SET Block51FixedModeSet;
- } VBT_TABLE_DATA;
- #pragma pack()
- /**
- This function will update the VBT checksum.
- @param[in out] VbtPtr - Pointer to VBT table
- @retval none
- **/
- VOID
- UpdateVbtChecksum(
- VBT_TABLE_DATA *VbtPtr
- );
- /**
- This function will update the VBT.
- @param[in] VbtPtr - Pointer to VBT Table
- @retval none
- **/
- VOID
- UpdateGopVbt (
- IN VBT_TABLE_DATA *VbtPtr
- );
- #endif
|