0% found this document useful (0 votes)
506 views43 pages

XTU 3.0 BIOS Interface Specification

INTEL Corporation MAKES NO WARRANTY of ANY KIND with REGARD to This MATERIAL, INCLUDING, BUT not LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. NO PART of This DOCUMENT may be COPIED or REPRODUCED in ANY FORM or by ANY MEANS WITHOUT prior WRITTEN CONSENT of INTEL.

Uploaded by

Juan Perez
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
506 views43 pages

XTU 3.0 BIOS Interface Specification

INTEL Corporation MAKES NO WARRANTY of ANY KIND with REGARD to This MATERIAL, INCLUDING, BUT not LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. NO PART of This DOCUMENT may be COPIED or REPRODUCED in ANY FORM or by ANY MEANS WITHOUT prior WRITTEN CONSENT of INTEL.

Uploaded by

Juan Perez
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Intel Extreme Tuning Utility, Version 3.

0 BIOS Interface Specification


Revision 0.83 Last Update: July 1, 2011

Intel Confidential

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Legal Notices and Disclaimers


INTEL CORPORATION MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. INTEL CORPORATION ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. INTEL CORPORATION MAKES NO COMMITMENT TO UPDATE NOR TO KEEP CURRENT THE INFORMATION CONTAINED IN THIS DOCUMENT. THIS SPECIFICATION IS COPYRIGHTED BY AND SHALL REMAIN THE PROPERTY OF INTEL CORPORATION. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED HEREIN. INTEL DISCLAIMS ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PROPRIETARY RIGHTS, RELATING TO IMPLEMENTATION OF INFORMATION IN THIS SPECIFICATION. INTEL DOES NOT WARRANT OR REPRESENT THAT SUCH IMPLEMENTATIONS WILL NOT INFRINGE SUCH RIGHTS. NO PART OF THIS DOCUMENT MAY BE COPIED OR REPRODUCED IN ANY FORM OR BY ANY MEANS WITHOUT PRIOR WRITTEN CONSENT OF INTEL CORPORATION. INTEL CORPORATION RETAINS THE RIGHT TO MAKE CHANGES TO THESE SPECIFICATIONS AT ANY TIME, WITHOUT NOTICE.

Intel software products are copyrighted by and shall remain the property of Intel Corporation. Use, duplication or disclosure is subject to restrictions stated in Intel's Software License Agreement provided with the software, or in the case of software delivered to the government, in accordance with the software license agreement as defined in FAR 52.227-7013. Intel and the Intel logo are trademarks of Intel Corporation and its subsidiaries around the world. * Other brands and names may be claimed as the property of others.

Intel Confidential

ii

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Revision History
Revision 0.3 Date 9/1/2010 Reason for Changes Initial Revision of the Intel Extreme Tuning Utility 3.0 BIOS Specification. This revision of the XTU BIOS Specification is not backward compatible with prior revisions of the interface. Added additional SMI functions for Read Defaults, Read XMP Profile 1 & Read XMP Profile 2. Updated the ASL examples to be in line with the updated ASL definitions. Incorporating feedback from BIOS and development stakeholders. Incorporated additional feedback from ACPI expert. Updated some ASL method definitions for ease of BIOS implementation. Updated the formatting of the document for consistency. Added the BIOS Interface Overview. Added support for the Short and Extended Time Window Controls. Addressed multiple typographical errors. Added error codes for CDWR and CDRD methods. Added example code for GACI initialization in C and usage within ASL. Added ControlIds specific for SNB-E. Updated the revision to 0.8 after stakeholder review. No other changes. Added ControlId for Vboot control. Added ControlId for Runtime Turbo Override Enable control. Fixed typos in the GXDV section. Updated unit type and platform specific info within ControlId table in Appendix A. Added details of runtime controls provided within the XTU application. Added definition for the XMP Profile enumeration for use with the SMI Handler. Added details for dynamic control mode support. Added ControlId for Configurable TDP control. Added ControlId for Memory Clock Multiplier control.

0.31 0.32 0.4 0.5 0.6 0.61 0.62

9/13/2010 9/14/2010 10/1/2010 11/4/2010 11/16/2010 11/18/2010 1/31/2011

0.63 0.80 0.81

2/2/2011 2/18/2011 4/19/2011

0.82 0.83

5/27/2011 7/1/2011

Intel Confidential

iii

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Table of Contents
1 1.1 1.2 1.3 1.4 1.5 1.6 2 INTRODUCTION................................................................................................................................. 1 PURPOSE OF THIS DOCUMENT ........................................................................................................... 1 DOCUMENT SCOPE ............................................................................................................................. 1 ASSUMPTIONS ..................................................................................................................................... 1 SUPPORTED PLATFORMS.................................................................................................................... 1 TERMINOLOGY AND ACRONYMS ....................................................................................................... 1 RELATED DOCUMENTS ....................................................................................................................... 2 BIOS INTERFACE OVERVIEW ....................................................................................................... 3

2.1 KEY CONCEPTS ................................................................................................................................... 3 2.1.1 XTU ACPI DEVICE ........................................................................................................................... 3 2.1.2 XTU SMI HANDLER ......................................................................................................................... 4 2.2 CALL SEQUENCE ................................................................................................................................. 5 3 INTERFACE DEFINITIONS.............................................................................................................. 6

3.1 ACPI DEVICE INTERFACE ................................................................................................................. 6 3.1.1 DEVICE DESCRIPTION ....................................................................................................................... 6 3.1.2 OBJECT OVERVIEW ........................................................................................................................... 6 3.1.3 GENERIC OBJECTS ............................................................................................................................. 7 3.1.3.1 Interface Version (IVER) ............................................................................................................... 7 3.1.4 CONTROL DETAIL OBJECTS .............................................................................................................. 7 3.1.4.1 Get Available Controls (GACI) ..................................................................................................... 7 3.1.4.2 Discrete Supported Values (GDSV) ............................................................................................ 11 3.1.4.3 Get SMI Command Value (GSCV) ............................................................................................. 13 3.1.4.1 Get XMP Display Values (GXDV) ............................................................................................. 13 3.1.5 RUN-TIME CONTROL OBJECTS........................................................................................................ 15 3.1.5.1 Control Device Read (CDRD) ..................................................................................................... 15 3.1.5.2 Control Device Write (CDWR) ................................................................................................... 16 3.1.6 MONITOR-ONLY OBJECTS............................................................................................................... 18 3.1.6.1 Temperature Sensor Data Dump (TSDD) .................................................................................... 18 3.1.6.2 Voltage Sensor Data Dump (VSDD) ........................................................................................... 19 3.1.6.3 Fan Sensor Data Dump (FSDD) .................................................................................................. 20 3.1.6.4 Sensor Data Sampling Period (SDSP) ......................................................................................... 21 3.1.7 EXAMPLE IMPLEMENTATION .......................................................................................................... 22 3.2 WATCHDOG TIMER .......................................................................................................................... 27 3.3 SW SMI REAL-TIME COMMUNICATIONS INTERFACE .................................................................. 28 3.3.1 OVERVIEW....................................................................................................................................... 28 3.3.2 BIOS SETTINGS STRUCTURE........................................................................................................... 28 3.3.3 FUNCTIONS ...................................................................................................................................... 29
Intel Confidential iv Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3.3.3.1 Read BIOS Settings ..................................................................................................................... 29 3.3.3.2 Write BIOS Settings .................................................................................................................... 29 3.3.4 RETURN VALUES ............................................................................................................................. 29 3.3.4.1 Error Codes .................................................................................................................................. 30 3.3.4.2 Warning Codes............................................................................................................................. 30 APPENDIX A - ENUMERATIONS ........................................................................................................ 31

Intel Confidential

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

List of Figures
No table of figures entries found.

