mxm software spec

19
Specification MXM Graphics Module Software Specification SP-01284-001_v0.9 May 2004

Upload: daniel-daniel

Post on 22-Oct-2015

232 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: MXM Software Spec

Specification

MXM Graphics Module Software Specification

SP-01284-001_v0.9 May 2004

Page 2: MXM Software Spec

SP-01284-001_v0.9 i 05/14/04

Document Change History

Version Date Reason for Change 0.9 05/14/04 Initial Release

Page 3: MXM Software Spec

SP-01284-001_v0.9 ii 05/14/04

Table of Contents

Document Change History.............................................................................................. i MXM Software ...............................................................................................................4

Software Control of the MXM.............................................................................................. 4 MXM Structure................................................................................................................... 5

MXM Header Structure................................................................................................... 5 MXM Output Device Structure ........................................................................................ 5 MXM TV Output Device Structure ................................................................................... 6 MXM Thermal Design Power Structure ............................................................................ 7 MXM Input Power Structure ........................................................................................... 7 MXM GPIO Device Structure........................................................................................... 8 MXM Checksum Byte ....................................................................................................10

Using a Serial ROM to Access the MXM Structure................................................................10 MXM INT 15H System BIOS Callbacks ................................................................................11

Function 0 – Return Specification Support Level .............................................................11 Function 1 – Return a Pointer to the MXM Structure .......................................................11 Function 2 – Return a Pointer to the EDID Structure for the LVDS Panel ..........................12

MXM Thermal Control for System Designers...............................................................13 MXM Thermal Control Protocol ..........................................................................................14

Using the Protocol ........................................................................................................15 Supporting MXM Thermal Control in the SBIOS (Windows)..................................................16 MXMGetThermalSettings ...................................................................................................17 MXMSetThermalData ........................................................................................................17

Page 4: MXM Software Spec

SP-01284-001_v0.9 iii 05/14/04

List of Tables

Table 1. MXM Header Structure....................................................................................... 5 Table 2. MXM Output Device Structure ............................................................................ 5 Table 3. MXM TV Output Device Structure ....................................................................... 6 Table 4. MXM Thermal Design Power Structure ................................................................ 7 Table 5. MXM Input Power Structure ............................................................................... 8 Table 6. MXM GPIO Device Structure............................................................................... 9 Table 7. GPIO Pin Structure ............................................................................................ 9 Table 8. GPIO Function Number.....................................................................................10 Table 9. MXMGetThermalSettings Bit Definitions .............................................................17 Table 10. MXMSetThermalData Bit Definitions...................................................................17

Page 5: MXM Software Spec

SP-01284-001_v0.9 4 05/14/04

MXM Software

Software Control of the MXM

MXM Graphics Module™ software includes a video BIOS and an OS specific driver.

The video BIOS is stored on an EPROM located on the MXM graphics module. Merging the VBIOS with the System BIOS in a single ROM on the motherboard is not supported with MXM, since the module is removable.

Required system support for MXM software includes a set of MXM information tables which include information such as

Notebook output configurations Video out configuration MXM heat sink thermal rating Notebook power supply capabilities

This table is stored either in a separate MXM ROM on the motherboard or in a table within the SBIOS. In the case of a separate ROM, the VBIOS reads the ROM through the MXM connector using the DDC_C serial link. In the case of a table merged into the SBIOS, the VBIOS will obtain a pointer to the table via an INT 15h call to the SBIOS at POST time.

The MXM software will interpret the contents of the MXM Structure. The operating system does not need any knowledge of the MXM. The video BIOS and graphics driver will act exactly as they would on non-MXM systems. Advanced control of the MXM graphics module, including calibration and control of thermal sensors, is handled by the driver. If system thermal control requires thermal data from the MXM, it can be provided to the system through several mechanisms (e.g., to the SBIOS via WMI), a process which is documented later in this section.

Note: Because system information used in the graphics subsystem is obtained from the system at runtime, the MXM graphics module should never be used as a secondary graphics adapter.

Note: The panel and backlight power will be controlled by the MXM video BIOS and drivers.

Page 6: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 5 05/14/04

MXM Structure

MXM Header Structure Table 1 lists the MXM header structure.

