Rev 3764 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3764 | Rev 5078 | ||
---|---|---|---|
Line 72... | Line 72... | ||
72 | 72 | ||
73 | #define ATOM_PPLL1 0 |
73 | #define ATOM_PPLL1 0 |
74 | #define ATOM_PPLL2 1 |
74 | #define ATOM_PPLL2 1 |
75 | #define ATOM_DCPLL 2 |
75 | #define ATOM_DCPLL 2 |
- | 76 | #define ATOM_PPLL0 2 |
|
- | 77 | #define ATOM_PPLL3 3 |
|
76 | #define ATOM_PPLL0 2 |
78 | |
77 | #define ATOM_EXT_PLL1 8 |
79 | #define ATOM_EXT_PLL1 8 |
78 | #define ATOM_EXT_PLL2 9 |
80 | #define ATOM_EXT_PLL2 9 |
79 | #define ATOM_EXT_CLOCK 10 |
81 | #define ATOM_EXT_CLOCK 10 |
Line 257... | Line 259... | ||
257 | USHORT ResetMemoryDevice; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
259 | USHORT ResetMemoryDevice; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
258 | USHORT MemoryPLLInit; //Atomic Table, used only by Bios |
260 | USHORT MemoryPLLInit; //Atomic Table, used only by Bios |
259 | USHORT AdjustDisplayPll; //Atomic Table, used by various SW componentes. |
261 | USHORT AdjustDisplayPll; //Atomic Table, used by various SW componentes. |
260 | USHORT AdjustMemoryController; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
262 | USHORT AdjustMemoryController; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock |
261 | USHORT EnableASIC_StaticPwrMgt; //Atomic Table, only used by Bios |
263 | USHORT EnableASIC_StaticPwrMgt; //Atomic Table, only used by Bios |
262 | USHORT ASIC_StaticPwrMgtStatusChange; //Obsolete , only used by Bios |
264 | USHORT SetUniphyInstance; //Atomic Table, only used by Bios |
263 | USHORT DAC_LoadDetection; //Atomic Table, directly used by various SW components,latest version 1.2 |
265 | USHORT DAC_LoadDetection; //Atomic Table, directly used by various SW components,latest version 1.2 |
264 | USHORT LVTMAEncoderControl; //Atomic Table,directly used by various SW components,latest version 1.3 |
266 | USHORT LVTMAEncoderControl; //Atomic Table,directly used by various SW components,latest version 1.3 |
265 | USHORT HW_Misc_Operation; //Atomic Table, directly used by various SW components,latest version 1.1 |
267 | USHORT HW_Misc_Operation; //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 |
268 | USHORT DAC1EncoderControl; //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 |
269 | USHORT DAC2EncoderControl; //Atomic Table, directly used by various SW components,latest version 1.1 |
Line 269... | Line 271... | ||
269 | USHORT CV1OutputControl; //Atomic Table, Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead |
271 | USHORT CV1OutputControl; //Atomic Table, Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead |
270 | USHORT GetConditionalGoldenSetting; //Only used by Bios |
272 | USHORT GetConditionalGoldenSetting; //Only used by Bios |
271 | USHORT TVEncoderControl; //Function Table,directly used by various SW components,latest version 1.1 |
273 | USHORT TVEncoderControl; //Function Table,directly used by various SW components,latest version 1.1 |
272 | USHORT PatchMCSetting; //only used by BIOS |
274 | USHORT PatchMCSetting; //only used by BIOS |
273 | USHORT MC_SEQ_Control; //only used by BIOS |
275 | USHORT MC_SEQ_Control; //only used by BIOS |
274 | USHORT TV1OutputControl; //Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead |
276 | USHORT Gfx_Harvesting; //Atomic Table, Obsolete from Ry6xx, Now only used by BIOS for GFX harvesting |
275 | USHORT EnableScaler; //Atomic Table, used only by Bios |
277 | USHORT EnableScaler; //Atomic Table, used only by Bios |
276 | USHORT BlankCRTC; //Atomic Table, directly used by various SW components,latest version 1.1 |
278 | USHORT BlankCRTC; //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 |
279 | USHORT EnableCRTC; //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 |
280 | USHORT GetPixelClock; //Atomic Table, directly used by various SW components,latest version 1.1 |
279 | USHORT EnableVGA_Render; //Function Table,directly used by various SW components,latest version 1.1 |
281 | USHORT EnableVGA_Render; //Function Table,directly used by various SW components,latest version 1.1 |
Line 326... | Line 328... | ||
326 | #define ReadEDIDFromHWAssistedI2C ProcessI2cChannelTransaction |
328 | #define ReadEDIDFromHWAssistedI2C ProcessI2cChannelTransaction |
327 | #define DPTranslatorControl DIG2EncoderControl |
329 | #define DPTranslatorControl DIG2EncoderControl |
328 | #define UNIPHYTransmitterControl DIG1TransmitterControl |
330 | #define UNIPHYTransmitterControl DIG1TransmitterControl |
329 | #define LVTMATransmitterControl DIG2TransmitterControl |
331 | #define LVTMATransmitterControl DIG2TransmitterControl |
330 | #define SetCRTC_DPM_State GetConditionalGoldenSetting |
332 | #define SetCRTC_DPM_State GetConditionalGoldenSetting |
331 | #define SetUniphyInstance ASIC_StaticPwrMgtStatusChange |
333 | #define ASIC_StaticPwrMgtStatusChange SetUniphyInstance |
332 | #define HPDInterruptService ReadHWAssistedI2CStatus |
334 | #define HPDInterruptService ReadHWAssistedI2CStatus |
333 | #define EnableVGA_Access GetSCLKOverMCLKRatio |
335 | #define EnableVGA_Access GetSCLKOverMCLKRatio |
334 | #define EnableYUV GetDispObjectInfo |
336 | #define EnableYUV GetDispObjectInfo |
335 | #define DynamicClockGating EnableDispPowerGating |
337 | #define DynamicClockGating EnableDispPowerGating |
336 | #define SetupHWAssistedI2CStatus ComputeMemoryClockParam |
338 | #define SetupHWAssistedI2CStatus ComputeMemoryClockParam |
Line 337... | Line 339... | ||
337 | 339 | ||
338 | #define TMDSAEncoderControl PatchMCSetting |
340 | #define TMDSAEncoderControl PatchMCSetting |
339 | #define LVDSEncoderControl MC_SEQ_Control |
341 | #define LVDSEncoderControl MC_SEQ_Control |
340 | #define LCD1OutputControl HW_Misc_Operation |
- | |
- | 342 | #define LCD1OutputControl HW_Misc_Operation |
|
Line 341... | Line 343... | ||
341 | 343 | #define TV1OutputControl Gfx_Harvesting |
|
342 | 344 | ||
343 | typedef struct _ATOM_MASTER_COMMAND_TABLE |
345 | typedef struct _ATOM_MASTER_COMMAND_TABLE |
344 | { |
346 | { |
Line 476... | Line 478... | ||
476 | 478 | ||
477 | // V4 are only used for APU which PLL outside GPU |
479 | // V4 are only used for APU which PLL outside GPU |
478 | typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4 |
480 | typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4 |
479 | { |
481 | { |
480 | #if ATOM_BIG_ENDIAN |
482 | #if ATOM_BIG_ENDIAN |
481 | ULONG ucPostDiv; //return parameter: post divider which is used to program to register directly |
483 | ULONG ucPostDiv:8; //return parameter: post divider which is used to program to register directly |
482 | ULONG ulClock:24; //Input= target clock, output = actual clock |
484 | ULONG ulClock:24; //Input= target clock, output = actual clock |
483 | #else |
485 | #else |
484 | ULONG ulClock:24; //Input= target clock, output = actual clock |
486 | ULONG ulClock:24; //Input= target clock, output = actual clock |
485 | ULONG ucPostDiv; //return parameter: post divider which is used to program to register directly |
487 | ULONG ucPostDiv:8; //return parameter: post divider which is used to program to register directly |
486 | #endif |
488 | #endif |
Line 487... | Line 489... | ||
487 | }COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4; |
489 | }COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4; |
488 | 490 | ||
Line 502... | Line 504... | ||
502 | UCHAR ucInputFlag; //Input Flags. ucInputFlag[0] - Strobe(1)/Performance(0) mode |
504 | UCHAR ucInputFlag; //Input Flags. ucInputFlag[0] - Strobe(1)/Performance(0) mode |
503 | }; |
505 | }; |
504 | UCHAR ucReserved; |
506 | UCHAR ucReserved; |
505 | }COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V5; |
507 | }COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V5; |
Line -... | Line 508... | ||
- | 508 | ||
- | 509 | ||
- | 510 | typedef struct _COMPUTE_GPU_CLOCK_INPUT_PARAMETERS_V1_6 |
|
- | 511 | { |
|
- | 512 | ATOM_COMPUTE_CLOCK_FREQ ulClock; //Input Parameter |
|
- | 513 | ULONG ulReserved[2]; |
|
- | 514 | }COMPUTE_GPU_CLOCK_INPUT_PARAMETERS_V1_6; |
|
- | 515 | ||
- | 516 | //ATOM_COMPUTE_CLOCK_FREQ.ulComputeClockFlag |
|
- | 517 | #define COMPUTE_GPUCLK_INPUT_FLAG_CLK_TYPE_MASK 0x0f |
|
- | 518 | #define COMPUTE_GPUCLK_INPUT_FLAG_DEFAULT_GPUCLK 0x00 |
|
- | 519 | #define COMPUTE_GPUCLK_INPUT_FLAG_SCLK 0x01 |
|
- | 520 | ||
- | 521 | typedef struct _COMPUTE_GPU_CLOCK_OUTPUT_PARAMETERS_V1_6 |
|
- | 522 | { |
|
- | 523 | COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4 ulClock; //Output Parameter: ucPostDiv=DFS divider |
|
- | 524 | ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output Parameter: PLL FB divider |
|
- | 525 | UCHAR ucPllRefDiv; //Output Parameter: PLL ref divider |
|
- | 526 | UCHAR ucPllPostDiv; //Output Parameter: PLL post divider |
|
- | 527 | UCHAR ucPllCntlFlag; //Output Flags: control flag |
|
- | 528 | UCHAR ucReserved; |
|
- | 529 | }COMPUTE_GPU_CLOCK_OUTPUT_PARAMETERS_V1_6; |
|
- | 530 | ||
- | 531 | //ucPllCntlFlag |
|
- | 532 | #define SPLL_CNTL_FLAG_VCO_MODE_MASK 0x03 |
|
- | 533 | ||
506 | 534 | ||
507 | // ucInputFlag |
535 | // ucInputFlag |
Line 508... | Line 536... | ||
508 | #define ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN 1 // 1-StrobeMode, 0-PerformanceMode |
536 | #define ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN 1 // 1-StrobeMode, 0-PerformanceMode |
509 | 537 | ||
Line 1681... | Line 1709... | ||
1681 | #define PIXEL_CLOCK_V6_MISC_FORCE_PROG_PPLL 0x01 |
1709 | #define PIXEL_CLOCK_V6_MISC_FORCE_PROG_PPLL 0x01 |
1682 | #define PIXEL_CLOCK_V6_MISC_VGA_MODE 0x02 |
1710 | #define PIXEL_CLOCK_V6_MISC_VGA_MODE 0x02 |
1683 | #define PIXEL_CLOCK_V6_MISC_HDMI_BPP_MASK 0x0c |
1711 | #define PIXEL_CLOCK_V6_MISC_HDMI_BPP_MASK 0x0c |
1684 | #define PIXEL_CLOCK_V6_MISC_HDMI_24BPP 0x00 |
1712 | #define PIXEL_CLOCK_V6_MISC_HDMI_24BPP 0x00 |
1685 | #define PIXEL_CLOCK_V6_MISC_HDMI_36BPP 0x04 |
1713 | #define PIXEL_CLOCK_V6_MISC_HDMI_36BPP 0x04 |
- | 1714 | #define PIXEL_CLOCK_V6_MISC_HDMI_36BPP_V6 0x08 //for V6, the correct defintion for 36bpp should be 2 for 36bpp(2:1) |
|
1686 | #define PIXEL_CLOCK_V6_MISC_HDMI_30BPP 0x08 |
1715 | #define PIXEL_CLOCK_V6_MISC_HDMI_30BPP 0x08 |
- | 1716 | #define PIXEL_CLOCK_V6_MISC_HDMI_30BPP_V6 0x04 //for V6, the correct defintion for 30bpp should be 1 for 36bpp(5:4) |
|
1687 | #define PIXEL_CLOCK_V6_MISC_HDMI_48BPP 0x0c |
1717 | #define PIXEL_CLOCK_V6_MISC_HDMI_48BPP 0x0c |
1688 | #define PIXEL_CLOCK_V6_MISC_REF_DIV_SRC 0x10 |
1718 | #define PIXEL_CLOCK_V6_MISC_REF_DIV_SRC 0x10 |
- | 1719 | #define PIXEL_CLOCK_V6_MISC_GEN_DPREFCLK 0x40 |
|
Line 1689... | Line 1720... | ||
1689 | 1720 | ||
1690 | typedef struct _GET_DISP_PLL_STATUS_INPUT_PARAMETERS_V2 |
1721 | typedef struct _GET_DISP_PLL_STATUS_INPUT_PARAMETERS_V2 |
1691 | { |
1722 | { |
1692 | PIXEL_CLOCK_PARAMETERS_V3 sDispClkInput; |
1723 | PIXEL_CLOCK_PARAMETERS_V3 sDispClkInput; |
Line 2100... | Line 2131... | ||
2100 | UCHAR ucAction; //ATOM_ENABLE/ATOM_DISABLE/ATOM_HPD_INIT |
2131 | UCHAR ucAction; //ATOM_ENABLE/ATOM_DISABLE/ATOM_HPD_INIT |
2101 | UCHAR ucReseved[4]; |
2132 | UCHAR ucReseved[4]; |
2102 | }DVO_ENCODER_CONTROL_PARAMETERS_V3; |
2133 | }DVO_ENCODER_CONTROL_PARAMETERS_V3; |
2103 | #define DVO_ENCODER_CONTROL_PS_ALLOCATION_V3 DVO_ENCODER_CONTROL_PARAMETERS_V3 |
2134 | #define DVO_ENCODER_CONTROL_PS_ALLOCATION_V3 DVO_ENCODER_CONTROL_PARAMETERS_V3 |
Line -... | Line 2135... | ||
- | 2135 | ||
- | 2136 | typedef struct _DVO_ENCODER_CONTROL_PARAMETERS_V1_4 |
|
- | 2137 | { |
|
- | 2138 | USHORT usPixelClock; |
|
- | 2139 | UCHAR ucDVOConfig; |
|
- | 2140 | UCHAR ucAction; //ATOM_ENABLE/ATOM_DISABLE/ATOM_HPD_INIT |
|
- | 2141 | UCHAR ucBitPerColor; //please refer to definition of PANEL_xBIT_PER_COLOR |
|
- | 2142 | UCHAR ucReseved[3]; |
|
- | 2143 | }DVO_ENCODER_CONTROL_PARAMETERS_V1_4; |
|
- | 2144 | #define DVO_ENCODER_CONTROL_PS_ALLOCATION_V1_4 DVO_ENCODER_CONTROL_PARAMETERS_V1_4 |
|
- | 2145 | ||
2104 | 2146 | ||
2105 | //ucTableFormatRevision=1 |
2147 | //ucTableFormatRevision=1 |
2106 | //ucTableContentRevision=3 structure is not changed but usMisc add bit 1 as another input for |
2148 | //ucTableContentRevision=3 structure is not changed but usMisc add bit 1 as another input for |
2107 | // bit1=0: non-coherent mode |
2149 | // bit1=0: non-coherent mode |
Line 2181... | Line 2223... | ||
2181 | UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ |
2223 | UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ |
2182 | UCHAR ucVoltageMode; // Not used, maybe use for state machine for differen power mode |
2224 | UCHAR ucVoltageMode; // Not used, maybe use for state machine for differen power mode |
2183 | USHORT usVoltageLevel; // real voltage level |
2225 | USHORT usVoltageLevel; // real voltage level |
2184 | }SET_VOLTAGE_PARAMETERS_V2; |
2226 | }SET_VOLTAGE_PARAMETERS_V2; |
Line 2185... | Line -... | ||
2185 | - | ||
- | 2227 | ||
2186 | 2228 | // used by both SetVoltageTable v1.3 and v1.4 |
|
2187 | typedef struct _SET_VOLTAGE_PARAMETERS_V1_3 |
2229 | typedef struct _SET_VOLTAGE_PARAMETERS_V1_3 |
2188 | { |
2230 | { |
2189 | UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI |
2231 | UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI |
2190 | UCHAR ucVoltageMode; // Indicate action: Set voltage level |
2232 | UCHAR ucVoltageMode; // Indicate action: Set voltage level |
Line 2198... | Line 2240... | ||
2198 | #define VOLTAGE_TYPE_VDDCI 4 |
2240 | #define VOLTAGE_TYPE_VDDCI 4 |
Line 2199... | Line 2241... | ||
2199 | 2241 | ||
2200 | //SET_VOLTAGE_PARAMETERS_V3.ucVoltageMode |
2242 | //SET_VOLTAGE_PARAMETERS_V3.ucVoltageMode |
2201 | #define ATOM_SET_VOLTAGE 0 //Set voltage Level |
2243 | #define ATOM_SET_VOLTAGE 0 //Set voltage Level |
2202 | #define ATOM_INIT_VOLTAGE_REGULATOR 3 //Init Regulator |
2244 | #define ATOM_INIT_VOLTAGE_REGULATOR 3 //Init Regulator |
2203 | #define ATOM_SET_VOLTAGE_PHASE 4 //Set Vregulator Phase |
2245 | #define ATOM_SET_VOLTAGE_PHASE 4 //Set Vregulator Phase, only for SVID/PVID regulator |
2204 | #define ATOM_GET_MAX_VOLTAGE 6 //Get Max Voltage, not used in SetVoltageTable v1.3 |
2246 | #define ATOM_GET_MAX_VOLTAGE 6 //Get Max Voltage, not used from SetVoltageTable v1.3 |
- | 2247 | #define ATOM_GET_VOLTAGE_LEVEL 6 //Get Voltage level from vitual voltage ID, not used for SetVoltage v1.4 |
|
Line 2205... | Line 2248... | ||
2205 | #define ATOM_GET_VOLTAGE_LEVEL 6 //Get Voltage level from vitual voltage ID |
2248 | #define ATOM_GET_LEAKAGE_ID 8 //Get Leakage Voltage Id ( starting from SMU7x IP ), SetVoltage v1.4 |
2206 | 2249 | ||
2207 | // define vitual voltage id in usVoltageLevel |
2250 | // define vitual voltage id in usVoltageLevel |
2208 | #define ATOM_VIRTUAL_VOLTAGE_ID0 0xff01 |
2251 | #define ATOM_VIRTUAL_VOLTAGE_ID0 0xff01 |
2209 | #define ATOM_VIRTUAL_VOLTAGE_ID1 0xff02 |
2252 | #define ATOM_VIRTUAL_VOLTAGE_ID1 0xff02 |
- | 2253 | #define ATOM_VIRTUAL_VOLTAGE_ID2 0xff03 |
|
- | 2254 | #define ATOM_VIRTUAL_VOLTAGE_ID3 0xff04 |
|
- | 2255 | #define ATOM_VIRTUAL_VOLTAGE_ID4 0xff05 |
|
- | 2256 | #define ATOM_VIRTUAL_VOLTAGE_ID5 0xff06 |
|
Line 2210... | Line 2257... | ||
2210 | #define ATOM_VIRTUAL_VOLTAGE_ID2 0xff03 |
2257 | #define ATOM_VIRTUAL_VOLTAGE_ID6 0xff07 |
2211 | #define ATOM_VIRTUAL_VOLTAGE_ID3 0xff04 |
2258 | #define ATOM_VIRTUAL_VOLTAGE_ID7 0xff08 |
2212 | 2259 | ||
2213 | typedef struct _SET_VOLTAGE_PS_ALLOCATION |
2260 | typedef struct _SET_VOLTAGE_PS_ALLOCATION |
Line 2243... | Line 2290... | ||
2243 | 2290 | ||
2244 | // GetVoltageInfo v1.1 ucVoltageMode |
2291 | // GetVoltageInfo v1.1 ucVoltageMode |
2245 | #define ATOM_GET_VOLTAGE_VID 0x00 |
2292 | #define ATOM_GET_VOLTAGE_VID 0x00 |
2246 | #define ATOM_GET_VOTLAGE_INIT_SEQ 0x03 |
2293 | #define ATOM_GET_VOTLAGE_INIT_SEQ 0x03 |
- | 2294 | #define ATOM_GET_VOLTTAGE_PHASE_PHASE_VID 0x04 |
|
- | 2295 | #define ATOM_GET_VOLTAGE_SVID2 0x07 //Get SVI2 Regulator Info |
|
2247 | #define ATOM_GET_VOLTTAGE_PHASE_PHASE_VID 0x04 |
2296 | |
2248 | // for SI, this state map to 0xff02 voltage state in Power Play table, which is power boost state |
2297 | // for SI, this state map to 0xff02 voltage state in Power Play table, which is power boost state |
2249 | #define ATOM_GET_VOLTAGE_STATE0_LEAKAGE_VID 0x10 |
- | |
2250 | 2298 | #define ATOM_GET_VOLTAGE_STATE0_LEAKAGE_VID 0x10 |
|
2251 | // for SI, this state map to 0xff01 voltage state in Power Play table, which is performance state |
2299 | // for SI, this state map to 0xff01 voltage state in Power Play table, which is performance state |
2252 | #define ATOM_GET_VOLTAGE_STATE1_LEAKAGE_VID 0x11 |
- | |
- | 2300 | #define ATOM_GET_VOLTAGE_STATE1_LEAKAGE_VID 0x11 |
|
2253 | // undefined power state |
2301 | |
2254 | #define ATOM_GET_VOLTAGE_STATE2_LEAKAGE_VID 0x12 |
2302 | #define ATOM_GET_VOLTAGE_STATE2_LEAKAGE_VID 0x12 |
Line -... | Line 2303... | ||
- | 2303 | #define ATOM_GET_VOLTAGE_STATE3_LEAKAGE_VID 0x13 |
|
- | 2304 | ||
- | 2305 | // New Added from CI Hawaii for GetVoltageInfoTable, input parameter structure |
|
- | 2306 | typedef struct _GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_2 |
|
- | 2307 | { |
|
- | 2308 | UCHAR ucVoltageType; // Input: To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI |
|
- | 2309 | UCHAR ucVoltageMode; // Input: Indicate action: Get voltage info |
|
- | 2310 | USHORT usVoltageLevel; // Input: real voltage level in unit of mv or Voltage Phase (0, 1, 2, .. ) or Leakage Id |
|
- | 2311 | ULONG ulSCLKFreq; // Input: when ucVoltageMode= ATOM_GET_VOLTAGE_EVV_VOLTAGE, DPM state SCLK frequency, Define in PPTable SCLK/Voltage dependence table |
|
- | 2312 | }GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_2; |
|
- | 2313 | ||
- | 2314 | // New in GetVoltageInfo v1.2 ucVoltageMode |
|
- | 2315 | #define ATOM_GET_VOLTAGE_EVV_VOLTAGE 0x09 |
|
- | 2316 | ||
- | 2317 | // New Added from CI Hawaii for EVV feature |
|
- | 2318 | typedef struct _GET_EVV_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_2 |
|
- | 2319 | { |
|
- | 2320 | USHORT usVoltageLevel; // real voltage level in unit of mv |
|
- | 2321 | USHORT usVoltageId; // Voltage Id programmed in Voltage Regulator |
|
- | 2322 | ULONG ulReseved; |
|
2255 | #define ATOM_GET_VOLTAGE_STATE3_LEAKAGE_VID 0x13 |
2323 | }GET_EVV_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_2; |
2256 | 2324 | ||
2257 | /****************************************************************************/ |
2325 | /****************************************************************************/ |
2258 | // Structures used by TVEncoderControlTable |
2326 | // Structures used by TVEncoderControlTable |
2259 | /****************************************************************************/ |
2327 | /****************************************************************************/ |
Line 2626... | Line 2694... | ||
2626 | { |
2694 | { |
2627 | ATOM_COMMON_TABLE_HEADER sHeader; |
2695 | ATOM_COMMON_TABLE_HEADER sHeader; |
2628 | ULONG ulFirmwareRevision; |
2696 | ULONG ulFirmwareRevision; |
2629 | ULONG ulDefaultEngineClock; //In 10Khz unit |
2697 | ULONG ulDefaultEngineClock; //In 10Khz unit |
2630 | ULONG ulDefaultMemoryClock; //In 10Khz unit |
2698 | ULONG ulDefaultMemoryClock; //In 10Khz unit |
- | 2699 | ULONG ulSPLL_OutputFreq; //In 10Khz unit |
|
2631 | ULONG ulReserved[2]; |
2700 | ULONG ulGPUPLL_OutputFreq; //In 10Khz unit |
2632 | ULONG ulReserved1; //Was ulMaxEngineClockPLL_Output; //In 10Khz unit* |
2701 | ULONG ulReserved1; //Was ulMaxEngineClockPLL_Output; //In 10Khz unit* |
2633 | ULONG ulReserved2; //Was ulMaxMemoryClockPLL_Output; //In 10Khz unit* |
2702 | ULONG ulReserved2; //Was ulMaxMemoryClockPLL_Output; //In 10Khz unit* |
2634 | ULONG ulMaxPixelClockPLL_Output; //In 10Khz unit |
2703 | ULONG ulMaxPixelClockPLL_Output; //In 10Khz unit |
2635 | ULONG ulBinaryAlteredInfo; //Was ulASICMaxEngineClock ? |
2704 | ULONG ulBinaryAlteredInfo; //Was ulASICMaxEngineClock ? |
2636 | ULONG ulDefaultDispEngineClkFreq; //In 10Khz unit. This is the frequency before DCDTO, corresponding to usBootUpVDDCVoltage. |
2705 | ULONG ulDefaultDispEngineClkFreq; //In 10Khz unit. This is the frequency before DCDTO, corresponding to usBootUpVDDCVoltage. |
Line 3811... | Line 3880... | ||
3811 | USHORT usGpioPin_AIndex; |
3880 | USHORT usGpioPin_AIndex; |
3812 | UCHAR ucGpioPinBitShift; |
3881 | UCHAR ucGpioPinBitShift; |
3813 | UCHAR ucGPIO_ID; |
3882 | UCHAR ucGPIO_ID; |
3814 | }ATOM_GPIO_PIN_ASSIGNMENT; |
3883 | }ATOM_GPIO_PIN_ASSIGNMENT; |
Line -... | Line 3884... | ||
- | 3884 | ||
- | 3885 | //ucGPIO_ID pre-define id for multiple usage |
|
- | 3886 | //from SMU7.x, if ucGPIO_ID=PP_AC_DC_SWITCH_GPIO_PINID in GPIO_LUTTable, AC/DC swithing feature is enable |
|
- | 3887 | #define PP_AC_DC_SWITCH_GPIO_PINID 60 |
|
- | 3888 | //from SMU7.x, if ucGPIO_ID=VDDC_REGULATOR_VRHOT_GPIO_PINID in GPIO_LUTable, VRHot feature is enable |
|
- | 3889 | #define VDDC_VRHOT_GPIO_PINID 61 |
|
- | 3890 | //if ucGPIO_ID=VDDC_PCC_GPIO_PINID in GPIO_LUTable, Peak Current Control feature is enabled |
|
- | 3891 | #define VDDC_PCC_GPIO_PINID 62 |
|
3815 | 3892 | ||
3816 | typedef struct _ATOM_GPIO_PIN_LUT |
3893 | typedef struct _ATOM_GPIO_PIN_LUT |
3817 | { |
3894 | { |
3818 | ATOM_COMMON_TABLE_HEADER sHeader; |
3895 | ATOM_COMMON_TABLE_HEADER sHeader; |
3819 | ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin[1]; |
3896 | ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin[1]; |
Line 4072... | Line 4149... | ||
4072 | #define NUMBER_OF_UCHAR_FOR_GUID 16 |
4149 | #define NUMBER_OF_UCHAR_FOR_GUID 16 |
4073 | #define MAX_NUMBER_OF_EXT_DISPLAY_PATH 7 |
4150 | #define MAX_NUMBER_OF_EXT_DISPLAY_PATH 7 |
Line 4074... | Line 4151... | ||
4074 | 4151 | ||
4075 | //usCaps |
4152 | //usCaps |
- | 4153 | #define EXT_DISPLAY_PATH_CAPS__HBR2_DISABLE 0x01 |
|
Line 4076... | Line 4154... | ||
4076 | #define EXT_DISPLAY_PATH_CAPS__HBR2_DISABLE 0x01 |
4154 | #define EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN 0x02 |
4077 | 4155 | ||
4078 | typedef struct _ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO |
4156 | typedef struct _ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO |
4079 | { |
4157 | { |
4080 | ATOM_COMMON_TABLE_HEADER sHeader; |
4158 | ATOM_COMMON_TABLE_HEADER sHeader; |
4081 | UCHAR ucGuid [NUMBER_OF_UCHAR_FOR_GUID]; // a GUID is a 16 byte long string |
4159 | UCHAR ucGuid [NUMBER_OF_UCHAR_FOR_GUID]; // a GUID is a 16 byte long string |
4082 | EXT_DISPLAY_PATH sPath[MAX_NUMBER_OF_EXT_DISPLAY_PATH]; // total of fixed 7 entries. |
4160 | EXT_DISPLAY_PATH sPath[MAX_NUMBER_OF_EXT_DISPLAY_PATH]; // total of fixed 7 entries. |
4083 | UCHAR ucChecksum; // a simple Checksum of the sum of whole structure equal to 0x0. |
4161 | UCHAR ucChecksum; // a simple Checksum of the sum of whole structure equal to 0x0. |
4084 | UCHAR uc3DStereoPinId; // use for eDP panel |
4162 | UCHAR uc3DStereoPinId; // use for eDP panel |
- | 4163 | UCHAR ucRemoteDisplayConfig; |
|
4085 | UCHAR ucRemoteDisplayConfig; |
4164 | UCHAR uceDPToLVDSRxId; |
4086 | UCHAR uceDPToLVDSRxId; |
4165 | UCHAR ucFixDPVoltageSwing; // usCaps[1]=1, this indicate DP_LANE_SET value |
Line 4087... | Line 4166... | ||
4087 | UCHAR Reserved[4]; // for potential expansion |
4166 | UCHAR Reserved[3]; // for potential expansion |
4088 | }ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO; |
4167 | }ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO; |
4089 | 4168 | ||
Line 4113... | Line 4192... | ||
4113 | #define ATOM_CONNECTOR_HPDPIN_LUT_RECORD_TYPE 16 //This is for the case when connectors are not known to object table |
4192 | #define ATOM_CONNECTOR_HPDPIN_LUT_RECORD_TYPE 16 //This is for the case when connectors are not known to object table |
4114 | #define ATOM_CONNECTOR_AUXDDC_LUT_RECORD_TYPE 17 //This is for the case when connectors are not known to object table |
4193 | #define ATOM_CONNECTOR_AUXDDC_LUT_RECORD_TYPE 17 //This is for the case when connectors are not known to object table |
4115 | #define ATOM_OBJECT_LINK_RECORD_TYPE 18 //Once this record is present under one object, it indicats the oobject is linked to another obj described by the record |
4194 | #define ATOM_OBJECT_LINK_RECORD_TYPE 18 //Once this record is present under one object, it indicats the oobject is linked to another obj described by the record |
4116 | #define ATOM_CONNECTOR_REMOTE_CAP_RECORD_TYPE 19 |
4195 | #define ATOM_CONNECTOR_REMOTE_CAP_RECORD_TYPE 19 |
4117 | #define ATOM_ENCODER_CAP_RECORD_TYPE 20 |
4196 | #define ATOM_ENCODER_CAP_RECORD_TYPE 20 |
4118 | - | ||
- | 4197 | #define ATOM_BRACKET_LAYOUT_RECORD_TYPE 21 |
|
Line 4119... | Line 4198... | ||
4119 | 4198 | ||
4120 | //Must be updated when new record type is added,equal to that record definition! |
4199 | //Must be updated when new record type is added,equal to that record definition! |
Line 4121... | Line 4200... | ||
4121 | #define ATOM_MAX_OBJECT_RECORD_NUMBER ATOM_ENCODER_CAP_RECORD_TYPE |
4200 | #define ATOM_MAX_OBJECT_RECORD_NUMBER ATOM_BRACKET_LAYOUT_RECORD_TYPE |
4122 | 4201 | ||
4123 | typedef struct _ATOM_I2C_RECORD |
4202 | typedef struct _ATOM_I2C_RECORD |
4124 | { |
4203 | { |
Line 4341... | Line 4420... | ||
4341 | { |
4420 | { |
4342 | ATOM_COMMON_RECORD_HEADER sheader; |
4421 | ATOM_COMMON_RECORD_HEADER sheader; |
4343 | USHORT usReserved; |
4422 | USHORT usReserved; |
4344 | }ATOM_CONNECTOR_REMOTE_CAP_RECORD; |
4423 | }ATOM_CONNECTOR_REMOTE_CAP_RECORD; |
Line -... | Line 4424... | ||
- | 4424 | ||
- | 4425 | typedef struct _ATOM_CONNECTOR_LAYOUT_INFO |
|
- | 4426 | { |
|
- | 4427 | USHORT usConnectorObjectId; |
|
- | 4428 | UCHAR ucConnectorType; |
|
- | 4429 | UCHAR ucPosition; |
|
- | 4430 | }ATOM_CONNECTOR_LAYOUT_INFO; |
|
- | 4431 | ||
- | 4432 | // define ATOM_CONNECTOR_LAYOUT_INFO.ucConnectorType to describe the display connector size |
|
- | 4433 | #define CONNECTOR_TYPE_DVI_D 1 |
|
- | 4434 | #define CONNECTOR_TYPE_DVI_I 2 |
|
- | 4435 | #define CONNECTOR_TYPE_VGA 3 |
|
- | 4436 | #define CONNECTOR_TYPE_HDMI 4 |
|
- | 4437 | #define CONNECTOR_TYPE_DISPLAY_PORT 5 |
|
- | 4438 | #define CONNECTOR_TYPE_MINI_DISPLAY_PORT 6 |
|
- | 4439 | ||
- | 4440 | typedef struct _ATOM_BRACKET_LAYOUT_RECORD |
|
- | 4441 | { |
|
- | 4442 | ATOM_COMMON_RECORD_HEADER sheader; |
|
- | 4443 | UCHAR ucLength; |
|
- | 4444 | UCHAR ucWidth; |
|
- | 4445 | UCHAR ucConnNum; |
|
- | 4446 | UCHAR ucReserved; |
|
- | 4447 | ATOM_CONNECTOR_LAYOUT_INFO asConnInfo[1]; |
|
- | 4448 | }ATOM_BRACKET_LAYOUT_RECORD; |
|
4345 | 4449 | ||
4346 | /****************************************************************************/ |
4450 | /****************************************************************************/ |
4347 | // ASIC voltage data table |
4451 | // ASIC voltage data table |
4348 | /****************************************************************************/ |
4452 | /****************************************************************************/ |
4349 | typedef struct _ATOM_VOLTAGE_INFO_HEADER |
4453 | typedef struct _ATOM_VOLTAGE_INFO_HEADER |
Line 4414... | Line 4518... | ||
4414 | #define VOLTAGE_CONTROL_ID_SCORPIO 0x06 |
4518 | #define VOLTAGE_CONTROL_ID_SCORPIO 0x06 |
4415 | #define VOLTAGE_CONTROL_ID_VT1556M 0x07 |
4519 | #define VOLTAGE_CONTROL_ID_VT1556M 0x07 |
4416 | #define VOLTAGE_CONTROL_ID_CHL822x 0x08 |
4520 | #define VOLTAGE_CONTROL_ID_CHL822x 0x08 |
4417 | #define VOLTAGE_CONTROL_ID_VT1586M 0x09 |
4521 | #define VOLTAGE_CONTROL_ID_VT1586M 0x09 |
4418 | #define VOLTAGE_CONTROL_ID_UP1637 0x0A |
4522 | #define VOLTAGE_CONTROL_ID_UP1637 0x0A |
- | 4523 | #define VOLTAGE_CONTROL_ID_CHL8214 0x0B |
|
- | 4524 | #define VOLTAGE_CONTROL_ID_UP1801 0x0C |
|
- | 4525 | #define VOLTAGE_CONTROL_ID_ST6788A 0x0D |
|
- | 4526 | #define VOLTAGE_CONTROL_ID_CHLIR3564SVI2 0x0E |
|
- | 4527 | #define VOLTAGE_CONTROL_ID_AD527x 0x0F |
|
- | 4528 | #define VOLTAGE_CONTROL_ID_NCP81022 0x10 |
|
- | 4529 | #define VOLTAGE_CONTROL_ID_LTC2635 0x11 |
|
Line 4419... | Line 4530... | ||
4419 | 4530 | ||
4420 | typedef struct _ATOM_VOLTAGE_OBJECT |
4531 | typedef struct _ATOM_VOLTAGE_OBJECT |
4421 | { |
4532 | { |
4422 | UCHAR ucVoltageType; //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI |
4533 | UCHAR ucVoltageType; //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI |
Line 4456... | Line 4567... | ||
4456 | UCHAR ucVoltageType; //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI |
4567 | UCHAR ucVoltageType; //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI |
4457 | UCHAR ucVoltageMode; //Indicate voltage control mode: Init/Set/Leakage/Set phase |
4568 | UCHAR ucVoltageMode; //Indicate voltage control mode: Init/Set/Leakage/Set phase |
4458 | USHORT usSize; //Size of Object |
4569 | USHORT usSize; //Size of Object |
4459 | }ATOM_VOLTAGE_OBJECT_HEADER_V3; |
4570 | }ATOM_VOLTAGE_OBJECT_HEADER_V3; |
Line -... | Line 4571... | ||
- | 4571 | ||
- | 4572 | // ATOM_VOLTAGE_OBJECT_HEADER_V3.ucVoltageMode |
|
- | 4573 | #define VOLTAGE_OBJ_GPIO_LUT 0 //VOLTAGE and GPIO Lookup table ->ATOM_GPIO_VOLTAGE_OBJECT_V3 |
|
- | 4574 | #define VOLTAGE_OBJ_VR_I2C_INIT_SEQ 3 //VOLTAGE REGULATOR INIT sequece through I2C -> ATOM_I2C_VOLTAGE_OBJECT_V3 |
|
- | 4575 | #define VOLTAGE_OBJ_PHASE_LUT 4 //Set Vregulator Phase lookup table ->ATOM_GPIO_VOLTAGE_OBJECT_V3 |
|
- | 4576 | #define VOLTAGE_OBJ_SVID2 7 //Indicate voltage control by SVID2 ->ATOM_SVID2_VOLTAGE_OBJECT_V3 |
|
- | 4577 | #define VOLTAGE_OBJ_EVV 8 |
|
- | 4578 | #define VOLTAGE_OBJ_PWRBOOST_LEAKAGE_LUT 0x10 //Powerboost Voltage and LeakageId lookup table->ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 |
|
- | 4579 | #define VOLTAGE_OBJ_HIGH_STATE_LEAKAGE_LUT 0x11 //High voltage state Voltage and LeakageId lookup table->ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 |
|
- | 4580 | #define VOLTAGE_OBJ_HIGH1_STATE_LEAKAGE_LUT 0x12 //High1 voltage state Voltage and LeakageId lookup table->ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 |
|
4460 | 4581 | ||
4461 | typedef struct _VOLTAGE_LUT_ENTRY_V2 |
4582 | typedef struct _VOLTAGE_LUT_ENTRY_V2 |
4462 | { |
4583 | { |
4463 | ULONG ulVoltageId; // The Voltage ID which is used to program GPIO register |
4584 | ULONG ulVoltageId; // The Voltage ID which is used to program GPIO register |
4464 | USHORT usVoltageValue; // The corresponding Voltage Value, in mV |
4585 | USHORT usVoltageValue; // The corresponding Voltage Value, in mV |
Line 4471... | Line 4592... | ||
4471 | USHORT usLeakageId; // The corresponding Voltage Value, in mV |
4592 | USHORT usLeakageId; // The corresponding Voltage Value, in mV |
4472 | }LEAKAGE_VOLTAGE_LUT_ENTRY_V2; |
4593 | }LEAKAGE_VOLTAGE_LUT_ENTRY_V2; |
Line 4473... | Line 4594... | ||
4473 | 4594 | ||
4474 | typedef struct _ATOM_I2C_VOLTAGE_OBJECT_V3 |
4595 | typedef struct _ATOM_I2C_VOLTAGE_OBJECT_V3 |
4475 | { |
4596 | { |
4476 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; |
4597 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; // voltage mode = VOLTAGE_OBJ_VR_I2C_INIT_SEQ |
4477 | UCHAR ucVoltageRegulatorId; //Indicate Voltage Regulator Id |
4598 | UCHAR ucVoltageRegulatorId; //Indicate Voltage Regulator Id |
4478 | UCHAR ucVoltageControlI2cLine; |
4599 | UCHAR ucVoltageControlI2cLine; |
4479 | UCHAR ucVoltageControlAddress; |
4600 | UCHAR ucVoltageControlAddress; |
4480 | UCHAR ucVoltageControlOffset; |
4601 | UCHAR ucVoltageControlOffset; |
4481 | ULONG ulReserved; |
4602 | ULONG ulReserved; |
4482 | VOLTAGE_LUT_ENTRY asVolI2cLut[1]; // end with 0xff |
4603 | VOLTAGE_LUT_ENTRY asVolI2cLut[1]; // end with 0xff |
Line -... | Line 4604... | ||
- | 4604 | }ATOM_I2C_VOLTAGE_OBJECT_V3; |
|
- | 4605 | ||
- | 4606 | // ATOM_I2C_VOLTAGE_OBJECT_V3.ucVoltageControlFlag |
|
- | 4607 | #define VOLTAGE_DATA_ONE_BYTE 0 |
|
4483 | }ATOM_I2C_VOLTAGE_OBJECT_V3; |
4608 | #define VOLTAGE_DATA_TWO_BYTE 1 |
4484 | 4609 | ||
4485 | typedef struct _ATOM_GPIO_VOLTAGE_OBJECT_V3 |
4610 | typedef struct _ATOM_GPIO_VOLTAGE_OBJECT_V3 |
4486 | { |
4611 | { |
4487 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; |
4612 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; // voltage mode = VOLTAGE_OBJ_GPIO_LUT or VOLTAGE_OBJ_PHASE_LUT |
4488 | UCHAR ucVoltageGpioCntlId; // default is 0 which indicate control through CG VID mode |
4613 | UCHAR ucVoltageGpioCntlId; // default is 0 which indicate control through CG VID mode |
4489 | UCHAR ucGpioEntryNum; // indiate the entry numbers of Votlage/Gpio value Look up table |
4614 | UCHAR ucGpioEntryNum; // indiate the entry numbers of Votlage/Gpio value Look up table |
4490 | UCHAR ucPhaseDelay; // phase delay in unit of micro second |
4615 | UCHAR ucPhaseDelay; // phase delay in unit of micro second |
4491 | UCHAR ucReserved; |
4616 | UCHAR ucReserved; |
4492 | ULONG ulGpioMaskVal; // GPIO Mask value |
4617 | ULONG ulGpioMaskVal; // GPIO Mask value |
Line 4493... | Line 4618... | ||
4493 | VOLTAGE_LUT_ENTRY_V2 asVolGpioLut[1]; |
4618 | VOLTAGE_LUT_ENTRY_V2 asVolGpioLut[1]; |
4494 | }ATOM_GPIO_VOLTAGE_OBJECT_V3; |
4619 | }ATOM_GPIO_VOLTAGE_OBJECT_V3; |
4495 | 4620 | ||
4496 | typedef struct _ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 |
4621 | typedef struct _ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 |
4497 | { |
4622 | { |
4498 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; |
4623 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; // voltage mode = 0x10/0x11/0x12 |
4499 | UCHAR ucLeakageCntlId; // default is 0 |
4624 | UCHAR ucLeakageCntlId; // default is 0 |
4500 | UCHAR ucLeakageEntryNum; // indicate the entry number of LeakageId/Voltage Lut table |
4625 | UCHAR ucLeakageEntryNum; // indicate the entry number of LeakageId/Voltage Lut table |
4501 | UCHAR ucReserved[2]; |
4626 | UCHAR ucReserved[2]; |
Line -... | Line 4627... | ||
- | 4627 | ULONG ulMaxVoltageLevel; |
|
- | 4628 | LEAKAGE_VOLTAGE_LUT_ENTRY_V2 asLeakageIdLut[1]; |
|
- | 4629 | }ATOM_LEAKAGE_VOLTAGE_OBJECT_V3; |
|
- | 4630 | ||
- | 4631 | ||
- | 4632 | typedef struct _ATOM_SVID2_VOLTAGE_OBJECT_V3 |
|
- | 4633 | { |
|
- | 4634 | ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; // voltage mode = VOLTAGE_OBJ_SVID2 |
|
- | 4635 | // 14:7 – PSI0_VID |
|
- | 4636 | // 6 – PSI0_EN |
|
- | 4637 | // 5 – PSI1 |
|
- | 4638 | // 4:2 – load line slope trim. |
|
- | 4639 | // 1:0 – offset trim, |
|
- | 4640 | USHORT usLoadLine_PSI; |
|
- | 4641 | // GPU GPIO pin Id to SVID2 regulator VRHot pin. possible value 0~31. 0 means GPIO0, 31 means GPIO31 |
|
- | 4642 | UCHAR ucSVDGpioId; //0~31 indicate GPIO0~31 |
|
4502 | ULONG ulMaxVoltageLevel; |
4643 | UCHAR ucSVCGpioId; //0~31 indicate GPIO0~31 |
4503 | LEAKAGE_VOLTAGE_LUT_ENTRY_V2 asLeakageIdLut[1]; |
4644 | ULONG ulReserved; |
4504 | }ATOM_LEAKAGE_VOLTAGE_OBJECT_V3; |
4645 | }ATOM_SVID2_VOLTAGE_OBJECT_V3; |
4505 | 4646 | ||
- | 4647 | typedef union _ATOM_VOLTAGE_OBJECT_V3{ |
|
4506 | typedef union _ATOM_VOLTAGE_OBJECT_V3{ |
4648 | ATOM_GPIO_VOLTAGE_OBJECT_V3 asGpioVoltageObj; |
Line 4507... | Line 4649... | ||
4507 | ATOM_GPIO_VOLTAGE_OBJECT_V3 asGpioVoltageObj; |
4649 | ATOM_I2C_VOLTAGE_OBJECT_V3 asI2cVoltageObj; |
4508 | ATOM_I2C_VOLTAGE_OBJECT_V3 asI2cVoltageObj; |
4650 | ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 asLeakageObj; |
4509 | ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 asLeakageObj; |
4651 | ATOM_SVID2_VOLTAGE_OBJECT_V3 asSVID2Obj; |
Line 4534... | Line 4676... | ||
4534 | { |
4676 | { |
4535 | ATOM_COMMON_TABLE_HEADER asHeader; |
4677 | ATOM_COMMON_TABLE_HEADER asHeader; |
4536 | ATOM_ASIC_PROFILE_VOLTAGE asVoltage; |
4678 | ATOM_ASIC_PROFILE_VOLTAGE asVoltage; |
4537 | }ATOM_ASIC_PROFILING_INFO; |
4679 | }ATOM_ASIC_PROFILING_INFO; |
Line -... | Line 4680... | ||
- | 4680 | ||
- | 4681 | typedef struct _ATOM_ASIC_PROFILING_INFO_V2_1 |
|
- | 4682 | { |
|
- | 4683 | ATOM_COMMON_TABLE_HEADER asHeader; |
|
- | 4684 | UCHAR ucLeakageBinNum; // indicate the entry number of LeakageId/Voltage Lut table |
|
- | 4685 | USHORT usLeakageBinArrayOffset; // offset of USHORT Leakage Bin list array ( from lower LeakageId to higher) |
|
- | 4686 | ||
- | 4687 | UCHAR ucElbVDDC_Num; |
|
- | 4688 | USHORT usElbVDDC_IdArrayOffset; // offset of USHORT virtual VDDC voltage id ( 0xff01~0xff08 ) |
|
- | 4689 | USHORT usElbVDDC_LevelArrayOffset; // offset of 2 dimension voltage level USHORT array |
|
- | 4690 | ||
- | 4691 | UCHAR ucElbVDDCI_Num; |
|
- | 4692 | USHORT usElbVDDCI_IdArrayOffset; // offset of USHORT virtual VDDCI voltage id ( 0xff01~0xff08 ) |
|
- | 4693 | USHORT usElbVDDCI_LevelArrayOffset; // offset of 2 dimension voltage level USHORT array |
|
- | 4694 | }ATOM_ASIC_PROFILING_INFO_V2_1; |
|
- | 4695 | ||
- | 4696 | typedef struct _ATOM_ASIC_PROFILING_INFO_V3_1 |
|
- | 4697 | { |
|
- | 4698 | ATOM_COMMON_TABLE_HEADER asHeader; |
|
- | 4699 | ULONG ulEvvDerateTdp; |
|
- | 4700 | ULONG ulEvvDerateTdc; |
|
- | 4701 | ULONG ulBoardCoreTemp; |
|
- | 4702 | ULONG ulMaxVddc; |
|
- | 4703 | ULONG ulMinVddc; |
|
- | 4704 | ULONG ulLoadLineSlop; |
|
- | 4705 | ULONG ulLeakageTemp; |
|
- | 4706 | ULONG ulLeakageVoltage; |
|
- | 4707 | ULONG ulCACmEncodeRange; |
|
- | 4708 | ULONG ulCACmEncodeAverage; |
|
- | 4709 | ULONG ulCACbEncodeRange; |
|
- | 4710 | ULONG ulCACbEncodeAverage; |
|
- | 4711 | ULONG ulKt_bEncodeRange; |
|
- | 4712 | ULONG ulKt_bEncodeAverage; |
|
- | 4713 | ULONG ulKv_mEncodeRange; |
|
- | 4714 | ULONG ulKv_mEncodeAverage; |
|
- | 4715 | ULONG ulKv_bEncodeRange; |
|
- | 4716 | ULONG ulKv_bEncodeAverage; |
|
- | 4717 | ULONG ulLkgEncodeLn_MaxDivMin; |
|
- | 4718 | ULONG ulLkgEncodeMin; |
|
- | 4719 | ULONG ulEfuseLogisticAlpha; |
|
- | 4720 | USHORT usPowerDpm0; |
|
- | 4721 | USHORT usCurrentDpm0; |
|
- | 4722 | USHORT usPowerDpm1; |
|
- | 4723 | USHORT usCurrentDpm1; |
|
- | 4724 | USHORT usPowerDpm2; |
|
- | 4725 | USHORT usCurrentDpm2; |
|
- | 4726 | USHORT usPowerDpm3; |
|
- | 4727 | USHORT usCurrentDpm3; |
|
- | 4728 | USHORT usPowerDpm4; |
|
- | 4729 | USHORT usCurrentDpm4; |
|
- | 4730 | USHORT usPowerDpm5; |
|
- | 4731 | USHORT usCurrentDpm5; |
|
- | 4732 | USHORT usPowerDpm6; |
|
- | 4733 | USHORT usCurrentDpm6; |
|
- | 4734 | USHORT usPowerDpm7; |
|
- | 4735 | USHORT usCurrentDpm7; |
|
- | 4736 | }ATOM_ASIC_PROFILING_INFO_V3_1; |
|
- | 4737 | ||
4538 | 4738 | ||
4539 | typedef struct _ATOM_POWER_SOURCE_OBJECT |
4739 | typedef struct _ATOM_POWER_SOURCE_OBJECT |
4540 | { |
4740 | { |
4541 | UCHAR ucPwrSrcId; // Power source |
4741 | UCHAR ucPwrSrcId; // Power source |
4542 | UCHAR ucPwrSensorType; // GPIO, I2C or none |
4742 | UCHAR ucPwrSensorType; // GPIO, I2C or none |
Line 4650... | Line 4850... | ||
4650 | #define SYS_INFO_LVDSMISC__888_FPDI_MODE 0x01 |
4850 | #define SYS_INFO_LVDSMISC__888_FPDI_MODE 0x01 |
4651 | #define SYS_INFO_LVDSMISC__DL_CH_SWAP 0x02 |
4851 | #define SYS_INFO_LVDSMISC__DL_CH_SWAP 0x02 |
4652 | #define SYS_INFO_LVDSMISC__888_BPC 0x04 |
4852 | #define SYS_INFO_LVDSMISC__888_BPC 0x04 |
4653 | #define SYS_INFO_LVDSMISC__OVERRIDE_EN 0x08 |
4853 | #define SYS_INFO_LVDSMISC__OVERRIDE_EN 0x08 |
4654 | #define SYS_INFO_LVDSMISC__BLON_ACTIVE_LOW 0x10 |
4854 | #define SYS_INFO_LVDSMISC__BLON_ACTIVE_LOW 0x10 |
- | 4855 | // new since Trinity |
|
- | 4856 | #define SYS_INFO_LVDSMISC__TRAVIS_LVDS_VOL_OVERRIDE_EN 0x20 |
|
Line 4655... | Line 4857... | ||
4655 | 4857 | ||
4656 | // not used any more |
4858 | // not used any more |
4657 | #define SYS_INFO_LVDSMISC__VSYNC_ACTIVE_LOW 0x04 |
4859 | #define SYS_INFO_LVDSMISC__VSYNC_ACTIVE_LOW 0x04 |
Line 4750... | Line 4952... | ||
4750 | typedef struct _ATOM_FUSION_SYSTEM_INFO_V1 |
4952 | typedef struct _ATOM_FUSION_SYSTEM_INFO_V1 |
4751 | { |
4953 | { |
4752 | ATOM_INTEGRATED_SYSTEM_INFO_V6 sIntegratedSysInfo; |
4954 | ATOM_INTEGRATED_SYSTEM_INFO_V6 sIntegratedSysInfo; |
4753 | ULONG ulPowerplayTable[128]; |
4955 | ULONG ulPowerplayTable[128]; |
4754 | }ATOM_FUSION_SYSTEM_INFO_V1; |
4956 | }ATOM_FUSION_SYSTEM_INFO_V1; |
- | 4957 | ||
- | 4958 | ||
- | 4959 | typedef struct _ATOM_TDP_CONFIG_BITS |
|
- | 4960 | { |
|
- | 4961 | #if ATOM_BIG_ENDIAN |
|
- | 4962 | ULONG uReserved:2; |
|
- | 4963 | ULONG uTDP_Value:14; // Original TDP value in tens of milli watts |
|
- | 4964 | ULONG uCTDP_Value:14; // Override value in tens of milli watts |
|
- | 4965 | ULONG uCTDP_Enable:2; // = (uCTDP_Value > uTDP_Value? 2: (uCTDP_Value < uTDP_Value)) |
|
- | 4966 | #else |
|
- | 4967 | ULONG uCTDP_Enable:2; // = (uCTDP_Value > uTDP_Value? 2: (uCTDP_Value < uTDP_Value)) |
|
- | 4968 | ULONG uCTDP_Value:14; // Override value in tens of milli watts |
|
- | 4969 | ULONG uTDP_Value:14; // Original TDP value in tens of milli watts |
|
- | 4970 | ULONG uReserved:2; |
|
- | 4971 | #endif |
|
- | 4972 | }ATOM_TDP_CONFIG_BITS; |
|
- | 4973 | ||
- | 4974 | typedef union _ATOM_TDP_CONFIG |
|
- | 4975 | { |
|
- | 4976 | ATOM_TDP_CONFIG_BITS TDP_config; |
|
- | 4977 | ULONG TDP_config_all; |
|
- | 4978 | }ATOM_TDP_CONFIG; |
|
- | 4979 | ||
4755 | /********************************************************************************************************************** |
4980 | /********************************************************************************************************************** |
4756 | ATOM_FUSION_SYSTEM_INFO_V1 Description |
4981 | ATOM_FUSION_SYSTEM_INFO_V1 Description |
4757 | sIntegratedSysInfo: refer to ATOM_INTEGRATED_SYSTEM_INFO_V6 definition. |
4982 | sIntegratedSysInfo: refer to ATOM_INTEGRATED_SYSTEM_INFO_V6 definition. |
4758 | ulPowerplayTable[128]: This 512 bytes memory is used to save ATOM_PPLIB_POWERPLAYTABLE3, starting form ulPowerplayTable[0] |
4983 | ulPowerplayTable[128]: This 512 bytes memory is used to save ATOM_PPLIB_POWERPLAYTABLE3, starting form ulPowerplayTable[0] |
4759 | **********************************************************************************************************************/ |
4984 | **********************************************************************************************************************/ |
Line 4782... | Line 5007... | ||
4782 | USHORT usExtDispConnInfoOffset; |
5007 | USHORT usExtDispConnInfoOffset; |
4783 | USHORT usPanelRefreshRateRange; |
5008 | USHORT usPanelRefreshRateRange; |
4784 | UCHAR ucMemoryType; |
5009 | UCHAR ucMemoryType; |
4785 | UCHAR ucUMAChannelNumber; |
5010 | UCHAR ucUMAChannelNumber; |
4786 | UCHAR strVBIOSMsg[40]; |
5011 | UCHAR strVBIOSMsg[40]; |
- | 5012 | ATOM_TDP_CONFIG asTdpConfig; |
|
4787 | ULONG ulReserved[20]; |
5013 | ULONG ulReserved[19]; |
4788 | ATOM_AVAILABLE_SCLK_LIST sAvail_SCLK[5]; |
5014 | ATOM_AVAILABLE_SCLK_LIST sAvail_SCLK[5]; |
4789 | ULONG ulGMCRestoreResetTime; |
5015 | ULONG ulGMCRestoreResetTime; |
4790 | ULONG ulMinimumNClk; |
5016 | ULONG ulMinimumNClk; |
4791 | ULONG ulIdleNClk; |
5017 | ULONG ulIdleNClk; |
4792 | ULONG ulDDR_DLL_PowerUpTime; |
5018 | ULONG ulDDR_DLL_PowerUpTime; |
Line 4807... | Line 5033... | ||
4807 | UCHAR ulBoostVid_2bit; |
5033 | UCHAR ulBoostVid_2bit; |
4808 | UCHAR EnableBoost; |
5034 | UCHAR EnableBoost; |
4809 | USHORT GnbTdpLimit; |
5035 | USHORT GnbTdpLimit; |
4810 | USHORT usMaxLVDSPclkFreqInSingleLink; |
5036 | USHORT usMaxLVDSPclkFreqInSingleLink; |
4811 | UCHAR ucLvdsMisc; |
5037 | UCHAR ucLvdsMisc; |
4812 | UCHAR ucLVDSReserved; |
5038 | UCHAR ucTravisLVDSVolAdjust; |
4813 | UCHAR ucLVDSPwrOnSeqDIGONtoDE_in4Ms; |
5039 | UCHAR ucLVDSPwrOnSeqDIGONtoDE_in4Ms; |
4814 | UCHAR ucLVDSPwrOnSeqDEtoVARY_BL_in4Ms; |
5040 | UCHAR ucLVDSPwrOnSeqDEtoVARY_BL_in4Ms; |
4815 | UCHAR ucLVDSPwrOffSeqVARY_BLtoDE_in4Ms; |
5041 | UCHAR ucLVDSPwrOffSeqVARY_BLtoDE_in4Ms; |
4816 | UCHAR ucLVDSPwrOffSeqDEtoDIGON_in4Ms; |
5042 | UCHAR ucLVDSPwrOffSeqDEtoDIGON_in4Ms; |
4817 | UCHAR ucLVDSOffToOnDelay_in4Ms; |
5043 | UCHAR ucLVDSOffToOnDelay_in4Ms; |
4818 | UCHAR ucLVDSPwrOnSeqVARY_BLtoBLON_in4Ms; |
5044 | UCHAR ucLVDSPwrOnSeqVARY_BLtoBLON_in4Ms; |
4819 | UCHAR ucLVDSPwrOffSeqBLONtoVARY_BL_in4Ms; |
5045 | UCHAR ucLVDSPwrOffSeqBLONtoVARY_BL_in4Ms; |
4820 | UCHAR ucLVDSReserved1; |
5046 | UCHAR ucMinAllowedBL_Level; |
4821 | ULONG ulLCDBitDepthControlVal; |
5047 | ULONG ulLCDBitDepthControlVal; |
4822 | ULONG ulNbpStateMemclkFreq[4]; |
5048 | ULONG ulNbpStateMemclkFreq[4]; |
4823 | USHORT usNBP2Voltage; |
5049 | USHORT usNBP2Voltage; |
4824 | USHORT usNBP3Voltage; |
5050 | USHORT usNBP3Voltage; |
4825 | ULONG ulNbpStateNClkFreq[4]; |
5051 | ULONG ulNbpStateNClkFreq[4]; |
Line 4844... | Line 5070... | ||
4844 | 5070 | ||
4845 | // ulGPUCapInfo |
5071 | // ulGPUCapInfo |
4846 | #define SYS_INFO_GPUCAPS__TMDSHDMI_COHERENT_SINGLEPLL_MODE 0x01 |
5072 | #define SYS_INFO_GPUCAPS__TMDSHDMI_COHERENT_SINGLEPLL_MODE 0x01 |
4847 | #define SYS_INFO_GPUCAPS__DP_SINGLEPLL_MODE 0x02 |
5073 | #define SYS_INFO_GPUCAPS__DP_SINGLEPLL_MODE 0x02 |
- | 5074 | #define SYS_INFO_GPUCAPS__DISABLE_AUX_MODE_DETECT 0x08 |
|
Line 4848... | Line 5075... | ||
4848 | #define SYS_INFO_GPUCAPS__DISABLE_AUX_MODE_DETECT 0x08 |
5075 | #define SYS_INFO_GPUCAPS__ENABEL_DFS_BYPASS 0x10 |
4849 | 5076 | ||
4850 | /********************************************************************************************************************** |
5077 | /********************************************************************************************************************** |
4851 | ATOM_INTEGRATED_SYSTEM_INFO_V1_7 Description |
5078 | ATOM_INTEGRATED_SYSTEM_INFO_V1_7 Description |
Line 4943... | Line 5170... | ||
4943 | ucLVDSMisc: [bit0] LVDS 888bit panel mode =0: LVDS 888 panel in LDI mode, =1: LVDS 888 panel in FPDI mode |
5170 | ucLVDSMisc: [bit0] LVDS 888bit panel mode =0: LVDS 888 panel in LDI mode, =1: LVDS 888 panel in FPDI mode |
4944 | [bit1] LVDS panel lower and upper link mapping =0: lower link and upper link not swap, =1: lower link and upper link are swapped |
5171 | [bit1] LVDS panel lower and upper link mapping =0: lower link and upper link not swap, =1: lower link and upper link are swapped |
4945 | [bit2] LVDS 888bit per color mode =0: 666 bit per color =1:888 bit per color |
5172 | [bit2] LVDS 888bit per color mode =0: 666 bit per color =1:888 bit per color |
4946 | [bit3] LVDS parameter override enable =0: ucLvdsMisc parameter are not used =1: ucLvdsMisc parameter should be used |
5173 | [bit3] LVDS parameter override enable =0: ucLvdsMisc parameter are not used =1: ucLvdsMisc parameter should be used |
4947 | [bit4] Polarity of signal sent to digital BLON output pin. =0: not inverted(active high) =1: inverted ( active low ) |
5174 | [bit4] Polarity of signal sent to digital BLON output pin. =0: not inverted(active high) =1: inverted ( active low ) |
- | 5175 | [bit5] Travid LVDS output voltage override enable, when =1, use ucTravisLVDSVolAdjust value to overwrite Traivs register LVDS_CTRL_4 |
|
- | 5176 | ucTravisLVDSVolAdjust When ucLVDSMisc[5]=1,it means platform SBIOS want to overwrite TravisLVDSVoltage. Then VBIOS will use ucTravisLVDSVolAdjust |
|
- | 5177 | value to program Travis register LVDS_CTRL_4 |
|
4948 | ucLVDSPwrOnSeqDIGONtoDE_in4Ms: LVDS power up sequence time in unit of 4ms, time delay from DIGON signal active to data enable signal active( DE ). |
5178 | ucLVDSPwrOnSeqDIGONtoDE_in4Ms: LVDS power up sequence time in unit of 4ms, time delay from DIGON signal active to data enable signal active( DE ). |
4949 | =0 mean use VBIOS default which is 8 ( 32ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. |
5179 | =0 mean use VBIOS default which is 8 ( 32ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. |
4950 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
5180 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
4951 | 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 ). |
5181 | 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 ). |
4952 | =0 mean use VBIOS default which is 90 ( 360ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. |
5182 | =0 mean use VBIOS default which is 90 ( 360ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. |
Line 4962... | Line 5192... | ||
4962 | 5192 | ||
4963 | ucLVDSOffToOnDelay_in4Ms: LVDS power down sequence time in unit of 4ms. Time delay from DIGON signal off to DIGON signal active. |
5193 | ucLVDSOffToOnDelay_in4Ms: LVDS power down sequence time in unit of 4ms. Time delay from DIGON signal off to DIGON signal active. |
4964 | =0 means to use VBIOS default delay which is 125 ( 500ms ). |
5194 | =0 means to use VBIOS default delay which is 125 ( 500ms ). |
Line -... | Line 5195... | ||
- | 5195 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
4965 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
5196 | |
4966 | 5197 | ucLVDSPwrOnSeqVARY_BLtoBLON_in4Ms: |
|
4967 | ucLVDSPwrOnVARY_BLtoBLON_in4Ms: LVDS power up sequence time in unit of 4ms. Time delay from VARY_BL signal on to DLON signal active. |
5198 | LVDS power up sequence time in unit of 4ms. Time delay from VARY_BL signal on to DLON signal active. |
Line -... | Line 5199... | ||
- | 5199 | =0 means to use VBIOS default delay which is 0 ( 0ms ). |
|
4968 | =0 means to use VBIOS default delay which is 0 ( 0ms ). |
5200 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
4969 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
5201 | |
4970 | 5202 | ucLVDSPwrOffSeqBLONtoVARY_BL_in4Ms: |
|
Line -... | Line 5203... | ||
- | 5203 | LVDS power down sequence time in unit of 4ms. Time delay from BLON signal off to VARY_BL signal off. |
|
- | 5204 | =0 means to use VBIOS default delay which is 0 ( 0ms ). |
|
4971 | ucLVDSPwrOffBLONtoVARY_BL_in4Ms: LVDS power down sequence time in unit of 4ms. Time delay from BLON signal off to VARY_BL signal off. |
5205 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
Line 4972... | Line 5206... | ||
4972 | =0 means to use VBIOS default delay which is 0 ( 0ms ). |
5206 | |
Line -... | Line 5207... | ||
- | 5207 | ucMinAllowedBL_Level: Lowest LCD backlight PWM level. This is customer platform specific parameters. By default it is 0. |
|
- | 5208 | ||
- | 5209 | ulNbpStateMemclkFreq[4]: system memory clock frequncey in unit of 10Khz in different NB pstate. |
|
- | 5210 | ||
- | 5211 | **********************************************************************************************************************/ |
|
- | 5212 | ||
- | 5213 | // this IntegrateSystemInfoTable is used for Kaveri & Kabini APU |
|
- | 5214 | typedef struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_8 |
|
- | 5215 | { |
|
- | 5216 | ATOM_COMMON_TABLE_HEADER sHeader; |
|
- | 5217 | ULONG ulBootUpEngineClock; |
|
- | 5218 | ULONG ulDentistVCOFreq; |
|
- | 5219 | ULONG ulBootUpUMAClock; |
|
- | 5220 | ATOM_CLK_VOLT_CAPABILITY sDISPCLK_Voltage[4]; |
|
- | 5221 | ULONG ulBootUpReqDisplayVector; |
|
- | 5222 | ULONG ulVBIOSMisc; |
|
- | 5223 | ULONG ulGPUCapInfo; |
|
- | 5224 | ULONG ulDISP_CLK2Freq; |
|
- | 5225 | USHORT usRequestedPWMFreqInHz; |
|
- | 5226 | UCHAR ucHtcTmpLmt; |
|
- | 5227 | UCHAR ucHtcHystLmt; |
|
- | 5228 | ULONG ulReserved2; |
|
- | 5229 | ULONG ulSystemConfig; |
|
- | 5230 | ULONG ulCPUCapInfo; |
|
- | 5231 | ULONG ulReserved3; |
|
- | 5232 | USHORT usGPUReservedSysMemSize; |
|
- | 5233 | USHORT usExtDispConnInfoOffset; |
|
- | 5234 | USHORT usPanelRefreshRateRange; |
|
- | 5235 | UCHAR ucMemoryType; |
|
- | 5236 | UCHAR ucUMAChannelNumber; |
|
- | 5237 | UCHAR strVBIOSMsg[40]; |
|
- | 5238 | ATOM_TDP_CONFIG asTdpConfig; |
|
- | 5239 | ULONG ulReserved[19]; |
|
- | 5240 | ATOM_AVAILABLE_SCLK_LIST sAvail_SCLK[5]; |
|
- | 5241 | ULONG ulGMCRestoreResetTime; |
|
- | 5242 | ULONG ulReserved4; |
|
- | 5243 | ULONG ulIdleNClk; |
|
- | 5244 | ULONG ulDDR_DLL_PowerUpTime; |
|
- | 5245 | ULONG ulDDR_PLL_PowerUpTime; |
|
- | 5246 | USHORT usPCIEClkSSPercentage; |
|
- | 5247 | USHORT usPCIEClkSSType; |
|
- | 5248 | USHORT usLvdsSSPercentage; |
|
- | 5249 | USHORT usLvdsSSpreadRateIn10Hz; |
|
- | 5250 | USHORT usHDMISSPercentage; |
|
- | 5251 | USHORT usHDMISSpreadRateIn10Hz; |
|
- | 5252 | USHORT usDVISSPercentage; |
|
- | 5253 | USHORT usDVISSpreadRateIn10Hz; |
|
- | 5254 | ULONG ulGPUReservedSysMemBaseAddrLo; |
|
- | 5255 | ULONG ulGPUReservedSysMemBaseAddrHi; |
|
- | 5256 | ULONG ulReserved5[3]; |
|
- | 5257 | USHORT usMaxLVDSPclkFreqInSingleLink; |
|
- | 5258 | UCHAR ucLvdsMisc; |
|
- | 5259 | UCHAR ucTravisLVDSVolAdjust; |
|
- | 5260 | UCHAR ucLVDSPwrOnSeqDIGONtoDE_in4Ms; |
|
- | 5261 | UCHAR ucLVDSPwrOnSeqDEtoVARY_BL_in4Ms; |
|
- | 5262 | UCHAR ucLVDSPwrOffSeqVARY_BLtoDE_in4Ms; |
|
- | 5263 | UCHAR ucLVDSPwrOffSeqDEtoDIGON_in4Ms; |
|
- | 5264 | UCHAR ucLVDSOffToOnDelay_in4Ms; |
|
- | 5265 | UCHAR ucLVDSPwrOnSeqVARY_BLtoBLON_in4Ms; |
|
- | 5266 | UCHAR ucLVDSPwrOffSeqBLONtoVARY_BL_in4Ms; |
|
- | 5267 | UCHAR ucMinAllowedBL_Level; |
|
- | 5268 | ULONG ulLCDBitDepthControlVal; |
|
- | 5269 | ULONG ulNbpStateMemclkFreq[4]; |
|
- | 5270 | ULONG ulReserved6; |
|
- | 5271 | ULONG ulNbpStateNClkFreq[4]; |
|
- | 5272 | USHORT usNBPStateVoltage[4]; |
|
- | 5273 | USHORT usBootUpNBVoltage; |
|
- | 5274 | USHORT usReserved2; |
|
- | 5275 | ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO sExtDispConnInfo; |
|
- | 5276 | }ATOM_INTEGRATED_SYSTEM_INFO_V1_8; |
|
- | 5277 | ||
- | 5278 | /********************************************************************************************************************** |
|
- | 5279 | ATOM_INTEGRATED_SYSTEM_INFO_V1_8 Description |
|
- | 5280 | ulBootUpEngineClock: VBIOS bootup Engine clock frequency, in 10kHz unit. if it is equal 0, then VBIOS use pre-defined bootup engine clock |
|
- | 5281 | ulDentistVCOFreq: Dentist VCO clock in 10kHz unit. |
|
- | 5282 | ulBootUpUMAClock: System memory boot up clock frequency in 10Khz unit. |
|
- | 5283 | sDISPCLK_Voltage: Report Display clock frequency requirement on GNB voltage(up to 4 voltage levels). |
|
- | 5284 | ||
- | 5285 | ulBootUpReqDisplayVector: VBIOS boot up display IDs, following are supported devices in Trinity projects: |
|
- | 5286 | ATOM_DEVICE_CRT1_SUPPORT 0x0001 |
|
- | 5287 | ATOM_DEVICE_DFP1_SUPPORT 0x0008 |
|
- | 5288 | ATOM_DEVICE_DFP6_SUPPORT 0x0040 |
|
- | 5289 | ATOM_DEVICE_DFP2_SUPPORT 0x0080 |
|
- | 5290 | ATOM_DEVICE_DFP3_SUPPORT 0x0200 |
|
- | 5291 | ATOM_DEVICE_DFP4_SUPPORT 0x0400 |
|
- | 5292 | ATOM_DEVICE_DFP5_SUPPORT 0x0800 |
|
- | 5293 | ATOM_DEVICE_LCD1_SUPPORT 0x0002 |
|
- | 5294 | ||
- | 5295 | ulVBIOSMisc: Miscellenous flags for VBIOS requirement and interface |
|
- | 5296 | bit[0]=0: INT15 callback function Get LCD EDID ( ax=4e08, bl=1b ) is not supported by SBIOS. |
|
- | 5297 | =1: INT15 callback function Get LCD EDID ( ax=4e08, bl=1b ) is supported by SBIOS. |
|
- | 5298 | bit[1]=0: INT15 callback function Get boot display( ax=4e08, bl=01h) is not supported by SBIOS |
|
- | 5299 | =1: INT15 callback function Get boot display( ax=4e08, bl=01h) is supported by SBIOS |
|
- | 5300 | bit[2]=0: INT15 callback function Get panel Expansion ( ax=4e08, bl=02h) is not supported by SBIOS |
|
- | 5301 | =1: INT15 callback function Get panel Expansion ( ax=4e08, bl=02h) is supported by SBIOS |
|
- | 5302 | bit[3]=0: VBIOS fast boot is disable |
|
- | 5303 | =1: VBIOS fast boot is enable. ( VBIOS skip display device detection in every set mode if LCD panel is connect and LID is open) |
|
- | 5304 | ||
- | 5305 | ulGPUCapInfo: bit[0~2]= Reserved |
|
- | 5306 | bit[3]=0: Enable AUX HW mode detection logic |
|
- | 5307 | =1: Disable AUX HW mode detection logic |
|
- | 5308 | bit[4]=0: Disable DFS bypass feature |
|
- | 5309 | =1: Enable DFS bypass feature |
|
- | 5310 | ||
- | 5311 | usRequestedPWMFreqInHz: When it's set to 0x0 by SBIOS: the LCD BackLight is not controlled by GPU(SW). |
|
- | 5312 | 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; |
|
- | 5313 | ||
- | 5314 | When it's set to a non-zero frequency, the BackLight is controlled by GPU (SW) in one of two ways below: |
|
- | 5315 | 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; |
|
- | 5316 | VBIOS will set up proper PWM frequency and ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==1,as the result, |
|
- | 5317 | Changing BL using VBIOS function is functional in both driver and non-driver present environment; |
|
- | 5318 | and enabling VariBri under the driver environment from PP table is optional. |
|
- | 5319 | ||
- | 5320 | 2. SW uses other means to control BL (like DPCD),this non-zero frequency serves as a flag only indicating |
|
- | 5321 | that BL control from GPU is expected. |
|
- | 5322 | VBIOS will NOT set up PWM frequency but make ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==1 |
|
- | 5323 | Changing BL using VBIOS function could be functional in both driver and non-driver present environment,but |
|
- | 5324 | it's per platform |
|
- | 5325 | and enabling VariBri under the driver environment from PP table is optional. |
|
- | 5326 | ||
- | 5327 | ucHtcTmpLmt: Refer to D18F3x64 bit[22:16], HtcTmpLmt. Threshold on value to enter HTC_active state. |
|
- | 5328 | ucHtcHystLmt: Refer to D18F3x64 bit[27:24], HtcHystLmt. |
|
- | 5329 | To calculate threshold off value to exit HTC_active state, which is Threshold on vlaue minus ucHtcHystLmt. |
|
- | 5330 | ||
- | 5331 | ulSystemConfig: Bit[0]=0: PCIE Power Gating Disabled |
|
- | 5332 | =1: PCIE Power Gating Enabled |
|
- | 5333 | Bit[1]=0: DDR-DLL shut-down feature disabled. |
|
- | 5334 | 1: DDR-DLL shut-down feature enabled. |
|
- | 5335 | Bit[2]=0: DDR-PLL Power down feature disabled. |
|
- | 5336 | 1: DDR-PLL Power down feature enabled. |
|
- | 5337 | Bit[3]=0: GNB DPM is disabled |
|
- | 5338 | =1: GNB DPM is enabled |
|
- | 5339 | ulCPUCapInfo: TBD |
|
- | 5340 | ||
- | 5341 | usExtDispConnInfoOffset: Offset to sExtDispConnInfo inside the structure |
|
- | 5342 | usPanelRefreshRateRange: Bit vector for LCD supported refresh rate range. If DRR is requestd by the platform, at least two bits need to be set |
|
- | 5343 | to indicate a range. |
|
- | 5344 | SUPPORTED_LCD_REFRESHRATE_30Hz 0x0004 |
|
- | 5345 | SUPPORTED_LCD_REFRESHRATE_40Hz 0x0008 |
|
- | 5346 | SUPPORTED_LCD_REFRESHRATE_50Hz 0x0010 |
|
- | 5347 | SUPPORTED_LCD_REFRESHRATE_60Hz 0x0020 |
|
- | 5348 | ||
- | 5349 | ucMemoryType: [3:0]=1:DDR1;=2:DDR2;=3:DDR3;=5:GDDR5; [7:4] is reserved. |
|
- | 5350 | ucUMAChannelNumber: System memory channel numbers. |
|
- | 5351 | ||
- | 5352 | strVBIOSMsg[40]: VBIOS boot up customized message string |
|
- | 5353 | ||
- | 5354 | sAvail_SCLK[5]: Arrays to provide availabe list of SLCK and corresponding voltage, order from low to high |
|
- | 5355 | ||
- | 5356 | ulGMCRestoreResetTime: GMC power restore and GMC reset time to calculate data reconnection latency. Unit in ns. |
|
- | 5357 | ulIdleNClk: NCLK speed while memory runs in self-refresh state, used to calculate self-refresh latency. Unit in 10kHz. |
|
- | 5358 | ulDDR_DLL_PowerUpTime: DDR PHY DLL power up time. Unit in ns. |
|
- | 5359 | ulDDR_PLL_PowerUpTime: DDR PHY PLL power up time. Unit in ns. |
|
- | 5360 | ||
- | 5361 | usPCIEClkSSPercentage: PCIE Clock Spread Spectrum Percentage in unit 0.01%; 100 mean 1%. |
|
- | 5362 | usPCIEClkSSType: PCIE Clock Spread Spectrum Type. 0 for Down spread(default); 1 for Center spread. |
|
- | 5363 | usLvdsSSPercentage: LVDS panel ( not include eDP ) Spread Spectrum Percentage in unit of 0.01%, =0, use VBIOS default setting. |
|
- | 5364 | usLvdsSSpreadRateIn10Hz: LVDS panel ( not include eDP ) Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
|
- | 5365 | usHDMISSPercentage: HDMI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. |
|
- | 5366 | usHDMISSpreadRateIn10Hz: HDMI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
|
- | 5367 | usDVISSPercentage: DVI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. |
|
- | 5368 | usDVISSpreadRateIn10Hz: DVI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. |
|
- | 5369 | ||
- | 5370 | usGPUReservedSysMemSize: Reserved system memory size for ACP engine in APU GNB, units in MB. 0/2/4MB based on CMOS options, current default could be 0MB. KV only, not on KB. |
|
- | 5371 | ulGPUReservedSysMemBaseAddrLo: Low 32 bits base address to the reserved system memory. |
|
- | 5372 | ulGPUReservedSysMemBaseAddrHi: High 32 bits base address to the reserved system memory. |
|
- | 5373 | ||
- | 5374 | usMaxLVDSPclkFreqInSingleLink: Max pixel clock LVDS panel single link, if=0 means VBIOS use default threhold, right now it is 85Mhz |
|
- | 5375 | ucLVDSMisc: [bit0] LVDS 888bit panel mode =0: LVDS 888 panel in LDI mode, =1: LVDS 888 panel in FPDI mode |
|
- | 5376 | [bit1] LVDS panel lower and upper link mapping =0: lower link and upper link not swap, =1: lower link and upper link are swapped |
|
- | 5377 | [bit2] LVDS 888bit per color mode =0: 666 bit per color =1:888 bit per color |
|
- | 5378 | [bit3] LVDS parameter override enable =0: ucLvdsMisc parameter are not used =1: ucLvdsMisc parameter should be used |
|
- | 5379 | [bit4] Polarity of signal sent to digital BLON output pin. =0: not inverted(active high) =1: inverted ( active low ) |
|
- | 5380 | [bit5] Travid LVDS output voltage override enable, when =1, use ucTravisLVDSVolAdjust value to overwrite Traivs register LVDS_CTRL_4 |
|
- | 5381 | ucTravisLVDSVolAdjust When ucLVDSMisc[5]=1,it means platform SBIOS want to overwrite TravisLVDSVoltage. Then VBIOS will use ucTravisLVDSVolAdjust |
|
- | 5382 | value to program Travis register LVDS_CTRL_4 |
|
- | 5383 | ucLVDSPwrOnSeqDIGONtoDE_in4Ms: |
|
- | 5384 | LVDS power up sequence time in unit of 4ms, time delay from DIGON signal active to data enable signal active( DE ). |
|
- | 5385 | =0 mean use VBIOS default which is 8 ( 32ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. |
|
- | 5386 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 5387 | ucLVDSPwrOnDEtoVARY_BL_in4Ms: |
|
- | 5388 | LVDS power up sequence time in unit of 4ms., time delay from DE( data enable ) active to Vary Brightness enable signal active( VARY_BL ). |
|
- | 5389 | =0 mean use VBIOS default which is 90 ( 360ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. |
|
- | 5390 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 5391 | ucLVDSPwrOffVARY_BLtoDE_in4Ms: |
|
- | 5392 | LVDS power down sequence time in unit of 4ms, time delay from data enable ( DE ) signal off to LCDVCC (DIGON) off. |
|
- | 5393 | =0 mean use VBIOS default delay which is 8 ( 32ms ). The LVDS power down sequence is as following: BLON->VARY_BL->DE->DIGON |
|
- | 5394 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 5395 | ucLVDSPwrOffDEtoDIGON_in4Ms: |
|
- | 5396 | 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. |
|
- | 5397 | =0 mean use VBIOS default which is 90 ( 360ms ). The LVDS power down sequence is as following: BLON->VARY_BL->DE->DIGON |
|
- | 5398 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 5399 | ucLVDSOffToOnDelay_in4Ms: |
|
- | 5400 | LVDS power down sequence time in unit of 4ms. Time delay from DIGON signal off to DIGON signal active. |
|
- | 5401 | =0 means to use VBIOS default delay which is 125 ( 500ms ). |
|
- | 5402 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 5403 | ucLVDSPwrOnSeqVARY_BLtoBLON_in4Ms: |
|
- | 5404 | LVDS power up sequence time in unit of 4ms. Time delay from VARY_BL signal on to DLON signal active. |
|
- | 5405 | =0 means to use VBIOS default delay which is 0 ( 0ms ). |
|
- | 5406 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 5407 | ||
- | 5408 | ucLVDSPwrOffSeqBLONtoVARY_BL_in4Ms: |
|
- | 5409 | LVDS power down sequence time in unit of 4ms. Time delay from BLON signal off to VARY_BL signal off. |
|
- | 5410 | =0 means to use VBIOS default delay which is 0 ( 0ms ). |
|
- | 5411 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
|
- | 5412 | ucMinAllowedBL_Level: Lowest LCD backlight PWM level. This is customer platform specific parameters. By default it is 0. |
|
- | 5413 | ||
- | 5414 | ulLCDBitDepthControlVal: GPU display control encoder bit dither control setting, used to program register mmFMT_BIT_DEPTH_CONTROL |
|
- | 5415 | ||
- | 5416 | ulNbpStateMemclkFreq[4]: system memory clock frequncey in unit of 10Khz in different NB P-State(P0, P1, P2 & P3). |
|
- | 5417 | ulNbpStateNClkFreq[4]: NB P-State NClk frequency in different NB P-State |
|
- | 5418 | usNBPStateVoltage[4]: NB P-State (P0/P1 & P2/P3) voltage; NBP3 refers to lowes voltage |
|
- | 5419 | usBootUpNBVoltage: NB P-State voltage during boot up before driver loaded |
|
- | 5420 | sExtDispConnInfo: Display connector information table provided to VBIOS |
|
- | 5421 | ||
- | 5422 | **********************************************************************************************************************/ |
|
- | 5423 | ||
- | 5424 | // this Table is used for Kaveri/Kabini APU |
|
- | 5425 | typedef struct _ATOM_FUSION_SYSTEM_INFO_V2 |
|
4973 | This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. |
5426 | { |
4974 | 5427 | ATOM_INTEGRATED_SYSTEM_INFO_V1_8 sIntegratedSysInfo; // refer to ATOM_INTEGRATED_SYSTEM_INFO_V1_8 definition |
|
4975 | ulNbpStateMemclkFreq[4]: system memory clock frequncey in unit of 10Khz in different NB pstate. |
5428 | ULONG ulPowerplayTable[128]; // Update comments here to link new powerplay table definition structure |
4976 | 5429 | }ATOM_FUSION_SYSTEM_INFO_V2; |
|
4977 | **********************************************************************************************************************/ |
5430 | |
Line 5034... | Line 5487... | ||
5034 | #define ASIC_INTERNAL_SS_ON_LVDS 6 |
5487 | #define ASIC_INTERNAL_SS_ON_LVDS 6 |
5035 | #define ASIC_INTERNAL_SS_ON_DP 7 |
5488 | #define ASIC_INTERNAL_SS_ON_DP 7 |
5036 | #define ASIC_INTERNAL_SS_ON_DCPLL 8 |
5489 | #define ASIC_INTERNAL_SS_ON_DCPLL 8 |
5037 | #define ASIC_EXTERNAL_SS_ON_DP_CLOCK 9 |
5490 | #define ASIC_EXTERNAL_SS_ON_DP_CLOCK 9 |
5038 | #define ASIC_INTERNAL_VCE_SS 10 |
5491 | #define ASIC_INTERNAL_VCE_SS 10 |
- | 5492 | #define ASIC_INTERNAL_GPUPLL_SS 11 |
|
- | 5493 | ||
Line 5039... | Line 5494... | ||
5039 | 5494 | ||
5040 | typedef struct _ATOM_ASIC_SS_ASSIGNMENT_V2 |
5495 | typedef struct _ATOM_ASIC_SS_ASSIGNMENT_V2 |
5041 | { |
5496 | { |
5042 | ULONG ulTargetClockRange; //For mem/engine/uvd, Clock Out frequence (VCO ), in unit of 10Khz |
5497 | ULONG ulTargetClockRange; //For mem/engine/uvd, Clock Out frequence (VCO ), in unit of 10Khz |
5043 | //For TMDS/HDMI/LVDS, it is pixel clock , for DP, it is link clock ( 27000 or 16200 ) |
5498 | //For TMDS/HDMI/LVDS, it is pixel clock , for DP, it is link clock ( 27000 or 16200 ) |
5044 | USHORT usSpreadSpectrumPercentage; //in unit of 0.01% |
5499 | USHORT usSpreadSpectrumPercentage; //in unit of 0.01% or 0.001%, decided by ucSpreadSpectrumMode bit4 |
5045 | USHORT usSpreadRateIn10Hz; //in unit of 10Hz, modulation freq |
5500 | USHORT usSpreadRateIn10Hz; //in unit of 10Hz, modulation freq |
5046 | UCHAR ucClockIndication; //Indicate which clock source needs SS |
5501 | UCHAR ucClockIndication; //Indicate which clock source needs SS |
5047 | UCHAR ucSpreadSpectrumMode; //Bit0=0 Down Spread,=1 Center Spread, bit1=0: internal SS bit1=1: external SS |
5502 | UCHAR ucSpreadSpectrumMode; //Bit0=0 Down Spread,=1 Center Spread, bit1=0: internal SS bit1=1: external SS |
5048 | UCHAR ucReserved[2]; |
5503 | UCHAR ucReserved[2]; |
Line 5077... | Line 5532... | ||
5077 | UCHAR ucClockIndication; //Indicate which clock source needs SS |
5532 | UCHAR ucClockIndication; //Indicate which clock source needs SS |
5078 | UCHAR ucSpreadSpectrumMode; //Bit0=0 Down Spread,=1 Center Spread, bit1=0: internal SS bit1=1: external SS |
5533 | UCHAR ucSpreadSpectrumMode; //Bit0=0 Down Spread,=1 Center Spread, bit1=0: internal SS bit1=1: external SS |
5079 | UCHAR ucReserved[2]; |
5534 | UCHAR ucReserved[2]; |
5080 | }ATOM_ASIC_SS_ASSIGNMENT_V3; |
5535 | }ATOM_ASIC_SS_ASSIGNMENT_V3; |
Line -... | Line 5536... | ||
- | 5536 | ||
- | 5537 | //ATOM_ASIC_SS_ASSIGNMENT_V3.ucSpreadSpectrumMode |
|
- | 5538 | #define SS_MODE_V3_CENTRE_SPREAD_MASK 0x01 |
|
- | 5539 | #define SS_MODE_V3_EXTERNAL_SS_MASK 0x02 |
|
- | 5540 | #define SS_MODE_V3_PERCENTAGE_DIV_BY_1000_MASK 0x10 |
|
5081 | 5541 | ||
5082 | typedef struct _ATOM_ASIC_INTERNAL_SS_INFO_V3 |
5542 | typedef struct _ATOM_ASIC_INTERNAL_SS_INFO_V3 |
5083 | { |
5543 | { |
5084 | ATOM_COMMON_TABLE_HEADER sHeader; |
5544 | ATOM_COMMON_TABLE_HEADER sHeader; |
5085 | ATOM_ASIC_SS_ASSIGNMENT_V3 asSpreadSpectrum[1]; //this is pointer only. |
5545 | ATOM_ASIC_SS_ASSIGNMENT_V3 asSpreadSpectrum[1]; //this is pointer only. |
Line 5445... | Line 5905... | ||
5445 | #define ATOM_S7_DOS_MODE_VESAb0 0x01 |
5905 | #define ATOM_S7_DOS_MODE_VESAb0 0x01 |
5446 | #define ATOM_S7_DOS_MODE_EXTb0 0x02 |
5906 | #define ATOM_S7_DOS_MODE_EXTb0 0x02 |
5447 | #define ATOM_S7_DOS_MODE_PIXEL_DEPTHb0 0x0C |
5907 | #define ATOM_S7_DOS_MODE_PIXEL_DEPTHb0 0x0C |
5448 | #define ATOM_S7_DOS_MODE_PIXEL_FORMATb0 0xF0 |
5908 | #define ATOM_S7_DOS_MODE_PIXEL_FORMATb0 0xF0 |
5449 | #define ATOM_S7_DOS_8BIT_DAC_ENb1 0x01 |
5909 | #define ATOM_S7_DOS_8BIT_DAC_ENb1 0x01 |
- | 5910 | #define ATOM_S7_ASIC_INIT_COMPLETEb1 0x02 |
|
- | 5911 | #define ATOM_S7_ASIC_INIT_COMPLETE_MASK 0x00000200 |
|
5450 | #define ATOM_S7_DOS_MODE_NUMBERw1 0x0FFFF |
5912 | #define ATOM_S7_DOS_MODE_NUMBERw1 0x0FFFF |
Line 5451... | Line 5913... | ||
5451 | 5913 | ||
Line 5452... | Line 5914... | ||
5452 | #define ATOM_S7_DOS_8BIT_DAC_EN_SHIFT 8 |
5914 | #define ATOM_S7_DOS_8BIT_DAC_EN_SHIFT 8 |
Line 5717... | Line 6179... | ||
5717 | #define INDIRECT_IO_PLL 1 |
6179 | #define INDIRECT_IO_PLL 1 |
5718 | #define INDIRECT_IO_MC 2 |
6180 | #define INDIRECT_IO_MC 2 |
5719 | #define INDIRECT_IO_PCIE 3 |
6181 | #define INDIRECT_IO_PCIE 3 |
5720 | #define INDIRECT_IO_PCIEP 4 |
6182 | #define INDIRECT_IO_PCIEP 4 |
5721 | #define INDIRECT_IO_NBMISC 5 |
6183 | #define INDIRECT_IO_NBMISC 5 |
- | 6184 | #define INDIRECT_IO_SMU 5 |
|
Line 5722... | Line 6185... | ||
5722 | 6185 | ||
5723 | #define INDIRECT_IO_PLL_READ INDIRECT_IO_PLL | INDIRECT_READ |
6186 | #define INDIRECT_IO_PLL_READ INDIRECT_IO_PLL | INDIRECT_READ |
5724 | #define INDIRECT_IO_PLL_WRITE INDIRECT_IO_PLL | INDIRECT_WRITE |
6187 | #define INDIRECT_IO_PLL_WRITE INDIRECT_IO_PLL | INDIRECT_WRITE |
5725 | #define INDIRECT_IO_MC_READ INDIRECT_IO_MC | INDIRECT_READ |
6188 | #define INDIRECT_IO_MC_READ INDIRECT_IO_MC | INDIRECT_READ |
Line 5728... | Line 6191... | ||
5728 | #define INDIRECT_IO_PCIE_WRITE INDIRECT_IO_PCIE | INDIRECT_WRITE |
6191 | #define INDIRECT_IO_PCIE_WRITE INDIRECT_IO_PCIE | INDIRECT_WRITE |
5729 | #define INDIRECT_IO_PCIEP_READ INDIRECT_IO_PCIEP | INDIRECT_READ |
6192 | #define INDIRECT_IO_PCIEP_READ INDIRECT_IO_PCIEP | INDIRECT_READ |
5730 | #define INDIRECT_IO_PCIEP_WRITE INDIRECT_IO_PCIEP | INDIRECT_WRITE |
6193 | #define INDIRECT_IO_PCIEP_WRITE INDIRECT_IO_PCIEP | INDIRECT_WRITE |
5731 | #define INDIRECT_IO_NBMISC_READ INDIRECT_IO_NBMISC | INDIRECT_READ |
6194 | #define INDIRECT_IO_NBMISC_READ INDIRECT_IO_NBMISC | INDIRECT_READ |
5732 | #define INDIRECT_IO_NBMISC_WRITE INDIRECT_IO_NBMISC | INDIRECT_WRITE |
6195 | #define INDIRECT_IO_NBMISC_WRITE INDIRECT_IO_NBMISC | INDIRECT_WRITE |
- | 6196 | #define INDIRECT_IO_SMU_READ INDIRECT_IO_SMU | INDIRECT_READ |
|
- | 6197 | #define INDIRECT_IO_SMU_WRITE INDIRECT_IO_SMU | INDIRECT_WRITE |
|
Line 5733... | Line 6198... | ||
5733 | 6198 | ||
5734 | typedef struct _ATOM_OEM_INFO |
6199 | typedef struct _ATOM_OEM_INFO |
5735 | { |
6200 | { |
5736 | ATOM_COMMON_TABLE_HEADER sHeader; |
6201 | ATOM_COMMON_TABLE_HEADER sHeader; |
Line 5873... | Line 6338... | ||
5873 | #define _64Mx8 0x41 |
6338 | #define _64Mx8 0x41 |
5874 | #define _64Mx16 0x42 |
6339 | #define _64Mx16 0x42 |
5875 | #define _64Mx32 0x43 |
6340 | #define _64Mx32 0x43 |
5876 | #define _128Mx8 0x51 |
6341 | #define _128Mx8 0x51 |
5877 | #define _128Mx16 0x52 |
6342 | #define _128Mx16 0x52 |
- | 6343 | #define _128Mx32 0x53 |
|
5878 | #define _256Mx8 0x61 |
6344 | #define _256Mx8 0x61 |
5879 | #define _256Mx16 0x62 |
6345 | #define _256Mx16 0x62 |
- | 6346 | #define _512Mx8 0x71 |
|
Line 5880... | Line 6347... | ||
5880 | 6347 | ||
5881 | #define SAMSUNG 0x1 |
6348 | #define SAMSUNG 0x1 |
5882 | #define INFINEON 0x2 |
6349 | #define INFINEON 0x2 |
5883 | #define ELPIDA 0x3 |
6350 | #define ELPIDA 0x3 |
Line 5891... | Line 6358... | ||
5891 | 6358 | ||
5892 | #define QIMONDA INFINEON |
6359 | #define QIMONDA INFINEON |
5893 | #define PROMOS MOSEL |
6360 | #define PROMOS MOSEL |
5894 | #define KRETON INFINEON |
6361 | #define KRETON INFINEON |
- | 6362 | #define ELIXIR NANYA |
|
- | 6363 | #define MEZZA ELPIDA |
|
Line 5895... | Line 6364... | ||
5895 | #define ELIXIR NANYA |
6364 | |
Line 5896... | Line 6365... | ||
5896 | 6365 | ||
5897 | /////////////Support for GDDR5 MC uCode to reside in upper 64K of ROM///////////// |
6366 | /////////////Support for GDDR5 MC uCode to reside in upper 64K of ROM///////////// |
Line 6619... | Line 7088... | ||
6619 | UCHAR ucDCERevision; |
7088 | UCHAR ucDCERevision; |
6620 | UCHAR ucMaxDispEngineNum; |
7089 | UCHAR ucMaxDispEngineNum; |
6621 | UCHAR ucMaxActiveDispEngineNum; |
7090 | UCHAR ucMaxActiveDispEngineNum; |
6622 | UCHAR ucMaxPPLLNum; |
7091 | UCHAR ucMaxPPLLNum; |
6623 | UCHAR ucCoreRefClkSource; // value of CORE_REF_CLK_SOURCE |
7092 | UCHAR ucCoreRefClkSource; // value of CORE_REF_CLK_SOURCE |
- | 7093 | UCHAR ucDispCaps; |
|
6624 | UCHAR ucReserved[3]; |
7094 | UCHAR ucReserved[2]; |
6625 | ASIC_TRANSMITTER_INFO_V2 asTransmitterInfo[1]; // for alligment only |
7095 | ASIC_TRANSMITTER_INFO_V2 asTransmitterInfo[1]; // for alligment only |
6626 | }ATOM_DISP_OUT_INFO_V3; |
7096 | }ATOM_DISP_OUT_INFO_V3; |
Line -... | Line 7097... | ||
- | 7097 | ||
- | 7098 | //ucDispCaps |
|
- | 7099 | #define DISPLAY_CAPS__DP_PCLK_FROM_PPLL 0x01 |
|
- | 7100 | #define DISPLAY_CAPS__FORCE_DISPDEV_CONNECTED 0x02 |
|
6627 | 7101 | ||
6628 | typedef enum CORE_REF_CLK_SOURCE{ |
7102 | typedef enum CORE_REF_CLK_SOURCE{ |
6629 | CLOCK_SRC_XTALIN=0, |
7103 | CLOCK_SRC_XTALIN=0, |
6630 | CLOCK_SRC_XO_IN=1, |
7104 | CLOCK_SRC_XO_IN=1, |
6631 | CLOCK_SRC_XO_IN2=2, |
7105 | CLOCK_SRC_XO_IN2=2, |
Line 6827... | Line 7301... | ||
6827 | USHORT usPhyAnalogSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with None-DP mode Analog Setting for each link clock range |
7301 | USHORT usPhyAnalogSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with None-DP mode Analog Setting for each link clock range |
6828 | USHORT usPhyPllRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with Phy Pll register Info |
7302 | USHORT usPhyPllRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with Phy Pll register Info |
6829 | USHORT usPhyPllSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with Phy Pll Settings |
7303 | USHORT usPhyPllSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with Phy Pll Settings |
6830 | }DIG_TRANSMITTER_INFO_HEADER_V3_1; |
7304 | }DIG_TRANSMITTER_INFO_HEADER_V3_1; |
Line -... | Line 7305... | ||
- | 7305 | ||
- | 7306 | typedef struct _DIG_TRANSMITTER_INFO_HEADER_V3_2{ |
|
- | 7307 | ATOM_COMMON_TABLE_HEADER sHeader; |
|
- | 7308 | USHORT usDPVsPreEmphSettingOffset; // offset of PHY_ANALOG_SETTING_INFO * with DP Voltage Swing and Pre-Emphasis for each Link clock |
|
- | 7309 | USHORT usPhyAnalogRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with None-DP mode Analog Setting's register Info |
|
- | 7310 | USHORT usPhyAnalogSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with None-DP mode Analog Setting for each link clock range |
|
- | 7311 | USHORT usPhyPllRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with Phy Pll register Info |
|
- | 7312 | USHORT usPhyPllSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with Phy Pll Settings |
|
- | 7313 | USHORT usDPSSRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with Phy SS Pll register Info |
|
- | 7314 | USHORT usDPSSSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with Phy SS Pll Settings |
|
- | 7315 | }DIG_TRANSMITTER_INFO_HEADER_V3_2; |
|
6831 | 7316 | ||
6832 | typedef struct _CLOCK_CONDITION_REGESTER_INFO{ |
7317 | typedef struct _CLOCK_CONDITION_REGESTER_INFO{ |
6833 | USHORT usRegisterIndex; |
7318 | USHORT usRegisterIndex; |
6834 | UCHAR ucStartBit; |
7319 | UCHAR ucStartBit; |
6835 | UCHAR ucEndBit; |
7320 | UCHAR ucEndBit; |
Line 6850... | Line 7335... | ||
6850 | typedef struct _PHY_CONDITION_REG_VAL{ |
7335 | typedef struct _PHY_CONDITION_REG_VAL{ |
6851 | ULONG ulCondition; |
7336 | ULONG ulCondition; |
6852 | ULONG ulRegVal; |
7337 | ULONG ulRegVal; |
6853 | }PHY_CONDITION_REG_VAL; |
7338 | }PHY_CONDITION_REG_VAL; |
Line -... | Line 7339... | ||
- | 7339 | ||
- | 7340 | typedef struct _PHY_CONDITION_REG_VAL_V2{ |
|
- | 7341 | ULONG ulCondition; |
|
- | 7342 | UCHAR ucCondition2; |
|
- | 7343 | ULONG ulRegVal; |
|
- | 7344 | }PHY_CONDITION_REG_VAL_V2; |
|
6854 | 7345 | ||
6855 | typedef struct _PHY_CONDITION_REG_INFO{ |
7346 | typedef struct _PHY_CONDITION_REG_INFO{ |
6856 | USHORT usRegIndex; |
7347 | USHORT usRegIndex; |
6857 | USHORT usSize; |
7348 | USHORT usSize; |
6858 | PHY_CONDITION_REG_VAL asRegVal[1]; |
7349 | PHY_CONDITION_REG_VAL asRegVal[1]; |
Line -... | Line 7350... | ||
- | 7350 | }PHY_CONDITION_REG_INFO; |
|
- | 7351 | ||
- | 7352 | typedef struct _PHY_CONDITION_REG_INFO_V2{ |
|
- | 7353 | USHORT usRegIndex; |
|
- | 7354 | USHORT usSize; |
|
- | 7355 | PHY_CONDITION_REG_VAL_V2 asRegVal[1]; |
|
6859 | }PHY_CONDITION_REG_INFO; |
7356 | }PHY_CONDITION_REG_INFO_V2; |
6860 | 7357 | ||
6861 | typedef struct _PHY_ANALOG_SETTING_INFO{ |
7358 | typedef struct _PHY_ANALOG_SETTING_INFO{ |
6862 | UCHAR ucEncodeMode; |
7359 | UCHAR ucEncodeMode; |
6863 | UCHAR ucPhySel; |
7360 | UCHAR ucPhySel; |
6864 | USHORT usSize; |
7361 | USHORT usSize; |
Line -... | Line 7362... | ||
- | 7362 | PHY_CONDITION_REG_INFO asAnalogSetting[1]; |
|
- | 7363 | }PHY_ANALOG_SETTING_INFO; |
|
- | 7364 | ||
- | 7365 | typedef struct _PHY_ANALOG_SETTING_INFO_V2{ |
|
- | 7366 | UCHAR ucEncodeMode; |
|
- | 7367 | UCHAR ucPhySel; |
|
- | 7368 | USHORT usSize; |
|
- | 7369 | PHY_CONDITION_REG_INFO_V2 asAnalogSetting[1]; |
|
- | 7370 | }PHY_ANALOG_SETTING_INFO_V2; |
|
- | 7371 | ||
- | 7372 | typedef struct _GFX_HAVESTING_PARAMETERS { |
|
- | 7373 | UCHAR ucGfxBlkId; //GFX blk id to be harvested, like CU, RB or PRIM |
|
- | 7374 | UCHAR ucReserved; //reserved |
|
- | 7375 | UCHAR ucActiveUnitNumPerSH; //requested active CU/RB/PRIM number per shader array |
|
- | 7376 | UCHAR ucMaxUnitNumPerSH; //max CU/RB/PRIM number per shader array |
|
- | 7377 | } GFX_HAVESTING_PARAMETERS; |
|
- | 7378 | ||
- | 7379 | //ucGfxBlkId |
|
- | 7380 | #define GFX_HARVESTING_CU_ID 0 |
|
6865 | PHY_CONDITION_REG_INFO asAnalogSetting[1]; |
7381 | #define GFX_HARVESTING_RB_ID 1 |
6866 | }PHY_ANALOG_SETTING_INFO; |
7382 | #define GFX_HARVESTING_PRIM_ID 2 |
6867 | 7383 | ||
Line 6868... | Line 7384... | ||
6868 | /****************************************************************************/ |
7384 | /****************************************************************************/ |
6869 | //Portion VI: Definitinos for vbios MC scratch registers that driver used |
7385 | //Portion VI: Definitinos for vbios MC scratch registers that driver used |
6870 | /****************************************************************************/ |
7386 | /****************************************************************************/ |
6871 | 7387 | ||
6872 | #define MC_MISC0__MEMORY_TYPE_MASK 0xF0000000 |
7388 | #define MC_MISC0__MEMORY_TYPE_MASK 0xF0000000 |
6873 | #define MC_MISC0__MEMORY_TYPE__GDDR1 0x10000000 |
7389 | #define MC_MISC0__MEMORY_TYPE__GDDR1 0x10000000 |
- | 7390 | #define MC_MISC0__MEMORY_TYPE__DDR2 0x20000000 |
|
6874 | #define MC_MISC0__MEMORY_TYPE__DDR2 0x20000000 |
7391 | #define MC_MISC0__MEMORY_TYPE__GDDR3 0x30000000 |
Line -... | Line 7392... | ||
- | 7392 | #define MC_MISC0__MEMORY_TYPE__GDDR4 0x40000000 |
|
- | 7393 | #define MC_MISC0__MEMORY_TYPE__GDDR5 0x50000000 |
|
- | 7394 | #define MC_MISC0__MEMORY_TYPE__HBM 0x60000000 |
|
- | 7395 | #define MC_MISC0__MEMORY_TYPE__DDR3 0xB0000000 |
|
- | 7396 | ||
- | 7397 | #define ATOM_MEM_TYPE_DDR_STRING "DDR" |
|
- | 7398 | #define ATOM_MEM_TYPE_DDR2_STRING "DDR2" |
|
- | 7399 | #define ATOM_MEM_TYPE_GDDR3_STRING "GDDR3" |
|
6875 | #define MC_MISC0__MEMORY_TYPE__GDDR3 0x30000000 |
7400 | #define ATOM_MEM_TYPE_GDDR4_STRING "GDDR4" |
6876 | #define MC_MISC0__MEMORY_TYPE__GDDR4 0x40000000 |
7401 | #define ATOM_MEM_TYPE_GDDR5_STRING "GDDR5" |
6877 | #define MC_MISC0__MEMORY_TYPE__GDDR5 0x50000000 |
7402 | #define ATOM_MEM_TYPE_HBM_STRING "HBM" |
Line 6878... | Line 7403... | ||
6878 | #define MC_MISC0__MEMORY_TYPE__DDR3 0xB0000000 |
7403 | #define ATOM_MEM_TYPE_DDR3_STRING "DDR3" |
Line 7237... | Line 7762... | ||
7237 | UCHAR ucSizeOfPowerModeEntry; |
7762 | UCHAR ucSizeOfPowerModeEntry; |
7238 | UCHAR ucNumOfPowerModeEntries; |
7763 | UCHAR ucNumOfPowerModeEntries; |
7239 | ATOM_POWERMODE_INFO_V3 asPowerPlayInfo[ATOM_MAX_NUMBEROF_POWER_BLOCK]; |
7764 | ATOM_POWERMODE_INFO_V3 asPowerPlayInfo[ATOM_MAX_NUMBEROF_POWER_BLOCK]; |
7240 | }ATOM_POWERPLAY_INFO_V3; |
7765 | }ATOM_POWERPLAY_INFO_V3; |
Line 7241... | Line -... | ||
7241 | - | ||
7242 | /* New PPlib */ |
- | |
7243 | /**************************************************************************/ |
- | |
7244 | typedef struct _ATOM_PPLIB_THERMALCONTROLLER |
- | |
7245 | - | ||
7246 | { |
- | |
7247 | UCHAR ucType; // one of ATOM_PP_THERMALCONTROLLER_* |
- | |
7248 | UCHAR ucI2cLine; // as interpreted by DAL I2C |
- | |
7249 | UCHAR ucI2cAddress; |
- | |
7250 | UCHAR ucFanParameters; // Fan Control Parameters. |
- | |
7251 | UCHAR ucFanMinRPM; // Fan Minimum RPM (hundreds) -- for display purposes only. |
- | |
7252 | UCHAR ucFanMaxRPM; // Fan Maximum RPM (hundreds) -- for display purposes only. |
- | |
7253 | UCHAR ucReserved; // ---- |
- | |
7254 | UCHAR ucFlags; // to be defined |
- | |
7255 | } ATOM_PPLIB_THERMALCONTROLLER; |
- | |
7256 | - | ||
7257 | #define ATOM_PP_FANPARAMETERS_TACHOMETER_PULSES_PER_REVOLUTION_MASK 0x0f |
- | |
7258 | #define ATOM_PP_FANPARAMETERS_NOFAN 0x80 // No fan is connected to this controller. |
- | |
7259 | - | ||
7260 | #define ATOM_PP_THERMALCONTROLLER_NONE 0 |
- | |
7261 | #define ATOM_PP_THERMALCONTROLLER_LM63 1 // Not used by PPLib |
- | |
7262 | #define ATOM_PP_THERMALCONTROLLER_ADM1032 2 // Not used by PPLib |
- | |
7263 | #define ATOM_PP_THERMALCONTROLLER_ADM1030 3 // Not used by PPLib |
- | |
7264 | #define ATOM_PP_THERMALCONTROLLER_MUA6649 4 // Not used by PPLib |
- | |
7265 | #define ATOM_PP_THERMALCONTROLLER_LM64 5 |
- | |
7266 | #define ATOM_PP_THERMALCONTROLLER_F75375 6 // Not used by PPLib |
- | |
7267 | #define ATOM_PP_THERMALCONTROLLER_RV6xx 7 |
- | |
7268 | #define ATOM_PP_THERMALCONTROLLER_RV770 8 |
- | |
7269 | #define ATOM_PP_THERMALCONTROLLER_ADT7473 9 |
- | |
7270 | #define ATOM_PP_THERMALCONTROLLER_EXTERNAL_GPIO 11 |
- | |
7271 | #define ATOM_PP_THERMALCONTROLLER_EVERGREEN 12 |
- | |
7272 | #define ATOM_PP_THERMALCONTROLLER_EMC2103 13 /* 0x0D */ // Only fan control will be implemented, do NOT show this in PPGen. |
- | |
7273 | #define ATOM_PP_THERMALCONTROLLER_SUMO 14 /* 0x0E */ // Sumo type, used internally |
- | |
7274 | #define ATOM_PP_THERMALCONTROLLER_NISLANDS 15 |
- | |
7275 | #define ATOM_PP_THERMALCONTROLLER_SISLANDS 16 |
- | |
7276 | #define ATOM_PP_THERMALCONTROLLER_LM96163 17 |
- | |
7277 | - | ||
7278 | // Thermal controller 'combo type' to use an external controller for Fan control and an internal controller for thermal. |
- | |
7279 | // We probably should reserve the bit 0x80 for this use. |
- | |
7280 | // 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). |
- | |
7281 | // The driver can pick the correct internal controller based on the ASIC. |
- | |
7282 | - | ||
7283 | #define ATOM_PP_THERMALCONTROLLER_ADT7473_WITH_INTERNAL 0x89 // ADT7473 Fan Control + Internal Thermal Controller |
- | |
7284 | #define ATOM_PP_THERMALCONTROLLER_EMC2103_WITH_INTERNAL 0x8D // EMC2103 Fan Control + Internal Thermal Controller |
- | |
7285 | - | ||
7286 | typedef struct _ATOM_PPLIB_STATE |
- | |
7287 | { |
- | |
7288 | UCHAR ucNonClockStateIndex; |
- | |
7289 | UCHAR ucClockStateIndices[1]; // variable-sized |
- | |
7290 | } ATOM_PPLIB_STATE; |
- | |
7291 | - | ||
7292 | - | ||
7293 | typedef struct _ATOM_PPLIB_FANTABLE |
- | |
7294 | { |
- | |
7295 | UCHAR ucFanTableFormat; // Change this if the table format changes or version changes so that the other fields are not the same. |
- | |
7296 | UCHAR ucTHyst; // Temperature hysteresis. Integer. |
- | |
7297 | USHORT usTMin; // The temperature, in 0.01 centigrades, below which we just run at a minimal PWM. |
- | |
7298 | USHORT usTMed; // The middle temperature where we change slopes. |
- | |
7299 | USHORT usTHigh; // The high point above TMed for adjusting the second slope. |
- | |
7300 | USHORT usPWMMin; // The minimum PWM value in percent (0.01% increments). |
- | |
7301 | USHORT usPWMMed; // The PWM value (in percent) at TMed. |
- | |
7302 | USHORT usPWMHigh; // The PWM value at THigh. |
- | |
7303 | } ATOM_PPLIB_FANTABLE; |
- | |
7304 | - | ||
7305 | typedef struct _ATOM_PPLIB_FANTABLE2 |
- | |
7306 | { |
- | |
7307 | ATOM_PPLIB_FANTABLE basicTable; |
- | |
7308 | USHORT usTMax; // The max temperature |
- | |
7309 | } ATOM_PPLIB_FANTABLE2; |
- | |
7310 | - | ||
7311 | typedef struct _ATOM_PPLIB_EXTENDEDHEADER |
- | |
7312 | { |
- | |
7313 | USHORT usSize; |
- | |
7314 | ULONG ulMaxEngineClock; // For Overdrive. |
- | |
7315 | ULONG ulMaxMemoryClock; // For Overdrive. |
- | |
7316 | // Add extra system parameters here, always adjust size to include all fields. |
- | |
7317 | USHORT usVCETableOffset; //points to ATOM_PPLIB_VCE_Table |
- | |
7318 | USHORT usUVDTableOffset; //points to ATOM_PPLIB_UVD_Table |
- | |
7319 | } ATOM_PPLIB_EXTENDEDHEADER; |
- | |
7320 | - | ||
7321 | //// ATOM_PPLIB_POWERPLAYTABLE::ulPlatformCaps |
- | |
7322 | #define ATOM_PP_PLATFORM_CAP_BACKBIAS 1 |
- | |
7323 | #define ATOM_PP_PLATFORM_CAP_POWERPLAY 2 |
- | |
7324 | #define ATOM_PP_PLATFORM_CAP_SBIOSPOWERSOURCE 4 |
- | |
7325 | #define ATOM_PP_PLATFORM_CAP_ASPM_L0s 8 |
- | |
7326 | #define ATOM_PP_PLATFORM_CAP_ASPM_L1 16 |
- | |
7327 | #define ATOM_PP_PLATFORM_CAP_HARDWAREDC 32 |
- | |
7328 | #define ATOM_PP_PLATFORM_CAP_GEMINIPRIMARY 64 |
- | |
7329 | #define ATOM_PP_PLATFORM_CAP_STEPVDDC 128 |
- | |
7330 | #define ATOM_PP_PLATFORM_CAP_VOLTAGECONTROL 256 |
- | |
7331 | #define ATOM_PP_PLATFORM_CAP_SIDEPORTCONTROL 512 |
- | |
7332 | #define ATOM_PP_PLATFORM_CAP_TURNOFFPLL_ASPML1 1024 |
- | |
7333 | #define ATOM_PP_PLATFORM_CAP_HTLINKCONTROL 2048 |
- | |
7334 | #define ATOM_PP_PLATFORM_CAP_MVDDCONTROL 4096 |
- | |
7335 | #define ATOM_PP_PLATFORM_CAP_GOTO_BOOT_ON_ALERT 0x2000 // Go to boot state on alerts, e.g. on an AC->DC transition. |
- | |
7336 | #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). |
- | |
7337 | #define ATOM_PP_PLATFORM_CAP_VDDCI_CONTROL 0x8000 // Does the driver control VDDCI independently from VDDC. |
- | |
7338 | #define ATOM_PP_PLATFORM_CAP_REGULATOR_HOT 0x00010000 // Enable the 'regulator hot' feature. |
- | |
7339 | #define ATOM_PP_PLATFORM_CAP_BACO 0x00020000 // Does the driver supports BACO state. |
- | |
7340 | - | ||
7341 | - | ||
7342 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE |
- | |
7343 | { |
- | |
7344 | ATOM_COMMON_TABLE_HEADER sHeader; |
- | |
7345 | - | ||
7346 | UCHAR ucDataRevision; |
- | |
7347 | - | ||
7348 | UCHAR ucNumStates; |
- | |
7349 | UCHAR ucStateEntrySize; |
- | |
7350 | UCHAR ucClockInfoSize; |
- | |
7351 | UCHAR ucNonClockSize; |
- | |
7352 | - | ||
7353 | // offset from start of this table to array of ucNumStates ATOM_PPLIB_STATE structures |
- | |
7354 | USHORT usStateArrayOffset; |
- | |
7355 | - | ||
7356 | // offset from start of this table to array of ASIC-specific structures, |
- | |
7357 | // currently ATOM_PPLIB_CLOCK_INFO. |
- | |
7358 | USHORT usClockInfoArrayOffset; |
- | |
7359 | - | ||
7360 | // offset from start of this table to array of ATOM_PPLIB_NONCLOCK_INFO |
- | |
7361 | USHORT usNonClockInfoArrayOffset; |
- | |
7362 | - | ||
7363 | USHORT usBackbiasTime; // in microseconds |
- | |
7364 | USHORT usVoltageTime; // in microseconds |
- | |
7365 | USHORT usTableSize; //the size of this structure, or the extended structure |
- | |
7366 | - | ||
7367 | ULONG ulPlatformCaps; // See ATOM_PPLIB_CAPS_* |
- | |
7368 | - | ||
7369 | ATOM_PPLIB_THERMALCONTROLLER sThermalController; |
- | |
7370 | - | ||
7371 | USHORT usBootClockInfoOffset; |
- | |
7372 | USHORT usBootNonClockInfoOffset; |
- | |
7373 | - | ||
7374 | } ATOM_PPLIB_POWERPLAYTABLE; |
- | |
7375 | - | ||
7376 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE2 |
- | |
7377 | { |
- | |
7378 | ATOM_PPLIB_POWERPLAYTABLE basicTable; |
- | |
7379 | UCHAR ucNumCustomThermalPolicy; |
- | |
7380 | USHORT usCustomThermalPolicyArrayOffset; |
- | |
7381 | }ATOM_PPLIB_POWERPLAYTABLE2, *LPATOM_PPLIB_POWERPLAYTABLE2; |
- | |
7382 | - | ||
7383 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE3 |
- | |
7384 | { |
- | |
7385 | ATOM_PPLIB_POWERPLAYTABLE2 basicTable2; |
- | |
7386 | USHORT usFormatID; // To be used ONLY by PPGen. |
- | |
7387 | USHORT usFanTableOffset; |
- | |
7388 | USHORT usExtendendedHeaderOffset; |
- | |
7389 | } ATOM_PPLIB_POWERPLAYTABLE3, *LPATOM_PPLIB_POWERPLAYTABLE3; |
- | |
7390 | - | ||
7391 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE4 |
- | |
7392 | { |
- | |
7393 | ATOM_PPLIB_POWERPLAYTABLE3 basicTable3; |
- | |
7394 | ULONG ulGoldenPPID; // PPGen use only |
- | |
7395 | ULONG ulGoldenRevision; // PPGen use only |
- | |
7396 | USHORT usVddcDependencyOnSCLKOffset; |
- | |
7397 | USHORT usVddciDependencyOnMCLKOffset; |
- | |
7398 | USHORT usVddcDependencyOnMCLKOffset; |
- | |
7399 | USHORT usMaxClockVoltageOnDCOffset; |
- | |
7400 | USHORT usVddcPhaseShedLimitsTableOffset; // Points to ATOM_PPLIB_PhaseSheddingLimits_Table |
- | |
7401 | USHORT usReserved; |
- | |
7402 | } ATOM_PPLIB_POWERPLAYTABLE4, *LPATOM_PPLIB_POWERPLAYTABLE4; |
- | |
7403 | - | ||
7404 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE5 |
- | |
7405 | { |
- | |
7406 | ATOM_PPLIB_POWERPLAYTABLE4 basicTable4; |
- | |
7407 | ULONG ulTDPLimit; |
- | |
7408 | ULONG ulNearTDPLimit; |
- | |
7409 | ULONG ulSQRampingThreshold; |
- | |
7410 | USHORT usCACLeakageTableOffset; // Points to ATOM_PPLIB_CAC_Leakage_Table |
- | |
7411 | ULONG ulCACLeakage; // The iLeakage for driver calculated CAC leakage table |
- | |
7412 | USHORT usTDPODLimit; |
- | |
7413 | USHORT usLoadLineSlope; // in milliOhms * 100 |
- | |
7414 | } ATOM_PPLIB_POWERPLAYTABLE5, *LPATOM_PPLIB_POWERPLAYTABLE5; |
- | |
7415 | - | ||
7416 | //// ATOM_PPLIB_NONCLOCK_INFO::usClassification |
- | |
7417 | #define ATOM_PPLIB_CLASSIFICATION_UI_MASK 0x0007 |
- | |
7418 | #define ATOM_PPLIB_CLASSIFICATION_UI_SHIFT 0 |
- | |
7419 | #define ATOM_PPLIB_CLASSIFICATION_UI_NONE 0 |
- | |
7420 | #define ATOM_PPLIB_CLASSIFICATION_UI_BATTERY 1 |
- | |
7421 | #define ATOM_PPLIB_CLASSIFICATION_UI_BALANCED 3 |
- | |
7422 | #define ATOM_PPLIB_CLASSIFICATION_UI_PERFORMANCE 5 |
- | |
7423 | // 2, 4, 6, 7 are reserved |
- | |
7424 | - | ||
7425 | #define ATOM_PPLIB_CLASSIFICATION_BOOT 0x0008 |
- | |
7426 | #define ATOM_PPLIB_CLASSIFICATION_THERMAL 0x0010 |
- | |
7427 | #define ATOM_PPLIB_CLASSIFICATION_LIMITEDPOWERSOURCE 0x0020 |
- | |
7428 | #define ATOM_PPLIB_CLASSIFICATION_REST 0x0040 |
- | |
7429 | #define ATOM_PPLIB_CLASSIFICATION_FORCED 0x0080 |
- | |
7430 | #define ATOM_PPLIB_CLASSIFICATION_3DPERFORMANCE 0x0100 |
- | |
7431 | #define ATOM_PPLIB_CLASSIFICATION_OVERDRIVETEMPLATE 0x0200 |
- | |
7432 | #define ATOM_PPLIB_CLASSIFICATION_UVDSTATE 0x0400 |
- | |
7433 | #define ATOM_PPLIB_CLASSIFICATION_3DLOW 0x0800 |
- | |
7434 | #define ATOM_PPLIB_CLASSIFICATION_ACPI 0x1000 |
- | |
7435 | #define ATOM_PPLIB_CLASSIFICATION_HD2STATE 0x2000 |
- | |
7436 | #define ATOM_PPLIB_CLASSIFICATION_HDSTATE 0x4000 |
- | |
7437 | #define ATOM_PPLIB_CLASSIFICATION_SDSTATE 0x8000 |
- | |
7438 | - | ||
7439 | //// ATOM_PPLIB_NONCLOCK_INFO::usClassification2 |
- | |
7440 | #define ATOM_PPLIB_CLASSIFICATION2_LIMITEDPOWERSOURCE_2 0x0001 |
- | |
7441 | #define ATOM_PPLIB_CLASSIFICATION2_ULV 0x0002 |
- | |
7442 | #define ATOM_PPLIB_CLASSIFICATION2_MVC 0x0004 //Multi-View Codec (BD-3D) |
- | |
7443 | - | ||
7444 | //// ATOM_PPLIB_NONCLOCK_INFO::ulCapsAndSettings |
- | |
7445 | #define ATOM_PPLIB_SINGLE_DISPLAY_ONLY 0x00000001 |
- | |
7446 | #define ATOM_PPLIB_SUPPORTS_VIDEO_PLAYBACK 0x00000002 |
- | |
7447 | - | ||
7448 | // 0 is 2.5Gb/s, 1 is 5Gb/s |
- | |
7449 | #define ATOM_PPLIB_PCIE_LINK_SPEED_MASK 0x00000004 |
- | |
7450 | #define ATOM_PPLIB_PCIE_LINK_SPEED_SHIFT 2 |
- | |
7451 | - | ||
7452 | // lanes - 1: 1, 2, 4, 8, 12, 16 permitted by PCIE spec |
- | |
7453 | #define ATOM_PPLIB_PCIE_LINK_WIDTH_MASK 0x000000F8 |
- | |
7454 | #define ATOM_PPLIB_PCIE_LINK_WIDTH_SHIFT 3 |
- | |
7455 | - | ||
7456 | // lookup into reduced refresh-rate table |
- | |
7457 | #define ATOM_PPLIB_LIMITED_REFRESHRATE_VALUE_MASK 0x00000F00 |
- | |
7458 | #define ATOM_PPLIB_LIMITED_REFRESHRATE_VALUE_SHIFT 8 |
- | |
7459 | - | ||
7460 | #define ATOM_PPLIB_LIMITED_REFRESHRATE_UNLIMITED 0 |
- | |
7461 | #define ATOM_PPLIB_LIMITED_REFRESHRATE_50HZ 1 |
- | |
7462 | // 2-15 TBD as needed. |
- | |
7463 | - | ||
7464 | #define ATOM_PPLIB_SOFTWARE_DISABLE_LOADBALANCING 0x00001000 |
- | |
7465 | #define ATOM_PPLIB_SOFTWARE_ENABLE_SLEEP_FOR_TIMESTAMPS 0x00002000 |
- | |
7466 | - | ||
7467 | #define ATOM_PPLIB_DISALLOW_ON_DC 0x00004000 |
- | |
7468 | - | ||
7469 | #define ATOM_PPLIB_ENABLE_VARIBRIGHT 0x00008000 |
- | |
7470 | - | ||
7471 | //memory related flags |
- | |
7472 | #define ATOM_PPLIB_SWSTATE_MEMORY_DLL_OFF 0x000010000 |
- | |
7473 | - | ||
7474 | //M3 Arb //2bits, current 3 sets of parameters in total |
- | |
7475 | #define ATOM_PPLIB_M3ARB_MASK 0x00060000 |
- | |
7476 | #define ATOM_PPLIB_M3ARB_SHIFT 17 |
- | |
7477 | - | ||
7478 | #define ATOM_PPLIB_ENABLE_DRR 0x00080000 |
- | |
7479 | - | ||
7480 | // remaining 16 bits are reserved |
- | |
7481 | typedef struct _ATOM_PPLIB_THERMAL_STATE |
- | |
7482 | { |
- | |
7483 | UCHAR ucMinTemperature; |
- | |
7484 | UCHAR ucMaxTemperature; |
- | |
7485 | UCHAR ucThermalAction; |
- | |
7486 | }ATOM_PPLIB_THERMAL_STATE, *LPATOM_PPLIB_THERMAL_STATE; |
- | |
7487 | - | ||
7488 | // Contained in an array starting at the offset |
- | |
7489 | // in ATOM_PPLIB_POWERPLAYTABLE::usNonClockInfoArrayOffset. |
- | |
7490 | // referenced from ATOM_PPLIB_STATE_INFO::ucNonClockStateIndex |
- | |
7491 | #define ATOM_PPLIB_NONCLOCKINFO_VER1 12 |
- | |
7492 | #define ATOM_PPLIB_NONCLOCKINFO_VER2 24 |
- | |
7493 | typedef struct _ATOM_PPLIB_NONCLOCK_INFO |
- | |
7494 | { |
- | |
7495 | USHORT usClassification; |
- | |
7496 | UCHAR ucMinTemperature; |
- | |
7497 | UCHAR ucMaxTemperature; |
- | |
7498 | ULONG ulCapsAndSettings; |
- | |
7499 | UCHAR ucRequiredPower; |
- | |
7500 | USHORT usClassification2; |
- | |
7501 | ULONG ulVCLK; |
- | |
7502 | ULONG ulDCLK; |
- | |
7503 | UCHAR ucUnused[5]; |
- | |
7504 | } ATOM_PPLIB_NONCLOCK_INFO; |
- | |
7505 | - | ||
7506 | // Contained in an array starting at the offset |
- | |
7507 | // in ATOM_PPLIB_POWERPLAYTABLE::usClockInfoArrayOffset. |
- | |
7508 | // referenced from ATOM_PPLIB_STATE::ucClockStateIndices |
- | |
7509 | typedef struct _ATOM_PPLIB_R600_CLOCK_INFO |
- | |
7510 | { |
- | |
7511 | USHORT usEngineClockLow; |
- | |
7512 | UCHAR ucEngineClockHigh; |
- | |
7513 | - | ||
7514 | USHORT usMemoryClockLow; |
- | |
7515 | UCHAR ucMemoryClockHigh; |
- | |
7516 | - | ||
7517 | USHORT usVDDC; |
- | |
7518 | USHORT usUnused1; |
- | |
7519 | USHORT usUnused2; |
- | |
7520 | - | ||
7521 | ULONG ulFlags; // ATOM_PPLIB_R600_FLAGS_* |
- | |
7522 | - | ||
7523 | } ATOM_PPLIB_R600_CLOCK_INFO; |
- | |
7524 | - | ||
7525 | // ulFlags in ATOM_PPLIB_R600_CLOCK_INFO |
- | |
7526 | #define ATOM_PPLIB_R600_FLAGS_PCIEGEN2 1 |
- | |
7527 | #define ATOM_PPLIB_R600_FLAGS_UVDSAFE 2 |
- | |
7528 | #define ATOM_PPLIB_R600_FLAGS_BACKBIASENABLE 4 |
- | |
7529 | #define ATOM_PPLIB_R600_FLAGS_MEMORY_ODT_OFF 8 |
- | |
7530 | #define ATOM_PPLIB_R600_FLAGS_MEMORY_DLL_OFF 16 |
- | |
7531 | #define ATOM_PPLIB_R600_FLAGS_LOWPOWER 32 // On the RV770 use 'low power' setting (sequencer S0). |
- | |
7532 | - | ||
7533 | typedef struct _ATOM_PPLIB_EVERGREEN_CLOCK_INFO |
- | |
7534 | { |
- | |
7535 | USHORT usEngineClockLow; |
- | |
7536 | UCHAR ucEngineClockHigh; |
- | |
7537 | - | ||
7538 | USHORT usMemoryClockLow; |
- | |
7539 | UCHAR ucMemoryClockHigh; |
- | |
7540 | - | ||
7541 | USHORT usVDDC; |
- | |
7542 | USHORT usVDDCI; |
- | |
7543 | USHORT usUnused; |
- | |
7544 | - | ||
7545 | ULONG ulFlags; // ATOM_PPLIB_R600_FLAGS_* |
- | |
7546 | - | ||
7547 | } ATOM_PPLIB_EVERGREEN_CLOCK_INFO; |
- | |
7548 | - | ||
7549 | typedef struct _ATOM_PPLIB_SI_CLOCK_INFO |
- | |
7550 | { |
- | |
7551 | USHORT usEngineClockLow; |
- | |
7552 | UCHAR ucEngineClockHigh; |
- | |
7553 | - | ||
7554 | USHORT usMemoryClockLow; |
- | |
7555 | UCHAR ucMemoryClockHigh; |
- | |
7556 | - | ||
7557 | USHORT usVDDC; |
- | |
7558 | USHORT usVDDCI; |
- | |
7559 | UCHAR ucPCIEGen; |
- | |
7560 | UCHAR ucUnused1; |
- | |
7561 | - | ||
7562 | ULONG ulFlags; // ATOM_PPLIB_SI_FLAGS_*, no flag is necessary for now |
- | |
7563 | - | ||
7564 | } ATOM_PPLIB_SI_CLOCK_INFO; |
- | |
7565 | - | ||
7566 | - | ||
7567 | typedef struct _ATOM_PPLIB_RS780_CLOCK_INFO |
- | |
7568 | - | ||
7569 | { |
- | |
7570 | USHORT usLowEngineClockLow; // Low Engine clock in MHz (the same way as on the R600). |
- | |
7571 | UCHAR ucLowEngineClockHigh; |
- | |
7572 | USHORT usHighEngineClockLow; // High Engine clock in MHz. |
- | |
7573 | UCHAR ucHighEngineClockHigh; |
- | |
7574 | USHORT usMemoryClockLow; // For now one of the ATOM_PPLIB_RS780_SPMCLK_XXXX constants. |
- | |
7575 | UCHAR ucMemoryClockHigh; // Currentyl unused. |
- | |
7576 | UCHAR ucPadding; // For proper alignment and size. |
- | |
7577 | USHORT usVDDC; // For the 780, use: None, Low, High, Variable |
- | |
7578 | UCHAR ucMaxHTLinkWidth; // From SBIOS - {2, 4, 8, 16} |
- | |
7579 | UCHAR ucMinHTLinkWidth; // From SBIOS - {2, 4, 8, 16}. Effective only if CDLW enabled. Minimum down stream width could be bigger as display BW requriement. |
- | |
7580 | USHORT usHTLinkFreq; // See definition ATOM_PPLIB_RS780_HTLINKFREQ_xxx or in MHz(>=200). |
- | |
7581 | ULONG ulFlags; |
- | |
7582 | } ATOM_PPLIB_RS780_CLOCK_INFO; |
- | |
7583 | - | ||
7584 | #define ATOM_PPLIB_RS780_VOLTAGE_NONE 0 |
- | |
7585 | #define ATOM_PPLIB_RS780_VOLTAGE_LOW 1 |
- | |
7586 | #define ATOM_PPLIB_RS780_VOLTAGE_HIGH 2 |
- | |
7587 | #define ATOM_PPLIB_RS780_VOLTAGE_VARIABLE 3 |
- | |
7588 | - | ||
7589 | #define ATOM_PPLIB_RS780_SPMCLK_NONE 0 // We cannot change the side port memory clock, leave it as it is. |
- | |
7590 | #define ATOM_PPLIB_RS780_SPMCLK_LOW 1 |
- | |
7591 | #define ATOM_PPLIB_RS780_SPMCLK_HIGH 2 |
- | |
7592 | - | ||
7593 | #define ATOM_PPLIB_RS780_HTLINKFREQ_NONE 0 |
- | |
7594 | #define ATOM_PPLIB_RS780_HTLINKFREQ_LOW 1 |
- | |
7595 | #define ATOM_PPLIB_RS780_HTLINKFREQ_HIGH 2 |
- | |
7596 | - | ||
7597 | typedef struct _ATOM_PPLIB_SUMO_CLOCK_INFO{ |
- | |
7598 | USHORT usEngineClockLow; //clockfrequency & 0xFFFF. The unit is in 10khz |
- | |
7599 | UCHAR ucEngineClockHigh; //clockfrequency >> 16. |
- | |
7600 | UCHAR vddcIndex; //2-bit vddc index; |
- | |
7601 | USHORT tdpLimit; |
- | |
7602 | //please initalize to 0 |
- | |
7603 | USHORT rsv1; |
- | |
7604 | //please initialize to 0s |
- | |
7605 | ULONG rsv2[2]; |
- | |
7606 | }ATOM_PPLIB_SUMO_CLOCK_INFO; |
- | |
7607 | - | ||
7608 | - | ||
7609 | - | ||
7610 | typedef struct _ATOM_PPLIB_STATE_V2 |
- | |
7611 | { |
- | |
7612 | //number of valid dpm levels in this state; Driver uses it to calculate the whole |
- | |
7613 | //size of the state: sizeof(ATOM_PPLIB_STATE_V2) + (ucNumDPMLevels - 1) * sizeof(UCHAR) |
- | |
7614 | UCHAR ucNumDPMLevels; |
- | |
7615 | - | ||
7616 | //a index to the array of nonClockInfos |
- | |
7617 | UCHAR nonClockInfoIndex; |
- | |
7618 | /** |
- | |
7619 | * Driver will read the first ucNumDPMLevels in this array |
- | |
7620 | */ |
- | |
7621 | UCHAR clockInfoIndex[1]; |
- | |
7622 | } ATOM_PPLIB_STATE_V2; |
- | |
7623 | - | ||
7624 | typedef struct _StateArray{ |
- | |
7625 | //how many states we have |
- | |
7626 | UCHAR ucNumEntries; |
- | |
7627 | - | ||
7628 | ATOM_PPLIB_STATE_V2 states[1]; |
- | |
7629 | }StateArray; |
- | |
7630 | - | ||
7631 | - | ||
7632 | typedef struct _ClockInfoArray{ |
- | |
7633 | //how many clock levels we have |
- | |
7634 | UCHAR ucNumEntries; |
- | |
7635 | - | ||
7636 | //sizeof(ATOM_PPLIB_CLOCK_INFO) |
- | |
7637 | UCHAR ucEntrySize; |
- | |
7638 | - | ||
7639 | UCHAR clockInfo[1]; |
- | |
7640 | }ClockInfoArray; |
- | |
7641 | - | ||
7642 | typedef struct _NonClockInfoArray{ |
- | |
7643 | - | ||
7644 | //how many non-clock levels we have. normally should be same as number of states |
- | |
7645 | UCHAR ucNumEntries; |
- | |
7646 | //sizeof(ATOM_PPLIB_NONCLOCK_INFO) |
- | |
7647 | UCHAR ucEntrySize; |
- | |
7648 | - | ||
7649 | ATOM_PPLIB_NONCLOCK_INFO nonClockInfo[1]; |
- | |
7650 | }NonClockInfoArray; |
- | |
7651 | - | ||
7652 | typedef struct _ATOM_PPLIB_Clock_Voltage_Dependency_Record |
- | |
7653 | { |
- | |
7654 | USHORT usClockLow; |
- | |
7655 | UCHAR ucClockHigh; |
- | |
7656 | USHORT usVoltage; |
- | |
7657 | }ATOM_PPLIB_Clock_Voltage_Dependency_Record; |
- | |
7658 | - | ||
7659 | typedef struct _ATOM_PPLIB_Clock_Voltage_Dependency_Table |
- | |
7660 | { |
- | |
7661 | UCHAR ucNumEntries; // Number of entries. |
- | |
7662 | ATOM_PPLIB_Clock_Voltage_Dependency_Record entries[1]; // Dynamically allocate entries. |
- | |
7663 | }ATOM_PPLIB_Clock_Voltage_Dependency_Table; |
- | |
7664 | - | ||
7665 | typedef struct _ATOM_PPLIB_Clock_Voltage_Limit_Record |
- | |
7666 | { |
- | |
7667 | USHORT usSclkLow; |
- | |
7668 | UCHAR ucSclkHigh; |
- | |
7669 | USHORT usMclkLow; |
- | |
7670 | UCHAR ucMclkHigh; |
- | |
7671 | USHORT usVddc; |
- | |
7672 | USHORT usVddci; |
- | |
7673 | }ATOM_PPLIB_Clock_Voltage_Limit_Record; |
- | |
7674 | - | ||
7675 | typedef struct _ATOM_PPLIB_Clock_Voltage_Limit_Table |
- | |
7676 | { |
- | |
7677 | UCHAR ucNumEntries; // Number of entries. |
- | |
7678 | ATOM_PPLIB_Clock_Voltage_Limit_Record entries[1]; // Dynamically allocate entries. |
- | |
7679 | }ATOM_PPLIB_Clock_Voltage_Limit_Table; |
- | |
7680 | - | ||
7681 | typedef struct _ATOM_PPLIB_CAC_Leakage_Record |
- | |
7682 | { |
- | |
7683 | USHORT usVddc; // We use this field for the "fake" standardized VDDC for power calculations |
- | |
7684 | ULONG ulLeakageValue; |
- | |
7685 | }ATOM_PPLIB_CAC_Leakage_Record; |
- | |
7686 | - | ||
7687 | typedef struct _ATOM_PPLIB_CAC_Leakage_Table |
- | |
7688 | { |
- | |
7689 | UCHAR ucNumEntries; // Number of entries. |
- | |
7690 | ATOM_PPLIB_CAC_Leakage_Record entries[1]; // Dynamically allocate entries. |
- | |
7691 | }ATOM_PPLIB_CAC_Leakage_Table; |
- | |
7692 | - | ||
7693 | typedef struct _ATOM_PPLIB_PhaseSheddingLimits_Record |
- | |
7694 | { |
- | |
7695 | USHORT usVoltage; |
- | |
7696 | USHORT usSclkLow; |
- | |
7697 | UCHAR ucSclkHigh; |
- | |
7698 | USHORT usMclkLow; |
- | |
7699 | UCHAR ucMclkHigh; |
- | |
7700 | }ATOM_PPLIB_PhaseSheddingLimits_Record; |
- | |
7701 | - | ||
7702 | typedef struct _ATOM_PPLIB_PhaseSheddingLimits_Table |
- | |
7703 | { |
- | |
7704 | UCHAR ucNumEntries; // Number of entries. |
- | |
7705 | ATOM_PPLIB_PhaseSheddingLimits_Record entries[1]; // Dynamically allocate entries. |
- | |
7706 | }ATOM_PPLIB_PhaseSheddingLimits_Table; |
- | |
7707 | - | ||
7708 | typedef struct _VCEClockInfo{ |
- | |
7709 | USHORT usEVClkLow; |
- | |
7710 | UCHAR ucEVClkHigh; |
- | |
7711 | USHORT usECClkLow; |
- | |
7712 | UCHAR ucECClkHigh; |
- | |
7713 | }VCEClockInfo; |
- | |
7714 | - | ||
7715 | typedef struct _VCEClockInfoArray{ |
- | |
7716 | UCHAR ucNumEntries; |
- | |
7717 | VCEClockInfo entries[1]; |
- | |
7718 | }VCEClockInfoArray; |
- | |
7719 | - | ||
7720 | typedef struct _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record |
- | |
7721 | { |
- | |
7722 | USHORT usVoltage; |
- | |
7723 | UCHAR ucVCEClockInfoIndex; |
- | |
7724 | }ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record; |
- | |
7725 | - | ||
7726 | typedef struct _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table |
- | |
7727 | { |
- | |
7728 | UCHAR numEntries; |
- | |
7729 | ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record entries[1]; |
- | |
7730 | }ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table; |
- | |
7731 | - | ||
7732 | typedef struct _ATOM_PPLIB_VCE_State_Record |
- | |
7733 | { |
- | |
7734 | UCHAR ucVCEClockInfoIndex; |
- | |
7735 | UCHAR ucClockInfoIndex; //highest 2 bits indicates memory p-states, lower 6bits indicates index to ClockInfoArrary |
- | |
7736 | }ATOM_PPLIB_VCE_State_Record; |
- | |
7737 | - | ||
7738 | typedef struct _ATOM_PPLIB_VCE_State_Table |
- | |
7739 | { |
- | |
7740 | UCHAR numEntries; |
- | |
7741 | ATOM_PPLIB_VCE_State_Record entries[1]; |
- | |
7742 | }ATOM_PPLIB_VCE_State_Table; |
- | |
7743 | - | ||
7744 | - | ||
7745 | typedef struct _ATOM_PPLIB_VCE_Table |
- | |
7746 | { |
- | |
7747 | UCHAR revid; |
- | |
7748 | // VCEClockInfoArray array; |
- | |
7749 | // ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table limits; |
- | |
7750 | // ATOM_PPLIB_VCE_State_Table states; |
- | |
7751 | }ATOM_PPLIB_VCE_Table; |
- | |
7752 | - | ||
7753 | - | ||
7754 | typedef struct _UVDClockInfo{ |
- | |
7755 | USHORT usVClkLow; |
- | |
7756 | UCHAR ucVClkHigh; |
- | |
7757 | USHORT usDClkLow; |
- | |
7758 | UCHAR ucDClkHigh; |
- | |
7759 | }UVDClockInfo; |
- | |
7760 | - | ||
7761 | typedef struct _UVDClockInfoArray{ |
- | |
7762 | UCHAR ucNumEntries; |
- | |
7763 | UVDClockInfo entries[1]; |
- | |
7764 | }UVDClockInfoArray; |
- | |
7765 | - | ||
7766 | typedef struct _ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record |
- | |
7767 | { |
- | |
7768 | USHORT usVoltage; |
- | |
7769 | UCHAR ucUVDClockInfoIndex; |
- | |
7770 | }ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record; |
- | |
7771 | - | ||
7772 | typedef struct _ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table |
- | |
7773 | { |
- | |
7774 | UCHAR numEntries; |
- | |
7775 | ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record entries[1]; |
- | |
7776 | }ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table; |
- | |
7777 | - | ||
7778 | typedef struct _ATOM_PPLIB_UVD_State_Record |
- | |
7779 | { |
- | |
7780 | UCHAR ucUVDClockInfoIndex; |
- | |
7781 | UCHAR ucClockInfoIndex; //highest 2 bits indicates memory p-states, lower 6bits indicates index to ClockInfoArrary |
- | |
7782 | }ATOM_PPLIB_UVD_State_Record; |
- | |
7783 | - | ||
7784 | typedef struct _ATOM_PPLIB_UVD_State_Table |
- | |
7785 | { |
- | |
7786 | UCHAR numEntries; |
- | |
7787 | ATOM_PPLIB_UVD_State_Record entries[1]; |
- | |
7788 | }ATOM_PPLIB_UVD_State_Table; |
- | |
7789 | - | ||
7790 | - | ||
7791 | typedef struct _ATOM_PPLIB_UVD_Table |
- | |
7792 | { |
- | |
7793 | UCHAR revid; |
- | |
7794 | // UVDClockInfoArray array; |
- | |
7795 | // ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table limits; |
- | |
7796 | // ATOM_PPLIB_UVD_State_Table states; |
- | |
7797 | }ATOM_PPLIB_UVD_Table; |
- | |
7798 | - | ||
7799 | /**************************************************************************/ |
- | |
Line 7800... | Line 7766... | ||
7800 | 7766 | ||
7801 | 7767 | ||
7802 | // Following definitions are for compatibility issue in different SW components. |
7768 | // Following definitions are for compatibility issue in different SW components. |
7803 | #define ATOM_MASTER_DATA_TABLE_REVISION 0x01 |
7769 | #define ATOM_MASTER_DATA_TABLE_REVISION 0x01 |
Line 8008... | Line 7974... | ||
8008 | 7974 | ||
Line 8009... | Line 7975... | ||
8009 | #pragma pack() |
7975 | #pragma pack() |
- | 7976 | ||
- | 7977 | ||
- | 7978 | #endif /* _ATOMBIOS_H */ |