Rev 1986 | Rev 3031 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1986 | Rev 2997 | ||
---|---|---|---|
Line 99... | Line 99... | ||
99 | #define ATOM_LCD_BLON (ATOM_ENABLE+2) |
99 | #define ATOM_LCD_BLON (ATOM_ENABLE+2) |
100 | #define ATOM_LCD_BL_BRIGHTNESS_CONTROL (ATOM_ENABLE+3) |
100 | #define ATOM_LCD_BL_BRIGHTNESS_CONTROL (ATOM_ENABLE+3) |
101 | #define ATOM_LCD_SELFTEST_START (ATOM_DISABLE+5) |
101 | #define ATOM_LCD_SELFTEST_START (ATOM_DISABLE+5) |
102 | #define ATOM_LCD_SELFTEST_STOP (ATOM_ENABLE+5) |
102 | #define ATOM_LCD_SELFTEST_STOP (ATOM_ENABLE+5) |
103 | #define ATOM_ENCODER_INIT (ATOM_DISABLE+7) |
103 | #define ATOM_ENCODER_INIT (ATOM_DISABLE+7) |
- | 104 | #define ATOM_INIT (ATOM_DISABLE+7) |
|
104 | #define ATOM_GET_STATUS (ATOM_DISABLE+8) |
105 | #define ATOM_GET_STATUS (ATOM_DISABLE+8) |
Line 105... | Line 106... | ||
105 | 106 | ||
106 | #define ATOM_BLANKING 1 |
107 | #define ATOM_BLANKING 1 |
Line 249... | Line 250... | ||
249 | USHORT DVOEncoderControl; //Function Table,directly used by various SW components,latest version 1.2 |
250 | USHORT DVOEncoderControl; //Function Table,directly used by various SW components,latest version 1.2 |
250 | USHORT GPIOPinControl; //Atomic Table, only used by Bios |
251 | USHORT GPIOPinControl; //Atomic Table, only used by Bios |
251 | USHORT SetEngineClock; //Function Table,directly used by various SW components,latest version 1.1 |
252 | USHORT SetEngineClock; //Function Table,directly used by various SW components,latest version 1.1 |
252 | USHORT SetMemoryClock; //Function Table,directly used by various SW components,latest version 1.1 |
253 | USHORT SetMemoryClock; //Function Table,directly used by various SW components,latest version 1.1 |
253 | USHORT SetPixelClock; //Function Table,directly used by various SW components,latest version 1.2 |
254 | USHORT SetPixelClock; //Function Table,directly used by various SW components,latest version 1.2 |
254 | USHORT DynamicClockGating; //Atomic Table, indirectly used by various SW components,called from ASIC_Init |
255 | USHORT EnableDispPowerGating; //Atomic Table, indirectly used by various SW components,called from ASIC_Init |
255 | USHORT ResetMemoryDLL; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
256 | USHORT ResetMemoryDLL; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
256 | USHORT ResetMemoryDevice; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
257 | USHORT ResetMemoryDevice; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
257 | USHORT MemoryPLLInit; |
258 | USHORT MemoryPLLInit; //Atomic Table, used only by Bios |
258 | USHORT AdjustDisplayPll; //only used by Bios |
259 | USHORT AdjustDisplayPll; //Atomic Table, used by various SW componentes. |
259 | USHORT AdjustMemoryController; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
260 | USHORT AdjustMemoryController; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
260 | USHORT EnableASIC_StaticPwrMgt; //Atomic Table, only used by Bios |
261 | USHORT EnableASIC_StaticPwrMgt; //Atomic Table, only used by Bios |
261 | USHORT ASIC_StaticPwrMgtStatusChange; //Obsolete , only used by Bios |
262 | USHORT ASIC_StaticPwrMgtStatusChange; //Obsolete , only used by Bios |
262 | USHORT DAC_LoadDetection; //Atomic Table, directly used by various SW components,latest version 1.2 |
263 | USHORT DAC_LoadDetection; //Atomic Table, directly used by various SW components,latest version 1.2 |
263 | USHORT LVTMAEncoderControl; //Atomic Table,directly used by various SW components,latest version 1.3 |
264 | USHORT LVTMAEncoderControl; //Atomic Table,directly used by various SW components,latest version 1.3 |
264 | USHORT LCD1OutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
265 | USHORT HW_Misc_Operation; //Atomic Table, directly used by various SW components,latest version 1.1 |
265 | USHORT DAC1EncoderControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
266 | USHORT DAC1EncoderControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
266 | USHORT DAC2EncoderControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
267 | USHORT DAC2EncoderControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
267 | USHORT DVOOutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
268 | USHORT DVOOutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
268 | USHORT CV1OutputControl; //Atomic Table, Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead |
269 | USHORT CV1OutputControl; //Atomic Table, Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead |
269 | USHORT GetConditionalGoldenSetting; //only used by Bios |
270 | USHORT GetConditionalGoldenSetting; //Only used by Bios |
270 | USHORT TVEncoderControl; //Function Table,directly used by various SW components,latest version 1.1 |
271 | USHORT TVEncoderControl; //Function Table,directly used by various SW components,latest version 1.1 |
271 | USHORT TMDSAEncoderControl; //Atomic Table, directly used by various SW components,latest version 1.3 |
272 | USHORT PatchMCSetting; //only used by BIOS |
272 | USHORT LVDSEncoderControl; //Atomic Table, directly used by various SW components,latest version 1.3 |
273 | USHORT MC_SEQ_Control; //only used by BIOS |
273 | USHORT TV1OutputControl; //Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead |
274 | USHORT TV1OutputControl; //Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead |
274 | USHORT EnableScaler; //Atomic Table, used only by Bios |
275 | USHORT EnableScaler; //Atomic Table, used only by Bios |
275 | USHORT BlankCRTC; //Atomic Table, directly used by various SW components,latest version 1.1 |
276 | USHORT BlankCRTC; //Atomic Table, directly used by various SW components,latest version 1.1 |
276 | USHORT EnableCRTC; //Atomic Table, directly used by various SW components,latest version 1.1 |
277 | USHORT EnableCRTC; //Atomic Table, directly used by various SW components,latest version 1.1 |
277 | USHORT GetPixelClock; //Atomic Table, directly used by various SW components,latest version 1.1 |
278 | USHORT GetPixelClock; //Atomic Table, directly used by various SW components,latest version 1.1 |
Line 280... | Line 281... | ||
280 | USHORT SetCRTC_Timing; //Atomic Table, directly used by various SW components,latest version 1.1 |
281 | USHORT SetCRTC_Timing; //Atomic Table, directly used by various SW components,latest version 1.1 |
281 | USHORT SetCRTC_OverScan; //Atomic Table, used by various SW components,latest version 1.1 |
282 | USHORT SetCRTC_OverScan; //Atomic Table, used by various SW components,latest version 1.1 |
282 | USHORT SetCRTC_Replication; //Atomic Table, used only by Bios |
283 | USHORT SetCRTC_Replication; //Atomic Table, used only by Bios |
283 | USHORT SelectCRTC_Source; //Atomic Table, directly used by various SW components,latest version 1.1 |
284 | USHORT SelectCRTC_Source; //Atomic Table, directly used by various SW components,latest version 1.1 |
284 | USHORT EnableGraphSurfaces; //Atomic Table, used only by Bios |
285 | USHORT EnableGraphSurfaces; //Atomic Table, used only by Bios |
285 | USHORT UpdateCRTC_DoubleBufferRegisters; |
286 | USHORT UpdateCRTC_DoubleBufferRegisters; //Atomic Table, used only by Bios |
286 | USHORT LUT_AutoFill; //Atomic Table, only used by Bios |
287 | USHORT LUT_AutoFill; //Atomic Table, only used by Bios |
287 | USHORT EnableHW_IconCursor; //Atomic Table, only used by Bios |
288 | USHORT EnableHW_IconCursor; //Atomic Table, only used by Bios |
288 | USHORT GetMemoryClock; //Atomic Table, directly used by various SW components,latest version 1.1 |
289 | USHORT GetMemoryClock; //Atomic Table, directly used by various SW components,latest version 1.1 |
289 | USHORT GetEngineClock; //Atomic Table, directly used by various SW components,latest version 1.1 |
290 | USHORT GetEngineClock; //Atomic Table, directly used by various SW components,latest version 1.1 |
290 | USHORT SetCRTC_UsingDTDTiming; //Atomic Table, directly used by various SW components,latest version 1.1 |
291 | USHORT SetCRTC_UsingDTDTiming; //Atomic Table, directly used by various SW components,latest version 1.1 |
Line 306... | Line 307... | ||
306 | USHORT EnableSpreadSpectrumOnPPLL; //Atomic Table, directly used by various SW components,latest version 1.2 |
307 | USHORT EnableSpreadSpectrumOnPPLL; //Atomic Table, directly used by various SW components,latest version 1.2 |
307 | USHORT TMDSAOutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
308 | USHORT TMDSAOutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
308 | USHORT SetVoltage; //Function Table,directly and/or indirectly used by various SW components,latest version 1.1 |
309 | USHORT SetVoltage; //Function Table,directly and/or indirectly used by various SW components,latest version 1.1 |
309 | USHORT DAC1OutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
310 | USHORT DAC1OutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
310 | USHORT DAC2OutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
311 | USHORT DAC2OutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
311 | USHORT SetupHWAssistedI2CStatus; //Function Table,only used by Bios, obsolete soon.Switch to use "ReadEDIDFromHWAssistedI2C" |
312 | USHORT ComputeMemoryClockParam; //Function Table,only used by Bios, obsolete soon.Switch to use "ReadEDIDFromHWAssistedI2C" |
312 | USHORT ClockSource; //Atomic Table, indirectly used by various SW components,called from ASIC_Init |
313 | USHORT ClockSource; //Atomic Table, indirectly used by various SW components,called from ASIC_Init |
313 | USHORT MemoryDeviceInit; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
314 | USHORT MemoryDeviceInit; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
314 | USHORT EnableYUV; //Atomic Table, indirectly used by various SW components,called from EnableVGARender |
315 | USHORT GetDispObjectInfo; //Atomic Table, indirectly used by various SW components,called from EnableVGARender |
315 | USHORT DIG1EncoderControl; //Atomic Table,directly used by various SW components,latest version 1.1 |
316 | USHORT DIG1EncoderControl; //Atomic Table,directly used by various SW components,latest version 1.1 |
316 | USHORT DIG2EncoderControl; //Atomic Table,directly used by various SW components,latest version 1.1 |
317 | USHORT DIG2EncoderControl; //Atomic Table,directly used by various SW components,latest version 1.1 |
317 | USHORT DIG1TransmitterControl; //Atomic Table,directly used by various SW components,latest version 1.1 |
318 | USHORT DIG1TransmitterControl; //Atomic Table,directly used by various SW components,latest version 1.1 |
318 | USHORT DIG2TransmitterControl; //Atomic Table,directly used by various SW components,latest version 1.1 |
319 | USHORT DIG2TransmitterControl; //Atomic Table,directly used by various SW components,latest version 1.1 |
319 | USHORT ProcessAuxChannelTransaction; //Function Table,only used by Bios |
320 | USHORT ProcessAuxChannelTransaction; //Function Table,only used by Bios |
320 | USHORT DPEncoderService; //Function Table,only used by Bios |
321 | USHORT DPEncoderService; //Function Table,only used by Bios |
- | 322 | USHORT GetVoltageInfo; //Function Table,only used by Bios since SI |
|
321 | }ATOM_MASTER_LIST_OF_COMMAND_TABLES; |
323 | }ATOM_MASTER_LIST_OF_COMMAND_TABLES; |
Line 322... | Line 324... | ||
322 | 324 | ||
323 | // For backward compatible |
325 | // For backward compatible |
- | 326 | #define ReadEDIDFromHWAssistedI2C ProcessI2cChannelTransaction |
|
324 | #define ReadEDIDFromHWAssistedI2C ProcessI2cChannelTransaction |
327 | #define DPTranslatorControl DIG2EncoderControl |
325 | #define UNIPHYTransmitterControl DIG1TransmitterControl |
328 | #define UNIPHYTransmitterControl DIG1TransmitterControl |
326 | #define LVTMATransmitterControl DIG2TransmitterControl |
329 | #define LVTMATransmitterControl DIG2TransmitterControl |
327 | #define SetCRTC_DPM_State GetConditionalGoldenSetting |
330 | #define SetCRTC_DPM_State GetConditionalGoldenSetting |
328 | #define SetUniphyInstance ASIC_StaticPwrMgtStatusChange |
331 | #define SetUniphyInstance ASIC_StaticPwrMgtStatusChange |
329 | #define HPDInterruptService ReadHWAssistedI2CStatus |
332 | #define HPDInterruptService ReadHWAssistedI2CStatus |
- | 333 | #define EnableVGA_Access GetSCLKOverMCLKRatio |
|
- | 334 | #define EnableYUV GetDispObjectInfo |
|
- | 335 | #define DynamicClockGating EnableDispPowerGating |
|
- | 336 | #define SetupHWAssistedI2CStatus ComputeMemoryClockParam |
|
- | 337 | ||
330 | #define EnableVGA_Access GetSCLKOverMCLKRatio |
338 | #define TMDSAEncoderControl PatchMCSetting |
- | 339 | #define LVDSEncoderControl MC_SEQ_Control |
|
- | 340 | #define LCD1OutputControl HW_Misc_Operation |
|
Line 331... | Line 341... | ||
331 | #define GetDispObjectInfo EnableYUV |
341 | |
332 | 342 | ||
333 | typedef struct _ATOM_MASTER_COMMAND_TABLE |
343 | typedef struct _ATOM_MASTER_COMMAND_TABLE |
334 | { |
344 | { |
Line 493... | Line 503... | ||
493 | }COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V5; |
503 | }COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V5; |
Line 494... | Line 504... | ||
494 | 504 | ||
495 | // ucInputFlag |
505 | // ucInputFlag |
Line -... | Line 506... | ||
- | 506 | #define ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN 1 // 1-StrobeMode, 0-PerformanceMode |
|
- | 507 | ||
- | 508 | // use for ComputeMemoryClockParamTable |
|
- | 509 | typedef struct _COMPUTE_MEMORY_CLOCK_PARAM_PARAMETERS_V2_1 |
|
- | 510 | { |
|
- | 511 | union |
|
- | 512 | { |
|
- | 513 | ULONG ulClock; |
|
- | 514 | ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output:UPPER_WORD=FB_DIV_INTEGER, LOWER_WORD=FB_DIV_FRAC shl (16-FB_FRACTION_BITS) |
|
- | 515 | }; |
|
- | 516 | UCHAR ucDllSpeed; //Output |
|
- | 517 | UCHAR ucPostDiv; //Output |
|
- | 518 | union{ |
|
- | 519 | UCHAR ucInputFlag; //Input : ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN: 1-StrobeMode, 0-PerformanceMode |
|
- | 520 | UCHAR ucPllCntlFlag; //Output: |
|
- | 521 | }; |
|
- | 522 | UCHAR ucBWCntl; |
|
- | 523 | }COMPUTE_MEMORY_CLOCK_PARAM_PARAMETERS_V2_1; |
|
- | 524 | ||
- | 525 | // definition of ucInputFlag |
|
- | 526 | #define MPLL_INPUT_FLAG_STROBE_MODE_EN 0x01 |
|
- | 527 | // definition of ucPllCntlFlag |
|
- | 528 | #define MPLL_CNTL_FLAG_VCO_MODE_MASK 0x03 |
|
- | 529 | #define MPLL_CNTL_FLAG_BYPASS_DQ_PLL 0x04 |
|
- | 530 | #define MPLL_CNTL_FLAG_QDR_ENABLE 0x08 |
|
- | 531 | #define MPLL_CNTL_FLAG_AD_HALF_RATE 0x10 |
|
- | 532 | ||
- | 533 | //MPLL_CNTL_FLAG_BYPASS_AD_PLL has a wrong name, should be BYPASS_DQ_PLL |
|
496 | #define ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN 1 // 1-StrobeMode, 0-PerformanceMode |
534 | #define MPLL_CNTL_FLAG_BYPASS_AD_PLL 0x04 |
497 | 535 | ||
498 | typedef struct _DYNAMICE_MEMORY_SETTINGS_PARAMETER |
536 | typedef struct _DYNAMICE_MEMORY_SETTINGS_PARAMETER |
499 | { |
537 | { |
500 | ATOM_COMPUTE_CLOCK_FREQ ulClock; |
538 | ATOM_COMPUTE_CLOCK_FREQ ulClock; |
Line 560... | Line 598... | ||
560 | UCHAR ucPadding[3]; |
598 | UCHAR ucPadding[3]; |
561 | }DYNAMIC_CLOCK_GATING_PARAMETERS; |
599 | }DYNAMIC_CLOCK_GATING_PARAMETERS; |
562 | #define DYNAMIC_CLOCK_GATING_PS_ALLOCATION DYNAMIC_CLOCK_GATING_PARAMETERS |
600 | #define DYNAMIC_CLOCK_GATING_PS_ALLOCATION DYNAMIC_CLOCK_GATING_PARAMETERS |
Line 563... | Line 601... | ||
563 | 601 | ||
- | 602 | /****************************************************************************/ |
|
- | 603 | // Structure used by EnableDispPowerGatingTable.ctb |
|
- | 604 | /****************************************************************************/ |
|
- | 605 | typedef struct _ENABLE_DISP_POWER_GATING_PARAMETERS_V2_1 |
|
- | 606 | { |
|
- | 607 | UCHAR ucDispPipeId; // ATOM_CRTC1, ATOM_CRTC2, ... |
|
- | 608 | UCHAR ucEnable; // ATOM_ENABLE or ATOM_DISABLE |
|
- | 609 | UCHAR ucPadding[2]; |
|
- | 610 | }ENABLE_DISP_POWER_GATING_PARAMETERS_V2_1; |
|
- | 611 | ||
564 | /****************************************************************************/ |
612 | /****************************************************************************/ |
565 | // Structure used by EnableASIC_StaticPwrMgtTable.ctb |
613 | // Structure used by EnableASIC_StaticPwrMgtTable.ctb |
566 | /****************************************************************************/ |
614 | /****************************************************************************/ |
567 | typedef struct _ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS |
615 | typedef struct _ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS |
568 | { |
616 | { |
Line 805... | Line 853... | ||
805 | 853 | ||
806 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_MASK 0x03 |
854 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_MASK 0x03 |
807 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_1_62GHZ 0x00 |
855 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_1_62GHZ 0x00 |
808 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_2_70GHZ 0x01 |
856 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_2_70GHZ 0x01 |
- | 857 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_5_40GHZ 0x02 |
|
809 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_5_40GHZ 0x02 |
858 | #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_3_24GHZ 0x03 |
810 | #define ATOM_ENCODER_CONFIG_V4_ENCODER_SEL 0x70 |
859 | #define ATOM_ENCODER_CONFIG_V4_ENCODER_SEL 0x70 |
811 | #define ATOM_ENCODER_CONFIG_V4_DIG0_ENCODER 0x00 |
860 | #define ATOM_ENCODER_CONFIG_V4_DIG0_ENCODER 0x00 |
812 | #define ATOM_ENCODER_CONFIG_V4_DIG1_ENCODER 0x10 |
861 | #define ATOM_ENCODER_CONFIG_V4_DIG1_ENCODER 0x10 |
813 | #define ATOM_ENCODER_CONFIG_V4_DIG2_ENCODER 0x20 |
862 | #define ATOM_ENCODER_CONFIG_V4_DIG2_ENCODER 0x20 |
814 | #define ATOM_ENCODER_CONFIG_V4_DIG3_ENCODER 0x30 |
863 | #define ATOM_ENCODER_CONFIG_V4_DIG3_ENCODER 0x30 |
815 | #define ATOM_ENCODER_CONFIG_V4_DIG4_ENCODER 0x40 |
864 | #define ATOM_ENCODER_CONFIG_V4_DIG4_ENCODER 0x40 |
- | 865 | #define ATOM_ENCODER_CONFIG_V4_DIG5_ENCODER 0x50 |
|
Line 816... | Line 866... | ||
816 | #define ATOM_ENCODER_CONFIG_V4_DIG5_ENCODER 0x50 |
866 | #define ATOM_ENCODER_CONFIG_V4_DIG6_ENCODER 0x60 |
817 | 867 | ||
818 | typedef struct _DIG_ENCODER_CONTROL_PARAMETERS_V4 |
868 | typedef struct _DIG_ENCODER_CONTROL_PARAMETERS_V4 |
819 | { |
869 | { |
Line 1169... | Line 1219... | ||
1169 | #define ATOM_TRANSMITTER_CONFIG_V4_TRANSMITTER1 0x00 //AB |
1219 | #define ATOM_TRANSMITTER_CONFIG_V4_TRANSMITTER1 0x00 //AB |
1170 | #define ATOM_TRANSMITTER_CONFIG_V4_TRANSMITTER2 0x40 //CD |
1220 | #define ATOM_TRANSMITTER_CONFIG_V4_TRANSMITTER2 0x40 //CD |
1171 | #define ATOM_TRANSMITTER_CONFIG_V4_TRANSMITTER3 0x80 //EF |
1221 | #define ATOM_TRANSMITTER_CONFIG_V4_TRANSMITTER3 0x80 //EF |
Line -... | Line 1222... | ||
- | 1222 | ||
- | 1223 | ||
- | 1224 | typedef struct _ATOM_DIG_TRANSMITTER_CONFIG_V5 |
|
- | 1225 | { |
|
- | 1226 | #if ATOM_BIG_ENDIAN |
|
- | 1227 | UCHAR ucReservd1:1; |
|
- | 1228 | UCHAR ucHPDSel:3; |
|
- | 1229 | UCHAR ucPhyClkSrcId:2; |
|
- | 1230 | UCHAR ucCoherentMode:1; |
|
- | 1231 | UCHAR ucReserved:1; |
|
- | 1232 | #else |
|
- | 1233 | UCHAR ucReserved:1; |
|
- | 1234 | UCHAR ucCoherentMode:1; |
|
- | 1235 | UCHAR ucPhyClkSrcId:2; |
|
- | 1236 | UCHAR ucHPDSel:3; |
|
- | 1237 | UCHAR ucReservd1:1; |
|
- | 1238 | #endif |
|
- | 1239 | }ATOM_DIG_TRANSMITTER_CONFIG_V5; |
|
- | 1240 | ||
- | 1241 | typedef struct _DIG_TRANSMITTER_CONTROL_PARAMETERS_V1_5 |
|
- | 1242 | { |
|
- | 1243 | USHORT usSymClock; // Encoder Clock in 10kHz,(DP mode)= linkclock/10, (TMDS/LVDS/HDMI)= pixel clock, (HDMI deep color), =pixel clock * deep_color_ratio |
|
- | 1244 | UCHAR ucPhyId; // 0=UNIPHYA, 1=UNIPHYB, 2=UNIPHYC, 3=UNIPHYD, 4= UNIPHYE 5=UNIPHYF |
|
- | 1245 | UCHAR ucAction; // define as ATOM_TRANSMITER_ACTION_xxx |
|
- | 1246 | UCHAR ucLaneNum; // indicate lane number 1-8 |
|
- | 1247 | UCHAR ucConnObjId; // Connector Object Id defined in ObjectId.h |
|
- | 1248 | UCHAR ucDigMode; // indicate DIG mode |
|
- | 1249 | union{ |
|
- | 1250 | ATOM_DIG_TRANSMITTER_CONFIG_V5 asConfig; |
|
- | 1251 | UCHAR ucConfig; |
|
- | 1252 | }; |
|
- | 1253 | UCHAR ucDigEncoderSel; // indicate DIG front end encoder |
|
- | 1254 | UCHAR ucDPLaneSet; |
|
- | 1255 | UCHAR ucReserved; |
|
- | 1256 | UCHAR ucReserved1; |
|
- | 1257 | }DIG_TRANSMITTER_CONTROL_PARAMETERS_V1_5; |
|
- | 1258 | ||
- | 1259 | //ucPhyId |
|
- | 1260 | #define ATOM_PHY_ID_UNIPHYA 0 |
|
- | 1261 | #define ATOM_PHY_ID_UNIPHYB 1 |
|
- | 1262 | #define ATOM_PHY_ID_UNIPHYC 2 |
|
- | 1263 | #define ATOM_PHY_ID_UNIPHYD 3 |
|
- | 1264 | #define ATOM_PHY_ID_UNIPHYE 4 |
|
- | 1265 | #define ATOM_PHY_ID_UNIPHYF 5 |
|
- | 1266 | #define ATOM_PHY_ID_UNIPHYG 6 |
|
- | 1267 | ||
- | 1268 | // ucDigEncoderSel |
|
- | 1269 | #define ATOM_TRANMSITTER_V5__DIGA_SEL 0x01 |
|
- | 1270 | #define ATOM_TRANMSITTER_V5__DIGB_SEL 0x02 |
|
- | 1271 | #define ATOM_TRANMSITTER_V5__DIGC_SEL 0x04 |
|
- | 1272 | #define ATOM_TRANMSITTER_V5__DIGD_SEL 0x08 |
|
- | 1273 | #define ATOM_TRANMSITTER_V5__DIGE_SEL 0x10 |
|
- | 1274 | #define ATOM_TRANMSITTER_V5__DIGF_SEL 0x20 |
|
- | 1275 | #define ATOM_TRANMSITTER_V5__DIGG_SEL 0x40 |
|
- | 1276 | ||
- | 1277 | // ucDigMode |
|
- | 1278 | #define ATOM_TRANSMITTER_DIGMODE_V5_DP 0 |
|
- | 1279 | #define ATOM_TRANSMITTER_DIGMODE_V5_LVDS 1 |
|
- | 1280 | #define ATOM_TRANSMITTER_DIGMODE_V5_DVI 2 |
|
- | 1281 | #define ATOM_TRANSMITTER_DIGMODE_V5_HDMI 3 |
|
- | 1282 | #define ATOM_TRANSMITTER_DIGMODE_V5_SDVO 4 |
|
- | 1283 | #define ATOM_TRANSMITTER_DIGMODE_V5_DP_MST 5 |
|
- | 1284 | ||
- | 1285 | // ucDPLaneSet |
|
- | 1286 | #define DP_LANE_SET__0DB_0_4V 0x00 |
|
- | 1287 | #define DP_LANE_SET__0DB_0_6V 0x01 |
|
- | 1288 | #define DP_LANE_SET__0DB_0_8V 0x02 |
|
- | 1289 | #define DP_LANE_SET__0DB_1_2V 0x03 |
|
- | 1290 | #define DP_LANE_SET__3_5DB_0_4V 0x08 |
|
- | 1291 | #define DP_LANE_SET__3_5DB_0_6V 0x09 |
|
- | 1292 | #define DP_LANE_SET__3_5DB_0_8V 0x0a |
|
- | 1293 | #define DP_LANE_SET__6DB_0_4V 0x10 |
|
- | 1294 | #define DP_LANE_SET__6DB_0_6V 0x11 |
|
- | 1295 | #define DP_LANE_SET__9_5DB_0_4V 0x18 |
|
- | 1296 | ||
- | 1297 | // ATOM_DIG_TRANSMITTER_CONFIG_V5 asConfig; |
|
- | 1298 | // Bit1 |
|
- | 1299 | #define ATOM_TRANSMITTER_CONFIG_V5_COHERENT 0x02 |
|
- | 1300 | ||
- | 1301 | // Bit3:2 |
|
- | 1302 | #define ATOM_TRANSMITTER_CONFIG_V5_REFCLK_SEL_MASK 0x0c |
|
- | 1303 | #define ATOM_TRANSMITTER_CONFIG_V5_REFCLK_SEL_SHIFT 0x02 |
|
- | 1304 | ||
- | 1305 | #define ATOM_TRANSMITTER_CONFIG_V5_P1PLL 0x00 |
|
- | 1306 | #define ATOM_TRANSMITTER_CONFIG_V5_P2PLL 0x04 |
|
- | 1307 | #define ATOM_TRANSMITTER_CONFIG_V5_P0PLL 0x08 |
|
- | 1308 | #define ATOM_TRANSMITTER_CONFIG_V5_REFCLK_SRC_EXT 0x0c |
|
- | 1309 | // Bit6:4 |
|
- | 1310 | #define ATOM_TRANSMITTER_CONFIG_V5_HPD_SEL_MASK 0x70 |
|
- | 1311 | #define ATOM_TRANSMITTER_CONFIG_V5_HPD_SEL_SHIFT 0x04 |
|
- | 1312 | ||
- | 1313 | #define ATOM_TRANSMITTER_CONFIG_V5_NO_HPD_SEL 0x00 |
|
- | 1314 | #define ATOM_TRANSMITTER_CONFIG_V5_HPD1_SEL 0x10 |
|
- | 1315 | #define ATOM_TRANSMITTER_CONFIG_V5_HPD2_SEL 0x20 |
|
- | 1316 | #define ATOM_TRANSMITTER_CONFIG_V5_HPD3_SEL 0x30 |
|
- | 1317 | #define ATOM_TRANSMITTER_CONFIG_V5_HPD4_SEL 0x40 |
|
- | 1318 | #define ATOM_TRANSMITTER_CONFIG_V5_HPD5_SEL 0x50 |
|
- | 1319 | #define ATOM_TRANSMITTER_CONFIG_V5_HPD6_SEL 0x60 |
|
- | 1320 | ||
- | 1321 | #define DIG_TRANSMITTER_CONTROL_PS_ALLOCATION_V1_5 DIG_TRANSMITTER_CONTROL_PARAMETERS_V1_5 |
|
1172 | 1322 | ||
1173 | 1323 | ||
1174 | /****************************************************************************/ |
1324 | /****************************************************************************/ |
1175 | // Structures used by ExternalEncoderControlTable V1.3 |
1325 | // Structures used by ExternalEncoderControlTable V1.3 |
1176 | // ASIC Families: Evergreen, Llano, NI |
1326 | // ASIC Families: Evergreen, Llano, NI |
Line 1791... | Line 1941... | ||
1791 | #define ATOM_PPLL_SS_TYPE_V3_EXT_SPREAD 0x02 |
1941 | #define ATOM_PPLL_SS_TYPE_V3_EXT_SPREAD 0x02 |
1792 | #define ATOM_PPLL_SS_TYPE_V3_PPLL_SEL_MASK 0x0c |
1942 | #define ATOM_PPLL_SS_TYPE_V3_PPLL_SEL_MASK 0x0c |
1793 | #define ATOM_PPLL_SS_TYPE_V3_P1PLL 0x00 |
1943 | #define ATOM_PPLL_SS_TYPE_V3_P1PLL 0x00 |
1794 | #define ATOM_PPLL_SS_TYPE_V3_P2PLL 0x04 |
1944 | #define ATOM_PPLL_SS_TYPE_V3_P2PLL 0x04 |
1795 | #define ATOM_PPLL_SS_TYPE_V3_DCPLL 0x08 |
1945 | #define ATOM_PPLL_SS_TYPE_V3_DCPLL 0x08 |
- | 1946 | #define ATOM_PPLL_SS_TYPE_V3_P0PLL ATOM_PPLL_SS_TYPE_V3_DCPLL |
|
1796 | #define ATOM_PPLL_SS_AMOUNT_V3_FBDIV_MASK 0x00FF |
1947 | #define ATOM_PPLL_SS_AMOUNT_V3_FBDIV_MASK 0x00FF |
1797 | #define ATOM_PPLL_SS_AMOUNT_V3_FBDIV_SHIFT 0 |
1948 | #define ATOM_PPLL_SS_AMOUNT_V3_FBDIV_SHIFT 0 |
1798 | #define ATOM_PPLL_SS_AMOUNT_V3_NFRAC_MASK 0x0F00 |
1949 | #define ATOM_PPLL_SS_AMOUNT_V3_NFRAC_MASK 0x0F00 |
1799 | #define ATOM_PPLL_SS_AMOUNT_V3_NFRAC_SHIFT 8 |
1950 | #define ATOM_PPLL_SS_AMOUNT_V3_NFRAC_SHIFT 8 |
Line 2028... | Line 2179... | ||
2028 | UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ |
2179 | UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ |
2029 | UCHAR ucVoltageMode; // Not used, maybe use for state machine for differen power mode |
2180 | UCHAR ucVoltageMode; // Not used, maybe use for state machine for differen power mode |
2030 | USHORT usVoltageLevel; // real voltage level |
2181 | USHORT usVoltageLevel; // real voltage level |
2031 | }SET_VOLTAGE_PARAMETERS_V2; |
2182 | }SET_VOLTAGE_PARAMETERS_V2; |
Line -... | Line 2183... | ||
- | 2183 | ||
- | 2184 | ||
- | 2185 | typedef struct _SET_VOLTAGE_PARAMETERS_V1_3 |
|
- | 2186 | { |
|
- | 2187 | UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI |
|
- | 2188 | UCHAR ucVoltageMode; // Indicate action: Set voltage level |
|
- | 2189 | USHORT usVoltageLevel; // real voltage level in unit of mv or Voltage Phase (0, 1, 2, .. ) |
|
- | 2190 | }SET_VOLTAGE_PARAMETERS_V1_3; |
|
- | 2191 | ||
- | 2192 | //ucVoltageType |
|
- | 2193 | #define VOLTAGE_TYPE_VDDC 1 |
|
- | 2194 | #define VOLTAGE_TYPE_MVDDC 2 |
|
- | 2195 | #define VOLTAGE_TYPE_MVDDQ 3 |
|
- | 2196 | #define VOLTAGE_TYPE_VDDCI 4 |
|
- | 2197 | ||
- | 2198 | //SET_VOLTAGE_PARAMETERS_V3.ucVoltageMode |
|
- | 2199 | #define ATOM_SET_VOLTAGE 0 //Set voltage Level |
|
- | 2200 | #define ATOM_INIT_VOLTAGE_REGULATOR 3 //Init Regulator |
|
- | 2201 | #define ATOM_SET_VOLTAGE_PHASE 4 //Set Vregulator Phase |
|
- | 2202 | #define ATOM_GET_MAX_VOLTAGE 6 //Get Max Voltage, not used in SetVoltageTable v1.3 |
|
- | 2203 | #define ATOM_GET_VOLTAGE_LEVEL 6 //Get Voltage level from vitual voltage ID |
|
- | 2204 | ||
- | 2205 | // define vitual voltage id in usVoltageLevel |
|
- | 2206 | #define ATOM_VIRTUAL_VOLTAGE_ID0 0xff01 |
|
- | 2207 | #define ATOM_VIRTUAL_VOLTAGE_ID1 0xff02 |
|
- | 2208 | #define ATOM_VIRTUAL_VOLTAGE_ID2 0xff03 |
|
- | 2209 | #define ATOM_VIRTUAL_VOLTAGE_ID3 0xff04 |
|
2032 | 2210 | ||
2033 | typedef struct _SET_VOLTAGE_PS_ALLOCATION |
2211 | typedef struct _SET_VOLTAGE_PS_ALLOCATION |
2034 | { |
2212 | { |
2035 | SET_VOLTAGE_PARAMETERS sASICSetVoltage; |
2213 | SET_VOLTAGE_PARAMETERS sASICSetVoltage; |
2036 | WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION sReserved; |
2214 | WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION sReserved; |
Line -... | Line 2215... | ||
- | 2215 | }SET_VOLTAGE_PS_ALLOCATION; |
|
- | 2216 | ||
- | 2217 | // New Added from SI for GetVoltageInfoTable, input parameter structure |
|
- | 2218 | typedef struct _GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_1 |
|
- | 2219 | { |
|
- | 2220 | UCHAR ucVoltageType; // Input: To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI |
|
- | 2221 | UCHAR ucVoltageMode; // Input: Indicate action: Get voltage info |
|
- | 2222 | USHORT usVoltageLevel; // Input: real voltage level in unit of mv or Voltage Phase (0, 1, 2, .. ) or Leakage Id |
|
- | 2223 | ULONG ulReserved; |
|
- | 2224 | }GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_1; |
|
- | 2225 | ||
- | 2226 | // New Added from SI for GetVoltageInfoTable, output parameter structure when ucVotlageMode == ATOM_GET_VOLTAGE_VID |
|
- | 2227 | typedef struct _GET_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_1 |
|
- | 2228 | { |
|
- | 2229 | ULONG ulVotlageGpioState; |
|
- | 2230 | ULONG ulVoltageGPioMask; |
|
- | 2231 | }GET_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_1; |
|
- | 2232 | ||
- | 2233 | // New Added from SI for GetVoltageInfoTable, output parameter structure when ucVotlageMode == ATOM_GET_VOLTAGE_STATEx_LEAKAGE_VID |
|
- | 2234 | typedef struct _GET_LEAKAGE_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_1 |
|
- | 2235 | { |
|
- | 2236 | USHORT usVoltageLevel; |
|
- | 2237 | USHORT usVoltageId; // Voltage Id programmed in Voltage Regulator |
|
- | 2238 | ULONG ulReseved; |
|
- | 2239 | }GET_LEAKAGE_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_1; |
|
- | 2240 | ||
- | 2241 | ||
- | 2242 | // GetVoltageInfo v1.1 ucVoltageMode |
|
- | 2243 | #define ATOM_GET_VOLTAGE_VID 0x00 |
|
- | 2244 | #define ATOM_GET_VOTLAGE_INIT_SEQ 0x03 |
|
- | 2245 | #define ATOM_GET_VOLTTAGE_PHASE_PHASE_VID 0x04 |
|
- | 2246 | // for SI, this state map to 0xff02 voltage state in Power Play table, which is power boost state |
|
- | 2247 | #define ATOM_GET_VOLTAGE_STATE0_LEAKAGE_VID 0x10 |
|
- | 2248 | ||
- | 2249 | // for SI, this state map to 0xff01 voltage state in Power Play table, which is performance state |
|
- | 2250 | #define ATOM_GET_VOLTAGE_STATE1_LEAKAGE_VID 0x11 |
|
- | 2251 | // undefined power state |
|
- | 2252 | #define ATOM_GET_VOLTAGE_STATE2_LEAKAGE_VID 0x12 |
|
2037 | }SET_VOLTAGE_PS_ALLOCATION; |
2253 | #define ATOM_GET_VOLTAGE_STATE3_LEAKAGE_VID 0x13 |
2038 | 2254 | ||
2039 | /****************************************************************************/ |
2255 | /****************************************************************************/ |
2040 | // Structures used by TVEncoderControlTable |
2256 | // Structures used by TVEncoderControlTable |
2041 | /****************************************************************************/ |
2257 | /****************************************************************************/ |
Line 2063... | Line 2279... | ||
2063 | USHORT UtilityPipeLine; // Offest for the utility to get parser info,Don't change this position! |
2279 | USHORT UtilityPipeLine; // Offest for the utility to get parser info,Don't change this position! |
2064 | USHORT MultimediaCapabilityInfo; // Only used by MM Lib,latest version 1.1, not configuable from Bios, need to include the table to build Bios |
2280 | USHORT MultimediaCapabilityInfo; // Only used by MM Lib,latest version 1.1, not configuable from Bios, need to include the table to build Bios |
2065 | USHORT MultimediaConfigInfo; // Only used by MM Lib,latest version 2.1, not configuable from Bios, need to include the table to build Bios |
2281 | USHORT MultimediaConfigInfo; // Only used by MM Lib,latest version 2.1, not configuable from Bios, need to include the table to build Bios |
2066 | USHORT StandardVESA_Timing; // Only used by Bios |
2282 | USHORT StandardVESA_Timing; // Only used by Bios |
2067 | USHORT FirmwareInfo; // Shared by various SW components,latest version 1.4 |
2283 | USHORT FirmwareInfo; // Shared by various SW components,latest version 1.4 |
2068 | USHORT DAC_Info; // Will be obsolete from R600 |
2284 | USHORT PaletteData; // Only used by BIOS |
2069 | USHORT LCD_Info; // Shared by various SW components,latest version 1.3, was called LVDS_Info |
2285 | USHORT LCD_Info; // Shared by various SW components,latest version 1.3, was called LVDS_Info |
2070 | USHORT TMDS_Info; // Will be obsolete from R600 |
2286 | USHORT DIGTransmitterInfo; // Internal used by VBIOS only version 3.1 |
2071 | USHORT AnalogTV_Info; // Shared by various SW components,latest version 1.1 |
2287 | USHORT AnalogTV_Info; // Shared by various SW components,latest version 1.1 |
2072 | USHORT SupportedDevicesInfo; // Will be obsolete from R600 |
2288 | USHORT SupportedDevicesInfo; // Will be obsolete from R600 |
2073 | USHORT GPIO_I2C_Info; // Shared by various SW components,latest version 1.2 will be used from R600 |
2289 | USHORT GPIO_I2C_Info; // Shared by various SW components,latest version 1.2 will be used from R600 |
2074 | USHORT VRAM_UsageByFirmware; // Shared by various SW components,latest version 1.3 will be used from R600 |
2290 | USHORT VRAM_UsageByFirmware; // Shared by various SW components,latest version 1.3 will be used from R600 |
2075 | USHORT GPIO_Pin_LUT; // Shared by various SW components,latest version 1.1 |
2291 | USHORT GPIO_Pin_LUT; // Shared by various SW components,latest version 1.1 |
Line 2094... | Line 2310... | ||
2094 | USHORT ASIC_ProfilingInfo; // New table name from R600, used to be called "ASIC_VDDCI_Info" for pre-R600 |
2310 | USHORT ASIC_ProfilingInfo; // New table name from R600, used to be called "ASIC_VDDCI_Info" for pre-R600 |
2095 | USHORT VoltageObjectInfo; // Shared by various SW components, latest version 1.1 |
2311 | USHORT VoltageObjectInfo; // Shared by various SW components, latest version 1.1 |
2096 | USHORT PowerSourceInfo; // Shared by various SW components, latest versoin 1.1 |
2312 | USHORT PowerSourceInfo; // Shared by various SW components, latest versoin 1.1 |
2097 | }ATOM_MASTER_LIST_OF_DATA_TABLES; |
2313 | }ATOM_MASTER_LIST_OF_DATA_TABLES; |
Line 2098... | Line -... | ||
2098 | - | ||
2099 | // For backward compatible |
- | |
2100 | #define LVDS_Info LCD_Info |
- | |
2101 | 2314 | ||
2102 | typedef struct _ATOM_MASTER_DATA_TABLE |
2315 | typedef struct _ATOM_MASTER_DATA_TABLE |
2103 | { |
2316 | { |
2104 | ATOM_COMMON_TABLE_HEADER sHeader; |
2317 | ATOM_COMMON_TABLE_HEADER sHeader; |
2105 | ATOM_MASTER_LIST_OF_DATA_TABLES ListOfDataTables; |
2318 | ATOM_MASTER_LIST_OF_DATA_TABLES ListOfDataTables; |
Line -... | Line 2319... | ||
- | 2319 | }ATOM_MASTER_DATA_TABLE; |
|
- | 2320 | ||
- | 2321 | // For backward compatible |
|
- | 2322 | #define LVDS_Info LCD_Info |
|
Line 2106... | Line 2323... | ||
2106 | }ATOM_MASTER_DATA_TABLE; |
2323 | #define DAC_Info PaletteData |
2107 | 2324 | #define TMDS_Info DIGTransmitterInfo |
|
2108 | 2325 | ||
2109 | /****************************************************************************/ |
2326 | /****************************************************************************/ |
Line 2169... | Line 2386... | ||
2169 | 2386 | ||
2170 | //Please don't add or expand this bitfield structure below, this one will retire soon.! |
2387 | //Please don't add or expand this bitfield structure below, this one will retire soon.! |
2171 | typedef struct _ATOM_FIRMWARE_CAPABILITY |
2388 | typedef struct _ATOM_FIRMWARE_CAPABILITY |
2172 | { |
2389 | { |
2173 | #if ATOM_BIG_ENDIAN |
2390 | #if ATOM_BIG_ENDIAN |
- | 2391 | USHORT Reserved:1; |
|
- | 2392 | USHORT SCL2Redefined:1; |
|
2174 | USHORT Reserved:3; |
2393 | USHORT PostWithoutModeSet:1; |
2175 | USHORT HyperMemory_Size:4; |
2394 | USHORT HyperMemory_Size:4; |
2176 | USHORT HyperMemory_Support:1; |
2395 | USHORT HyperMemory_Support:1; |
2177 | USHORT PPMode_Assigned:1; |
2396 | USHORT PPMode_Assigned:1; |
2178 | USHORT WMI_SUPPORT:1; |
2397 | USHORT WMI_SUPPORT:1; |
Line 2191... | Line 2410... | ||
2191 | USHORT GPUControlsBL:1; |
2410 | USHORT GPUControlsBL:1; |
2192 | USHORT WMI_SUPPORT:1; |
2411 | USHORT WMI_SUPPORT:1; |
2193 | USHORT PPMode_Assigned:1; |
2412 | USHORT PPMode_Assigned:1; |
2194 | USHORT HyperMemory_Support:1; |
2413 | USHORT HyperMemory_Support:1; |
2195 | USHORT HyperMemory_Size:4; |
2414 | USHORT HyperMemory_Size:4; |
- | 2415 | USHORT PostWithoutModeSet:1; |
|
- | 2416 | USHORT SCL2Redefined:1; |
|
2196 | USHORT Reserved:3; |
2417 | USHORT Reserved:1; |
2197 | #endif |
2418 | #endif |
2198 | }ATOM_FIRMWARE_CAPABILITY; |
2419 | }ATOM_FIRMWARE_CAPABILITY; |
Line 2199... | Line 2420... | ||
2199 | 2420 | ||
2200 | typedef union _ATOM_FIRMWARE_CAPABILITY_ACCESS |
2421 | typedef union _ATOM_FIRMWARE_CAPABILITY_ACCESS |
Line 2416... | Line 2637... | ||
2416 | USHORT usBootUpVDDCVoltage; //In MV unit |
2637 | USHORT usBootUpVDDCVoltage; //In MV unit |
2417 | USHORT usLcdMinPixelClockPLL_Output; // In MHz unit |
2638 | USHORT usLcdMinPixelClockPLL_Output; // In MHz unit |
2418 | USHORT usLcdMaxPixelClockPLL_Output; // In MHz unit |
2639 | USHORT usLcdMaxPixelClockPLL_Output; // In MHz unit |
2419 | ULONG ulReserved4; //Was ulAsicMaximumVoltage |
2640 | ULONG ulReserved4; //Was ulAsicMaximumVoltage |
2420 | ULONG ulMinPixelClockPLL_Output; //In 10Khz unit |
2641 | ULONG ulMinPixelClockPLL_Output; //In 10Khz unit |
- | 2642 | UCHAR ucRemoteDisplayConfig; |
|
2421 | ULONG ulReserved5; //Was usMinEngineClockPLL_Input and usMaxEngineClockPLL_Input |
2643 | UCHAR ucReserved5[3]; //Was usMinEngineClockPLL_Input and usMaxEngineClockPLL_Input |
2422 | ULONG ulReserved6; //Was usMinEngineClockPLL_Output and usMinMemoryClockPLL_Input |
2644 | ULONG ulReserved6; //Was usMinEngineClockPLL_Output and usMinMemoryClockPLL_Input |
2423 | ULONG ulReserved7; //Was usMaxMemoryClockPLL_Input and usMinMemoryClockPLL_Output |
2645 | ULONG ulReserved7; //Was usMaxMemoryClockPLL_Input and usMinMemoryClockPLL_Output |
2424 | USHORT usReserved11; //Was usMaxPixelClock; //In 10Khz unit, Max. Pclk used only for DAC |
2646 | USHORT usReserved11; //Was usMaxPixelClock; //In 10Khz unit, Max. Pclk used only for DAC |
2425 | USHORT usMinPixelClockPLL_Input; //In 10Khz unit |
2647 | USHORT usMinPixelClockPLL_Input; //In 10Khz unit |
2426 | USHORT usMaxPixelClockPLL_Input; //In 10Khz unit |
2648 | USHORT usMaxPixelClockPLL_Input; //In 10Khz unit |
Line 2436... | Line 2658... | ||
2436 | ULONG ulReserved10[3]; // New added comparing to previous version |
2658 | ULONG ulReserved10[3]; // New added comparing to previous version |
2437 | }ATOM_FIRMWARE_INFO_V2_2; |
2659 | }ATOM_FIRMWARE_INFO_V2_2; |
Line 2438... | Line 2660... | ||
2438 | 2660 | ||
Line -... | Line 2661... | ||
- | 2661 | #define ATOM_FIRMWARE_INFO_LAST ATOM_FIRMWARE_INFO_V2_2 |
|
- | 2662 | ||
- | 2663 | ||
- | 2664 | // definition of ucRemoteDisplayConfig |
|
- | 2665 | #define REMOTE_DISPLAY_DISABLE 0x00 |
|
2439 | #define ATOM_FIRMWARE_INFO_LAST ATOM_FIRMWARE_INFO_V2_2 |
2666 | #define REMOTE_DISPLAY_ENABLE 0x01 |
2440 | 2667 | ||
2441 | /****************************************************************************/ |
2668 | /****************************************************************************/ |
2442 | // Structures used in IntegratedSystemInfoTable |
2669 | // Structures used in IntegratedSystemInfoTable |
2443 | /****************************************************************************/ |
2670 | /****************************************************************************/ |
Line 2658... | Line 2885... | ||
2658 | #define INTEGRATED_SYSTEM_INFO__UNKNOWN_CPU 0 |
2885 | #define INTEGRATED_SYSTEM_INFO__UNKNOWN_CPU 0 |
2659 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__GRIFFIN 1 |
2886 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__GRIFFIN 1 |
2660 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__GREYHOUND 2 |
2887 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__GREYHOUND 2 |
2661 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__K8 3 |
2888 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__K8 3 |
2662 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__PHARAOH 4 |
2889 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__PHARAOH 4 |
- | 2890 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__OROCHI 5 |
|
Line 2663... | Line 2891... | ||
2663 | 2891 | ||
Line 2664... | Line 2892... | ||
2664 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__MAX_CODE INTEGRATED_SYSTEM_INFO__AMD_CPU__PHARAOH // this deff reflects max defined CPU code |
2892 | #define INTEGRATED_SYSTEM_INFO__AMD_CPU__MAX_CODE INTEGRATED_SYSTEM_INFO__AMD_CPU__OROCHI // this deff reflects max defined CPU code |
2665 | 2893 | ||
2666 | #define SYSTEM_CONFIG_POWEREXPRESS_ENABLE 0x00000001 |
2894 | #define SYSTEM_CONFIG_POWEREXPRESS_ENABLE 0x00000001 |
2667 | #define SYSTEM_CONFIG_RUN_AT_OVERDRIVE_ENGINE 0x00000002 |
2895 | #define SYSTEM_CONFIG_RUN_AT_OVERDRIVE_ENGINE 0x00000002 |
Line 2751... | Line 2979... | ||
2751 | #define ASIC_EXT_DIG2_ENCODER_ID 0x08 |
2979 | #define ASIC_EXT_DIG2_ENCODER_ID 0x08 |
2752 | #define ASIC_INT_DIG3_ENCODER_ID 0x0a |
2980 | #define ASIC_INT_DIG3_ENCODER_ID 0x0a |
2753 | #define ASIC_INT_DIG4_ENCODER_ID 0x0b |
2981 | #define ASIC_INT_DIG4_ENCODER_ID 0x0b |
2754 | #define ASIC_INT_DIG5_ENCODER_ID 0x0c |
2982 | #define ASIC_INT_DIG5_ENCODER_ID 0x0c |
2755 | #define ASIC_INT_DIG6_ENCODER_ID 0x0d |
2983 | #define ASIC_INT_DIG6_ENCODER_ID 0x0d |
- | 2984 | #define ASIC_INT_DIG7_ENCODER_ID 0x0e |
|
Line 2756... | Line 2985... | ||
2756 | 2985 | ||
2757 | //define Encoder attribute |
2986 | //define Encoder attribute |
2758 | #define ATOM_ANALOG_ENCODER 0 |
2987 | #define ATOM_ANALOG_ENCODER 0 |
2759 | #define ATOM_DIGITAL_ENCODER 1 |
2988 | #define ATOM_DIGITAL_ENCODER 1 |
Line 3224... | Line 3453... | ||
3224 | UCHAR ucPanelInfoSize; // start from ATOM_DTD_FORMAT to end of panel info, include ExtInfoTable |
3453 | UCHAR ucPanelInfoSize; // start from ATOM_DTD_FORMAT to end of panel info, include ExtInfoTable |
3225 | USHORT usBacklightPWM; // Backlight PWM in Hz. New in _V13 |
3454 | USHORT usBacklightPWM; // Backlight PWM in Hz. New in _V13 |
Line 3226... | Line 3455... | ||
3226 | 3455 | ||
3227 | UCHAR ucPowerSequenceDIGONtoDE_in4Ms; |
3456 | UCHAR ucPowerSequenceDIGONtoDE_in4Ms; |
3228 | UCHAR ucPowerSequenceDEtoVARY_BL_in4Ms; |
- | |
3229 | UCHAR ucPowerSequenceDEtoDIGON_in4Ms; |
3457 | UCHAR ucPowerSequenceDEtoVARY_BL_in4Ms; |
- | 3458 | UCHAR ucPowerSequenceVARY_BLtoDE_in4Ms; |
|
Line 3230... | Line 3459... | ||
3230 | UCHAR ucPowerSequenceVARY_BLtoDE_in4Ms; |
3459 | UCHAR ucPowerSequenceDEtoDIGON_in4Ms; |
3231 | 3460 | ||
3232 | UCHAR ucOffDelay_in4Ms; |
3461 | UCHAR ucOffDelay_in4Ms; |
3233 | UCHAR ucPowerSequenceVARY_BLtoBLON_in4Ms; |
3462 | UCHAR ucPowerSequenceVARY_BLtoBLON_in4Ms; |
Line -... | Line 3463... | ||
- | 3463 | UCHAR ucPowerSequenceBLONtoVARY_BL_in4Ms; |
|
- | 3464 | UCHAR ucReserved1; |
|
- | 3465 | ||
- | 3466 | UCHAR ucDPCD_eDP_CONFIGURATION_CAP; // dpcd 0dh |
|
- | 3467 | UCHAR ucDPCD_MAX_LINK_RATE; // dpcd 01h |
|
- | 3468 | UCHAR ucDPCD_MAX_LANE_COUNT; // dpcd 02h |
|
- | 3469 | UCHAR ucDPCD_MAX_DOWNSPREAD; // dpcd 03h |
|
- | 3470 | ||
3234 | UCHAR ucPowerSequenceBLONtoVARY_BL_in4Ms; |
3471 | USHORT usMaxPclkFreqInSingleLink; // Max PixelClock frequency in single link mode. |
3235 | UCHAR ucReserved1; |
3472 | UCHAR uceDPToLVDSRxId; |
Line 3236... | Line 3473... | ||
3236 | 3473 | UCHAR ucLcdReservd; |
|
Line 3237... | Line 3474... | ||
3237 | ULONG ulReserved[4]; |
3474 | ULONG ulReserved[2]; |
Line 3271... | Line 3508... | ||
3271 | #define LCDPANEL_CAP_V13_DRR_SUPPORTED 0x2 // = LCDPANEL_CAP_DRR_SUPPORTED no change comparing to previous version |
3508 | #define LCDPANEL_CAP_V13_DRR_SUPPORTED 0x2 // = LCDPANEL_CAP_DRR_SUPPORTED no change comparing to previous version |
Line 3272... | Line 3509... | ||
3272 | 3509 | ||
3273 | //Use this cap bit for a quick reference whether an embadded panel (LCD1 ) is LVDS or eDP. |
3510 | //Use this cap bit for a quick reference whether an embadded panel (LCD1 ) is LVDS or eDP. |
Line -... | Line 3511... | ||
- | 3511 | #define LCDPANEL_CAP_V13_eDP 0x4 // = LCDPANEL_CAP_eDP no change comparing to previous version |
|
- | 3512 | ||
- | 3513 | //uceDPToLVDSRxId |
|
- | 3514 | #define eDP_TO_LVDS_RX_DISABLE 0x00 // no eDP->LVDS translator chip |
|
- | 3515 | #define eDP_TO_LVDS_COMMON_ID 0x01 // common eDP->LVDS translator chip without AMD SW init |
|
3274 | #define LCDPANEL_CAP_V13_eDP 0x4 // = LCDPANEL_CAP_eDP no change comparing to previous version |
3516 | #define eDP_TO_LVDS_RT_ID 0x02 // RT tanslator which require AMD SW init |
3275 | 3517 | ||
3276 | typedef struct _ATOM_PATCH_RECORD_MODE |
3518 | typedef struct _ATOM_PATCH_RECORD_MODE |
3277 | { |
3519 | { |
3278 | UCHAR ucRecordType; |
3520 | UCHAR ucRecordType; |
Line 3315... | Line 3557... | ||
3315 | #define LCD_MODE_PATCH_RECORD_MODE_TYPE 1 |
3557 | #define LCD_MODE_PATCH_RECORD_MODE_TYPE 1 |
3316 | #define LCD_RTS_RECORD_TYPE 2 |
3558 | #define LCD_RTS_RECORD_TYPE 2 |
3317 | #define LCD_CAP_RECORD_TYPE 3 |
3559 | #define LCD_CAP_RECORD_TYPE 3 |
3318 | #define LCD_FAKE_EDID_PATCH_RECORD_TYPE 4 |
3560 | #define LCD_FAKE_EDID_PATCH_RECORD_TYPE 4 |
3319 | #define LCD_PANEL_RESOLUTION_RECORD_TYPE 5 |
3561 | #define LCD_PANEL_RESOLUTION_RECORD_TYPE 5 |
- | 3562 | #define LCD_EDID_OFFSET_PATCH_RECORD_TYPE 6 |
|
3320 | #define ATOM_RECORD_END_TYPE 0xFF |
3563 | #define ATOM_RECORD_END_TYPE 0xFF |
Line 3321... | Line 3564... | ||
3321 | 3564 | ||
Line 3322... | Line 3565... | ||
3322 | /****************************Spread Spectrum Info Table Definitions **********************/ |
3565 | /****************************Spread Spectrum Info Table Definitions **********************/ |
Line 3526... | Line 3769... | ||
3526 | else |
3769 | else |
3527 | FBAccessAreaOffset= Aper_Size - usFBUsedbyDrvInKB |
3770 | FBAccessAreaOffset= Aper_Size - usFBUsedbyDrvInKB |
Line 3528... | Line 3771... | ||
3528 | 3771 | ||
Line -... | Line 3772... | ||
- | 3772 | CAIL needs to claim an reserved area defined by FBAccessAreaOffset and usFBUsedbyDrvInKB in non VGA case.*/ |
|
3529 | CAIL needs to claim an reserved area defined by FBAccessAreaOffset and usFBUsedbyDrvInKB in non VGA case.*/ |
3773 | |
Line 3530... | Line 3774... | ||
3530 | 3774 | /***********************************************************************************/ |
|
3531 | #define ATOM_MAX_FIRMWARE_VRAM_USAGE_INFO 1 |
3775 | #define ATOM_MAX_FIRMWARE_VRAM_USAGE_INFO 1 |
3532 | 3776 | ||
Line 3816... | Line 4060... | ||
3816 | union{ |
4060 | union{ |
3817 | UCHAR ucChannelMapping; // if ucChannelMapping=0, using default one to one mapping |
4061 | UCHAR ucChannelMapping; // if ucChannelMapping=0, using default one to one mapping |
3818 | ATOM_DP_CONN_CHANNEL_MAPPING asDPMapping; |
4062 | ATOM_DP_CONN_CHANNEL_MAPPING asDPMapping; |
3819 | ATOM_DVI_CONN_CHANNEL_MAPPING asDVIMapping; |
4063 | ATOM_DVI_CONN_CHANNEL_MAPPING asDVIMapping; |
3820 | }; |
4064 | }; |
- | 4065 | UCHAR ucChPNInvert; // bit vector for up to 8 lanes, =0: P and N is not invert, =1 P and N is inverted |
|
3821 | UCHAR ucReserved; |
4066 | USHORT usCaps; |
3822 | USHORT usReserved[2]; |
4067 | USHORT usReserved; |
3823 | }EXT_DISPLAY_PATH; |
4068 | }EXT_DISPLAY_PATH; |
Line 3824... | Line 4069... | ||
3824 | 4069 | ||
3825 | #define NUMBER_OF_UCHAR_FOR_GUID 16 |
4070 | #define NUMBER_OF_UCHAR_FOR_GUID 16 |
Line -... | Line 4071... | ||
- | 4071 | #define MAX_NUMBER_OF_EXT_DISPLAY_PATH 7 |
|
- | 4072 | ||
- | 4073 | //usCaps |
|
3826 | #define MAX_NUMBER_OF_EXT_DISPLAY_PATH 7 |
4074 | #define EXT_DISPLAY_PATH_CAPS__HBR2_DISABLE 0x01 |
3827 | 4075 | ||
3828 | typedef struct _ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO |
4076 | typedef struct _ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO |
3829 | { |
4077 | { |
3830 | ATOM_COMMON_TABLE_HEADER sHeader; |
4078 | ATOM_COMMON_TABLE_HEADER sHeader; |
3831 | UCHAR ucGuid [NUMBER_OF_UCHAR_FOR_GUID]; // a GUID is a 16 byte long string |
4079 | UCHAR ucGuid [NUMBER_OF_UCHAR_FOR_GUID]; // a GUID is a 16 byte long string |
3832 | EXT_DISPLAY_PATH sPath[MAX_NUMBER_OF_EXT_DISPLAY_PATH]; // total of fixed 7 entries. |
4080 | EXT_DISPLAY_PATH sPath[MAX_NUMBER_OF_EXT_DISPLAY_PATH]; // total of fixed 7 entries. |
- | 4081 | UCHAR ucChecksum; // a simple Checksum of the sum of whole structure equal to 0x0. |
|
- | 4082 | UCHAR uc3DStereoPinId; // use for eDP panel |
|
3833 | UCHAR ucChecksum; // a simple Checksum of the sum of whole structure equal to 0x0. |
4083 | UCHAR ucRemoteDisplayConfig; |
3834 | UCHAR uc3DStereoPinId; // use for eDP panel |
4084 | UCHAR uceDPToLVDSRxId; |
Line 3835... | Line 4085... | ||
3835 | UCHAR Reserved [6]; // for potential expansion |
4085 | UCHAR Reserved[4]; // for potential expansion |
3836 | }ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO; |
4086 | }ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO; |
3837 | 4087 | ||
Line 3975... | Line 4225... | ||
3975 | #define GPIO_PIN_OUTPUT_STATE_SHIFT 0 |
4225 | #define GPIO_PIN_OUTPUT_STATE_SHIFT 0 |
3976 | #define GPIO_PIN_STATE_ACTIVE_LOW 0x0 |
4226 | #define GPIO_PIN_STATE_ACTIVE_LOW 0x0 |
3977 | #define GPIO_PIN_STATE_ACTIVE_HIGH 0x1 |
4227 | #define GPIO_PIN_STATE_ACTIVE_HIGH 0x1 |
Line 3978... | Line 4228... | ||
3978 | 4228 | ||
- | 4229 | // Indexes to GPIO array in GLSync record |
|
3979 | // Indexes to GPIO array in GLSync record |
4230 | // GLSync record is for Frame Lock/Gen Lock feature. |
3980 | #define ATOM_GPIO_INDEX_GLSYNC_REFCLK 0 |
4231 | #define ATOM_GPIO_INDEX_GLSYNC_REFCLK 0 |
3981 | #define ATOM_GPIO_INDEX_GLSYNC_HSYNC 1 |
4232 | #define ATOM_GPIO_INDEX_GLSYNC_HSYNC 1 |
3982 | #define ATOM_GPIO_INDEX_GLSYNC_VSYNC 2 |
4233 | #define ATOM_GPIO_INDEX_GLSYNC_VSYNC 2 |
3983 | #define ATOM_GPIO_INDEX_GLSYNC_SWAP_REQ 3 |
4234 | #define ATOM_GPIO_INDEX_GLSYNC_SWAP_REQ 3 |
3984 | #define ATOM_GPIO_INDEX_GLSYNC_SWAP_GNT 4 |
4235 | #define ATOM_GPIO_INDEX_GLSYNC_SWAP_GNT 4 |
3985 | #define ATOM_GPIO_INDEX_GLSYNC_INTERRUPT 5 |
4236 | #define ATOM_GPIO_INDEX_GLSYNC_INTERRUPT 5 |
- | 4237 | #define ATOM_GPIO_INDEX_GLSYNC_V_RESET 6 |
|
- | 4238 | #define ATOM_GPIO_INDEX_GLSYNC_SWAP_CNTL 7 |
|
3986 | #define ATOM_GPIO_INDEX_GLSYNC_V_RESET 6 |
4239 | #define ATOM_GPIO_INDEX_GLSYNC_SWAP_SEL 8 |
Line 3987... | Line 4240... | ||
3987 | #define ATOM_GPIO_INDEX_GLSYNC_MAX 7 |
4240 | #define ATOM_GPIO_INDEX_GLSYNC_MAX 9 |
3988 | 4241 | ||
3989 | typedef struct _ATOM_ENCODER_DVO_CF_RECORD |
4242 | typedef struct _ATOM_ENCODER_DVO_CF_RECORD |
3990 | { |
4243 | { |
3991 | ATOM_COMMON_RECORD_HEADER sheader; |
4244 | ATOM_COMMON_RECORD_HEADER sheader; |
3992 | ULONG ulStrengthControl; // DVOA strength control for CF |
4245 | ULONG ulStrengthControl; // DVOA strength control for CF |
Line 3993... | Line 4246... | ||
3993 | UCHAR ucPadding[2]; |
4246 | UCHAR ucPadding[2]; |
3994 | }ATOM_ENCODER_DVO_CF_RECORD; |
4247 | }ATOM_ENCODER_DVO_CF_RECORD; |
- | 4248 | ||
Line 3995... | Line 4249... | ||
3995 | 4249 | // Bit maps for ATOM_ENCODER_CAP_RECORD.ucEncoderCap |
|
3996 | // Bit maps for ATOM_ENCODER_CAP_RECORD.ucEncoderCap |
4250 | #define ATOM_ENCODER_CAP_RECORD_HBR2 0x01 // DP1.2 HBR2 is supported by HW encoder |
3997 | #define ATOM_ENCODER_CAP_RECORD_HBR2 0x01 // DP1.2 HBR2 is supported by this path |
4251 | #define ATOM_ENCODER_CAP_RECORD_HBR2_EN 0x02 // DP1.2 HBR2 setting is qualified and HBR2 can be enabled |
3998 | 4252 | ||
3999 | typedef struct _ATOM_ENCODER_CAP_RECORD |
4253 | typedef struct _ATOM_ENCODER_CAP_RECORD |
4000 | { |
4254 | { |
4001 | ATOM_COMMON_RECORD_HEADER sheader; |
4255 | ATOM_COMMON_RECORD_HEADER sheader; |
4002 | union { |
4256 | union { |
- | 4257 | USHORT usEncoderCap; |
|
4003 | USHORT usEncoderCap; |
4258 | struct { |
4004 | struct { |
4259 | #if ATOM_BIG_ENDIAN |
4005 | #if ATOM_BIG_ENDIAN |
4260 | USHORT usReserved:14; // Bit1-15 may be defined for other capability in future |
- | 4261 | USHORT usHBR2En:1; // Bit1 is for DP1.2 HBR2 enable |
|
4006 | USHORT usReserved:15; // Bit1-15 may be defined for other capability in future |
4262 | USHORT usHBR2Cap:1; // Bit0 is for DP1.2 HBR2 capability. |
4007 | USHORT usHBR2Cap:1; // Bit0 is for DP1.2 HBR2 capability. |
4263 | #else |
4008 | #else |
4264 | USHORT usHBR2Cap:1; // Bit0 is for DP1.2 HBR2 capability. |
4009 | USHORT usHBR2Cap:1; // Bit0 is for DP1.2 HBR2 capability. |
4265 | USHORT usHBR2En:1; // Bit1 is for DP1.2 HBR2 enable |
4010 | USHORT usReserved:15; // Bit1-15 may be defined for other capability in future |
4266 | USHORT usReserved:14; // Bit1-15 may be defined for other capability in future |
Line 4155... | Line 4411... | ||
4155 | #define VOLTAGE_CONTROL_ID_UP6266 0x05 |
4411 | #define VOLTAGE_CONTROL_ID_UP6266 0x05 |
4156 | #define VOLTAGE_CONTROL_ID_SCORPIO 0x06 |
4412 | #define VOLTAGE_CONTROL_ID_SCORPIO 0x06 |
4157 | #define VOLTAGE_CONTROL_ID_VT1556M 0x07 |
4413 | #define VOLTAGE_CONTROL_ID_VT1556M 0x07 |
4158 | #define VOLTAGE_CONTROL_ID_CHL822x 0x08 |
4414 | #define VOLTAGE_CONTROL_ID_CHL822x 0x08 |
4159 | #define VOLTAGE_CONTROL_ID_VT1586M 0x09 |
4415 | #define VOLTAGE_CONTROL_ID_VT1586M 0x09 |
- | 4416 | #define VOLTAGE_CONTROL_ID_UP1637 0x0A |
|
Line 4160... | Line 4417... | ||
4160 | 4417 | ||
4161 | typedef struct _ATOM_VOLTAGE_OBJECT |
4418 | typedef struct _ATOM_VOLTAGE_OBJECT |
4162 | { |
4419 | { |
4163 | UCHAR ucVoltageType; //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI |
4420 | UCHAR ucVoltageType; //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI |
Line 4191... | Line 4448... | ||
4191 | UCHAR ucLeakageId; |
4448 | UCHAR ucLeakageId; |
4192 | UCHAR ucReserved; |
4449 | UCHAR ucReserved; |
4193 | USHORT usVoltage; |
4450 | USHORT usVoltage; |
4194 | }ATOM_LEAKID_VOLTAGE; |
4451 | }ATOM_LEAKID_VOLTAGE; |
Line -... | Line 4452... | ||
- | 4452 | ||
- | 4453 | typedef struct _ATOM_VOLTAGE_OBJECT_HEADER_V3{ |
|
- | 4454 | UCHAR ucVoltageType; //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI |
|
- | 4455 | UCHAR ucVoltageMode; //Indicate voltage control mode: Init/Set/Leakage/Set phase |
|
- | 4456 | USHORT usSize; //Size of Object |
|
- | 4457 | }ATOM_VOLTAGE_OBJECT_HEADER_V3; |
|
- | 4458 | ||
- | 4459 | typedef struct _VOLTAGE_LUT_ENTRY_V2 |
|
- | 4460 | { |
|
- | 4461 | ULONG ulVoltageId; // The Voltage ID which is used to program GPIO register |
|
- | 4462 | USHORT usVoltageValue; // The corresponding Voltage Value, in mV |
|
- | 4463 | }VOLTAGE_LUT_ENTRY_V2; |
|
- | 4464 | ||
- | 4465 | typedef struct _LEAKAGE_VOLTAGE_LUT_ENTRY_V2 |
|
- | 4466 | { |
|
- | 4467 | USHORT usVoltageLevel; // The Voltage ID which is used to program GPIO register |
|
- | 4468 | USHORT usVoltageId; |
|
- | 4469 | USHORT usLeakageId; // The corresponding Voltage Value, in mV |
|
- | 4470 | }LEAKAGE_VOLTAGE_LUT_ENTRY_V2; |
|
- | 4471 | ||
- | 4472 | typedef struct _ATOM_I2C_VOLTAGE_OBJECT_V3 |
|
- | 4473 | { |
|
- | 4474 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; |
|
- | 4475 | UCHAR ucVoltageRegulatorId; //Indicate Voltage Regulator Id |
|
- | 4476 | UCHAR ucVoltageControlI2cLine; |
|
- | 4477 | UCHAR ucVoltageControlAddress; |
|
- | 4478 | UCHAR ucVoltageControlOffset; |
|
- | 4479 | ULONG ulReserved; |
|
- | 4480 | VOLTAGE_LUT_ENTRY asVolI2cLut[1]; // end with 0xff |
|
- | 4481 | }ATOM_I2C_VOLTAGE_OBJECT_V3; |
|
- | 4482 | ||
- | 4483 | typedef struct _ATOM_GPIO_VOLTAGE_OBJECT_V3 |
|
- | 4484 | { |
|
- | 4485 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; |
|
- | 4486 | UCHAR ucVoltageGpioCntlId; // default is 0 which indicate control through CG VID mode |
|
- | 4487 | UCHAR ucGpioEntryNum; // indiate the entry numbers of Votlage/Gpio value Look up table |
|
- | 4488 | UCHAR ucPhaseDelay; // phase delay in unit of micro second |
|
- | 4489 | UCHAR ucReserved; |
|
- | 4490 | ULONG ulGpioMaskVal; // GPIO Mask value |
|
- | 4491 | VOLTAGE_LUT_ENTRY_V2 asVolGpioLut[1]; |
|
- | 4492 | }ATOM_GPIO_VOLTAGE_OBJECT_V3; |
|
- | 4493 | ||
- | 4494 | typedef struct _ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 |
|
- | 4495 | { |
|
- | 4496 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; |
|
- | 4497 | UCHAR ucLeakageCntlId; // default is 0 |
|
- | 4498 | UCHAR ucLeakageEntryNum; // indicate the entry number of LeakageId/Voltage Lut table |
|
- | 4499 | UCHAR ucReserved[2]; |
|
- | 4500 | ULONG ulMaxVoltageLevel; |
|
- | 4501 | LEAKAGE_VOLTAGE_LUT_ENTRY_V2 asLeakageIdLut[1]; |
|
- | 4502 | }ATOM_LEAKAGE_VOLTAGE_OBJECT_V3; |
|
- | 4503 | ||
- | 4504 | typedef union _ATOM_VOLTAGE_OBJECT_V3{ |
|
- | 4505 | ATOM_GPIO_VOLTAGE_OBJECT_V3 asGpioVoltageObj; |
|
- | 4506 | ATOM_I2C_VOLTAGE_OBJECT_V3 asI2cVoltageObj; |
|
- | 4507 | ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 asLeakageObj; |
|
- | 4508 | }ATOM_VOLTAGE_OBJECT_V3; |
|
- | 4509 | ||
- | 4510 | typedef struct _ATOM_VOLTAGE_OBJECT_INFO_V3_1 |
|
- | 4511 | { |
|
- | 4512 | ATOM_COMMON_TABLE_HEADER sHeader; |
|
- | 4513 | ATOM_VOLTAGE_OBJECT_V3 asVoltageObj[3]; //Info for Voltage control |
|
- | 4514 | }ATOM_VOLTAGE_OBJECT_INFO_V3_1; |
|
4195 | 4515 | ||
4196 | typedef struct _ATOM_ASIC_PROFILE_VOLTAGE |
4516 | typedef struct _ATOM_ASIC_PROFILE_VOLTAGE |
4197 | { |
4517 | { |
4198 | UCHAR ucProfileId; |
4518 | UCHAR ucProfileId; |
4199 | UCHAR ucReserved; |
4519 | UCHAR ucReserved; |
Line 4303... | Line 4623... | ||
4303 | USHORT usLvdsSSpreadRateIn10Hz; |
4623 | USHORT usLvdsSSpreadRateIn10Hz; |
4304 | USHORT usHDMISSPercentage; |
4624 | USHORT usHDMISSPercentage; |
4305 | USHORT usHDMISSpreadRateIn10Hz; |
4625 | USHORT usHDMISSpreadRateIn10Hz; |
4306 | USHORT usDVISSPercentage; |
4626 | USHORT usDVISSPercentage; |
4307 | USHORT usDVISSpreadRateIn10Hz; |
4627 | USHORT usDVISSpreadRateIn10Hz; |
- | 4628 | ULONG SclkDpmBoostMargin; |
|
- | 4629 | ULONG SclkDpmThrottleMargin; |
|
- | 4630 | USHORT SclkDpmTdpLimitPG; |
|
- | 4631 | USHORT SclkDpmTdpLimitBoost; |
|
- | 4632 | ULONG ulBoostEngineCLock; |
|
- | 4633 | UCHAR ulBoostVid_2bit; |
|
- | 4634 | UCHAR EnableBoost; |
|
- | 4635 | USHORT GnbTdpLimit; |
|
- | 4636 | USHORT usMaxLVDSPclkFreqInSingleLink; |
|
- | 4637 | UCHAR ucLvdsMisc; |
|
- | 4638 | UCHAR ucLVDSReserved; |
|
4308 | ULONG ulReserved3[21]; |
4639 | ULONG ulReserved3[15]; |
4309 | ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO sExtDispConnInfo; |
4640 | ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO sExtDispConnInfo; |
4310 | }ATOM_INTEGRATED_SYSTEM_INFO_V6; |
4641 | }ATOM_INTEGRATED_SYSTEM_INFO_V6; |
Line 4311... | Line 4642... | ||
4311 | 4642 | ||
4312 | // ulGPUCapInfo |
4643 | // ulGPUCapInfo |
4313 | #define INTEGRATED_SYSTEM_INFO_V6_GPUCAPINFO__TMDSHDMI_COHERENT_SINGLEPLL_MODE 0x01 |
4644 | #define INTEGRATED_SYSTEM_INFO_V6_GPUCAPINFO__TMDSHDMI_COHERENT_SINGLEPLL_MODE 0x01 |
Line 4314... | Line 4645... | ||
4314 | #define INTEGRATED_SYSTEM_INFO_V6_GPUCAPINFO__DISABLE_AUX_HW_MODE_DETECTION 0x08 |
4645 | #define INTEGRATED_SYSTEM_INFO_V6_GPUCAPINFO__DISABLE_AUX_HW_MODE_DETECTION 0x08 |
4315 | 4646 | ||
- | 4647 | //ucLVDSMisc: |
|
- | 4648 | #define SYS_INFO_LVDSMISC__888_FPDI_MODE 0x01 |
|
- | 4649 | #define SYS_INFO_LVDSMISC__DL_CH_SWAP 0x02 |
|
- | 4650 | #define SYS_INFO_LVDSMISC__888_BPC 0x04 |
|
4316 | // ulOtherDisplayMisc |
4651 | #define SYS_INFO_LVDSMISC__OVERRIDE_EN 0x08 |
- | 4652 | #define SYS_INFO_LVDSMISC__BLON_ACTIVE_LOW 0x10 |
|
- | 4653 | ||
- | 4654 | // not used any more |
|
Line 4317... | Line 4655... | ||
4317 | #define INTEGRATED_SYSTEM_INFO__GET_EDID_CALLBACK_FUNC_SUPPORT 0x01 |
4655 | #define SYS_INFO_LVDSMISC__VSYNC_ACTIVE_LOW 0x04 |
4318 | 4656 | #define SYS_INFO_LVDSMISC__HSYNC_ACTIVE_LOW 0x08 |
|
4319 | 4657 | ||
4320 | /********************************************************************************************************************** |
4658 | /********************************************************************************************************************** |
Line 4382... | Line 4720... | ||
4382 | ucMemoryType: [3:0]=1:DDR1;=2:DDR2;=3:DDR3.[7:4] is reserved. |
4720 | ucMemoryType: [3:0]=1:DDR1;=2:DDR2;=3:DDR3.[7:4] is reserved. |
4383 | ucUMAChannelNumber: System memory channel numbers. |
4721 | ucUMAChannelNumber: System memory channel numbers. |
4384 | ulCSR_M3_ARB_CNTL_DEFAULT[10]: Arrays with values for CSR M3 arbiter for default |
4722 | ulCSR_M3_ARB_CNTL_DEFAULT[10]: Arrays with values for CSR M3 arbiter for default |
4385 | ulCSR_M3_ARB_CNTL_UVD[10]: Arrays with values for CSR M3 arbiter for UVD playback. |
4723 | ulCSR_M3_ARB_CNTL_UVD[10]: Arrays with values for CSR M3 arbiter for UVD playback. |
4386 | ulCSR_M3_ARB_CNTL_FS3D[10]: Arrays with values for CSR M3 arbiter for Full Screen 3D applications. |
4724 | ulCSR_M3_ARB_CNTL_FS3D[10]: Arrays with values for CSR M3 arbiter for Full Screen 3D applications. |
4387 | sAvail_SCLK[5]: Arrays to provide available list of SLCK and corresponding voltage, order from low to high |
4725 | sAvail_SCLK[5]: Arrays to provide availabe list of SLCK and corresponding voltage, order from low to high |
- | 4726 | ulGMCRestoreResetTime: GMC power restore and GMC reset time to calculate data reconnection latency. Unit in ns. |
|
- | 4727 | ulMinimumNClk: Minimum NCLK speed among all NB-Pstates to calcualte data reconnection latency. Unit in 10kHz. |
|
- | 4728 | ulIdleNClk: NCLK speed while memory runs in self-refresh state. Unit in 10kHz. |
|
- | 4729 | ulDDR_DLL_PowerUpTime: DDR PHY DLL power up time. Unit in ns. |
|
- | 4730 | ulDDR_PLL_PowerUpTime: DDR PHY PLL power up time. Unit in ns. |
|
- | 4731 | usPCIEClkSSPercentage: PCIE Clock Spred Spectrum Percentage in unit 0.01%; 100 mean 1%. |
|
- | 4732 | usPCIEClkSSType: PCIE Clock Spred Spectrum Type. 0 for Down spread(default); 1 for Center spread. |
|
- | 4733 | usLvdsSSPercentage: LVDS panel ( not include eDP ) Spread Spectrum Percentage in unit of 0.01%, =0, use VBIOS default setting. |
|
- | 4734 | usLvdsSSpreadRateIn10Hz: LVDS panel ( not include eDP ) Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
|
- | 4735 | usHDMISSPercentage: HDMI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. |
|
- | 4736 | usHDMISSpreadRateIn10Hz: HDMI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
|
- | 4737 | usDVISSPercentage: DVI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. |
|
- | 4738 | usDVISSpreadRateIn10Hz: DVI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
|
- | 4739 | usMaxLVDSPclkFreqInSingleLink: Max pixel clock LVDS panel single link, if=0 means VBIOS use default threhold, right now it is 85Mhz |
|
- | 4740 | ucLVDSMisc: [bit0] LVDS 888bit panel mode =0: LVDS 888 panel in LDI mode, =1: LVDS 888 panel in FPDI mode |
|
- | 4741 | [bit1] LVDS panel lower and upper link mapping =0: lower link and upper link not swap, =1: lower link and upper link are swapped |
|
- | 4742 | [bit2] LVDS 888bit per color mode =0: 666 bit per color =1:888 bit per color |
|
- | 4743 | [bit3] LVDS parameter override enable =0: ucLvdsMisc parameter are not used =1: ucLvdsMisc parameter should be used |
|
- | 4744 | [bit4] Polarity of signal sent to digital BLON output pin. =0: not inverted(active high) =1: inverted ( active low ) |
|
- | 4745 | **********************************************************************************************************************/ |
|
- | 4746 | ||
- | 4747 | // this Table is used for Liano/Ontario APU |
|
- | 4748 | typedef struct _ATOM_FUSION_SYSTEM_INFO_V1 |
|
- | 4749 | { |
|
- | 4750 | ATOM_INTEGRATED_SYSTEM_INFO_V6 sIntegratedSysInfo; |
|
- | 4751 | ULONG ulPowerplayTable[128]; |
|
- | 4752 | }ATOM_FUSION_SYSTEM_INFO_V1; |
|
- | 4753 | /********************************************************************************************************************** |
|
- | 4754 | ATOM_FUSION_SYSTEM_INFO_V1 Description |
|
- | 4755 | sIntegratedSysInfo: refer to ATOM_INTEGRATED_SYSTEM_INFO_V6 definition. |
|
- | 4756 | ulPowerplayTable[128]: This 512 bytes memory is used to save ATOM_PPLIB_POWERPLAYTABLE3, starting form ulPowerplayTable[0] |
|
- | 4757 | **********************************************************************************************************************/ |
|
- | 4758 | ||
- | 4759 | // this IntegrateSystemInfoTable is used for Trinity APU |
|
- | 4760 | typedef struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_7 |
|
- | 4761 | { |
|
- | 4762 | ATOM_COMMON_TABLE_HEADER sHeader; |
|
- | 4763 | ULONG ulBootUpEngineClock; |
|
- | 4764 | ULONG ulDentistVCOFreq; |
|
- | 4765 | ULONG ulBootUpUMAClock; |
|
- | 4766 | ATOM_CLK_VOLT_CAPABILITY sDISPCLK_Voltage[4]; |
|
- | 4767 | ULONG ulBootUpReqDisplayVector; |
|
- | 4768 | ULONG ulOtherDisplayMisc; |
|
- | 4769 | ULONG ulGPUCapInfo; |
|
- | 4770 | ULONG ulSB_MMIO_Base_Addr; |
|
- | 4771 | USHORT usRequestedPWMFreqInHz; |
|
- | 4772 | UCHAR ucHtcTmpLmt; |
|
- | 4773 | UCHAR ucHtcHystLmt; |
|
- | 4774 | ULONG ulMinEngineClock; |
|
- | 4775 | ULONG ulSystemConfig; |
|
- | 4776 | ULONG ulCPUCapInfo; |
|
- | 4777 | USHORT usNBP0Voltage; |
|
- | 4778 | USHORT usNBP1Voltage; |
|
- | 4779 | USHORT usBootUpNBVoltage; |
|
- | 4780 | USHORT usExtDispConnInfoOffset; |
|
- | 4781 | USHORT usPanelRefreshRateRange; |
|
- | 4782 | UCHAR ucMemoryType; |
|
- | 4783 | UCHAR ucUMAChannelNumber; |
|
- | 4784 | UCHAR strVBIOSMsg[40]; |
|
- | 4785 | ULONG ulReserved[20]; |
|
- | 4786 | ATOM_AVAILABLE_SCLK_LIST sAvail_SCLK[5]; |
|
- | 4787 | ULONG ulGMCRestoreResetTime; |
|
- | 4788 | ULONG ulMinimumNClk; |
|
- | 4789 | ULONG ulIdleNClk; |
|
- | 4790 | ULONG ulDDR_DLL_PowerUpTime; |
|
- | 4791 | ULONG ulDDR_PLL_PowerUpTime; |
|
- | 4792 | USHORT usPCIEClkSSPercentage; |
|
- | 4793 | USHORT usPCIEClkSSType; |
|
- | 4794 | USHORT usLvdsSSPercentage; |
|
- | 4795 | USHORT usLvdsSSpreadRateIn10Hz; |
|
- | 4796 | USHORT usHDMISSPercentage; |
|
- | 4797 | USHORT usHDMISSpreadRateIn10Hz; |
|
- | 4798 | USHORT usDVISSPercentage; |
|
- | 4799 | USHORT usDVISSpreadRateIn10Hz; |
|
- | 4800 | ULONG SclkDpmBoostMargin; |
|
- | 4801 | ULONG SclkDpmThrottleMargin; |
|
- | 4802 | USHORT SclkDpmTdpLimitPG; |
|
- | 4803 | USHORT SclkDpmTdpLimitBoost; |
|
- | 4804 | ULONG ulBoostEngineCLock; |
|
- | 4805 | UCHAR ulBoostVid_2bit; |
|
- | 4806 | UCHAR EnableBoost; |
|
- | 4807 | USHORT GnbTdpLimit; |
|
- | 4808 | USHORT usMaxLVDSPclkFreqInSingleLink; |
|
- | 4809 | UCHAR ucLvdsMisc; |
|
- | 4810 | UCHAR ucLVDSReserved; |
|
- | 4811 | UCHAR ucLVDSPwrOnSeqDIGONtoDE_in4Ms; |
|
- | 4812 | UCHAR ucLVDSPwrOnSeqDEtoVARY_BL_in4Ms; |
|
- | 4813 | UCHAR ucLVDSPwrOffSeqVARY_BLtoDE_in4Ms; |
|
- | 4814 | UCHAR ucLVDSPwrOffSeqDEtoDIGON_in4Ms; |
|
- | 4815 | UCHAR ucLVDSOffToOnDelay_in4Ms; |
|
- | 4816 | UCHAR ucLVDSPwrOnSeqVARY_BLtoBLON_in4Ms; |
|
- | 4817 | UCHAR ucLVDSPwrOffSeqBLONtoVARY_BL_in4Ms; |
|
- | 4818 | UCHAR ucLVDSReserved1; |
|
- | 4819 | ULONG ulLCDBitDepthControlVal; |
|
- | 4820 | ULONG ulNbpStateMemclkFreq[4]; |
|
- | 4821 | USHORT usNBP2Voltage; |
|
- | 4822 | USHORT usNBP3Voltage; |
|
- | 4823 | ULONG ulNbpStateNClkFreq[4]; |
|
- | 4824 | UCHAR ucNBDPMEnable; |
|
- | 4825 | UCHAR ucReserved[3]; |
|
- | 4826 | UCHAR ucDPMState0VclkFid; |
|
- | 4827 | UCHAR ucDPMState0DclkFid; |
|
- | 4828 | UCHAR ucDPMState1VclkFid; |
|
- | 4829 | UCHAR ucDPMState1DclkFid; |
|
- | 4830 | UCHAR ucDPMState2VclkFid; |
|
- | 4831 | UCHAR ucDPMState2DclkFid; |
|
- | 4832 | UCHAR ucDPMState3VclkFid; |
|
- | 4833 | UCHAR ucDPMState3DclkFid; |
|
- | 4834 | ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO sExtDispConnInfo; |
|
- | 4835 | }ATOM_INTEGRATED_SYSTEM_INFO_V1_7; |
|
- | 4836 | ||
- | 4837 | // ulOtherDisplayMisc |
|
- | 4838 | #define INTEGRATED_SYSTEM_INFO__GET_EDID_CALLBACK_FUNC_SUPPORT 0x01 |
|
- | 4839 | #define INTEGRATED_SYSTEM_INFO__GET_BOOTUP_DISPLAY_CALLBACK_FUNC_SUPPORT 0x02 |
|
- | 4840 | #define INTEGRATED_SYSTEM_INFO__GET_EXPANSION_CALLBACK_FUNC_SUPPORT 0x04 |
|
- | 4841 | #define INTEGRATED_SYSTEM_INFO__FAST_BOOT_SUPPORT 0x08 |
|
- | 4842 | ||
- | 4843 | // ulGPUCapInfo |
|
- | 4844 | #define SYS_INFO_GPUCAPS__TMDSHDMI_COHERENT_SINGLEPLL_MODE 0x01 |
|
- | 4845 | #define SYS_INFO_GPUCAPS__DP_SINGLEPLL_MODE 0x02 |
|
- | 4846 | #define SYS_INFO_GPUCAPS__DISABLE_AUX_MODE_DETECT 0x08 |
|
- | 4847 | ||
- | 4848 | /********************************************************************************************************************** |
|
- | 4849 | ATOM_INTEGRATED_SYSTEM_INFO_V1_7 Description |
|
- | 4850 | ulBootUpEngineClock: VBIOS bootup Engine clock frequency, in 10kHz unit. if it is equal 0, then VBIOS use pre-defined bootup engine clock |
|
- | 4851 | ulDentistVCOFreq: Dentist VCO clock in 10kHz unit. |
|
- | 4852 | ulBootUpUMAClock: System memory boot up clock frequency in 10Khz unit. |
|
- | 4853 | sDISPCLK_Voltage: Report Display clock voltage requirement. |
|
- | 4854 | ||
- | 4855 | ulBootUpReqDisplayVector: VBIOS boot up display IDs, following are supported devices in Trinity projects: |
|
- | 4856 | ATOM_DEVICE_CRT1_SUPPORT 0x0001 |
|
- | 4857 | ATOM_DEVICE_DFP1_SUPPORT 0x0008 |
|
- | 4858 | ATOM_DEVICE_DFP6_SUPPORT 0x0040 |
|
- | 4859 | ATOM_DEVICE_DFP2_SUPPORT 0x0080 |
|
- | 4860 | ATOM_DEVICE_DFP3_SUPPORT 0x0200 |
|
- | 4861 | ATOM_DEVICE_DFP4_SUPPORT 0x0400 |
|
- | 4862 | ATOM_DEVICE_DFP5_SUPPORT 0x0800 |
|
- | 4863 | ATOM_DEVICE_LCD1_SUPPORT 0x0002 |
|
- | 4864 | ulOtherDisplayMisc: bit[0]=0: INT15 callback function Get LCD EDID ( ax=4e08, bl=1b ) is not supported by SBIOS. |
|
- | 4865 | =1: INT15 callback function Get LCD EDID ( ax=4e08, bl=1b ) is supported by SBIOS. |
|
- | 4866 | bit[1]=0: INT15 callback function Get boot display( ax=4e08, bl=01h) is not supported by SBIOS |
|
- | 4867 | =1: INT15 callback function Get boot display( ax=4e08, bl=01h) is supported by SBIOS |
|
- | 4868 | bit[2]=0: INT15 callback function Get panel Expansion ( ax=4e08, bl=02h) is not supported by SBIOS |
|
- | 4869 | =1: INT15 callback function Get panel Expansion ( ax=4e08, bl=02h) is supported by SBIOS |
|
- | 4870 | bit[3]=0: VBIOS fast boot is disable |
|
- | 4871 | =1: VBIOS fast boot is enable. ( VBIOS skip display device detection in every set mode if LCD panel is connect and LID is open) |
|
- | 4872 | ulGPUCapInfo: bit[0]=0: TMDS/HDMI Coherent Mode use cascade PLL mode. |
|
- | 4873 | =1: TMDS/HDMI Coherent Mode use signel PLL mode. |
|
- | 4874 | bit[1]=0: DP mode use cascade PLL mode ( New for Trinity ) |
|
- | 4875 | =1: DP mode use single PLL mode |
|
- | 4876 | bit[3]=0: Enable AUX HW mode detection logic |
|
- | 4877 | =1: Disable AUX HW mode detection logic |
|
- | 4878 | ||
- | 4879 | ulSB_MMIO_Base_Addr: Physical Base address to SB MMIO space. Driver needs to initialize it for SMU usage. |
|
- | 4880 | ||
- | 4881 | usRequestedPWMFreqInHz: When it's set to 0x0 by SBIOS: the LCD BackLight is not controlled by GPU(SW). |
|
- | 4882 | Any attempt to change BL using VBIOS function or enable VariBri from PP table is not effective since ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==0; |
|
- | 4883 | ||
- | 4884 | When it's set to a non-zero frequency, the BackLight is controlled by GPU (SW) in one of two ways below: |
|
- | 4885 | 1. SW uses the GPU BL PWM output to control the BL, in chis case, this non-zero frequency determines what freq GPU should use; |
|
- | 4886 | VBIOS will set up proper PWM frequency and ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==1,as the result, |
|
- | 4887 | Changing BL using VBIOS function is functional in both driver and non-driver present environment; |
|
- | 4888 | and enabling VariBri under the driver environment from PP table is optional. |
|
- | 4889 | ||
- | 4890 | 2. SW uses other means to control BL (like DPCD),this non-zero frequency serves as a flag only indicating |
|
- | 4891 | that BL control from GPU is expected. |
|
- | 4892 | VBIOS will NOT set up PWM frequency but make ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==1 |
|
- | 4893 | Changing BL using VBIOS function could be functional in both driver and non-driver present environment,but |
|
- | 4894 | it's per platform |
|
- | 4895 | and enabling VariBri under the driver environment from PP table is optional. |
|
- | 4896 | ||
- | 4897 | ucHtcTmpLmt: Refer to D18F3x64 bit[22:16], HtcTmpLmt. |
|
- | 4898 | Threshold on value to enter HTC_active state. |
|
- | 4899 | ucHtcHystLmt: Refer to D18F3x64 bit[27:24], HtcHystLmt. |
|
- | 4900 | To calculate threshold off value to exit HTC_active state, which is Threshold on vlaue minus ucHtcHystLmt. |
|
- | 4901 | ulMinEngineClock: Minimum SCLK allowed in 10kHz unit. This is calculated based on WRCK Fuse settings. |
|
- | 4902 | ulSystemConfig: Bit[0]=0: PCIE Power Gating Disabled |
|
- | 4903 | =1: PCIE Power Gating Enabled |
|
- | 4904 | Bit[1]=0: DDR-DLL shut-down feature disabled. |
|
- | 4905 | 1: DDR-DLL shut-down feature enabled. |
|
- | 4906 | Bit[2]=0: DDR-PLL Power down feature disabled. |
|
- | 4907 | 1: DDR-PLL Power down feature enabled. |
|
- | 4908 | ulCPUCapInfo: TBD |
|
- | 4909 | usNBP0Voltage: VID for voltage on NB P0 State |
|
- | 4910 | usNBP1Voltage: VID for voltage on NB P1 State |
|
- | 4911 | usNBP2Voltage: VID for voltage on NB P2 State |
|
- | 4912 | usNBP3Voltage: VID for voltage on NB P3 State |
|
- | 4913 | usBootUpNBVoltage: Voltage Index of GNB voltage configured by SBIOS, which is suffcient to support VBIOS DISPCLK requirement. |
|
- | 4914 | usExtDispConnInfoOffset: Offset to sExtDispConnInfo inside the structure |
|
- | 4915 | usPanelRefreshRateRange: Bit vector for LCD supported refresh rate range. If DRR is requestd by the platform, at least two bits need to be set |
|
- | 4916 | to indicate a range. |
|
- | 4917 | SUPPORTED_LCD_REFRESHRATE_30Hz 0x0004 |
|
- | 4918 | SUPPORTED_LCD_REFRESHRATE_40Hz 0x0008 |
|
- | 4919 | SUPPORTED_LCD_REFRESHRATE_50Hz 0x0010 |
|
- | 4920 | SUPPORTED_LCD_REFRESHRATE_60Hz 0x0020 |
|
- | 4921 | ucMemoryType: [3:0]=1:DDR1;=2:DDR2;=3:DDR3.[7:4] is reserved. |
|
- | 4922 | ucUMAChannelNumber: System memory channel numbers. |
|
- | 4923 | ulCSR_M3_ARB_CNTL_DEFAULT[10]: Arrays with values for CSR M3 arbiter for default |
|
- | 4924 | ulCSR_M3_ARB_CNTL_UVD[10]: Arrays with values for CSR M3 arbiter for UVD playback. |
|
- | 4925 | ulCSR_M3_ARB_CNTL_FS3D[10]: Arrays with values for CSR M3 arbiter for Full Screen 3D applications. |
|
- | 4926 | sAvail_SCLK[5]: Arrays to provide availabe list of SLCK and corresponding voltage, order from low to high |
|
4388 | ulGMCRestoreResetTime: GMC power restore and GMC reset time to calculate data reconnection latency. Unit in ns. |
4927 | ulGMCRestoreResetTime: GMC power restore and GMC reset time to calculate data reconnection latency. Unit in ns. |
4389 | ulMinimumNClk: Minimum NCLK speed among all NB-Pstates to calcualte data reconnection latency. Unit in 10kHz. |
4928 | ulMinimumNClk: Minimum NCLK speed among all NB-Pstates to calcualte data reconnection latency. Unit in 10kHz. |
4390 | ulIdleNClk: NCLK speed while memory runs in self-refresh state. Unit in 10kHz. |
4929 | ulIdleNClk: NCLK speed while memory runs in self-refresh state. Unit in 10kHz. |
4391 | ulDDR_DLL_PowerUpTime: DDR PHY DLL power up time. Unit in ns. |
4930 | ulDDR_DLL_PowerUpTime: DDR PHY DLL power up time. Unit in ns. |
4392 | ulDDR_PLL_PowerUpTime: DDR PHY PLL power up time. Unit in ns. |
4931 | ulDDR_PLL_PowerUpTime: DDR PHY PLL power up time. Unit in ns. |
Line 4396... | Line 4935... | ||
4396 | usLvdsSSpreadRateIn10Hz: LVDS panel ( not include eDP ) Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
4935 | usLvdsSSpreadRateIn10Hz: LVDS panel ( not include eDP ) Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
4397 | usHDMISSPercentage: HDMI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. |
4936 | usHDMISSPercentage: HDMI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. |
4398 | usHDMISSpreadRateIn10Hz: HDMI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
4937 | usHDMISSpreadRateIn10Hz: HDMI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
4399 | usDVISSPercentage: DVI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. |
4938 | usDVISSPercentage: DVI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. |
4400 | usDVISSpreadRateIn10Hz: DVI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
4939 | usDVISSpreadRateIn10Hz: DVI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
- | 4940 | usMaxLVDSPclkFreqInSingleLink: Max pixel clock LVDS panel single link, if=0 means VBIOS use default threhold, right now it is 85Mhz |
|
- | 4941 | ucLVDSMisc: [bit0] LVDS 888bit panel mode =0: LVDS 888 panel in LDI mode, =1: LVDS 888 panel in FPDI mode |
|
- | 4942 | [bit1] LVDS panel lower and upper link mapping =0: lower link and upper link not swap, =1: lower link and upper link are swapped |
|
- | 4943 | [bit2] LVDS 888bit per color mode =0: 666 bit per color =1:888 bit per color |
|
- | 4944 | [bit3] LVDS parameter override enable =0: ucLvdsMisc parameter are not used =1: ucLvdsMisc parameter should be used |
|
- | 4945 | [bit4] Polarity of signal sent to digital BLON output pin. =0: not inverted(active high) =1: inverted ( active low ) |
|
- | 4946 | ucLVDSPwrOnSeqDIGONtoDE_in4Ms: LVDS power up sequence time in unit of 4ms, time delay from DIGON signal active to data enable signal active( DE ). |
|
- | 4947 | =0 mean use VBIOS default which is 8 ( 32ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. |
|
- | 4948 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 4949 | ucLVDSPwrOnDEtoVARY_BL_in4Ms: LVDS power up sequence time in unit of 4ms., time delay from DE( data enable ) active to Vary Brightness enable signal active( VARY_BL ). |
|
- | 4950 | =0 mean use VBIOS default which is 90 ( 360ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. |
|
- | 4951 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 4952 | ||
- | 4953 | ucLVDSPwrOffVARY_BLtoDE_in4Ms: LVDS power down sequence time in unit of 4ms, time delay from data enable ( DE ) signal off to LCDVCC (DIGON) off. |
|
- | 4954 | =0 mean use VBIOS default delay which is 8 ( 32ms ). The LVDS power down sequence is as following: BLON->VARY_BL->DE->DIGON |
|
- | 4955 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 4956 | ||
- | 4957 | ucLVDSPwrOffDEtoDIGON_in4Ms: LVDS power down sequence time in unit of 4ms, time delay from vary brightness enable signal( VARY_BL) off to data enable ( DE ) signal off. |
|
- | 4958 | =0 mean use VBIOS default which is 90 ( 360ms ). The LVDS power down sequence is as following: BLON->VARY_BL->DE->DIGON |
|
- | 4959 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 4960 | ||
- | 4961 | ucLVDSOffToOnDelay_in4Ms: LVDS power down sequence time in unit of 4ms. Time delay from DIGON signal off to DIGON signal active. |
|
- | 4962 | =0 means to use VBIOS default delay which is 125 ( 500ms ). |
|
- | 4963 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 4964 | ||
- | 4965 | ucLVDSPwrOnVARY_BLtoBLON_in4Ms: LVDS power up sequence time in unit of 4ms. Time delay from VARY_BL signal on to DLON signal active. |
|
- | 4966 | =0 means to use VBIOS default delay which is 0 ( 0ms ). |
|
- | 4967 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 4968 | ||
- | 4969 | ucLVDSPwrOffBLONtoVARY_BL_in4Ms: LVDS power down sequence time in unit of 4ms. Time delay from BLON signal off to VARY_BL signal off. |
|
- | 4970 | =0 means to use VBIOS default delay which is 0 ( 0ms ). |
|
- | 4971 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 4972 | ||
- | 4973 | ulNbpStateMemclkFreq[4]: system memory clock frequncey in unit of 10Khz in different NB pstate. |
|
- | 4974 | ||
4401 | **********************************************************************************************************************/ |
4975 | **********************************************************************************************************************/ |
Line 4402... | Line 4976... | ||
4402 | 4976 | ||
4403 | /**************************************************************************/ |
4977 | /**************************************************************************/ |
4404 | // This portion is only used when ext thermal chip or engine/memory clock SS chip is populated on a design |
4978 | // This portion is only used when ext thermal chip or engine/memory clock SS chip is populated on a design |
Line 4457... | Line 5031... | ||
4457 | #define ASIC_INTERNAL_SS_ON_HDMI 5 |
5031 | #define ASIC_INTERNAL_SS_ON_HDMI 5 |
4458 | #define ASIC_INTERNAL_SS_ON_LVDS 6 |
5032 | #define ASIC_INTERNAL_SS_ON_LVDS 6 |
4459 | #define ASIC_INTERNAL_SS_ON_DP 7 |
5033 | #define ASIC_INTERNAL_SS_ON_DP 7 |
4460 | #define ASIC_INTERNAL_SS_ON_DCPLL 8 |
5034 | #define ASIC_INTERNAL_SS_ON_DCPLL 8 |
4461 | #define ASIC_EXTERNAL_SS_ON_DP_CLOCK 9 |
5035 | #define ASIC_EXTERNAL_SS_ON_DP_CLOCK 9 |
- | 5036 | #define ASIC_INTERNAL_VCE_SS 10 |
|
Line 4462... | Line 5037... | ||
4462 | 5037 | ||
4463 | typedef struct _ATOM_ASIC_SS_ASSIGNMENT_V2 |
5038 | typedef struct _ATOM_ASIC_SS_ASSIGNMENT_V2 |
4464 | { |
5039 | { |
4465 | ULONG ulTargetClockRange; //For mem/engine/uvd, Clock Out frequence (VCO ), in unit of 10Khz |
5040 | ULONG ulTargetClockRange; //For mem/engine/uvd, Clock Out frequence (VCO ), in unit of 10Khz |
Line 4518... | Line 5093... | ||
4518 | #define ATOM_DOS_REQ_INFO_DEF 5 |
5093 | #define ATOM_DOS_REQ_INFO_DEF 5 |
4519 | #define ATOM_ACC_CHANGE_INFO_DEF 6 |
5094 | #define ATOM_ACC_CHANGE_INFO_DEF 6 |
4520 | #define ATOM_DOS_MODE_INFO_DEF 7 |
5095 | #define ATOM_DOS_MODE_INFO_DEF 7 |
4521 | #define ATOM_I2C_CHANNEL_STATUS_DEF 8 |
5096 | #define ATOM_I2C_CHANNEL_STATUS_DEF 8 |
4522 | #define ATOM_I2C_CHANNEL_STATUS1_DEF 9 |
5097 | #define ATOM_I2C_CHANNEL_STATUS1_DEF 9 |
4523 | - | ||
- | 5098 | #define ATOM_INTERNAL_TIMER_DEF 10 |
|
Line 4524... | Line 5099... | ||
4524 | 5099 | ||
4525 | // BIOS_0_SCRATCH Definition |
5100 | // BIOS_0_SCRATCH Definition |
4526 | #define ATOM_S0_CRT1_MONO 0x00000001L |
5101 | #define ATOM_S0_CRT1_MONO 0x00000001L |
4527 | #define ATOM_S0_CRT1_COLOR 0x00000002L |
5102 | #define ATOM_S0_CRT1_COLOR 0x00000002L |
Line 4646... | Line 5221... | ||
4646 | #define ATOM_S2_DEVICE_DPMS_STATEb2 0x01 |
5221 | #define ATOM_S2_DEVICE_DPMS_STATEb2 0x01 |
Line 4647... | Line 5222... | ||
4647 | 5222 | ||
4648 | #define ATOM_S2_DEVICE_DPMS_MASKw1 0x3FF |
5223 | #define ATOM_S2_DEVICE_DPMS_MASKw1 0x3FF |
4649 | #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASKb3 0x0C |
5224 | #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASKb3 0x0C |
- | 5225 | #define ATOM_S2_FORCEDLOWPWRMODE_STATE_CHANGEb3 0x10 |
|
4650 | #define ATOM_S2_FORCEDLOWPWRMODE_STATE_CHANGEb3 0x10 |
5226 | #define ATOM_S2_TMDS_COHERENT_MODEb3 0x10 // used by VBIOS code only, use coherent mode for TMDS/HDMI mode |
4651 | #define ATOM_S2_VRI_BRIGHT_ENABLEb3 0x20 |
5227 | #define ATOM_S2_VRI_BRIGHT_ENABLEb3 0x20 |
Line 4652... | Line 5228... | ||
4652 | #define ATOM_S2_ROTATION_STATE_MASKb3 0xC0 |
5228 | #define ATOM_S2_ROTATION_STATE_MASKb3 0xC0 |
Line 5036... | Line 5612... | ||
5036 | UCHAR ucSurface; // Surface 1 or 2 |
5612 | UCHAR ucSurface; // Surface 1 or 2 |
5037 | UCHAR ucEnable; // ATOM_ENABLE or ATOM_DISABLE |
5613 | UCHAR ucEnable; // ATOM_ENABLE or ATOM_DISABLE |
5038 | USHORT usDeviceId; // Active Device Id for this surface. If no device, set to 0. |
5614 | USHORT usDeviceId; // Active Device Id for this surface. If no device, set to 0. |
5039 | }ENABLE_GRAPH_SURFACE_PARAMETERS_V1_3; |
5615 | }ENABLE_GRAPH_SURFACE_PARAMETERS_V1_3; |
Line -... | Line 5616... | ||
- | 5616 | ||
- | 5617 | typedef struct _ENABLE_GRAPH_SURFACE_PARAMETERS_V1_4 |
|
- | 5618 | { |
|
- | 5619 | USHORT usHight; // Image Hight |
|
- | 5620 | USHORT usWidth; // Image Width |
|
- | 5621 | USHORT usGraphPitch; |
|
- | 5622 | UCHAR ucColorDepth; |
|
- | 5623 | UCHAR ucPixelFormat; |
|
- | 5624 | UCHAR ucSurface; // Surface 1 or 2 |
|
- | 5625 | UCHAR ucEnable; // ATOM_ENABLE or ATOM_DISABLE |
|
- | 5626 | UCHAR ucModeType; |
|
- | 5627 | UCHAR ucReserved; |
|
- | 5628 | }ENABLE_GRAPH_SURFACE_PARAMETERS_V1_4; |
|
- | 5629 | ||
- | 5630 | // ucEnable |
|
- | 5631 | #define ATOM_GRAPH_CONTROL_SET_PITCH 0x0f |
|
- | 5632 | #define ATOM_GRAPH_CONTROL_SET_DISP_START 0x10 |
|
5040 | 5633 | ||
5041 | typedef struct _ENABLE_GRAPH_SURFACE_PS_ALLOCATION |
5634 | typedef struct _ENABLE_GRAPH_SURFACE_PS_ALLOCATION |
5042 | { |
5635 | { |
5043 | ENABLE_GRAPH_SURFACE_PARAMETERS sSetSurface; |
5636 | ENABLE_GRAPH_SURFACE_PARAMETERS sSetSurface; |
5044 | ENABLE_YUV_PS_ALLOCATION sReserved; // Don't set this one |
5637 | ENABLE_YUV_PS_ALLOCATION sReserved; // Don't set this one |
Line 5055... | Line 5648... | ||
5055 | { |
5648 | { |
5056 | USHORT usX_Size; //When use as input parameter, usX_Size indicates which CRTC |
5649 | USHORT usX_Size; //When use as input parameter, usX_Size indicates which CRTC |
5057 | USHORT usY_Size; |
5650 | USHORT usY_Size; |
5058 | }GET_DISPLAY_SURFACE_SIZE_PARAMETERS; |
5651 | }GET_DISPLAY_SURFACE_SIZE_PARAMETERS; |
Line -... | Line 5652... | ||
- | 5652 | ||
- | 5653 | typedef struct _GET_DISPLAY_SURFACE_SIZE_PARAMETERS_V2 |
|
- | 5654 | { |
|
- | 5655 | union{ |
|
- | 5656 | USHORT usX_Size; //When use as input parameter, usX_Size indicates which CRTC |
|
- | 5657 | USHORT usSurface; |
|
- | 5658 | }; |
|
- | 5659 | USHORT usY_Size; |
|
- | 5660 | USHORT usDispXStart; |
|
- | 5661 | USHORT usDispYStart; |
|
- | 5662 | }GET_DISPLAY_SURFACE_SIZE_PARAMETERS_V2; |
|
- | 5663 | ||
- | 5664 | ||
- | 5665 | typedef struct _PALETTE_DATA_CONTROL_PARAMETERS_V3 |
|
- | 5666 | { |
|
- | 5667 | UCHAR ucLutId; |
|
- | 5668 | UCHAR ucAction; |
|
- | 5669 | USHORT usLutStartIndex; |
|
- | 5670 | USHORT usLutLength; |
|
- | 5671 | USHORT usLutOffsetInVram; |
|
- | 5672 | }PALETTE_DATA_CONTROL_PARAMETERS_V3; |
|
- | 5673 | ||
- | 5674 | // ucAction: |
|
- | 5675 | #define PALETTE_DATA_AUTO_FILL 1 |
|
- | 5676 | #define PALETTE_DATA_READ 2 |
|
- | 5677 | #define PALETTE_DATA_WRITE 3 |
|
- | 5678 | ||
- | 5679 | ||
- | 5680 | typedef struct _INTERRUPT_SERVICE_PARAMETERS_V2 |
|
- | 5681 | { |
|
- | 5682 | UCHAR ucInterruptId; |
|
- | 5683 | UCHAR ucServiceId; |
|
- | 5684 | UCHAR ucStatus; |
|
- | 5685 | UCHAR ucReserved; |
|
- | 5686 | }INTERRUPT_SERVICE_PARAMETER_V2; |
|
- | 5687 | ||
- | 5688 | // ucInterruptId |
|
- | 5689 | #define HDP1_INTERRUPT_ID 1 |
|
- | 5690 | #define HDP2_INTERRUPT_ID 2 |
|
- | 5691 | #define HDP3_INTERRUPT_ID 3 |
|
- | 5692 | #define HDP4_INTERRUPT_ID 4 |
|
- | 5693 | #define HDP5_INTERRUPT_ID 5 |
|
- | 5694 | #define HDP6_INTERRUPT_ID 6 |
|
- | 5695 | #define SW_INTERRUPT_ID 11 |
|
- | 5696 | ||
- | 5697 | // ucAction |
|
- | 5698 | #define INTERRUPT_SERVICE_GEN_SW_INT 1 |
|
- | 5699 | #define INTERRUPT_SERVICE_GET_STATUS 2 |
|
- | 5700 | ||
- | 5701 | // ucStatus |
|
- | 5702 | #define INTERRUPT_STATUS__INT_TRIGGER 1 |
|
- | 5703 | #define INTERRUPT_STATUS__HPD_HIGH 2 |
|
5059 | 5704 | ||
5060 | typedef struct _INDIRECT_IO_ACCESS |
5705 | typedef struct _INDIRECT_IO_ACCESS |
5061 | { |
5706 | { |
5062 | ATOM_COMMON_TABLE_HEADER sHeader; |
5707 | ATOM_COMMON_TABLE_HEADER sHeader; |
5063 | UCHAR IOAccessSequence[256]; |
5708 | UCHAR IOAccessSequence[256]; |
Line 5187... | Line 5832... | ||
5187 | ATOM_MEMORY_SETTING_DATA_BLOCK asRegDataBuf[1]; |
5832 | ATOM_MEMORY_SETTING_DATA_BLOCK asRegDataBuf[1]; |
5188 | }ATOM_INIT_REG_BLOCK; |
5833 | }ATOM_INIT_REG_BLOCK; |
Line 5189... | Line 5834... | ||
5189 | 5834 | ||
5190 | #define END_OF_REG_INDEX_BLOCK 0x0ffff |
5835 | #define END_OF_REG_INDEX_BLOCK 0x0ffff |
5191 | #define END_OF_REG_DATA_BLOCK 0x00000000 |
5836 | #define END_OF_REG_DATA_BLOCK 0x00000000 |
5192 | #define ATOM_INIT_REG_MASK_FLAG 0x80 |
5837 | #define ATOM_INIT_REG_MASK_FLAG 0x80 //Not used in BIOS |
Line 5193... | Line 5838... | ||
5193 | #define CLOCK_RANGE_HIGHEST 0x00ffffff |
5838 | #define CLOCK_RANGE_HIGHEST 0x00ffffff |
5194 | 5839 | ||
5195 | #define VALUE_DWORD SIZEOF ULONG |
5840 | #define VALUE_DWORD SIZEOF ULONG |
Line 5227... | Line 5872... | ||
5227 | #define _64Mx16 0x42 |
5872 | #define _64Mx16 0x42 |
5228 | #define _64Mx32 0x43 |
5873 | #define _64Mx32 0x43 |
5229 | #define _128Mx8 0x51 |
5874 | #define _128Mx8 0x51 |
5230 | #define _128Mx16 0x52 |
5875 | #define _128Mx16 0x52 |
5231 | #define _256Mx8 0x61 |
5876 | #define _256Mx8 0x61 |
- | 5877 | #define _256Mx16 0x62 |
|
Line 5232... | Line 5878... | ||
5232 | 5878 | ||
5233 | #define SAMSUNG 0x1 |
5879 | #define SAMSUNG 0x1 |
5234 | #define INFINEON 0x2 |
5880 | #define INFINEON 0x2 |
5235 | #define ELPIDA 0x3 |
5881 | #define ELPIDA 0x3 |
Line 5583... | Line 6229... | ||
5583 | { |
6229 | { |
5584 | // Design Specific Values |
6230 | // Design Specific Values |
5585 | ULONG ulChannelMapCfg; // mmMC_SHARED_CHREMAP |
6231 | ULONG ulChannelMapCfg; // mmMC_SHARED_CHREMAP |
5586 | USHORT usModuleSize; // Size of ATOM_VRAM_MODULE_V7 |
6232 | USHORT usModuleSize; // Size of ATOM_VRAM_MODULE_V7 |
5587 | USHORT usPrivateReserved; // MC_ARB_RAMCFG (includes NOOFBANK,NOOFRANKS,NOOFROWS,NOOFCOLS) |
6233 | USHORT usPrivateReserved; // MC_ARB_RAMCFG (includes NOOFBANK,NOOFRANKS,NOOFROWS,NOOFCOLS) |
5588 | USHORT usReserved; |
6234 | USHORT usEnableChannels; // bit vector which indicate which channels are enabled |
5589 | UCHAR ucExtMemoryID; // Current memory module ID |
6235 | UCHAR ucExtMemoryID; // Current memory module ID |
5590 | UCHAR ucMemoryType; // MEM_TYPE_DDR2/DDR3/GDDR3/GDDR5 |
6236 | UCHAR ucMemoryType; // MEM_TYPE_DDR2/DDR3/GDDR3/GDDR5 |
5591 | UCHAR ucChannelNum; // Number of mem. channels supported in this module |
6237 | UCHAR ucChannelNum; // Number of mem. channels supported in this module |
5592 | UCHAR ucChannelWidth; // CHANNEL_16BIT/CHANNEL_32BIT/CHANNEL_64BIT |
6238 | UCHAR ucChannelWidth; // CHANNEL_16BIT/CHANNEL_32BIT/CHANNEL_64BIT |
5593 | UCHAR ucDensity; // _8Mx32, _16Mx32, _16Mx16, _32Mx16 |
6239 | UCHAR ucDensity; // _8Mx32, _16Mx32, _16Mx16, _32Mx16 |
Line 5595... | Line 6241... | ||
5595 | UCHAR ucMisc; // RANK_OF_THISMEMORY etc. |
6241 | UCHAR ucMisc; // RANK_OF_THISMEMORY etc. |
5596 | UCHAR ucVREFI; // Not used. |
6242 | UCHAR ucVREFI; // Not used. |
5597 | UCHAR ucNPL_RT; // Round trip delay (MC_SEQ_CAS_TIMING [28:24]:TCL=CL+NPL_RT-2). Always 2. |
6243 | UCHAR ucNPL_RT; // Round trip delay (MC_SEQ_CAS_TIMING [28:24]:TCL=CL+NPL_RT-2). Always 2. |
5598 | UCHAR ucPreamble; // [7:4] Write Preamble, [3:0] Read Preamble |
6244 | UCHAR ucPreamble; // [7:4] Write Preamble, [3:0] Read Preamble |
5599 | UCHAR ucMemorySize; // Total memory size in unit of 16MB for CONFIG_MEMSIZE - bit[23:0] zeros |
6245 | UCHAR ucMemorySize; // Total memory size in unit of 16MB for CONFIG_MEMSIZE - bit[23:0] zeros |
- | 6246 | USHORT usSEQSettingOffset; |
|
5600 | UCHAR ucReserved[3]; |
6247 | UCHAR ucReserved; |
5601 | // Memory Module specific values |
6248 | // Memory Module specific values |
5602 | USHORT usEMRS2Value; // EMRS2/MR2 Value. |
6249 | USHORT usEMRS2Value; // EMRS2/MR2 Value. |
5603 | USHORT usEMRS3Value; // EMRS3/MR3 Value. |
6250 | USHORT usEMRS3Value; // EMRS3/MR3 Value. |
5604 | UCHAR ucMemoryVenderID; // [7:4] Revision, [3:0] Vendor code |
6251 | UCHAR ucMemoryVenderID; // [7:4] Revision, [3:0] Vendor code |
5605 | UCHAR ucRefreshRateFactor; // [1:0]=RefreshFactor (00=8ms, 01=16ms, 10=32ms,11=64ms) |
6252 | UCHAR ucRefreshRateFactor; // [1:0]=RefreshFactor (00=8ms, 01=16ms, 10=32ms,11=64ms) |
Line 5648... | Line 6295... | ||
5648 | typedef struct _ATOM_VRAM_INFO_HEADER_V2_1 |
6295 | typedef struct _ATOM_VRAM_INFO_HEADER_V2_1 |
5649 | { |
6296 | { |
5650 | ATOM_COMMON_TABLE_HEADER sHeader; |
6297 | ATOM_COMMON_TABLE_HEADER sHeader; |
5651 | USHORT usMemAdjustTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory vendor specific MC adjust setting |
6298 | USHORT usMemAdjustTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory vendor specific MC adjust setting |
5652 | USHORT usMemClkPatchTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory clock specific MC setting |
6299 | USHORT usMemClkPatchTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory clock specific MC setting |
- | 6300 | USHORT usPerBytePresetOffset; // offset of ATOM_INIT_REG_BLOCK structure for Per Byte Offset Preset Settings |
|
5653 | USHORT usReserved[4]; |
6301 | USHORT usReserved[3]; |
5654 | UCHAR ucNumOfVRAMModule; // indicate number of VRAM module |
6302 | UCHAR ucNumOfVRAMModule; // indicate number of VRAM module |
5655 | UCHAR ucMemoryClkPatchTblVer; // version of memory AC timing register list |
6303 | UCHAR ucMemoryClkPatchTblVer; // version of memory AC timing register list |
5656 | UCHAR ucVramModuleVer; // indicate ATOM_VRAM_MODUE version |
6304 | UCHAR ucVramModuleVer; // indicate ATOM_VRAM_MODUE version |
5657 | UCHAR ucReserved; |
6305 | UCHAR ucReserved; |
5658 | ATOM_VRAM_MODULE_V7 aVramInfo[ATOM_MAX_NUMBER_OF_VRAM_MODULE]; // just for allocation, real number of blocks is in ucNumOfVRAMModule; |
6306 | ATOM_VRAM_MODULE_V7 aVramInfo[ATOM_MAX_NUMBER_OF_VRAM_MODULE]; // just for allocation, real number of blocks is in ucNumOfVRAMModule; |
Line 5933... | Line 6581... | ||
5933 | USHORT ptrMainCallParserFar; // direct address of main parser call in VBIOS binary. |
6581 | USHORT ptrMainCallParserFar; // direct address of main parser call in VBIOS binary. |
5934 | ASIC_TRANSMITTER_INFO asTransmitterInfo[1]; |
6582 | ASIC_TRANSMITTER_INFO asTransmitterInfo[1]; |
5935 | ASIC_ENCODER_INFO asEncoderInfo[1]; |
6583 | ASIC_ENCODER_INFO asEncoderInfo[1]; |
5936 | }ATOM_DISP_OUT_INFO_V2; |
6584 | }ATOM_DISP_OUT_INFO_V2; |
Line -... | Line 6585... | ||
- | 6585 | ||
- | 6586 | ||
- | 6587 | typedef struct _ATOM_DISP_CLOCK_ID { |
|
- | 6588 | UCHAR ucPpllId; |
|
- | 6589 | UCHAR ucPpllAttribute; |
|
- | 6590 | }ATOM_DISP_CLOCK_ID; |
|
- | 6591 | ||
- | 6592 | // ucPpllAttribute |
|
- | 6593 | #define CLOCK_SOURCE_SHAREABLE 0x01 |
|
- | 6594 | #define CLOCK_SOURCE_DP_MODE 0x02 |
|
- | 6595 | #define CLOCK_SOURCE_NONE_DP_MODE 0x04 |
|
- | 6596 | ||
- | 6597 | //DispOutInfoTable |
|
- | 6598 | typedef struct _ASIC_TRANSMITTER_INFO_V2 |
|
- | 6599 | { |
|
- | 6600 | USHORT usTransmitterObjId; |
|
- | 6601 | USHORT usDispClkIdOffset; // point to clock source id list supported by Encoder Object |
|
- | 6602 | UCHAR ucTransmitterCmdTblId; |
|
- | 6603 | UCHAR ucConfig; |
|
- | 6604 | UCHAR ucEncoderID; // available 1st encoder ( default ) |
|
- | 6605 | UCHAR ucOptionEncoderID; // available 2nd encoder ( optional ) |
|
- | 6606 | UCHAR uc2ndEncoderID; |
|
- | 6607 | UCHAR ucReserved; |
|
- | 6608 | }ASIC_TRANSMITTER_INFO_V2; |
|
- | 6609 | ||
- | 6610 | typedef struct _ATOM_DISP_OUT_INFO_V3 |
|
- | 6611 | { |
|
- | 6612 | ATOM_COMMON_TABLE_HEADER sHeader; |
|
- | 6613 | USHORT ptrTransmitterInfo; |
|
- | 6614 | USHORT ptrEncoderInfo; |
|
- | 6615 | USHORT ptrMainCallParserFar; // direct address of main parser call in VBIOS binary. |
|
- | 6616 | USHORT usReserved; |
|
- | 6617 | UCHAR ucDCERevision; |
|
- | 6618 | UCHAR ucMaxDispEngineNum; |
|
- | 6619 | UCHAR ucMaxActiveDispEngineNum; |
|
- | 6620 | UCHAR ucMaxPPLLNum; |
|
- | 6621 | UCHAR ucCoreRefClkSource; // value of CORE_REF_CLK_SOURCE |
|
- | 6622 | UCHAR ucReserved[3]; |
|
- | 6623 | ASIC_TRANSMITTER_INFO_V2 asTransmitterInfo[1]; // for alligment only |
|
- | 6624 | }ATOM_DISP_OUT_INFO_V3; |
|
- | 6625 | ||
- | 6626 | typedef enum CORE_REF_CLK_SOURCE{ |
|
- | 6627 | CLOCK_SRC_XTALIN=0, |
|
- | 6628 | CLOCK_SRC_XO_IN=1, |
|
- | 6629 | CLOCK_SRC_XO_IN2=2, |
|
- | 6630 | }CORE_REF_CLK_SOURCE; |
|
5937 | 6631 | ||
5938 | // DispDevicePriorityInfo |
6632 | // DispDevicePriorityInfo |
5939 | typedef struct _ATOM_DISPLAY_DEVICE_PRIORITY_INFO |
6633 | typedef struct _ATOM_DISPLAY_DEVICE_PRIORITY_INFO |
5940 | { |
6634 | { |
5941 | ATOM_COMMON_TABLE_HEADER sHeader; |
6635 | ATOM_COMMON_TABLE_HEADER sHeader; |
Line 6068... | Line 6762... | ||
6068 | //ucFlag |
6762 | //ucFlag |
6069 | #define HW_I2C_WRITE 1 |
6763 | #define HW_I2C_WRITE 1 |
6070 | #define HW_I2C_READ 0 |
6764 | #define HW_I2C_READ 0 |
6071 | #define I2C_2BYTE_ADDR 0x02 |
6765 | #define I2C_2BYTE_ADDR 0x02 |
Line -... | Line 6766... | ||
- | 6766 | ||
- | 6767 | /****************************************************************************/ |
|
- | 6768 | // Structures used by HW_Misc_OperationTable |
|
- | 6769 | /****************************************************************************/ |
|
- | 6770 | typedef struct _ATOM_HW_MISC_OPERATION_INPUT_PARAMETER_V1_1 |
|
- | 6771 | { |
|
- | 6772 | UCHAR ucCmd; // Input: To tell which action to take |
|
- | 6773 | UCHAR ucReserved[3]; |
|
- | 6774 | ULONG ulReserved; |
|
- | 6775 | }ATOM_HW_MISC_OPERATION_INPUT_PARAMETER_V1_1; |
|
- | 6776 | ||
- | 6777 | typedef struct _ATOM_HW_MISC_OPERATION_OUTPUT_PARAMETER_V1_1 |
|
- | 6778 | { |
|
- | 6779 | UCHAR ucReturnCode; // Output: Return value base on action was taken |
|
- | 6780 | UCHAR ucReserved[3]; |
|
- | 6781 | ULONG ulReserved; |
|
- | 6782 | }ATOM_HW_MISC_OPERATION_OUTPUT_PARAMETER_V1_1; |
|
- | 6783 | ||
- | 6784 | // Actions code |
|
- | 6785 | #define ATOM_GET_SDI_SUPPORT 0xF0 |
|
- | 6786 | ||
- | 6787 | // Return code |
|
- | 6788 | #define ATOM_UNKNOWN_CMD 0 |
|
- | 6789 | #define ATOM_FEATURE_NOT_SUPPORTED 1 |
|
- | 6790 | #define ATOM_FEATURE_SUPPORTED 2 |
|
- | 6791 | ||
- | 6792 | typedef struct _ATOM_HW_MISC_OPERATION_PS_ALLOCATION |
|
- | 6793 | { |
|
- | 6794 | ATOM_HW_MISC_OPERATION_INPUT_PARAMETER_V1_1 sInput_Output; |
|
- | 6795 | PROCESS_I2C_CHANNEL_TRANSACTION_PARAMETERS sReserved; |
|
- | 6796 | }ATOM_HW_MISC_OPERATION_PS_ALLOCATION; |
|
- | 6797 | ||
- | 6798 | /****************************************************************************/ |
|
6072 | 6799 | ||
6073 | typedef struct _SET_HWBLOCK_INSTANCE_PARAMETER_V2 |
6800 | typedef struct _SET_HWBLOCK_INSTANCE_PARAMETER_V2 |
6074 | { |
6801 | { |
6075 | UCHAR ucHWBlkInst; // HW block instance, 0, 1, 2, ... |
6802 | UCHAR ucHWBlkInst; // HW block instance, 0, 1, 2, ... |
6076 | UCHAR ucReserved[3]; |
6803 | UCHAR ucReserved[3]; |
Line 6088... | Line 6815... | ||
6088 | #define SELECT_DCIO_IMPCAL 4 |
6815 | #define SELECT_DCIO_IMPCAL 4 |
6089 | #define SELECT_DCIO_DIG 6 |
6816 | #define SELECT_DCIO_DIG 6 |
6090 | #define SELECT_CRTC_PIXEL_RATE 7 |
6817 | #define SELECT_CRTC_PIXEL_RATE 7 |
6091 | #define SELECT_VGA_BLK 8 |
6818 | #define SELECT_VGA_BLK 8 |
Line -... | Line 6819... | ||
- | 6819 | ||
- | 6820 | // DIGTransmitterInfoTable structure used to program UNIPHY settings |
|
- | 6821 | typedef struct _DIG_TRANSMITTER_INFO_HEADER_V3_1{ |
|
- | 6822 | ATOM_COMMON_TABLE_HEADER sHeader; |
|
- | 6823 | USHORT usDPVsPreEmphSettingOffset; // offset of PHY_ANALOG_SETTING_INFO * with DP Voltage Swing and Pre-Emphasis for each Link clock |
|
- | 6824 | USHORT usPhyAnalogRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with None-DP mode Analog Setting's register Info |
|
- | 6825 | USHORT usPhyAnalogSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with None-DP mode Analog Setting for each link clock range |
|
- | 6826 | USHORT usPhyPllRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with Phy Pll register Info |
|
- | 6827 | USHORT usPhyPllSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with Phy Pll Settings |
|
- | 6828 | }DIG_TRANSMITTER_INFO_HEADER_V3_1; |
|
- | 6829 | ||
- | 6830 | typedef struct _CLOCK_CONDITION_REGESTER_INFO{ |
|
- | 6831 | USHORT usRegisterIndex; |
|
- | 6832 | UCHAR ucStartBit; |
|
- | 6833 | UCHAR ucEndBit; |
|
- | 6834 | }CLOCK_CONDITION_REGESTER_INFO; |
|
- | 6835 | ||
- | 6836 | typedef struct _CLOCK_CONDITION_SETTING_ENTRY{ |
|
- | 6837 | USHORT usMaxClockFreq; |
|
- | 6838 | UCHAR ucEncodeMode; |
|
- | 6839 | UCHAR ucPhySel; |
|
- | 6840 | ULONG ulAnalogSetting[1]; |
|
- | 6841 | }CLOCK_CONDITION_SETTING_ENTRY; |
|
- | 6842 | ||
- | 6843 | typedef struct _CLOCK_CONDITION_SETTING_INFO{ |
|
- | 6844 | USHORT usEntrySize; |
|
- | 6845 | CLOCK_CONDITION_SETTING_ENTRY asClkCondSettingEntry[1]; |
|
- | 6846 | }CLOCK_CONDITION_SETTING_INFO; |
|
- | 6847 | ||
- | 6848 | typedef struct _PHY_CONDITION_REG_VAL{ |
|
- | 6849 | ULONG ulCondition; |
|
- | 6850 | ULONG ulRegVal; |
|
- | 6851 | }PHY_CONDITION_REG_VAL; |
|
- | 6852 | ||
- | 6853 | typedef struct _PHY_CONDITION_REG_INFO{ |
|
- | 6854 | USHORT usRegIndex; |
|
- | 6855 | USHORT usSize; |
|
- | 6856 | PHY_CONDITION_REG_VAL asRegVal[1]; |
|
- | 6857 | }PHY_CONDITION_REG_INFO; |
|
- | 6858 | ||
- | 6859 | typedef struct _PHY_ANALOG_SETTING_INFO{ |
|
- | 6860 | UCHAR ucEncodeMode; |
|
- | 6861 | UCHAR ucPhySel; |
|
- | 6862 | USHORT usSize; |
|
- | 6863 | PHY_CONDITION_REG_INFO asAnalogSetting[1]; |
|
- | 6864 | }PHY_ANALOG_SETTING_INFO; |
|
6092 | 6865 | ||
6093 | /****************************************************************************/ |
6866 | /****************************************************************************/ |
6094 | //Portion VI: Definitinos for vbios MC scratch registers that driver used |
6867 | //Portion VI: Definitinos for vbios MC scratch registers that driver used |
Line 6095... | Line 6868... | ||
6095 | /****************************************************************************/ |
6868 | /****************************************************************************/ |
Line 6495... | Line 7268... | ||
6495 | #define ATOM_PP_THERMALCONTROLLER_EXTERNAL_GPIO 11 |
7268 | #define ATOM_PP_THERMALCONTROLLER_EXTERNAL_GPIO 11 |
6496 | #define ATOM_PP_THERMALCONTROLLER_EVERGREEN 12 |
7269 | #define ATOM_PP_THERMALCONTROLLER_EVERGREEN 12 |
6497 | #define ATOM_PP_THERMALCONTROLLER_EMC2103 13 /* 0x0D */ // Only fan control will be implemented, do NOT show this in PPGen. |
7270 | #define ATOM_PP_THERMALCONTROLLER_EMC2103 13 /* 0x0D */ // Only fan control will be implemented, do NOT show this in PPGen. |
6498 | #define ATOM_PP_THERMALCONTROLLER_SUMO 14 /* 0x0E */ // Sumo type, used internally |
7271 | #define ATOM_PP_THERMALCONTROLLER_SUMO 14 /* 0x0E */ // Sumo type, used internally |
6499 | #define ATOM_PP_THERMALCONTROLLER_NISLANDS 15 |
7272 | #define ATOM_PP_THERMALCONTROLLER_NISLANDS 15 |
- | 7273 | #define ATOM_PP_THERMALCONTROLLER_SISLANDS 16 |
|
- | 7274 | #define ATOM_PP_THERMALCONTROLLER_LM96163 17 |
|
Line 6500... | Line 7275... | ||
6500 | 7275 | ||
6501 | // Thermal controller 'combo type' to use an external controller for Fan control and an internal controller for thermal. |
7276 | // Thermal controller 'combo type' to use an external controller for Fan control and an internal controller for thermal. |
6502 | // We probably should reserve the bit 0x80 for this use. |
7277 | // We probably should reserve the bit 0x80 for this use. |
6503 | // To keep the number of these types low we should also use the same code for all ASICs (i.e. do not distinguish RV6xx and RV7xx Internal here). |
7278 | // To keep the number of these types low we should also use the same code for all ASICs (i.e. do not distinguish RV6xx and RV7xx Internal here). |
Line 6510... | Line 7285... | ||
6510 | { |
7285 | { |
6511 | UCHAR ucNonClockStateIndex; |
7286 | UCHAR ucNonClockStateIndex; |
6512 | UCHAR ucClockStateIndices[1]; // variable-sized |
7287 | UCHAR ucClockStateIndices[1]; // variable-sized |
6513 | } ATOM_PPLIB_STATE; |
7288 | } ATOM_PPLIB_STATE; |
Line -... | Line 7289... | ||
- | 7289 | ||
6514 | 7290 | ||
6515 | typedef struct _ATOM_PPLIB_FANTABLE |
7291 | typedef struct _ATOM_PPLIB_FANTABLE |
6516 | { |
7292 | { |
6517 | UCHAR ucFanTableFormat; // Change this if the table format changes or version changes so that the other fields are not the same. |
7293 | UCHAR ucFanTableFormat; // Change this if the table format changes or version changes so that the other fields are not the same. |
6518 | UCHAR ucTHyst; // Temperature hysteresis. Integer. |
7294 | UCHAR ucTHyst; // Temperature hysteresis. Integer. |
Line 6522... | Line 7298... | ||
6522 | USHORT usPWMMin; // The minimum PWM value in percent (0.01% increments). |
7298 | USHORT usPWMMin; // The minimum PWM value in percent (0.01% increments). |
6523 | USHORT usPWMMed; // The PWM value (in percent) at TMed. |
7299 | USHORT usPWMMed; // The PWM value (in percent) at TMed. |
6524 | USHORT usPWMHigh; // The PWM value at THigh. |
7300 | USHORT usPWMHigh; // The PWM value at THigh. |
6525 | } ATOM_PPLIB_FANTABLE; |
7301 | } ATOM_PPLIB_FANTABLE; |
Line -... | Line 7302... | ||
- | 7302 | ||
- | 7303 | typedef struct _ATOM_PPLIB_FANTABLE2 |
|
- | 7304 | { |
|
- | 7305 | ATOM_PPLIB_FANTABLE basicTable; |
|
- | 7306 | USHORT usTMax; // The max temperature |
|
- | 7307 | } ATOM_PPLIB_FANTABLE2; |
|
6526 | 7308 | ||
6527 | typedef struct _ATOM_PPLIB_EXTENDEDHEADER |
7309 | typedef struct _ATOM_PPLIB_EXTENDEDHEADER |
6528 | { |
7310 | { |
6529 | USHORT usSize; |
7311 | USHORT usSize; |
6530 | ULONG ulMaxEngineClock; // For Overdrive. |
7312 | ULONG ulMaxEngineClock; // For Overdrive. |
6531 | ULONG ulMaxMemoryClock; // For Overdrive. |
7313 | ULONG ulMaxMemoryClock; // For Overdrive. |
- | 7314 | // Add extra system parameters here, always adjust size to include all fields. |
|
- | 7315 | USHORT usVCETableOffset; //points to ATOM_PPLIB_VCE_Table |
|
6532 | // Add extra system parameters here, always adjust size to include all fields. |
7316 | USHORT usUVDTableOffset; //points to ATOM_PPLIB_UVD_Table |
Line 6533... | Line 7317... | ||
6533 | } ATOM_PPLIB_EXTENDEDHEADER; |
7317 | } ATOM_PPLIB_EXTENDEDHEADER; |
6534 | 7318 | ||
6535 | //// ATOM_PPLIB_POWERPLAYTABLE::ulPlatformCaps |
7319 | //// ATOM_PPLIB_POWERPLAYTABLE::ulPlatformCaps |
Line 6550... | Line 7334... | ||
6550 | #define ATOM_PP_PLATFORM_CAP_DONT_WAIT_FOR_VBLANK_ON_ALERT 0x4000 // Do NOT wait for VBLANK during an alert (e.g. AC->DC transition). |
7334 | #define ATOM_PP_PLATFORM_CAP_DONT_WAIT_FOR_VBLANK_ON_ALERT 0x4000 // Do NOT wait for VBLANK during an alert (e.g. AC->DC transition). |
6551 | #define ATOM_PP_PLATFORM_CAP_VDDCI_CONTROL 0x8000 // Does the driver control VDDCI independently from VDDC. |
7335 | #define ATOM_PP_PLATFORM_CAP_VDDCI_CONTROL 0x8000 // Does the driver control VDDCI independently from VDDC. |
6552 | #define ATOM_PP_PLATFORM_CAP_REGULATOR_HOT 0x00010000 // Enable the 'regulator hot' feature. |
7336 | #define ATOM_PP_PLATFORM_CAP_REGULATOR_HOT 0x00010000 // Enable the 'regulator hot' feature. |
6553 | #define ATOM_PP_PLATFORM_CAP_BACO 0x00020000 // Does the driver supports BACO state. |
7337 | #define ATOM_PP_PLATFORM_CAP_BACO 0x00020000 // Does the driver supports BACO state. |
Line -... | Line 7338... | ||
- | 7338 | ||
6554 | 7339 | ||
6555 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE |
7340 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE |
6556 | { |
7341 | { |
Line 6557... | Line 7342... | ||
6557 | ATOM_COMMON_TABLE_HEADER sHeader; |
7342 | ATOM_COMMON_TABLE_HEADER sHeader; |
Line 6608... | Line 7393... | ||
6608 | ULONG ulGoldenRevision; // PPGen use only |
7393 | ULONG ulGoldenRevision; // PPGen use only |
6609 | USHORT usVddcDependencyOnSCLKOffset; |
7394 | USHORT usVddcDependencyOnSCLKOffset; |
6610 | USHORT usVddciDependencyOnMCLKOffset; |
7395 | USHORT usVddciDependencyOnMCLKOffset; |
6611 | USHORT usVddcDependencyOnMCLKOffset; |
7396 | USHORT usVddcDependencyOnMCLKOffset; |
6612 | USHORT usMaxClockVoltageOnDCOffset; |
7397 | USHORT usMaxClockVoltageOnDCOffset; |
- | 7398 | USHORT usVddcPhaseShedLimitsTableOffset; // Points to ATOM_PPLIB_PhaseSheddingLimits_Table |
|
6613 | USHORT usReserved[2]; |
7399 | USHORT usReserved; |
6614 | } ATOM_PPLIB_POWERPLAYTABLE4, *LPATOM_PPLIB_POWERPLAYTABLE4; |
7400 | } ATOM_PPLIB_POWERPLAYTABLE4, *LPATOM_PPLIB_POWERPLAYTABLE4; |
Line 6615... | Line 7401... | ||
6615 | 7401 | ||
6616 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE5 |
7402 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE5 |
6617 | { |
7403 | { |
6618 | ATOM_PPLIB_POWERPLAYTABLE4 basicTable4; |
7404 | ATOM_PPLIB_POWERPLAYTABLE4 basicTable4; |
6619 | ULONG ulTDPLimit; |
7405 | ULONG ulTDPLimit; |
6620 | ULONG ulNearTDPLimit; |
7406 | ULONG ulNearTDPLimit; |
6621 | ULONG ulSQRampingThreshold; |
7407 | ULONG ulSQRampingThreshold; |
6622 | USHORT usCACLeakageTableOffset; // Points to ATOM_PPLIB_CAC_Leakage_Table |
7408 | USHORT usCACLeakageTableOffset; // Points to ATOM_PPLIB_CAC_Leakage_Table |
6623 | ULONG ulCACLeakage; // TBD, this parameter is still under discussion. Change to ulReserved if not needed. |
7409 | ULONG ulCACLeakage; // The iLeakage for driver calculated CAC leakage table |
- | 7410 | USHORT usTDPODLimit; |
|
6624 | ULONG ulReserved; |
7411 | USHORT usLoadLineSlope; // in milliOhms * 100 |
Line 6625... | Line 7412... | ||
6625 | } ATOM_PPLIB_POWERPLAYTABLE5, *LPATOM_PPLIB_POWERPLAYTABLE5; |
7412 | } ATOM_PPLIB_POWERPLAYTABLE5, *LPATOM_PPLIB_POWERPLAYTABLE5; |
6626 | 7413 | ||
6627 | //// ATOM_PPLIB_NONCLOCK_INFO::usClassification |
7414 | //// ATOM_PPLIB_NONCLOCK_INFO::usClassification |
Line 6648... | Line 7435... | ||
6648 | #define ATOM_PPLIB_CLASSIFICATION_SDSTATE 0x8000 |
7435 | #define ATOM_PPLIB_CLASSIFICATION_SDSTATE 0x8000 |
Line 6649... | Line 7436... | ||
6649 | 7436 | ||
6650 | //// ATOM_PPLIB_NONCLOCK_INFO::usClassification2 |
7437 | //// ATOM_PPLIB_NONCLOCK_INFO::usClassification2 |
6651 | #define ATOM_PPLIB_CLASSIFICATION2_LIMITEDPOWERSOURCE_2 0x0001 |
7438 | #define ATOM_PPLIB_CLASSIFICATION2_LIMITEDPOWERSOURCE_2 0x0001 |
- | 7439 | #define ATOM_PPLIB_CLASSIFICATION2_ULV 0x0002 |
|
Line 6652... | Line 7440... | ||
6652 | #define ATOM_PPLIB_CLASSIFICATION2_ULV 0x0002 |
7440 | #define ATOM_PPLIB_CLASSIFICATION2_MVC 0x0004 //Multi-View Codec (BD-3D) |
6653 | 7441 | ||
6654 | //// ATOM_PPLIB_NONCLOCK_INFO::ulCapsAndSettings |
7442 | //// ATOM_PPLIB_NONCLOCK_INFO::ulCapsAndSettings |
Line 6671... | Line 7459... | ||
6671 | #define ATOM_PPLIB_LIMITED_REFRESHRATE_50HZ 1 |
7459 | #define ATOM_PPLIB_LIMITED_REFRESHRATE_50HZ 1 |
6672 | // 2-15 TBD as needed. |
7460 | // 2-15 TBD as needed. |
Line 6673... | Line 7461... | ||
6673 | 7461 | ||
6674 | #define ATOM_PPLIB_SOFTWARE_DISABLE_LOADBALANCING 0x00001000 |
7462 | #define ATOM_PPLIB_SOFTWARE_DISABLE_LOADBALANCING 0x00001000 |
- | 7463 | #define ATOM_PPLIB_SOFTWARE_ENABLE_SLEEP_FOR_TIMESTAMPS 0x00002000 |
|
6675 | #define ATOM_PPLIB_SOFTWARE_ENABLE_SLEEP_FOR_TIMESTAMPS 0x00002000 |
7464 | |
- | 7465 | #define ATOM_PPLIB_DISALLOW_ON_DC 0x00004000 |
|
6676 | #define ATOM_PPLIB_DISALLOW_ON_DC 0x00004000 |
7466 | |
Line 6677... | Line 7467... | ||
6677 | #define ATOM_PPLIB_ENABLE_VARIBRIGHT 0x00008000 |
7467 | #define ATOM_PPLIB_ENABLE_VARIBRIGHT 0x00008000 |
6678 | 7468 | ||
Line 6752... | Line 7542... | ||
6752 | 7542 | ||
Line 6753... | Line 7543... | ||
6753 | ULONG ulFlags; // ATOM_PPLIB_R600_FLAGS_* |
7543 | ULONG ulFlags; // ATOM_PPLIB_R600_FLAGS_* |
Line -... | Line 7544... | ||
- | 7544 | ||
- | 7545 | } ATOM_PPLIB_EVERGREEN_CLOCK_INFO; |
|
- | 7546 | ||
- | 7547 | typedef struct _ATOM_PPLIB_SI_CLOCK_INFO |
|
- | 7548 | { |
|
- | 7549 | USHORT usEngineClockLow; |
|
- | 7550 | UCHAR ucEngineClockHigh; |
|
- | 7551 | ||
- | 7552 | USHORT usMemoryClockLow; |
|
- | 7553 | UCHAR ucMemoryClockHigh; |
|
- | 7554 | ||
- | 7555 | USHORT usVDDC; |
|
- | 7556 | USHORT usVDDCI; |
|
- | 7557 | UCHAR ucPCIEGen; |
|
- | 7558 | UCHAR ucUnused1; |
|
- | 7559 | ||
- | 7560 | ULONG ulFlags; // ATOM_PPLIB_SI_FLAGS_*, no flag is necessary for now |
|
- | 7561 | ||
6754 | 7562 | } ATOM_PPLIB_SI_CLOCK_INFO; |
|
Line 6755... | Line 7563... | ||
6755 | } ATOM_PPLIB_EVERGREEN_CLOCK_INFO; |
7563 | |
6756 | 7564 | ||
6757 | typedef struct _ATOM_PPLIB_RS780_CLOCK_INFO |
7565 | typedef struct _ATOM_PPLIB_RS780_CLOCK_INFO |
Line 6764... | Line 7572... | ||
6764 | USHORT usMemoryClockLow; // For now one of the ATOM_PPLIB_RS780_SPMCLK_XXXX constants. |
7572 | USHORT usMemoryClockLow; // For now one of the ATOM_PPLIB_RS780_SPMCLK_XXXX constants. |
6765 | UCHAR ucMemoryClockHigh; // Currentyl unused. |
7573 | UCHAR ucMemoryClockHigh; // Currentyl unused. |
6766 | UCHAR ucPadding; // For proper alignment and size. |
7574 | UCHAR ucPadding; // For proper alignment and size. |
6767 | USHORT usVDDC; // For the 780, use: None, Low, High, Variable |
7575 | USHORT usVDDC; // For the 780, use: None, Low, High, Variable |
6768 | UCHAR ucMaxHTLinkWidth; // From SBIOS - {2, 4, 8, 16} |
7576 | UCHAR ucMaxHTLinkWidth; // From SBIOS - {2, 4, 8, 16} |
6769 | UCHAR ucMinHTLinkWidth; // From SBIOS - {2, 4, 8, 16}. Effective only if CDLW enabled. Minimum down stream width could be bigger as display BW requirement. |
7577 | UCHAR ucMinHTLinkWidth; // From SBIOS - {2, 4, 8, 16}. Effective only if CDLW enabled. Minimum down stream width could be bigger as display BW requriement. |
6770 | USHORT usHTLinkFreq; // See definition ATOM_PPLIB_RS780_HTLINKFREQ_xxx or in MHz(>=200). |
7578 | USHORT usHTLinkFreq; // See definition ATOM_PPLIB_RS780_HTLINKFREQ_xxx or in MHz(>=200). |
6771 | ULONG ulFlags; |
7579 | ULONG ulFlags; |
6772 | } ATOM_PPLIB_RS780_CLOCK_INFO; |
7580 | } ATOM_PPLIB_RS780_CLOCK_INFO; |
Line 6773... | Line 7581... | ||
6773 | 7581 | ||
Line 6786... | Line 7594... | ||
6786 | 7594 | ||
6787 | typedef struct _ATOM_PPLIB_SUMO_CLOCK_INFO{ |
7595 | typedef struct _ATOM_PPLIB_SUMO_CLOCK_INFO{ |
6788 | USHORT usEngineClockLow; //clockfrequency & 0xFFFF. The unit is in 10khz |
7596 | USHORT usEngineClockLow; //clockfrequency & 0xFFFF. The unit is in 10khz |
6789 | UCHAR ucEngineClockHigh; //clockfrequency >> 16. |
7597 | UCHAR ucEngineClockHigh; //clockfrequency >> 16. |
6790 | UCHAR vddcIndex; //2-bit vddc index; |
- | |
6791 | UCHAR leakage; //please use 8-bit absolute value, not the 6-bit % value |
- | |
6792 | //please initalize to 0 |
7598 | UCHAR vddcIndex; //2-bit vddc index; |
6793 | UCHAR rsv; |
7599 | USHORT tdpLimit; |
6794 | //please initalize to 0 |
7600 | //please initalize to 0 |
6795 | USHORT rsv1; |
7601 | USHORT rsv1; |
6796 | //please initialize to 0s |
7602 | //please initialize to 0s |
6797 | ULONG rsv2[2]; |
7603 | ULONG rsv2[2]; |
Line 6811... | Line 7617... | ||
6811 | * Driver will read the first ucNumDPMLevels in this array |
7617 | * Driver will read the first ucNumDPMLevels in this array |
6812 | */ |
7618 | */ |
6813 | UCHAR clockInfoIndex[1]; |
7619 | UCHAR clockInfoIndex[1]; |
6814 | } ATOM_PPLIB_STATE_V2; |
7620 | } ATOM_PPLIB_STATE_V2; |
Line 6815... | Line 7621... | ||
6815 | 7621 | ||
6816 | typedef struct StateArray{ |
7622 | typedef struct _StateArray{ |
6817 | //how many states we have |
7623 | //how many states we have |
Line 6818... | Line 7624... | ||
6818 | UCHAR ucNumEntries; |
7624 | UCHAR ucNumEntries; |
6819 | 7625 | ||
Line 6820... | Line 7626... | ||
6820 | ATOM_PPLIB_STATE_V2 states[1]; |
7626 | ATOM_PPLIB_STATE_V2 states[1]; |
6821 | }StateArray; |
7627 | }StateArray; |
6822 | 7628 | ||
Line 6823... | Line 7629... | ||
6823 | 7629 | ||
6824 | typedef struct ClockInfoArray{ |
7630 | typedef struct _ClockInfoArray{ |
Line 6825... | Line -... | ||
6825 | //how many clock levels we have |
- | |
6826 | UCHAR ucNumEntries; |
7631 | //how many clock levels we have |
6827 | 7632 | UCHAR ucNumEntries; |
|
Line 6828... | Line 7633... | ||
6828 | //sizeof(ATOM_PPLIB_SUMO_CLOCK_INFO) |
7633 | |
Line 6829... | Line 7634... | ||
6829 | UCHAR ucEntrySize; |
7634 | //sizeof(ATOM_PPLIB_CLOCK_INFO) |
6830 | 7635 | UCHAR ucEntrySize; |
|
6831 | //this is for Sumo |
7636 | |
6832 | ATOM_PPLIB_SUMO_CLOCK_INFO clockInfo[1]; |
7637 | UCHAR clockInfo[1]; |
Line 6869... | Line 7674... | ||
6869 | { |
7674 | { |
6870 | UCHAR ucNumEntries; // Number of entries. |
7675 | UCHAR ucNumEntries; // Number of entries. |
6871 | ATOM_PPLIB_Clock_Voltage_Limit_Record entries[1]; // Dynamically allocate entries. |
7676 | ATOM_PPLIB_Clock_Voltage_Limit_Record entries[1]; // Dynamically allocate entries. |
6872 | }ATOM_PPLIB_Clock_Voltage_Limit_Table; |
7677 | }ATOM_PPLIB_Clock_Voltage_Limit_Table; |
Line -... | Line 7678... | ||
- | 7678 | ||
- | 7679 | typedef struct _ATOM_PPLIB_CAC_Leakage_Record |
|
- | 7680 | { |
|
- | 7681 | USHORT usVddc; // We use this field for the "fake" standardized VDDC for power calculations |
|
- | 7682 | ULONG ulLeakageValue; |
|
- | 7683 | }ATOM_PPLIB_CAC_Leakage_Record; |
|
- | 7684 | ||
- | 7685 | typedef struct _ATOM_PPLIB_CAC_Leakage_Table |
|
- | 7686 | { |
|
- | 7687 | UCHAR ucNumEntries; // Number of entries. |
|
- | 7688 | ATOM_PPLIB_CAC_Leakage_Record entries[1]; // Dynamically allocate entries. |
|
- | 7689 | }ATOM_PPLIB_CAC_Leakage_Table; |
|
- | 7690 | ||
- | 7691 | typedef struct _ATOM_PPLIB_PhaseSheddingLimits_Record |
|
- | 7692 | { |
|
- | 7693 | USHORT usVoltage; |
|
- | 7694 | USHORT usSclkLow; |
|
- | 7695 | UCHAR ucSclkHigh; |
|
- | 7696 | USHORT usMclkLow; |
|
- | 7697 | UCHAR ucMclkHigh; |
|
- | 7698 | }ATOM_PPLIB_PhaseSheddingLimits_Record; |
|
- | 7699 | ||
- | 7700 | typedef struct _ATOM_PPLIB_PhaseSheddingLimits_Table |
|
- | 7701 | { |
|
- | 7702 | UCHAR ucNumEntries; // Number of entries. |
|
- | 7703 | ATOM_PPLIB_PhaseSheddingLimits_Record entries[1]; // Dynamically allocate entries. |
|
- | 7704 | }ATOM_PPLIB_PhaseSheddingLimits_Table; |
|
- | 7705 | ||
- | 7706 | typedef struct _VCEClockInfo{ |
|
- | 7707 | USHORT usEVClkLow; |
|
- | 7708 | UCHAR ucEVClkHigh; |
|
- | 7709 | USHORT usECClkLow; |
|
- | 7710 | UCHAR ucECClkHigh; |
|
- | 7711 | }VCEClockInfo; |
|
- | 7712 | ||
- | 7713 | typedef struct _VCEClockInfoArray{ |
|
- | 7714 | UCHAR ucNumEntries; |
|
- | 7715 | VCEClockInfo entries[1]; |
|
- | 7716 | }VCEClockInfoArray; |
|
- | 7717 | ||
- | 7718 | typedef struct _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record |
|
- | 7719 | { |
|
- | 7720 | USHORT usVoltage; |
|
- | 7721 | UCHAR ucVCEClockInfoIndex; |
|
- | 7722 | }ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record; |
|
- | 7723 | ||
- | 7724 | typedef struct _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table |
|
- | 7725 | { |
|
- | 7726 | UCHAR numEntries; |
|
- | 7727 | ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record entries[1]; |
|
- | 7728 | }ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table; |
|
- | 7729 | ||
- | 7730 | typedef struct _ATOM_PPLIB_VCE_State_Record |
|
- | 7731 | { |
|
- | 7732 | UCHAR ucVCEClockInfoIndex; |
|
- | 7733 | UCHAR ucClockInfoIndex; //highest 2 bits indicates memory p-states, lower 6bits indicates index to ClockInfoArrary |
|
- | 7734 | }ATOM_PPLIB_VCE_State_Record; |
|
- | 7735 | ||
- | 7736 | typedef struct _ATOM_PPLIB_VCE_State_Table |
|
- | 7737 | { |
|
- | 7738 | UCHAR numEntries; |
|
- | 7739 | ATOM_PPLIB_VCE_State_Record entries[1]; |
|
- | 7740 | }ATOM_PPLIB_VCE_State_Table; |
|
- | 7741 | ||
- | 7742 | ||
- | 7743 | typedef struct _ATOM_PPLIB_VCE_Table |
|
- | 7744 | { |
|
- | 7745 | UCHAR revid; |
|
- | 7746 | // VCEClockInfoArray array; |
|
- | 7747 | // ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table limits; |
|
- | 7748 | // ATOM_PPLIB_VCE_State_Table states; |
|
- | 7749 | }ATOM_PPLIB_VCE_Table; |
|
- | 7750 | ||
- | 7751 | ||
- | 7752 | typedef struct _UVDClockInfo{ |
|
- | 7753 | USHORT usVClkLow; |
|
- | 7754 | UCHAR ucVClkHigh; |
|
- | 7755 | USHORT usDClkLow; |
|
- | 7756 | UCHAR ucDClkHigh; |
|
- | 7757 | }UVDClockInfo; |
|
- | 7758 | ||
- | 7759 | typedef struct _UVDClockInfoArray{ |
|
- | 7760 | UCHAR ucNumEntries; |
|
- | 7761 | UVDClockInfo entries[1]; |
|
- | 7762 | }UVDClockInfoArray; |
|
- | 7763 | ||
- | 7764 | typedef struct _ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record |
|
- | 7765 | { |
|
- | 7766 | USHORT usVoltage; |
|
- | 7767 | UCHAR ucUVDClockInfoIndex; |
|
- | 7768 | }ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record; |
|
- | 7769 | ||
- | 7770 | typedef struct _ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table |
|
- | 7771 | { |
|
- | 7772 | UCHAR numEntries; |
|
- | 7773 | ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record entries[1]; |
|
- | 7774 | }ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table; |
|
- | 7775 | ||
- | 7776 | typedef struct _ATOM_PPLIB_UVD_State_Record |
|
- | 7777 | { |
|
- | 7778 | UCHAR ucUVDClockInfoIndex; |
|
- | 7779 | UCHAR ucClockInfoIndex; //highest 2 bits indicates memory p-states, lower 6bits indicates index to ClockInfoArrary |
|
- | 7780 | }ATOM_PPLIB_UVD_State_Record; |
|
- | 7781 | ||
- | 7782 | typedef struct _ATOM_PPLIB_UVD_State_Table |
|
- | 7783 | { |
|
- | 7784 | UCHAR numEntries; |
|
- | 7785 | ATOM_PPLIB_UVD_State_Record entries[1]; |
|
- | 7786 | }ATOM_PPLIB_UVD_State_Table; |
|
- | 7787 | ||
- | 7788 | ||
- | 7789 | typedef struct _ATOM_PPLIB_UVD_Table |
|
- | 7790 | { |
|
- | 7791 | UCHAR revid; |
|
- | 7792 | // UVDClockInfoArray array; |
|
- | 7793 | // ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table limits; |
|
- | 7794 | // ATOM_PPLIB_UVD_State_Table states; |
|
- | 7795 | }ATOM_PPLIB_UVD_Table; |
|
6873 | 7796 | ||
Line 6874... | Line 7797... | ||
6874 | /**************************************************************************/ |
7797 | /**************************************************************************/ |
6875 | 7798 | ||
Line 7018... | Line 7941... | ||
7018 | 7941 | ||
Line 7019... | Line 7942... | ||
7019 | /*********************************************************************************/ |
7942 | /*********************************************************************************/ |
Line -... | Line 7943... | ||
- | 7943 | ||
- | 7944 | #pragma pack() // BIOS data must use byte aligment |
|
- | 7945 | ||
- | 7946 | // |
|
- | 7947 | // AMD ACPI Table |
|
- | 7948 | // |
|
- | 7949 | #pragma pack(1) |
|
- | 7950 | ||
- | 7951 | typedef struct { |
|
- | 7952 | ULONG Signature; |
|
- | 7953 | ULONG TableLength; //Length |
|
- | 7954 | UCHAR Revision; |
|
- | 7955 | UCHAR Checksum; |
|
- | 7956 | UCHAR OemId[6]; |
|
- | 7957 | UCHAR OemTableId[8]; //UINT64 OemTableId; |
|
- | 7958 | ULONG OemRevision; |
|
- | 7959 | ULONG CreatorId; |
|
- | 7960 | ULONG CreatorRevision; |
|
- | 7961 | } AMD_ACPI_DESCRIPTION_HEADER; |
|
- | 7962 | /* |
|
- | 7963 | //EFI_ACPI_DESCRIPTION_HEADER from AcpiCommon.h |
|
- | 7964 | typedef struct { |
|
- | 7965 | UINT32 Signature; //0x0 |
|
- | 7966 | UINT32 Length; //0x4 |
|
- | 7967 | UINT8 Revision; //0x8 |
|
- | 7968 | UINT8 Checksum; //0x9 |
|
- | 7969 | UINT8 OemId[6]; //0xA |
|
- | 7970 | UINT64 OemTableId; //0x10 |
|
- | 7971 | UINT32 OemRevision; //0x18 |
|
- | 7972 | UINT32 CreatorId; //0x1C |
|
- | 7973 | UINT32 CreatorRevision; //0x20 |
|
- | 7974 | }EFI_ACPI_DESCRIPTION_HEADER; |
|
- | 7975 | */ |
|
- | 7976 | typedef struct { |
|
- | 7977 | AMD_ACPI_DESCRIPTION_HEADER SHeader; |
|
- | 7978 | UCHAR TableUUID[16]; //0x24 |
|
- | 7979 | ULONG VBIOSImageOffset; //0x34. Offset to the first GOP_VBIOS_CONTENT block from the beginning of the stucture. |
|
- | 7980 | ULONG Lib1ImageOffset; //0x38. Offset to the first GOP_LIB1_CONTENT block from the beginning of the stucture. |
|
- | 7981 | ULONG Reserved[4]; //0x3C |
|
- | 7982 | }UEFI_ACPI_VFCT; |
|
- | 7983 | ||
- | 7984 | typedef struct { |
|
- | 7985 | ULONG PCIBus; //0x4C |
|
- | 7986 | ULONG PCIDevice; //0x50 |
|
- | 7987 | ULONG PCIFunction; //0x54 |
|
- | 7988 | USHORT VendorID; //0x58 |
|
- | 7989 | USHORT DeviceID; //0x5A |
|
- | 7990 | USHORT SSVID; //0x5C |
|
- | 7991 | USHORT SSID; //0x5E |
|
- | 7992 | ULONG Revision; //0x60 |
|
- | 7993 | ULONG ImageLength; //0x64 |
|
- | 7994 | }VFCT_IMAGE_HEADER; |
|
- | 7995 | ||
- | 7996 | ||
- | 7997 | typedef struct { |
|
- | 7998 | VFCT_IMAGE_HEADER VbiosHeader; |
|
- | 7999 | UCHAR VbiosContent[1]; |
|
- | 8000 | }GOP_VBIOS_CONTENT; |
|
- | 8001 | ||
- | 8002 | typedef struct { |
|
- | 8003 | VFCT_IMAGE_HEADER Lib1Header; |
|
- | 8004 | UCHAR Lib1Content[1]; |
|
- | 8005 | }GOP_LIB1_CONTENT; |
|
- | 8006 | ||
7020 | 8007 | #pragma pack() |