Table 1. MXM Header Structure

Offset Field Definition Description 0000 “MXM_” “MXM” header string

0004 Version = 0x01 MXM structure version number. Hex Value

0005 Revision = 0x00 MXM structure revision number. Hex Value

0006 MXM structure length Byte length of MXM structure

MXM Output Device Structure The MXM output device structure (Table 2), allows defining up to eight output devices. Each device entry is 12 bit, and defines the device type and DDC port of the device.

The DESCRIPTOR field defines what kind of structure information is being stored. A descriptor of 0x00 means this is an output device structure.

The TYPE field defines the type of output device. The TYPE field is 4 bits wide. The definition of this field is:

0x00 = CRT

0x01 = TV

0x02 = DVI_A panel.

0x03 = DVI_B panel

0x0F = End of list flag. Last device in device structure.

The DDC PORT field defines which DDC port the output device is connected to. The DDC PORT field is 4 bits wide. The definition of this field is:

0x00 = DDC Port A

0x01 = DDC Port B

Table 2. MXM Output Device Structure

Field Definition Description Descriptor[03:00] = 00 Descriptor Type 0x00. Output Device Structure

Type[07:04] Device Type

DDC Port [11:08] DDC Port Device

Reserved[15:12]

Page 7: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 6 05/14/04

MXM TV Output Device Structure The MXM TV output device structure (Table 3) is used to define the TV format (NTSC, PAL or HDTV) and the TV DAC connection.

The DESCRIPTOR field defines what kind of structure information is being stored. A descriptor of 0x01 means this is a TV output device structure.

The FORMAT field defines the default format of the TV output. The FORMAT field is 4 bits wide. The definition of this field is:

0x00 = NTSC_M

0x01 = NTSC_J

0x02 = PAL_M

0x03 = PAL_BDGHI

0x04 = PAL_N

0x05 = PAL_NC

0x06 = Reserved

0x07 = Reserved

0x08 = HD576i

0x09 = HD480i

0x0A = HD480p

0x0B = HD576p

0x0C = HD720p

0x0D = HD1080i

0x0E = HD1080p

0x0F = Reserved

The TV DAC field defines which TV interfaces are implemented on the motherboard including HDTV support. The definition of this field is:

Bit 0 = Composite supported

Bit 1 = S-video supported

Bit 2 = HDTV output supported

Bit 3 = Reserved

Table 3. MXM TV Output Device Structure

Field Definition Description Descriptor[03:00] = 01 Descriptor Type 0x01. TV Output Device Structure

Format[07:04] Format of TV output

TVDAC[11:08] TV DAC connection on board

Page 8: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 7 05/14/04

MXM Thermal Design Power Structure The MXM thermal design power structure (Table 4) defines the power dissipation capability of the MXM thermal solution contained in the system.

The DESCRIPTOR field defines what kind of structure information is being stored. A descriptor of 0x02 means this is a thermal design power structure.

The TYPE field defines the type of thermal design power information. The TYPE field is 4 bits wide. The definition of this field is:

0x00 = Total Power

0x01 = GPU

0x02 = Memory

The VALUE field defines how much power is required for the type (Total Power, GPU, and Memory), defined.

Table 4. MXM Thermal Design Power Structure

Field Definition Description Descriptor [03:00] = 02 Descriptor Type 0x02. Thermal Design Power Structure

Type [07:04] Type of thermal power information

Value [17:08] Power rate of the type of device. Value is in 100 milliWATTS (100 mw) Example, a value of 0x78 (120) is 12.0 watts and a value of 0x145(325) is 32.5 watts.

Reserved [31:18]

MXM Input Power Structure The MXM input power structure (Table 5) defines the maximum continuous available input power provided by the system.

The DESCRIPTOR field defines the type of structure information is stored. A descriptor of 0x03 means this is an MXM input power structure.

The TYPE field defines the type of input power. The TYPE field is 4 bits wide. The definition of this field is as follows:

0x00 = Power_Source

The VALUE field in combination with the SCALE field defines the upper limit on power supplied by the input power type. Power (in Watts) is calculated by multiplying the value in the VALUE field by the value in the SCALE field.

