|
Abstract: |! F r* y% w# f0 }6 Z) ^
This white paper provides detailed information about the required ACPI and display driver capabilities to support communication between the BIOS and graphics hardware on systems running the Microsoft® Windows Vista™ operating system.
" J5 l9 v5 \2 V8 n# S( DThe current version of this paper is maintained on the Web at: - n8 N- F. y/ ^3 c- T+ x3 N
http://go.microsoft.com/fwlink/?LinkId=50987
/ G6 ~: o5 w- E) t7 BReferences and resources discussed here are listed at the end of this paper.$ l5 N6 m$ V' E: M: L
Contents
2 H" a! b1 i; l: DIntroduction 31 K5 @! a+ T) E$ _# P
ACPI Methods for Display and BIOS Communications 3" b; x" O- N; L; W; n
ACPI Notifications 4
) k; a2 c% W4 l. J; d/ KACPI Method Evaluations 41 L e; p# p+ q0 ~
BIOS Support 4
) r# Y3 X- {" n2 P# FUsing ACPI Methods: Examples 5! S; D! l2 M' p2 q0 y
Summary 5
1 w. h; v- k$ B7 T) ZResources 6) j1 |8 \+ {# l" V# p" Z
1 D7 t' z" w: b$ `5 _7 c
Disclaimer5 w+ I% R) g7 Z3 G+ l5 P
This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein. ) j" L! M' K$ T: u
, [7 l! V; I; t" C5 e1 fThe information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
2 e. u" u( B1 t% @! \7 g2 w0 e( z) {! I( b0 z/ D+ k5 }; ^
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.9 J' I. P& j9 l, O$ [0 M
5 l; `* D" a2 _, |. Q4 DComplying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
8 J( a) ?+ q. p- x" |" e3 ]
" m, C8 \3 a" `2 f; M0 y3 f, CMicrosoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
s9 Z; A) t' ~3 w
- i9 b" I( G7 H0 `% J, s9 `4 ^Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred.
* M0 h3 n b2 o7 U) ~. [9 i8 }4 n& E% M% T
© 2006 Microsoft Corporation. All rights reserved.
9 C- a; L5 c' [, m0 r- t- E+ W% A3 |9 p$ r* K+ E( u5 A+ }
Microsoft, Windows, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.4 U N- H! e0 d
. V; B' c9 O5 r: k6 sThe names of actual companies and products mentioned herein may be the trademarks of their respective owners.! m8 Y) M }4 t. u
+ J& o3 a( j4 F$ i
Introduction
, z0 ^+ G) m+ EDisplay drivers often communicate with the system BIOS to provide advanced functionality that might depend on machine-specific or OEM-specific system BIOS implementations. Display driver and system BIOS dependencies are especially common in mobile platforms, where each manufacturer might differentiate the platform and provide value-add software and capabilities.
/ s9 C# r. r1 g8 ]Historically, display drivers without direct control of the hardware used legacy methods to communicate with the system BIOS, usually to enable mobile PC platform features such as:
9 g" N p" D) [5 a! {4 f• Power management
* }7 u5 R! B# j0 V• Brightness control
5 u3 f3 `! J5 H& q! g• Hotkey clone mode (for connecting a laptop to a projector), j$ I, Q& E5 M& B
• Retrieval of monitor EDIDs (extended display identification data, a data block that contains monitor identification and capability information)
2 w# o; L4 d! a6 @5 \
/ @, f" T4 r5 F: h9 Q9 iOne commonly-used legacy method is the Int10 mechanism, which exercises 16-bit code in real mode. Unfortunately, legacy methods such as Int10 can cause system stability problems that are difficult to debug and fix. These stability problems manifest themselves to end users as a system that will not boot or a system that hangs unexpectedly. Fixing a problem caused by incorrect use of legacy BIOS communication mechanisms often requires a BIOS update or Windows® software patch.
( j Q( N6 Y' `5 w9 S8 B; k1 O; ]Int10 communications are supported in the Windows XP display driver model (XDDM) and earlier versions of the Windows display driver model support. However, to avoid the stability problems caused by legacy BIOS communication methods, the Windows Vista display driver model (WDDM) does not support Int10 communications. It does not pass the Int10 interrupt message to the system BIOS, thus disabling any functionality that depends on Int10 communications.
* K% K0 W5 ~& d) ?. E: H1 B4 HThe WDDM is a significant evolution of the graphics driver infrastructure and is not backward compatible with XDDM drivers and previous versions of Windows. As an alternative to Int10 communications, the WDDM provides display drivers with full access to ACPI methods for the graphics adapter. ACPI (Advanced Configuration and Power Interface) is an industry specification that describes platform configuration and power management interfaces between the system BIOS and the operating system. In situations where it is necessary to use the system BIOS to control the hardware, a display driver can use the ACPI methods for the device. ' h& B, Q! r$ c& H4 [ ^6 N" n
This paper describes the ACPI methods that can be used instead of Int10 to enable communication between the display driver and the system BIOS. 3 U( b( r) s6 |3 \& \8 Q
ACPI Methods for Display and BIOS Communications- O5 n& ~- n" s9 v
The WDDM enables display drivers to directly interact with the device and its children through ACPI methods and notifications. To take full advantage of the ACPI video device methods, it might be necessary to modify both the display driver and the system BIOS.
: H7 G, d3 h' g$ t% L" VNote: In this document, any use of the term “video” refers to the graphics adapter.0 X; ^1 M$ a& m2 J) Q; I% I8 i$ k
ACPI Notifications
/ v7 M) a# p) v! @$ RA WDDM driver receives all ACPI notification events for the graphics adapter. Example ACPI notification events include:
, {7 [- J" v8 n7 ]. D• Cycle Output Device 1 [9 y+ |: m- Z4 }9 l5 y; [
Notifies the display driver that the state of one of the output devices attached to the VGA controller has been switched or toggled.
, G3 \* e6 D% O• Cycle Display Output Hotkey Pressed 7 N; O7 L# B- j( U5 N: g3 ^4 R# t5 l
Notifies the display driver that the user has pressed the Cycle Display hotkey.. D- p+ O0 r& |
, X/ D% [% m7 W8 S& J# l; ]
The notification is passed directly to the WDDM driver through the DxgkDdiNotifyAcpiEvent display miniport driver function, which the display port driver calls to notify a display miniport driver about certain ACPI events. This differs from XDDM drivers, in which the graphics subsystem interprets the ACPI notification and delivers an IOCTL to the display driver.) W! c) P! R9 X; h' e
System ACPI notifications such as lid status change or docking event are also sent to the WDDM driver using the DxgkDdiNotifyAcpiEvent function.
( l$ b7 I+ K7 J- r0 z/ EFor information about the DxgkDdiNotifyAcpiEvent function, see the Windows Driver Kit (WDK) documentation.9 e' [/ n7 h6 w2 E1 a; E3 v
ACPI Method Evaluations
+ T- P5 S: `4 C; ?, yWDDM drivers can execute any ACPI method on the graphics adapter or any of its children by calling the DxgkCbEvalAcpiMethod function of the Windows Vista graphics kernel subsystem. A display miniport driver calls DxgkCbEvalAcpiMethod to evaluate a specified ACPI method on a graphics adapter or on its child device.
* d6 o9 p* b! |+ [0 }$ j2 qFor example, to retrieve the EDID from a child output device, the WDDM driver can evaluate the _DDC ACPI method on that device.
% A" N) f7 L; |4 y8 e3 {# Z! v zFor information about the DxgkCbEvalAcpiMethod function, see the WDK documentation.* Z# k% P, J5 u4 d( b1 A6 ^
BIOS Support$ E( n% n- `2 [' i- \* \
The system BIOS must support all required ACPI methods for the WDDM driver to be able to communicate with the system BIOS. + j) I, v' X Z; S+ V
Many mobile PC graphics adapters are tightly integrated with the host platform and system BIOS. Therefore, graphics hardware vendors should work closely with the system manufacturer and BIOS developer for the host platform to ensure that the required ACPI methods are implemented in the system BIOS.
: F! Z4 `/ v" bThe BIOS must implement the following ACPI methods, as applicable for specific functionality:4 `; ~' e1 t* Q0 T/ p) f
_ADR: Device ID6 W/ r; c4 w3 \) A$ N
_BCL: Query for brightness levels. q G; C% V) w1 }# m, p* x" R
_BCM: Set brightness level
5 Z% A- Z6 H. x# w* l) [2 ~_DCS: Query display status z- ]1 M8 g9 W
_DDC: EDID9 ~9 [$ p4 _) D8 x5 H7 M
_DOD: Enumeration of graphics adapter child devices8 |( Z1 P% L6 }4 Z/ ?
_DOS: To control BIOS response to hotkeys
* Q4 n B R* r_DSS: Set display state
6 h6 D" }" q4 @) O/ ?/ _/ v: ]) `$ L_PS methods for supported power states% X: U. I8 j1 D- w; y2 ~0 k
& N. |" o- X% _# Z
For information about these methods, see Appendix B, “Video Extensions,” of the ACPI Specification (listed in the references at the end of this paper).
/ n$ w: z& U3 N7 ], J7 T) b8 }Using ACPI Methods: Examples
9 i( S0 u& w) v# p, s' M7 ZThese examples show how the ACPI methods for functionality that might have been implemented previously using the Int10 communication mechanism.
3 P: r; R7 \7 KDisplay Switching Example ( O' C' d+ G0 A* l/ c
On a mobile platform with an integrated panel in which the system BIOS controls signal switching and backlight power, the BIOS must support the _DSS method so that the WDDM driver can control the display state.
6 h1 G3 c) ~; tWhen the _DSS method is evaluated, it must update the system BIOS internal state, perform any signal switching required to route the signal, and set the backlight into the correct state. The _DSS method must be able to set the output state without a hotkey being pressed.0 @9 T* h8 P8 G- q+ h8 p
The _DOD method can be used to enumerate the child devices of the VGA controller.2 n" s; ~. b, Y1 @- `
Hotkey Clone Mode Example
' n; Q& }3 J- Y, H# CFor a driver to be able to retrieve the hardware status of each child device of the graphics adapter, the BIOS must support the _DCS ACPI method so the WDDM driver can control the hotkeys. / ?$ V6 j2 L' a* x6 b
If it is necessary to set a child output state, the _DSS method must be used to set that state.
3 A4 B* j9 e: j3 B0 B- y* i& tEDID Retrieval Example 1 t+ y: o* n1 W6 K5 F
The BIOS must support the _DDC ACPI method to enable the WDDM driver to retrieve the EDID of an output device.
! b, N* |: Y# Q! {3 o: k. IBrightness Control Example 7 j& Z/ I. x# q+ }0 L
The BIOS must implement the _BCL and _BCM methods to support brightness control of the display control panel, so that the monitor driver supplied with Windows Vista can directly control brightness levels.
e2 v% x/ r7 J" P. hSummary7 f/ O S1 h* ~# P5 X4 ^, }- x; F
System manufacturers:4 t S7 G& {0 r, o
• Ensure that the system BIOS is ACPI compliant and implements the ACPI methods required for a WDDM driver.
% o4 P* K( b( D• Work with Microsoft and graphics vendors to ensure compatibility with Windows Vista and the WDDM:7 N* O' j e+ z! Y% E$ [
• Enroll in the Windows Vista beta program to receive access to Windows Vista beta releases. Use only Windows Vista beta releases obtained from Microsoft through the beta program.
1 {6 o- }! ]0 B" Z• Get WDDM drivers directly from the graphics vendor. (Microsoft is unable to re-distribute beta WDDM drivers to manufacturers.) Ensure that the beta WDDM driver from the graphics vendor is compatible with the Windows Vista beta release obtained from Microsoft.
6 d7 r: U0 V( z• Identify system functionality that depends on legacy BIOS communications (Int10) support, and implement the necessary ACPI interfaces in the system BIOS to enable this functionality for use by a WDDM driver.) ~8 ~$ M4 V# a, p$ g) Z: |9 r4 M
• Work with graphics vendors to ensure the required ACPI interfaces are implemented in the system BIOS to support the WDDM driver.; [# Y: O7 j. t& ^ L9 _
• Validate that the system BIOS functions correctly with a WDDM driver that uses ACPI interfaces, especially for mobile platforms. ; Q: v. S* x8 g2 p+ Y; O
Graphics hardware vendors:4 e* \! {9 ~: e! p R7 ]5 K! V
Design your WDDM drivers to use ACPI methods instead of Int10 to communicate with the system BIOS.: q( T$ w* U/ c3 @" B0 h4 r
BIOS vendors:
( _, `. C3 x" C/ { sDesign your BIOS products to be ACPI compliant and to implement the ACPI methods required for a WDDM driver.
& ^/ L( _1 N; c% A( z' VSystem builders:
+ {! d4 T% k# @, |& |- ?Build systems with an ACPI-compliant BIOS that implements the ACPI methods required for a WDDM driver.. V1 b8 o" l* H2 ?7 c v& b; @& K
Resources ?$ J7 g8 q, I" p
If you have additional questions that are not addressed by this document, please send email to directx@microsoft.com.
, C2 G( o% U* G+ n# zACPI/Power Management – Architecture and Driver Support
4 ~2 p( C; H+ z* h# q" chttp://www.microsoft.com/whdc/sy ... ermgmt/default.mspx
( \+ A# V* x6 uACPI Specification
. C9 Q0 o. L8 H5 Phttp://www.acpi.info |
|