You are on page 1of 19

Specification

MXM Graphics Module Software Specification

SP-01284-001_v0.9 May 2004

Document Change History

Version
0.9

Date
05/14/04

Reason for Change


Initial Release

SP-01284-001_v0.9

i 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

SP-01284-001_v0.9

ii 05/14/04

List of Tables
Table 1. Table 2. Table 3. Table 4. Table 5. Table 6. Table 7. Table 8. Table 9. Table 10. 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 ............................................................................... 8 MXM GPIO Device Structure............................................................................... 9 GPIO Pin Structure ............................................................................................ 9 GPIO Function Number.....................................................................................10 MXMGetThermalSettings Bit Definitions .............................................................17 MXMSetThermalData Bit Definitions...................................................................17

SP-01284-001_v0.9

iii 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. The panel and backlight power will be controlled by the MXM video BIOS and drivers.

Note:

SP-01284-001_v0.9

4 05/14/04

MXM Software Specification

MXM Structure
MXM Header Structure
Table 1 lists the MXM header structure.

Table 1.
Offset
0000 0004 0005 0006

MXM Header Structure


Field Definition
MXM_ Version = 0x01 Revision = 0x00 MXM structure length

Description
MXM header string MXM structure version number. Hex Value MXM structure revision number. Hex Value 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


Description
Descriptor Type 0x00. Output Device Structure Device Type DDC Port Device

Field Definition
Descriptor[03:00] = 00 Type[07:04] DDC Port [11:08] Reserved[15:12]

SP-01284-001_v0.9

5 05/14/04

MXM Software Specification

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.
Field Definition

MXM TV Output Device Structure


Description
Descriptor Type 0x01. TV Output Device Structure Format of TV output TV DAC connection on board

Descriptor[03:00] = 01 Format[07:04] TVDAC[11:08]

SP-01284-001_v0.9

6 05/14/04

MXM Software Specification

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


Description
Descriptor Type 0x02. Thermal Design Power Structure Type of thermal power information 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.

Field Definition
Descriptor [03:00] = 02 Type [07:04] Value [17:08]

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.

SP-01284-001_v0.9

7 05/14/04

MXM Software Specification

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


Description
Descriptor Type 0x03. Input Power Structure Type of Input Power Value of Input Power. Power (in Watts) calculated by multiplying the value in this field by the value in the Scale field. 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

Field Definition
Descriptor [03:00] = 03 Type [07:04] Value [17:08]

Scale [19:18]

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.

SP-01284-001_v0.9

8 05/14/04

MXM Software Specification

Table 6.

MXM GPIO Device Structure


Description
Descriptor Type 0x04. MXM GPIO device structure Type of GPIO device attached = 00h : Philips PCA9555 = FEh 01h : Reserved = FF : Last GPIO device structure 7-bit serial link communication address left justified to bits 7:1, with a 0 in bit 0.

Field Definition
Descriptor [03:00]=04 TYPE [11:04]

[19:12] Reserved [27:20] Number GPIO entries [31:28]

Number of GPIO pin entries.

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

Table 7.
Name
GPIO Number FUNCTION GPIO Usage

GPIO Pin Structure


Bit Width
5 6 4

Description
GPIO Number associated to this GPIO pin This identifies the function of the GPIO pin. See GPIO Function number table below. 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. If this bit is 1, then this GPIO is used with PWM.

Pulse Width Modulate

SP-01284-001_v0.9

9 05/14/04

MXM Software Specification

Table 8.
GPIO Function number
0 1 2 3 4

GPIO Function Number


Description

LCD Power Status: Panel Power status LCD Self Test LCD Lamp Status HDTV Select: Allows selection of lines driven between SDTV - Off state, and HDTV - On State. 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. Skip Entry. This allows for quick removal of an entry from the GPIO Assignment table.

63

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.

SP-01284-001_v0.9

10 05/14/04

MXM Software Specification

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 = BL = 005Fh to indicate that the system bios supports this function 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)

SP-01284-001_v0.9

11 05/14/04

MXM Software Specification

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.

SP-01284-001_v0.9

12 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.

SP-01284-001_v0.9

13 05/14/04

MXM Software Specification

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..

SP-01284-001_v0.9

14 05/14/04

MXM Software Specification

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. 2.

While Tsensor < 70 Tup_threshold, nothing happens (SBIOS is not notified). When Tsensor 70 Tup_threshold, SBIOS is notified by MXM software when Tsensor reaches 70C, and every time the sensor temperature changes by 10C above 70C (i.e., 70C, 80C, 90C, etc.). For the same Tthreshold and Tresolution, the following occurs when the sensor temperature decreases from Tsensor = 90: While Tsensor 70 Tup_threshold, SBIOS is notified by MXM software every time the sensor temperature changes by 10C above 70C (i.e., 80C, 70C). When Tsensor crosses 60 (Tsensor <= Tdown_threshold), SBIOS is notified once by MXM software. After this, while Tsensor < 70, nothing happens (SBIOS is not notified).

3. 4. 5. 6. 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).

SP-01284-001_v0.9

15 05/14/04

MXM Software Specification

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.

SP-01284-001_v0.9

16 05/14/04

MXM Software Specification

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 {2E851DA6D053-495f-9DFA-1A4AD62E6A86}. Arguments: None. Return Value: A 32-bit value with bit definitions as described in Table 9.

Table 9.
Bits
7:0 15:8 31:16

MXMGetThermalSettings Bit Definitions


Definition
Tthreshold Tresolution 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-FBDD4c72-BCB8-435BFE0D64F9}. Arguments: A 32-bit value with bit definitions as described in Table 10. Return Value: None.

Table 10.
Bits
7:0 31:8

MXMSetThermalData Bit Definitions


Definition
Tsensor Reserved

SP-01284-001_v0.9

17 05/14/04

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

NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050 www.nvidia.com

You might also like