Page 9: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 8 05/14/04

The SCALE field defines multiplication factor for the VALUE field. Range is from Watts to milliWatts. The definition of this field is as follows:

00b = 1.0x

01b = 0.1x

10b = 0.01x

11b = 0.001x

Table 5. MXM Input Power Structure

Field Definition Description Descriptor [03:00] = 03 Descriptor Type 0x03. Input Power Structure

Type [07:04] Type of Input Power

Value [17:08] Value of Input Power. Power (in Watts) calculated by multiplying the value in this field by the value in the Scale field.

Scale [19:18] Specifies the scale used for the Input Power Value. Range of values are - 00b = 1.0x, - 01b = 0.1x, - 10b = 0.01x and - 11b = 0.001x. The default value is 00b

Reserved [31:18]

MXM GPIO Device Structure It is assumed that the external GPIO device is on DDC C.

The MXM GPIO device structure (Table 6) is used to define which MXM GPIO pins are attached to an external device.

This structure consists of a header structure with the DESCRIPTOR, TYPE, and other info. This is followed by a series of GPIO Entries which enumerate the function and usage of all the MXM GPIO pins used.

The DESCRIPTOR field defines what kind of structure information is being stored. A descriptor of 0x04 means this is a GPIO device structure.

The TYPE field defines what kind of GPIO device is attached. Serial Link Address field defines the serial link address where the external GPIO is located on.

Number GPIO entries field defines the number of GPIO entries which are defined.

Page 10: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 9 05/14/04

Table 6. MXM GPIO Device Structure

Each GPIO pin entry has the following structure (Table 7):

Table 7. GPIO Pin Structure

Name Bit Width Description GPIO Number 5 GPIO Number associated to this GPIO pin

FUNCTION 6 This identifies the function of the GPIO pin. See GPIO Function number table below.

GPIO Usage 4 Defines the usage of this GPIO Pin. The definition of this field is as follows: 0x01 = Inverted Output 0x04 = Standard Output 0x0B = Inverted Input 0x0C = Tristated Voltage 0x0E = Standard Input Note: Any unassigned values are assumed as RESERVED.

Pulse Width Modulate 1 If this bit is 1, then this GPIO is used with PWM.

Field Definition Description Descriptor [03:00]=04 Descriptor Type 0x04. MXM GPIO device structure

TYPE [11:04] Type of GPIO device attached

= 00h : Philips PCA9555

= FEh – 01h : Reserved

= FF : Last GPIO device structure

[19:12]

7-bit serial link communication address left justified to bits 7:1, with a 0 in bit 0.

Reserved [27:20]

Number GPIO entries [31:28] Number of GPIO pin entries.

Page 11: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 10 05/14/04

Table 8. GPIO Function Number

GPIO Function number

Description

0 LCD Power Status: Panel Power status

1 LCD Self Test

2 LCD Lamp Status

3 HDTV Select: Allows selection of lines driven between SDTV - Off state, and HDTV - On State.

4 HDTV Alt-Detect: Allows detection of the connectors that are not selected by HDTV Select. That is, if HDTV Select is currently selecting SDTV, then this GPIO would allow us to detect the presence of the HDTV connection.

63 Skip Entry. This allows for quick removal of an entry from the GPIO Assignment table.

MXM Checksum Byte The MXM checksum byte is a CRC byte checksum found at the last byte in the MXM table.

Using a Serial ROM to Access the MXM Structure

The MXM Structure can be accessed from a serial ROM which is placed on the motherboard. Communication is through serial link DDC-C and the ROM device is assumed to be at address ACh/ADh. The MXM structure is read out of the ROM by the video BIOS during POST, as a series of sequential bytes starting at offset 0 in the ROM.

The use of a serial ROM on the motherboard is optional. A second option is to use the INT 15h callback described below in order to get the MXM structure from the system BIOS. The video BIOS will attempt the callback first, and try to find the serial ROM only if the callback fails.

Page 12: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 11 05/14/04

MXM INT 15H System BIOS Callbacks

A set of system BIOS callback functions has been defined in order to allow the communication of system information between the video BIOS and the system BIOS.