List of Tables
Table 1: Definition of Acronyms Used..........................................................................................................................2 Table 2: Related Documentation ...................................................................................................................................2 Table 3: ACPI Device Identification .............................................................................................................................6 Table 4: ACPI Device Object Overview .......................................................................................................................7 Table 5: GACI Return Value Definition........................................................................................................................8 Table 6: ControlIdData Structure Definition ............................................................................................................... 10 Table 8: GDSV Argument Definition .......................................................................................................................... 12 Table 9: GACI Return Value Definition...................................................................................................................... 12 Table 10: DiscreteValueData Structure Definition ...................................................................................................... 13 Table 11: GXDV Argument Definition ....................................................................................................................... 13 Table 12: GXDV Return Value Definition .................................................................................................................. 14 Table 13: XmpDisplayValue Structure Definition ...................................................................................................... 15 Table 14: CDRD Argument Definition ....................................................................................................................... 16 Table 15: CDRD Return Value Definition .................................................................................................................. 16 Table 16: Control Ids with Runtime Support Built-In ................................................................................................. 17 Table 17: CDWR Argument Definition....................................................................................................................... 17 Table 18: TSDD Package Parameter Definitions ........................................................................................................ 19 Table 19: VSDD Package Parameter Definitions ........................................................................................................ 20 Table 20: FSDD Package Parameter Definitions......................................................................................................... 21 Table 21: SDSP Result Parameter Definitions ............................................................................................................ 21 Table 22: BIOS Settings Data Structure ...................................................................................................................... 28 Table 23: BIOS Setting Entry ...................................................................................................................................... 28 Table 24: Read BIOS Settings Command, Register Setup .......................................................................................... 29 Table 25: Write BIOS Settings Command, Register Setup ......................................................................................... 29 Table 26: BIOS Settings Command Error Codes ........................................................................................................ 30 Table 27: BIOS Settings Command Warning Codes ................................................................................................... 30 Table 28: Usage Sorted Control ID Enumerations ...................................................................................................... 31 Table 29: Numerically Sorted Control ID Enumerations ............................................................................................ 33 Table 30: Temperature (TSDD) Usage enumeration ................................................................................................... 35 Table 31: Voltage (VSDD) Usage enumeration .......................................................................................................... 36 Table 32: Fan (FSDD) Usage enumeration ................................................................................................................. 36

Intel Confidential

vi

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

1 Introduction
1.1 Purpose of this Document
The purpose of this document is to specify the BIOS interfaces necessary for implementation to support the Extreme Tuning Utility (XTU) application. It includes all the information necessary for someone to implement and use these interfaces. It will stand on its own and not be dependent on other documents to describe how to provide the BIOS interfaces.

1.2

Document Scope

This BIOS Interface Specification provides information regarding the programming model that is used for this module, any dependencies that exist within this module, and complete descriptions of the interfaces that are provided by this module. Let it be clear that the document provides only the interface, not the design or implementation of those interfaces.

1.3

Assumptions

Throughout this document technical terms regarding BYTEs, WORDs, DWORDs, and QWORDs are used. All references should be assumed to be little-endian. Also, BYTEs should be assumed to be 8 bits and WORDSs 16 bits.

1.4

Supported Platforms

The Intel Extreme Tuning Utility supports a specific set of Intel microprocessor based platforms. XTU supports all Sandy Bridge & Ivy Bridge based processors. This includes both Mobile and Desktop processors. It also includes processors with or without integrated graphics.

1.5
ACPI ASL BCLK BIOS CPU

Terminology and Acronyms


Description

Acronym

Advanced Configuration and Power Interface ACPI Source Language Base Clock (aka Reference Clock) The clock used as a source for many of the clock domains on the CPU and PCH Basic Input/Output System This is the firmware responsible to boot a PC Central Processing Unit The main processor for a platform 1 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Intel Confidential

Acronym

Description

EAX EBX ECX EDX IA IO OS PCH PCMCIA PLL RPM SMI SPD SW TDP VR WDT XMP XTU

Register of the x86 processor Register of the x86 processor Register of the x86 processor Register of the x86 processor Intel Architecture Input/Output Operating System Platform Controller Hub Personal Computer Memory Card International Association aka PC Card Phased Locked Loop Rotations Per Minute System Management Interrupt Serial Presence Detect Non-volatile memory that is used on memory sticks to describe the characteristics of the memory Software Total Design Power The maximum power that a processor is designed to use Voltage Regulator A circuit used to maintain a specific voltage in order to power another circuit Watchdog Timer A timer used to recover from a halted or hung platform state Intel Extreme Memory Profiles Pre-defined Memory Overclocking Profiles defined as part of the SPD Intel Extreme Tuning Utility Overclocking software provided by Intel Table 1: Definition of Acronyms Used

1.6

Related Documents
Document Name Revision Doc Location

Advanced Configuration and Power Interface Platform Performance Tuning Guide

3.0b SNB IVB 1.3

http://www.acpi.info/ VIP #29037 VIP #TBD VIP #TBD

Extreme Memory Profile specification

Table 2: Related Documentation Intel Confidential 2 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

2 BIOS Interface Overview


The BIOS interfaces in the Extreme Tuning Utility serve two purposes for the XTU application. The first usage of this interface is to persist BIOS settings from the OS by providing mechanisms for reading from and writing to BIOS setup. The second purpose of the BIOS interface is to provide a mechanism that XTU can use to manipulate runtime, board-specific devices. The XTU BIOS interfaces do not replace the need for the BIOS to implement core overclocking functionality. In order for the interfaces that are described within this document to function correctly, it is necessary for the BIOS to implement support for overclocking. This includes reference clock (or bclk) control, voltage control, manual memory timing manipulation, and more. Descriptions specific to each platform regarding implementation of core overclocking functionality is out of the scope of this document. Please refer to the appropriate Platform Performance Tuning Guide for direction in this area.

2.1

Key Concepts

There are two key concepts that should be understood by the BIOS engineer when implementing the XTU BIOS interface. The first of these concepts is the XTU ACPI Device and the purpose of this device. The XTU ACPI Device is generated by ASL that is written by the BIOS developer. The main purpose of this device is to provide a mechanism that can be used for passing platform specific information from the BIOS to the OS. It can optionally provide support for reading from and writing to platform specific hardware in runtime. The second main concept that is important to understand is the mechanism that XTU uses in order to persist data across reboots. In order persist BIOS setup information across reboots XTU passes updated information to the BIOS via an SMI. The associated SMI handler must interpret the data that is passed to the BIOS and store it in flash or another non-volatile medium where it can be integrated into future boots.

2.1.1 XTU ACPI Device


This device serves two main purposes. The first purpose is to pass the complete list of tuning controls (See ENUMERATIONS) which are supported by the platform along with the settings which they support to the XTU software. This listing of controls and settings allows XTU the ability to expose settings to the user which require a reboot. It also allows the XTU software the ability to expose platform specific hardware. The second purpose of the XTU ACPI device is to allow for runtime control and monitoring of platform specific devices. The Run-Time Control Objects and Monitor-Only Objects described later in this document allow for both runtime control and monitoring style devices to be implemented.

Intel Confidential

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

2.1.2 XTU SMI Handler


The SMI Handler must be developed to allow for persisting data to the BIOS from the OS at run-time. A software SMI interface is used to pass control to the BIOS from the application. The SW command handler data is a piece of data that is sent to the application through the previously mentioned ACPI methods. Using this software System Management Interrupt (SMI) port and command data control will be passed to the BIOS for handling of some functionality. This functionality is for reading and writing BIOS setup data. This functionality is represented in Figure 2.

Figure 1: OS-to-BIOS Communications

Intel Confidential

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

2.2

Call Sequence

The following flow chart outlines the calls that will be made to BIOS by the XTU software. All calls referenced in this chart are defined in the INTERFACE DEFINITIONS section later in this document.
XTU Software Initializes at OS Load

Stop BIOS Processing

No

Does XTU ACPI Device exist?

Call the GACI Method Process the next Control ID

Yes Are there any more Control IDs?

Process the GACI data for the current Control ID Call the GDSV Method for this Control ID and process the data Attempt to read both XMP profiles via GXSV method

No Does this Control ID require discrete controls? Yes

No

Read the SMI Command Value via GSCV method

Issue an SMI Read to collect current BIOS state

Read the monitor sampling rate via the SDSP method

Read and Write via CDRD and CDWR as necessary

Read monitoring values via TSDD, VSDD, and FSDD At the sampling period

Intel Confidential

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3 Interface Definitions
3.1 ACPI Device Interface
The custom XTU ACPI Device is the foundation of the new XTU BIOS Interface. This ACPI device definition is required in order to allow XTU to communicate to BIOS for the purpose of either persistence of setting values across reboots or control of run-time platform specific devices. The following sections will describe each of the required and optional structures, their purpose, and detailed descriptions. All examples in the following section are referring to ASL code. For details on syntax and ASL conventions please refer to the Advanced Configuration and Power Interface Specification available at http://www.acpi.info.