If the system BIOS does not support any of the functions described, it should return from the callback with something other than 005Fh in AX. The video BIOS will then attempt to find a serial ROM with the MXM information.

Function 0 – Return Specification Support Level This function allows the video BIOS to get information from the system BIOS about the level of the MXM Software Specification that the system supports, and the support information for individual functions.

Entry:

AX = 5F80h

BL = 00h

Return:

AX = 005Fh to indicate that the system bios supports this function

BL = Revision of the MXM software specification that is supported

Format is binary coded decimal, for example:

10h = 1.0, 11h = 1.1, 21h = 2.1, etc.

CX = MXM functions supported

Bit 0 = 1

Bit 1 = 1 if Function 1 is supported, 0 if not supported

Bit 2 = 1 if Function 2 is supported, 0 if not supported

Function 1 – Return a Pointer to the MXM Structure This function will return a pointer to the MXM structure, which is stored in the system BIOS ROM area or some other memory location which is accessible in real mode during video POST.

Entry:

AX = 5F80h

BL = 01h

Return:

AX = 005Fh to indicate that the system bios supports this function

ES:DI = Pointer to the MXM structure in real mode memory (< 1MB)

Page 13: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 12 05/14/04

Function 2 – Return a Pointer to the EDID Structure for the LVDS Panel

This function allows the video BIOS to receive a pointer to the EDID structure that should be used for the embedded LVDS panel in the system. This is useful in cases where the panel being used does not have an EDID structure which can be read through DDC methods. This structure resides in the system BIOS ROM area or in another memory location that is accessible in real mode during video POST.

Entry:

AX = 5F80h

BL = 02h

Return:

AX = 005Fh to indicate that the system bios supports this function

ES:DI = Pointer to the EDID structure in real mode memory (< 1MB)

The EDID Structure should be in the 128 byte VESA 1.X format. The video BIOS will attempt to read the EDID using this INT 15h callback first, then attempt to read the panel EDID via DDC, only if this function fails.

Page 14: MXM Software Spec

SP-01284-001_v0.9 13 05/14/04

MXM Thermal Control for System Designers

The MXM thermal control protocol provides a vendor-independent means of implementing thermal management for (but not limited to) MXM system designs. The three main components involved are:

The thermal sensor and controlling hardware on the MXM module (sensor), The system BIOS (SBIOS), Graphics driver and application software (MXM software).

The thermal sensor is controlled by the MXM software, which contains support for all thermal sensors that may be used on MXM modules and performs any additional calibration which may be required. The MXM software supplies temperature information to the system BIOS (SBIOS) through a simple mechanism described in the following section. Sample code is also provided to simplify the implementation task for system designers.

Currently, the thermal control protocol is designed for Windows operating systems only. Extensions of this protocol are under way to include the Linux operating system.

For system utilities running under any operating system, an alternative approach is to query the graphics driver directly for temperature information. The API and capabilities for such an API may vary per graphics vendor.

Page 15: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 14 05/14/04

MXM Thermal Control Protocol

The protocol uses the following definitions. All temperatures are measured in degrees Celsius (°C).

Tthreshold Temperature threshold at or above which SBIOS must be notified of temperature.

Tresolution The amount of change in temperature from that of the previous notification at which the SBIOS must be notified again.

Tsensor Temperature measured by the thermal sensor.

The protocol specifies the following operations. Support for these operations must be implemented by both SBIOS and the MXM software.

MXMGetThermalSettings A query operation performed by MXM software to obtain Tthreshold and Tresolution from the SBIOS. This query is performed only once at startup, when MXM software is loaded by the operating system.

MXMSetThermalData A set operation performed by MXM software, when appropriate, to notify SBIOS of Tsensor. This set method is called according to actual Tthreshold and Tresolution values, as described below.

SBIOS support for the protocol is described below in the section Error! Reference source not found..

Page 16: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 15 05/14/04

Using the Protocol For the sake of discussion, it is convenient to create these additional definitions:

Tup_threshold = Tthreshold Tdown_threshold = Tthreshold − Tresolution

The SBIOS will be notified of temperature every Tresolution steps from when the sensor temperature exceeds Tup_threshold, until it drops below Tdown_threshold.