3.1.1 Device Description


The following table provides details of the generic ACPI device. This device is what the XTU ACPI driver will register against and must be present in order to support either ACPI Control or Monitor-only methods and objects.
Identification Method Value

_HID _CID

INT3394 PNP0C02 Table 3: ACPI Device Identification

This device can be implemented under any scope of the platform ACPI's namespace, however, it is recommended to be implemented within the \_SB scope. Specifying the _CID ensures that the ACPI device does not show up in the Windows Device Manager as an "Unknown Device" with a yellow bang.

3.1.2 Object Overview


The following table provides an overview of the objects which are described in the upcoming sections. This provides a clear understanding of the various supported names and methods which make up the XTU ACPI device.
ACPI Object Object Name Type Description

IVER GACI

Version Get Available Controls

Name Method

This object defines the version number of the interface. This object defines the Control IDs supported by the platform and includes the static information associated with those controls. This object is used to describe a discrete set of display values when the control is unable to be described as a continuous set of values. 6 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

GDSV

Get Discrete Supported Values

Method

Intel Confidential

ACPI Object

Object Name

Type

Description

GSCV GXSV CDRD CDWR TSDD VSDD FSDD SDSP

Get SMI Command Value Get XMP Display Values Control Device Read Control Device Write Temperature Sensor Device Dump Voltage Sensor Device Dump Fan Sensor Device Dump Sensor Data Sampling Period

Name Method Method Method Method Method Method Method

This object is used to describe the command that must be sent to the software SMI. This object is used to retrieve the Control IDs and display values associated with a requested XMP Profile. This object is used to read the current state of a platform specific runtime control. This object is used to write the current state of a platform specific runtime control. This object is used to get the current state of all temperature sensors on the system. This object is used to get the current state of all voltage sensors on the system. This object is used to get the current state of all fan sensors on the system. This object is used to get the sampling period that should be used for all monitors.

Table 4: ACPI Device Object Overview

3.1.3 Generic Objects


The following objects provide the XTU software with standard information that describes the ACPI device interface. 3.1.3.1 Interface Version (IVER) The IVER object evaluates to an integer that represents the version of this interface. It is a required object to be implemented on this interface. The upper two bytes indicate the major version and the lower two bytes indicate the minor version. Name (IVER, 0x00010000) //Version 1.0

3.1.4 Control Detail Objects


The ACPI Control Detail Objects provide XTU with a variety of information about the platform. Specifically they provide information regarding which Control IDs are supported in runtime, which are persisted to the BIOS, and what settings are available for those controls on this platform. The list of supported Control IDs can be found in TABLE 29: NUMERICALLY SORTED CONTROL ID ENUMERATIONS and TABLE 30: TEMPERATURE (TSDD) USAGE
ENUMERATION

3.1.4.1

Get Available Controls (GACI) The GACI object is a control detail object which is implemented by the BIOS that allows for retrieving the entire list of Control IDs supported by the BIOS (see ENUMERATIONS). Any Control ID that is present in the list is assumed to be a Control ID that is handled by the SW SMI REAL-TIME COMMUNICATIONS

Intel Confidential

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

INTERFACE read and write routines (section 3.3). The XTU Software will then attempt to use the ACPI RUN-TIME CONTROL OBJECTS (section 3.1.5) in order to read whether each Control ID is supported via these interfaces. The GACI object is responsible to communicate the static information for all Controls which are able to be manipulated on the platform. Syntax for Signature Method(GACI, 0, NotSerialized, 0, PkgObj) Description The purpose of this method is to retrieve basic data about controls that are supported by the BIOS. Arguments No input is required for this method. Result A package object is returned with the following definition: Name (RETV, Package() { // Field Name ErrorCode DataBuffer }) // Field Type // DWORD // ControlIdData[]

The resultant buffer is defined as an array of packed ControlIdData C-structs. struct ControlIdData { DWORD ControlId WORD NumberOfValues BYTE Precision BYTE Flags DWORD DefaultDataValue DWORD MinDataValue DWORD MaxDataValue DWORD MinDisplayValue DWORD MaxDisplayValue } Result Parameter Definitions
Field Name Definition

Defined as: Success == 0 ErrorCode Unexpected Error == 0xFFFFFFFF Any value that is returned which is not equal to 0 is considered a failure. In the failure case, the buffer is defined as indeterminate and the caller should not use that data. DataBuffer The buffer returned as part of the GACI call is an array of ControlIdData C-structs. It is valid to return an empty buffer. This would imply that only monitoring features are supported by the platform. Table 5: GACI Return Value Definition 8 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Intel Confidential

Field Name

Definition

ControlId

This field describes a Control ID that is supported by the BIOS via the SW SMI REAL-TIME COMMUNICATIONS INTERFACE. This field is used for two purposes. First if the control requires a value set of discrete numbers as opposed to a set of continuous numbers then this field should be set to FFFFFFFh. This tells the XTU software to use the method in order to retrieve the value set for this Control ID.

NumberOfValues

If the Control ID can be described by a continuous set of values then this parameter describes the number of supported values that are contained in that data set. This allows the caller to determine the step size for both the Data Values and the Display Values in order to generate a complete data set as well as a complete set of options to display to the end-user. This field is used to allow the BIOS to represent non-whole numbers as fixed-point values. The precision specified will be applied to all Display Values in the data set of the associated Control ID. The precision field will be used for both continuous and discrete value sets. See the following examples: DisplayValue: Precision: XTU UI: DisplayValue: Precision: XTU UI: DisplayValue: Precision: XTU UI: Flag Bit Definitions: Bit[0] 125 2 1.25 40 0 40 400 1 40.0 1 Real Time ACPI Interface Support 0 No Real Time ACPI Interface Support If bit 0 is a 1 then the RUN-TIME CONTROL OBJECTS are implemented for this Control ID. 1 Supports dynamic control mode 0 Does not support dynamic control mode Special rules apply to Dynamic Control Mode Support. Bit[2:7] Reserved Should be 00h

Precision

Flags

Bit[1]

DefaultDataValue MinDataValue Intel Confidential

The value of the data associated with the default setting for this Control ID. This data value must be contained within the value set described by the Min/Max Data Values or by the data values. The value of the data associated with the MinDisplayValue. This data 9 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Field Name

Definition

will be sent to both the SW SMI REAL-TIME COMMUNICATIONS INTERFACE and the RUN-TIME CONTROL OBJECTS if they are supported when attempting to apply the minimum display value. This value is not used if the method is implemented for this Control ID. The value of the data associated with the MaxDisplayValue. This data will be sent to both the SW SMI REAL-TIME COMMUNICATIONS INTERFACE and the RUN-TIME CONTROL OBJECTS if they are supported when attempting to apply the maximum display value. This value is not used if the method is implemented for this Control ID. The minimum value that is to be used for display purposes by the XTU user interface. This value is ignored if the method is implemented for this Control ID. NOTE: This value can also be used for the non-standard data type definitions outlined below (see ENUMERATIONS): Enable/Disable Control IDs In this case the MinDisplayValue should be 0. This represents the Disable state. XMP Profiles In this case the MinDisplayValue should be 0. A DisplayValue of 0 represents Default Profile. A DisplayValue of 1 represents the Custom Profile. A DisplayValue of 2 represents Profile 1. A Display Value of 3 represents Profile 2. All other values are unsupported. The maximum value that is to be used for display purposes by the XTU user interface. This value is ignored if the method is implemented for this Control ID. NOTE: This value can also be used for the non-standard data type definitions outlined below (see ENUMERATIONS): Enable/Disable Control IDs In this case the MinDisplayValue should be 0. This represents the Disable state. XMP Profiles In this case the MinDisplayValue should be 0. A DisplayValue of 0 represents Default Profile. A DisplayValue of 1 represents the Custom Profile. A DisplayValue of 2 represents Profile 1. A Display Value of 3 represents Profile 2. All other values are unsupported. Table 6: ControlIdData Structure Definition

MaxDataValue

MinDisplayValue

MaxDisplayValue

Intel Confidential

10

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3.1.4.1.1 Dynamic Control Mode Support


Dynamic control mode, when enabled, exposes a special supported value that is displayed as Auto in the XTU user interface. An example of a control that could support dynamic control mode would be CPU Core Voltage, where BIOSes will usually the display dynamic control mode setting as Default or Automatic via the BIOS set-up screens; while set to this value, the voltage regulators would automatically adjust the voltage in real-time based on load, thermal margins, and capabilities. To indicate a control supports dynamic control mode, the corresponding flag must be set in the ControlIdData flags field for the control in the GET AVAILABLE CONTROLS (GACI) ACPI method. A control with this flag set to enabled will automatically assume that a supported value exists with a data value of 0xFFFFFFFE that will be displayed as Auto in the XTU user interface. A BIOS must not include a setting with a data value of 0xFFFFFFFE when the dynamic control mode support flag is enabled; that setting will be replaced with the Auto setting by the XTU application framework. When a control has the dynamic control mode support flag enabled, all real-time devices, including those defined via ACPI, will be ignored. To summarize: controls supporting dynamic control mode do not support real-time / run-time changes. The following table shows a listing of the control IDs that support dynamic control mode; the dynamic control mode support flag will be ignored on any control that is not listed on the following table.

Controls that Support Dynamic Control Mode


Control ID Definition

02h 18h

CPU Voltage Override System Command Rate Mode Table 7: Controls that Support Dynamic Control Mode

3.1.4.2

Discrete Supported Values (GDSV) The GDSV object is a control detail object which retrieves a specified Control IDs (see ENUMERATIONS) discrete set of BIOS setting values, display values, and an associated precision for the entire list. This mechanism is only necessary if either the display values or the setting values are non-continuous. This method also returns the precision of the display values. Syntax for Signature Method(GDSV, 1, NotSerialized, 0, PkgObj, IntObj) Description The purpose of this method is to retrieve the complete set of discrete values supported for the requested Control ID on this platform. Arguments The single input to the GDSV method is the Control ID to be queried.

Intel Confidential

11

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Parameter Definitions
Field Name Definition

ControlID (Arg0)

This is a value which represents a specified control (see ENUMERATIONS). Table 8: GDSV Argument Definition

Result A package object is returned with the following definition: Name (RETV, Package() { // Field Name ErrorCode DataBuffer }) // Field Type // DWORD // DiscreteValueData[]

The resultant buffer is defined as an array of packed DiscreteValueData C-structs. struct DiscreteValueData { DWORD DataValue DWORD DisplayValue } Result Parameter Definitions
Field Name Definition

Defined as: Success == 0 Only Continuous Values Supported == 1 Unexpected Error == 0xFFFFFFFF ErrorCode Any value that is returned which is not equal to 0 is considered a failure. A value of 1 describes a Control ID whose data is only defined in the GET AVAILABLE CONTROLS (GACI). In any error condition the caller should not use the DataBuffer as its values are indeterminate. The buffer returned as part of the GDSV call is an array of DiscreteValueData C-structs. This array of structures should explicitly define all supported values for the requested Control ID. If both the SW SMI REAL-TIME COMMUNICATIONS INTERFACE and the RUN-TIME CONTROL OBJECTS are supported, then the array of supported values will be shared between them. It is not valid to return an empty buffer. Table 9: GACI Return Value Definition

DataBuffer

Intel Confidential

12

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Field Name

Definition

DataValue

This value will be sent as the input to both the SW SMI REAL-TIME COMMUNICATIONS INTERFACE and the RUN-TIME CONTROL OBJECTS for the associated DisplayValue. The value for the graphical user interface display which will be presented to the end-user. Any precision that is applied to the DisplayValue is described in the GET AVAILABLE CONTROLS (GACI) method with the associated Control ID. Table 10: DiscreteValueData Structure Definition

DisplayValue

3.1.4.3

Get SMI Command Value (GSCV) The GSCV object is a control detail object which evaluates to the SMI command that should be sent to the appropriate SW SMI port for the platform. This is a custom value for each BIOS that designates which value should be placed in the AL register prior to performing the SW SMI described in the SW SMI REALTIME COMMUNICATIONS INTERFACE section of the document. Syntax for Signature Name (GSCV, 0xXX)

3.1.4.1

Get XMP Display Values (GXDV) The GXDV object is a control detail object which retrieves the requested XMP profiles settings and their associated display values. This mechanism is only necessary if the platform supports XMP. It is an optional method for implementation. However it is required to be implemented for XTU to support XMP. Syntax for Signature Method(GXDV, 1, NotSerialized, 0, PkgObj, IntObj) Description The purpose of this function is to query the BIOS about the memory frequency, timings, and voltages associated with a specific XMP profile. All Memory settings that are supported by the platform must be returned as part of the BIOS Settings Data Structure returned from the SMI call. This includes every supported Control ID from the memory section of TABLE 29: NUMERICALLY SORTED CONTROL ID ENUMERATIONS as well as the Memory Voltage and optionally the System Agent Voltage from the voltage section of the enumeration. All of this data must be returned by this method. Arguments The single input to the GXDV method is the XMP Profile to be queried, Profile 1 or Profile 2. Parameter Definitions
Field Name Definition

This is a value which represents either Profile 1 or Profile 2. ProfileNumber (Arg0) 1 Retrieve values for Profile 1 2 Retrieve values for Profile 2 All other inputs Invalid and should return an error. Table 11: GXDV Argument Definition Intel Confidential 13 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Result A package object is returned with the following definition: Name (RETV, Package() { // Field Name ErrorCode DataBuffer }) // Field Type // DWORD // XmpDisplayValue[]

The resultant buffer is defined as an array of packed XmpDisplayValue C-structs. struct XmpDisplayValue { WORD ControlID BYTE Reserved BYTE Precision DWORD DisplayValue } Result Parameter Definitions
Field Name Definition

Defined as: Success == 0 Invalid Input Argument == 1 XMP Not Supported == 2 ErrorCode Unexpected Error == 0xFFFFFFFF Any value that is returned which is not equal to 0 is considered a failure. A value of 1 describes an invalid input. This is generally because a request for Profiles other than 1 & 2. In any error condition the caller should not use the DataBuffer as its values are indeterminate. The buffer returned as part of the GXDV call is an array of XmpDisplayValue C-structs. This array of structures should explicitly define all Control IDs and their associated Display Values that will be altered if the requested XMP Profile is applied to the system. It is not valid to return an empty buffer. Table 12: GXDV Return Value Definition
Field Name Definition

DataBuffer

ControlID Reserved

This field describes a Control ID that is manipulated if the currently queried XMP Profile is selected to be applied to the system. This field must be set to 00h.

Intel Confidential

14

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Field Name

Definition

This field is used to allow the BIOS to represent non-whole numbers as fixed-point values. The precision specified will be applied to the value in the DisplayValue field of this structure. See the following examples: DisplayValue: Precision: XTU UI: Precision DisplayValue: Precision: XTU UI: DisplayValue: Precision: XTU UI: DisplayValue 125 2 1.25 40 0 40 400 1 40.0

The value for the graphical user interface display which will be presented to the end-user. Table 13: XmpDisplayValue Structure Definition

3.1.5 Run-Time Control Objects


The ACPI Control objects provide access to various voltage, clock, and other platform specific controls that are implemented by the BIOS on a specific platform. These objects can be accessed from the OS level to provide applications with access to manipulating certain types of hardware on the platform. This control is accomplished by defining and implementing ACPI device objects in the platform BIOS according to this specification and accessing them through the XTU software. 3.1.5.1 Control Device Read (CDRD) The CDRD object is a control method which is implemented by the BIOS that allows for reading the current value of an object which is controllable in real-time. This object is only required to be implemented when supporting real-time control for platform specific hardware. Handlers to support Control IDs for Intel silicon based features are not required. An example implementation can be found in Section 3.1.7. Syntax for Signature Method(CDRD, 1, Serialized, 0, PkgObj, IntObj) Description The purpose of this method is to be able to read the current value of the hardware via a BIOS implemented custom interface. This method will always provide the data necessary to determine the current value of the actual platform hardware. Arguments The CDRD control method has one input argument. The sole input is the Control ID that should be read.

Intel Confidential

15

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Parameter Definitions
Field Name Definition

ControlID (Arg0)

This is a value which represents a specified control (see ENUMERATIONS). Table 14: CDRD Argument Definition

Result A package object is returned with the following definition: Name (RETV, Package() { // Field Name ErrorCode, DataValue }) Result Parameter Definitions
Field Name Definition

// Field Type // DWORD // DWORD

Defined as: Success == 0 ErrorCode Unexpected Error == 0xFFFFFFFF Any value that is returned which is not equal to 0 is considered a failure to read the device. In this case, the value of the DataValue field is defined as indeterminate and the caller should not use that data. DataValue The current value of the hardware as reported by the BIOS. The meaning of these values is defined by either the GET AVAILABLE CONTROLS (GACI) or the method. Table 15: CDRD Return Value Definition 3.1.5.2 Control Device Write (CDWR) The CDWR object is a control method which is implemented by the BIOS that allows for writing to an object which is controllable in real-time. This object is only required to be implemented when supporting real-time control for platform specific hardware. Handlers to support Control IDs for Intel silicon based features are not required. The detailed list is in the following table.
Subsystem Control IDs Definition

Processor

2Eh 2Fh 30h 43h 42h

Additional Turbo Mode CPU Voltage Short Window Package Total Design Power Limit Extended Window Package Total Design Power Limit Short Window Time (Sandy Bridge-E only) Extended Window Time 16 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Intel Confidential

33h 36h 3Fh Clocking 01h

IA Core Total Design Power Limit Internal Graphics Core Total Design Power Limit Runtime Turbo Override Reference Clock Frequency (Cougar Point Only)

Table 16: Control Ids with Runtime Support Built-In

An example can be found in Section 3.1.7. Syntax for Signature Method(CDWR, 2, Serialized, 0, IntObj, {IntObj, IntObj}) Description The purpose of this method is to be able to write the requested value to the hardware via a BIOS implemented custom interface. This method is responsible to write the requested value to hardware and return a success or fail status to the caller. Arguments The CDWR control method has two input arguments. Both arguments are DWORD values. The first argument is the Control ID. The second argument is the value to be written to the hardware. Parameter Definitions
Field Name Definition

ControlID (Arg0) DataValue (Arg1)

This is a value which represents a specified control (see ENUMERATIONS). The value that is being requested to be written to hardware. It will be a value the XTU software has retrieved from either the GET AVAILABLE CONTROLS (GACI) or the methods. Table 17: CDWR Argument Definition

Result Name (RETV, ErrorCode) Result Parameter Definitions


Field Name Definition

Defined as: Success == 0 ErrorCode Non-real Time Control ID requested = 1 Unexpected Error == 0xFFFFFFFF Any value that is returned which is not equal to 0 is considered a failure to write to the device.

Intel Confidential

17

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3.1.6 Monitor-Only Objects


The Monitor-Only objects provide access to various temperature, voltage, and fan data implemented by BIOS on a particular platform through an application level mechanism. This is accomplished by defining and implementing the methods described in this section within the platform BIOS and using software (i.e. Intel Extreme Tuning Utility) to view the thermal data. 3.1.6.1 Temperature Sensor Data Dump (TSDD) The TSDD method evaluates to a packaged list of information about available temperature sensors and the current absolute temperature values. This object is required to be implemented when using any Performance Tuning & Monitoring ACPI Devices. Typical temperature values returned by this object would include processor diode temperature (if available and accessible). Other platform temperature sensors like voltage regulator, memory, or notebook skin may also be returned. Syntax for Signature Method(TSDD, 0, NotSerialized, 0, PkgObject) Description The purpose of this method is to be able to get the current state of all temperatures on the platform which have been provided by the platform. Arguments No input parameters. Result Name (RETV, Package() { //Field Name UsageId1, UniqueId1, CurrentValue1 Reserved1, UsageIdN, UniqueIdN, CurrentValueN, ReservedN })

//Field Type // DWORD // DWORD // DWORD // DWORD

// // // //

DWORD DWORD DWORD DWORD

NOTE: If no temperature sensors are present on the system, then a null package must be returned for the TSDD object. Result Parameter Definitions
Field Name Definition

UsageId UniqueId Intel Confidential

Indicates the type of device the temperature value is reported for. The value must be one of the values from TABLE 30: TEMPERATURE (TSDD) USAGE ENUMERATION. The UniqueId value reported by BIOS in the TSDD package must uniquely identify a device within the Performance Tuning & Monitoring 18 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Field Name

Definition

ACPI Device scope (this includes VSDD and FSDD devices as well). The units of the current absolute temperature value returned must be 10ths of a Kelvin. For example, if the temperature is 30 degrees Celsius then the value returned must be (2732 + 300) = 3032. The value of the reserved field is 0000h. Table 18: TSDD Package Parameter Definitions 3.1.6.2 Voltage Sensor Data Dump (VSDD) The VSDD method evaluates to a packaged list of information about available voltage sensors and the current voltage values. This object is required when using any Performance Tuning & Monitoring ACPI Devices. Typical voltage values returned by this object would include CPU core, Uncore, Memory, and/or PCH. Syntax for Signature Method(VSDD, 0, NotSerialized, 0, PkgObject) Description The purpose of this method is to be able to get the current state of all voltages on the platform which have been provided by the platform. Arguments No input parameters. Result Name (VLTV, Package() { //Field Name UsageId1, UniqueId1, CurrentValue1 Reserved1, UsageIdN, UniqueIdN, CurrentValueN, ReservedN })

CurrentValue Reserved

//Field Type // DWORD // DWORD // DWORD // DWORD

// // // //

DWORD DWORD DWORD DWORD

NOTE: If no voltages are present on the system, then a null package must be returned for the VSDD object. Result Parameter Definitions
Field Name Definition

UsageId Intel Confidential

Indicates the type of device the voltage value is reported for. UsageId for VSDD package must be one of the values from TABLE 31: VOLTAGE (VSDD) USAGE ENUMERATION. 19 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Field Name

Definition

UniqueId

The UniqueId value reported by BIOS in the VSDD package must uniquely identify a device within the Performance Tuning & Monitoring ACPI Device scope (this includes TSDD and FSDD devices as well). The unit of the current voltage returned must be millivolts (mV). E.g., if the Voltage is 1.1 V, then the value returned must be 1100. The value of the reserved field is 0000h. Table 19: VSDD Package Parameter Definitions

CurrentValue Reserved

3.1.6.3

Fan Sensor Data Dump (FSDD) The FSDD method evaluates to a packaged list of information about available fan sensors and the current fan speed values. This object is required when using any Performance Tuning & Monitoring ACPI Devices. Syntax for Signature Method(FSDD, 0, NotSerialized, 0, PkgObject) Description The purpose of this method is to be able to get the current speed of all fans on the platform which have been provided by the platform. Arguments No input parameters. Result Name (RPMV, Package() { //Field Name UsageId1, UniqueId1, CurrentValue1, Reserved1, UsageIdN, UniqueIdN, CurrentValueN, ReservedN })

//Field Type // DWORD // DWORD // DWORD // DWORD

// // // //

DWORD DWORD DWORD DWORD

NOTE: If no fan sensors are present on the system, then a null package must be returned. Result Parameter Definitions
Field Name Definition

UsageId

Indicates the type of device the fan speed value is reported for. UsageId for FSDD package must be one of the values from TABLE 32: FAN (FSDD) USAGE ENUMERATION. 20 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Intel Confidential

Field Name

Definition

UniqueId

The UniqueId value reported by BIOS in the FSDD package must uniquely identify a device tithing the Performance Tuning & Monitoring ACPI Device scope (this includes TSDD and VSDD devices as well). The unit of the current fan speed returned must be rotations per minute (RPM). E.g., if the speed is 2500 RPM, then the value returned must be 2500. The value of the reserved field is 0000h. Table 20: FSDD Package Parameter Definitions

CurrentValue Reserved

3.1.6.4

Sensor Data Sampling Period (SDSP) This optional object evaluates to an integer to specify the sampling period to evaluate TSDD, VSDD and FSDD methods that would guarantee fresh data for temperature, voltage and fan speed values. The unit of sampling is in 10ths of seconds. For example, in a platform that has one temperature sensor, one voltage sensor and one fan speed sensor, if hardware implementation takes 100 ms (0.1 s), 200 ms (0.2 s) and 500 ms (0.5 s) to fetch temperature, voltage and fan speed values, then the SDSP must return 5. When this method is present, the OS/application level software should honor the value returned by this object. The OS/Application level software can evaluate the TSDD, VSDD and FSDD objects at a sampling rate of the period specified by this object or above. Syntax for Signature Method(SDSP, 0, NotSerialized, 0, IntObject) Description The purpose of this method is to get the recommended sampling period for the platform temperatures, voltages, and fans. Arguments No input parameters. Result Name(RETV, SamplingPeriod) Result Parameter Definitions
Field Name Definition

SamplingPeriod

Indicates the minimum sampling period that the application can use and expect to receive updated information from the platform for the TSDD, FSDD, and VSDD methods. Table 21: SDSP Result Parameter Definitions

Intel Confidential

21

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3.1.7 Example Implementation


First is the definition of BIOS POST time C-struct definitions and initialization. // // GACI structure definition // typedef struct ControlIdData { UINT32 ControlId; UINT16 NumberOfValues; UINT8 Precision; UINT8 Flags; UINT32 DefaultDataValue; UINT32 MinDataValue; UINT32 MaxDataValue; UINT32 MinDisplayValue; UINT32 MaxDisplayValue; } CONTROLID_DATA; #DEFINE SUPPORTED_CONTROLID_COUNT 6 // Count of 6 is an example typedef struct CtlBufer { CONTROLID_DATA CtrlID[SUPPORTED_CONTROLID_COUNT]; } CONTROLID_BUFF;

STATUS CreateGaciBuffer (VOID) { . . . CONTROLID_BUFF *CtlBuf;

AllocateMemory(EfiACPIMemoryNVS, sizeof(CONTROLID_BUFF), &CtlBuf); CtlBuf->CtrlID[0].ControlId CtlBuf->CtrlID[0].NumberOfValues CtlBuf->CtrlID[0].Precision CtlBuf->CtrlID[0].Flags CtlBuf->CtrlID[0].DefaultDataValue CtlBuf->CtrlID[0].MinDataValue CtlBuf->CtrlID[0].MaxDataValue CtlBuf->CtrlID[0].MinDisplayValue CtlBuf->CtrlID[0].MaxDisplayValue CtlBuf->CtrlID[1].ControlId CtlBuf->CtrlID[1].NumberOfValues CtlBuf->CtrlID[1].Precision CtlBuf->CtrlID[1].Flags CtlBuf->CtrlID[1].DefaultDataValue Intel Confidential 22 = = = = = = = = = = = = = = 0x00; MaxNonTurboRatio - MaxEffRatio+1; 0x00; 0x00; FlexRatioOverrideDefault; MaxEfficiencyRatio; MaxNonTurboRatio; MaxEfficiencyRatio; MaxNonTurboRatio; BIOS_DEVICE_HOST_CLK_FREQ; BclkMaxValue BclkMinValue + 1; 0x02; 0x00; 10000; Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

CtlBuf->CtrlID[1].MinDataValue CtlBuf->CtrlID[1].MaxDataValue CtlBuf->CtrlID[1].MinDisplayValue CtlBuf->CtrlID[1].MaxDisplayValue CtlBuf->CtrlID[3].ControlId CtlBuf->CtrlID[3].NumberOfValues CtlBuf->CtrlID[3].Precision CtlBuf->CtrlID[3].Flags CtlBuf->CtrlID[3].DefaultDataValue CtlBuf->CtrlID[3].MinDataValue CtlBuf->CtrlID[3].MaxDataValue CtlBuf->CtrlID[3].MinDisplayValue CtlBuf->CtrlID[3].MaxDisplayValue CtlBuf->CtrlID[4].ControlId CtlBuf->CtrlID[4].NumberOfValues CtlBuf->CtrlID[4].Precision CtlBuf->CtrlID[4].Flags CtlBuf->CtrlID[4].DefaultDataValue CtlBuf->CtrlID[4].MinDataValue CtlBuf->CtrlID[4].MaxDataValue CtlBuf->CtrlID[4].MinDisplayValue CtlBuf->CtrlID[4].MaxDisplayValue

= = = = = = = = = = = = = = = = = = = = = =

BclkMinValue; BclkMaxValue; BclkMinValue; BclkMaxValue; BIOS_DEVICE_tCL; tCL_MAX - tCL_MIN +1; 0x00; MIN_SETTING_LOW_PERFORMANCE; tCLDefault; tCL_MIN; tCL_MAX; tCL_MIN; tCL_MAX; BIOS_DEVICE_tRCD; tRCD_MAX - tRCD_MIN + 1; 0x0; MIN_SETTING_LOW_PERFORMANCE; tRCDDefault; tRCD_MIN; tRCD_MAX; tRCD_MIN; tRCD_MAX;

CtlBuf->CtrlID[5].ControlId CtlBuf->CtrlID[5].NumberOfValues CtlBuf->CtrlID[5].Precision CtlBuf->CtrlID[5].Flags CtlBuf->CtrlID[5].DefaultDataValue CtlBuf->CtrlID[5].MinDataValue CtlBuf->CtrlID[5].MaxDataValue CtlBuf->CtrlID[5].MinDisplayValue CtlBuf->CtrlID[5].MaxDisplayValue . . . }

= = = = = = = = =

BIOS_DEVICE_tRP; tRP_MAX - tRP_MIN + 1; 0x00; MIN_SETTING_LOW_PERFORMANCE; tRPDefault; tRP_MIN; tRP_MAX; tRP_MIN; tRP_MAX;

The example below illustrates a sample implementation of the Performance Tuning & Monitoring ACPI device in ASL. // // Define the XTU Device as a dynamically loadable SSDT or within the // DSDT under the \_SB scope // Scope (\_SB) { // First declare external variables for items that need to be Intel Confidential 23 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

// fixed up during POST // The XTUB structure should point at the CtlBuf which was // allocated and populated during POST (see previous C-struct // example). External(XTUB) OperationRegion (XNVS, SystemMemory, XTUB, 0x2000) Field (XNVS, ByteAcc, NoLock, Preserve) { XBUF, 0x16c0 // GACI Size specific to implementation } // Note: When declaring the device, any name unique to the // platform implementation can be used (i.e. PTMD as below) Device(PTMD) { Name(_HID, EISAID("INT3394")) Name(_CID, EISAID("PNP0C02")) Name(IVER, 0x00010000) Name(GSCV, 0x10000) Method(GACI, 0x0, NotSerialized, 0, { Name(RPKG, Package(0x2){}) Store(0x00,Index(RPKG, 0)) Store(XBUF, Index(RPKG, 1)) Return(RPKG) } Method(GDSV, 0x1, Serialized) { // The next line represents checking for specifically // supported ControlIDs. Typically this would be a // Case or If/ElseIf statement if multiple ControlIDs // were supported. The default condition should be // an error code where the assumption is that // Discrete values are not supported (or necessary) // for the requested ControlID. If(LEqual(Arg0, 0x07)) { Return(Package(0x2) { Zero, //Error Code Buffer() { 0x07,Zero,Zero,Zero,//Data Value 1 0x07,Zero,Zero,Zero,//Display Value 1 0x09,Zero,Zero,Zero,//Data Value 2 0x09,Zero,Zero,Zero //Display Value 2 Intel Confidential 24 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011 PkgObj) // Return package // ErrorCode // buffer

0x0e,Zero,Zero,Zero,//Data Value 3 0x0e,Zero,Zero,Zero //Display Value 3 } }) } Return(Package(0x1) { 0x01 //Error code for continuous settings }) } // This method is the Control Device Read // Arguments by number: // 0 - Method Name // 1 - Number of CDRD input parameters // 2 - Mutex Requirements (See the ACPI Spec) // 3 - SyncLevel (See the ACPI Spec) // 4 - Return Type // 5 - List of Input Types (1 Integer) Method(CDRD, 1, Serialized, 0, PkgObj, IntObj) { Return(Package(0x2) { Zero, //Error Code Zero //Current Value }) } // This method is the Control Device Write // Arguments by number: // 0 - Method Name // 1 - Number of CDWR input parameters // 2 - Mutex Requirements (See the ACPI Spec) // 3 - SyncLevel (See the ACPI Spec) // 4 - Return Type // 5 - List of Input Types (2 Integers) Method(CDWR, 0x2, Serialized, 0, IntObj, {IntObj, IntObj}) { Return(Zero) //Error Code } Name(TMPV, Package() { //UsageId //UniqueId 0x01, 0x0002, 0x03 0x0003, 0x06 0x0004, }) Name(VLTV, Package() { Intel Confidential 25 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

//Value 0, 0, 0,

//Reserved 0, 0, 0

//UsageId 0x01, 0x04 0x06 0x10 })

//UniqueId 0x0005, 0x0006, 0x0007, 0x0008,

//Value 0, 0, 0, 0,

//Reserved 0 0 0 0

Name(RPMV, Package() { //UsageId //UniqueId 0x01, 0x0009, 0x04 0x000A, 0x0C 0x000B, }) Method(TSDD) { Name(TMPC, 0)

//Value 0, 0, 0,

//Reserved 0 0 0

// Current Temperature Local Variable

// Implement temperature determination code here // E.g. If embedded controller firmware implements a // command to fetch various temperature values, // implement code to issue the command. Populate the // TMPV package with the right temperature values // Update CurrentValue1 in TMPV package with // the current Temperature Store(TMPC, Index(TMPV, 2)) // Update CurrentValue2 in TMPV package with // the current Temperature Store(TMPC, Index(TMPV, 6)) Return(TMPV) } Method(VSDD) { Name(VLTC, 0)

// Current volts Local Variable

// Implement voltage determination code here // E.g. If embedded controller firmware implements a // command to fetch various voltage values, implement // code to issue the command. Populate the LVTV // package with the right voltage values // Update CurrentValue1 in VLTV package with // the current Voltage Store(VLTC, Index(VLTV, 2)) // Update CurrentValue2 in VLTV package with Intel Confidential 26 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

// the current Voltage Store(VLTC, Index(VLTV, 6)) Return(VLTV) } Method(FSDD) { Name(RPMC, 0)

// Current RPM Local Variable

// Implement Fan speed RPM determination code here // E.g. If embedded controller firmware implements a // command to fetch various RPM values, implement // code to issue the command. Populate the RPMV // package with the current fan speed // Update CurrentValue1 in RPMV package with // the current Fan Speed Store(RPMC, Index(RPMV, 2)) // Update CurrentValue2 in RPMV package with // the current Fan Speed Store(RPMC, Index(RPMV, 6)) Return(RPMV) } Method(SDSP) { // Fastest sampling period supported // Expressed in tenths of a second Return(10) } } // End of PTMD Device }

3.2

Watchdog Timer

The only watchdog timer (WDT) implementation that is supported by this revision of XTU is the WDT that is integrated into the PCH. In order to support the PCH-based Watchdog Timer which is present on Cougar Pointbased platforms and newer, XTU BIOS support for the timer requires integration of the chipset reference code. This documentation is provided separately from the XTU BIOS Interface Specification and is available from your technical BIOS support contact at Intel. Aside from the integration of the reference code, no XTU-specific BIOS support code is necessary.

Intel Confidential

27

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3.3

SW SMI Real-Time Communications Interface

3.3.1 Overview
The main purpose of the SW SMI Real-Time Communications Interface is to read and write BIOS settings. This interface uses values that are obtained via data retrieved from the GET AVAILABLE CONTROLS (GACI) method described earlier in the document. These functions can be accessed in the Operating System via writes of the SW SMI Command Value to the SW SMI Port with the appropriate register settings which are described below.

3.3.2 BIOS Settings Structure


This structure defines the data that will be described by reads and writes to the BIOS SW SMI command defined by this specification. The BIOS is required to check the signature field and the length Field prior to writing any data to the buffer provided by the calling application. If either the signature or the length fields are not correct the BIOS must respond accordingly: If the signature field is correct, the current revision is supported, and the length field is sufficient, then fill in all the data, update the length field, and return successful. If the signature is correct but either the length is not sufficient to return all data or the revision is not supported, then fill in the correct length, major and minor revision fields and return the appropriate error or warning code. If the signature is not correct and it is not recognized then do not write any data to the supplied buffer and return an error. Data Structure:
Offset Name Length Value

00h 04h 08h 0Ah 0Ch 10h

Signature Length Major Revision Minor Revision BIOS Setting Count BIOS Setting Entry Array

DWORD DWORD WORD WORD DWORD Varies

$BD2 Varies 2 0 Varies Varies

Table 22: BIOS Settings Data Structure

Offset

Name

Length

Value

00h 04h

Control ID Data Value Table 23: BIOS Setting Entry

DWORD DWORD

Varies Varies

Intel Confidential

28

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3.3.3 Functions
3.3.3.1 Read BIOS Settings This function reads the value for all BIOS settings that are present on the interface and places them into a memory location pointed to by the caller. As stated in the overview, in order to access this function, XTU will write the SW SMI Command Value to the SW SMI Port. Prior to this the registers must be setup as described in the command data section. The BIOS Settings Data Structure on a read must contain a list of all values supported by the platform. Command Data: Note: BIOS must be able to address up to 4GB of physical memory from SMM to support this function. Use the data structure defined in Table 22: BIOS Settings Data Structure.
Register Value Definition

ECX EBX

00h Varies

Read BIOS Settings Command 32-bit Physical Memory Data Location of the location to be used for the returned BIOS Settings Data Structure (See Table 22)

Table 24: Read BIOS Settings Command, Register Setup 3.3.3.2 Write BIOS Settings This function writes all BIOS settings that are present on the interface based on the data contained in a memory location pointed to by the caller. As stated in the overview, in order to access this function, XTU will write the SW SMI Command Value to the SW SMI Port. Prior to the SMI invocation the registers must be setup as described in the command data section. The BIOS Settings Data Structure on a write command will only contain a list of values changed since the previous write. Command Data: Note: BIOS must be able to address up to 4GB of physical memory from SMM to support this function. Use the data structure defined in Table 22: BIOS Settings Data Structure.
Register Value Definition

ECX EBX

01h Varies

Write BIOS Settings Command 32-bit Physical Memory Data Location of the location to be used for the BIOS Settings Data Structure (See Table 22) to be written.

Table 25: Write BIOS Settings Command, Register Setup

3.3.4 Return Values


This table contains a list of possible error codes that can be returned from the BIOS in the EBX register to indicate the status of the last SMI call.

Intel Confidential

29

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3.3.4.1

Error Codes These codes define the return values that indicate a critical failure occurred during the SMI call. For all critical error conditions the high bit of the DWORD will be set. NOTE: For all Error Codes considered critical errors the high bit of the DWORD returned must be set.

Value 0x00 0x8001 0x8002 0x8003 0x8004 0x8006 0xFFFF Successful Invalid Signature supplied by caller

Definition

Table length is too small, valid header data returned Table length is too small, no header data returned Unknown Command in ECX Invalid SMI revision Internal BIOS error - used for BIOS errors that cannot be generically classified. Use ECX to return a value that will aid in debugging/explaining this return value in more detail. Any data contained in ECX when this code is returned is a BIOS specific value and is not defined by this specification. Table 26: BIOS Settings Command Error Codes

3.3.4.2

Warning Codes These codes define the return values that indicate some issue occurred with the call but the data was able to be returned. Each warning may indicate that a subset of the full data set was returned.

Value 0x0002 0x00FF

Definition Table length is too large (non-critical error). A complete data set of the supported table will be returned. Internal BIOS warning - used for BIOS warnings that cannot be generically classified. Use ECX to return a value that will aid in debugging/explaining this return value in more detail. Any data contained in ECX when this code is returned is a BIOS specific value and is not defined by this specification. Table 27: BIOS Settings Command Warning Codes

Intel Confidential

30

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Appendix A - Enumerations
The following tables represent all of the Control IDs supported by the XTU application. The first table has the Control IDs organized by subsystem for easy ability to find the appropriate devices. A separate table follows which lists all Control IDs numerically (TABLE 29: NUMERICALLY SORTED CONTROL ID ENUMERATIONS).

Table 28: Usage Sorted Control ID Enumerations


Subsystem Control IDs Definition Type Units

Processor

00h 1Ah 1Dh 1Eh 1Fh 20h 2Ah 2Bh 29h 2Eh 2Fh 30h 43h 42h 31h 32h 33h 34h 35h 36h 37h 38h 39h 3Ah 3Bh

Max Non-Turbo Processor Multiplier (also known as Flex Ratio) Turbo Mode Enable 1-Active Core Ratio Limit 2-Active Core Ratio Limit 3-Active Core Ratio Limit 4-Active Core Ratio Limit 5-Active Core Ratio Limit 6-Active Core Ratio Limit Enhanced Intel Speedstep Technology Enable Additional Turbo Mode CPU Voltage Short Window Package Total Design Power Limit Extended Window Package Total Design Power Limit Short Window Time (Sandy Bridge-E only) Extended Window Time Short Window Package Total Design Power Enable Package Total Design Power Lock Enable IA Core Total Design Power Limit IA Core Total Design Power Enable IA Core Total Design Power Lock Enable Internal Graphics Core Total Design Power Limit Internal Graphics Core Total Design Power Enable Internal Graphics Core Total Design Power Lock Enable IA Core Current Maximum Internal Graphics Core Current Maximum Graphics Turbo Ratio Limit 31

Numeric En/Dis Numeric Numeric Numeric Numeric Numeric Numeric En/Dis Numeric Numeric Numeric Numeric Numeric En/Dis En/Dis Numeric En/Dis En/Dis Numeric En/Dis En/Dis Numeric Numeric Numeric

None None None None None None None None None mV Watts Watts Seconds Seconds None None Watts None None Watts None None Amps Amps None

Intel Confidential

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

3Ch 3Fh 41h 46h 47h 48h Clocking 01h 45h Voltage 02h 22h 05h 44h 25h 26h 2Eh 3Ch 3Dh 3Eh 46h Memory 13h 07h 08h 09h 0Ah 0Bh 15h 16h 17h 18h 19h 27h 28h Intel Confidential

Additional Turbo Mode Graphics Core Voltage Runtime Turbo Override Internal PLL Overvoltage Enable Vboot Voltage (Sandy Bridge-E Only) Runtime Turbo Override Enable (Sandy Bridge-E Only) Configurable TDP (Ivy Bridge Only) Reference Clock Frequency Reference Clock Ratio (Sandy Bridge-E Only) CPU Voltage Override Dynamic CPU Voltage Offset Memory Voltage Secondary Memory VR Voltage (Sandy Bridge-E Only) System Agent Voltage PCH Voltage Additional Turbo Mode CPU Voltage Additional Turbo Mode Graphics Core Voltage CPU PLL Voltage CPU IO Voltage Vboot Voltage (Sandy Bridge-E Only) DDR Multiplier CAS Latency (tCL) Row Address to Column Address Delay (tRCD) Row Precharge Time (tRP) Row Active Time (tRAS) Write Recovery Time (tWR) Minimum Refresh Recovery Time (tRFC) Row Active to Row Active delay (tRRD) Internal Write to Read Command Delay (tWTR) System Command Rate Mode Read to Precharge delay (tRTP) Row Cycle Time (tRC) Four Active Window Delay (tFAW) 32

Numeric Numeric En/Dis Numeric En/Dis Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

mV None None Volts None Watts MHz None Volts mV Volts Volts Volts Volts mV mV Volts Volts Volts None Clocks Clocks Clocks Clocks Clocks Clocks Clocks Clocks None Clocks Clocks Clocks

2Ch 2Dh 40h

Average Periodic Refresh Interval (tREFI) Minimum CAS Write Latency Time (tCWL) XMP Profile Selection Enumeration Definition: 0 Default SPD Profile 1 Custom Timing Profile 2 XMP Profile 1 3 XMP Profile 2

Numeric Numeric

Clocks Clocks

Enum

Profile

49h

Memory Clock Multiplier (Ivy Bridge Only)

Numeric

None

Table 29: Numerically Sorted Control ID Enumerations


Control IDs Definition

00h 01h 02h 05h 07h 08h 09h 0Ah 0Bh 0Dh 0Eh 13h 15h 16h 17h 18h 19h 1Ah 1Dh 1Eh 1Fh Intel Confidential

Max Non-Turbo Processor Multiplier (also known as Flex Ratio) Reference Clock Frequency CPU Voltage Override Memory Voltage CAS Latency (tCL) Row Address to Column Address Delay (tRCD) Row Precharge Time (tRP) Row Active Time (tRAS) Write Recovery Time (tWR) PCI Express Frequency PCI Frequency DDR Multiplier Minimum Refresh Recovery Time (tRFC) Row Active to Row Active delay (tRRD) Internal Write to Read Command Delay (tWTR) System Command Rate Mode Read to Precharge delay (tRTP) Turbo Boost Technology Enable 1-Active Core Ratio Limit 2-Active Core Ratio Limit 3-Active Core Ratio Limit 33 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Control IDs

Definition

20h 22h 25h 26h 27h 28h 29h 2Ah 2Bh 2Ch 2Dh 2Eh 2Fh 30h 31h 32h 33h 34h 35h 36h 37h 38h 39h 3Ah 3Bh 3Ch 3Dh 3Eh 3Fh 40h 41h Intel Confidential

4-Active Core Ratio Limit CPU Voltage Offset System Agent Voltage PCH Voltage Row Cycle Time (tRC) Four Active Window Delay (tFAW) Enhanced Intel Speedstep Technology Enable/Disable 5-Active Core Ratio Limit 6-Active Core Ratio Limit Average Periodic Refresh Interval (tREFI) Minimum CAS Write Latency Time (tCWL) Max Turbo Mode CPU Voltage Short Window Package Total Design Power Limit Extended Window Package Total Design Power Limit Short Window Package Total Design Power Enable Package Total Design Power Lock Enable IA Core Total Design Power Limit IA Core Total Design Power Enable IA Core Total Design Power Lock Enable Internal Graphics Core Total Design Power Limit Internal Graphics Core Total Design Power Enable Internal Graphics Core Total Design Power Lock Enable IA Core Current Maximum Internal Graphics Core Current Maximum Graphics Turbo Ratio Limit Graphics Core Voltage CPU PLL Voltage CPU IO Voltage Runtime Turbo Override XMP Profile Selection Internal PLL Overvoltage Enable 34 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Control IDs

Definition

42h 43h 44h 45h 46h 47h 48h 49h

Extended Time Window Short Time Window (Sandy Bridge-E only) Secondary Memory VR Voltage (Sandy Bridge-E only) Reference Clock Ratio (Sandy Bridge-E only) Vboot Voltage (Sandy Bridge-E Only) Runtime Turbo Override Enable (Sandy Bridge-E Only) Configurable TDP (Ivy Bridge Only) Memory Clock Multiplier (Ivy Bridge Only)

Table 30: Temperature (TSDD) Usage enumeration


Enumeration Definition

00h 01h 02h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h Intel Confidential

Unknown CPU Core CPU Die Voltage Regulator (VR) DIMM Motherboard Ambient System Ambient CPU Inlet System Inlet System Outlet Power Supply Power Supply Inlet Power Supply Outlet Hard Drive Graphics Processor Unit (GPU) Laptop Skin Optical Disk Drive PCMCIA slot PCH Battery 35 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Table 31: Voltage (VSDD) Usage enumeration


Enumeration Definition

00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Dh 0Fh 10h 11h 12h 13h 14h 15h 16h

Unknown +12 Volt -12 Volt +5 Volt +5 Volt Backup -5 Volt 3.3 Volt 2.5 Volt 1.5 Volt CPU Voltage Power Supply Inlet +3.3 Volt Standby CPU System Agent Voltage 1.8 Volt PCH Voltage DDR Voltage Battery CPU IO Voltage CPU PLL Voltage

Table 32: Fan (FSDD) Usage enumeration


Enumeration Definition

00h 01h 02h 04h 05h 06h 07h 08h Intel Confidential

Unknown/Other Usage CPU CPU System Voltage Regulator Chassis Chassis Inlet Chassis Outlet Power Supply 36 Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

Enumeration

Definition

09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh FFh

Power Supply Inlet Power Supply Outlet Hard Disk Graphics Auxiliary PCH Battery Unused

Intel Confidential

37

Intel Extreme Tuning Utility BIOS Interface Specification Rev. 0.82 - July 1, 2011

You might also like