For example, if Tthreshold = 70 and Tresolution = 10, then the following occurs when the sensor temperature increases from Tsensor = 50:

1. While Tsensor < 70 ≡ Tup_threshold, nothing happens (SBIOS is not notified).

2. When Tsensor ≥ 70 ≡ Tup_threshold, SBIOS is notified by MXM software when Tsensor reaches 70°C, and every time the sensor temperature changes by 10°C above 70°C (i.e., 70°C, 80°C, 90°C, etc.).

3. For the same Tthreshold and Tresolution, the following occurs when the sensor temperature decreases from Tsensor = 90:

4. While Tsensor ≥ 70 ≡ Tup_threshold, SBIOS is notified by MXM software every time the sensor temperature changes by 10°C above 70°C (i.e., 80°C, 70°C).

5. When Tsensor crosses 60 (Tsensor <= Tdown_threshold), SBIOS is notified once by MXM software.

6. After this, while Tsensor < 70, nothing happens (SBIOS is not notified).

7. The protocol can be used to control a system fan, for instance: While no notifications occur, the system fan remains off. The fan starts when notifications of Tsensor ≥ Tup_threshold begin, and continues

given these notifications. The fan stops with any notification of Tsensor ≤ Tdown_threshold (upon which

notifications will end).

Page 17: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 16 05/14/04

Supporting MXM Thermal Control in the SBIOS (Windows)

Communication between the SBIOS and MXM software uses the Windows Management Instrumentation (WMI) ACPI-to-WMI mapping functionality provided by Windows device drivers ACPI.SYS and WMIACPI.SYS. For more information on ACPI-to-WMI mapping, see Microsoft WHDC article, Windows Instrumentation: WMI and ACPI (http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx).

To support the MXM thermal control protocol, a device with an _HID of PNP0c14 must be created in ASL in the SBIOS. This device must have data block query (WQxx) and set (WSyy) methods that support the MXMGetThermalSettings and MXMSetThermalData operations.

Sample ASL code is provided in the section Error! Reference source not found.. Because the GUIDs in the ASL code needed to support this protocol must correspond exactly to those expected in the MOF file used by MXM software, we recommend copying the code directly from the sample and then customizing as needed.

Page 18: MXM Software Spec

MXM Software Specification

SP-01284-001_v0.9 17 05/14/04

MXMGetThermalSettings MXMGetThermalSettings is a query (or WMI instance “get”) operation performed by MXM software to obtain Tthreshold and Tresolution values from the SBIOS. This query is performed only once at startup, when MXM software is loaded by Windows.

MXMGetThermalSettings must be implemented by the SBIOS as an ACPI data block query method with GUID as indicated in the sample code, or “{2E851DA6-D053-495f-9DFA-1A4AD62E6A86}”.

Arguments: None. Return Value: A 32-bit value with bit definitions as described in Table 9.

Table 9. MXMGetThermalSettings Bit Definitions

Bits Definition 7:0 Tthreshold

15:8 Tresolution

31:16 Reserved; must be 0

MXMSetThermalData MXMSetThermalData is a set (or WMI instance “put”) operation performed by MXM software, when appropriate, to notify SBIOS of Tsensor. This set method is called depending on the actual values of Tthreshold and Tresolution.

MXMSetThermalData must be implemented by the SBIOS as an ACPI data block set method with GUID as indicated in the sample code, or “{71436D3A-FBDD-4c72-BCB8-435BFE0D64F9}”.

Arguments: A 32-bit value with bit definitions as described in Table 10. Return Value: None.

Table 10. MXMSetThermalData Bit Definitions

Bits Definition 7:0 Tsensor

31:8 Reserved

Page 19: MXM Software Spec

NVIDIA Corporation 2701 San Tomas Expressway

Santa Clara, CA 95050 www.nvidia.com

Notice

ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication or otherwise under any patent or patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. NVIDIA Corporation products are not authorized for use as critical components in life support devices or systems without express written approval of NVIDIA Corporation.

Trademarks

NVIDIA, the NVIDIA logo, and MXM Graphics Module, are trademarks of NVIDIA Corporation in the United States and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.

Copyright

© 2004 by NVIDIA Corporation. All rights reserved