Goodbye SMI - ACPI and Graphics Driver/System Firmware Interface Paul Blinzer Staff Engineer ATI Research, Inc.

Slides:



Advertisements
Similar presentations
Optimizing Device Drivers For Terminal Servers Plug And Play Device Redirection Framework Gaurav Daga Program Manager Windows Terminal Server Microsoft.
Advertisements

Chapter 2 How Hardware and Software Work Together.
Operating System.
BIOS Data for OS Booting Outline Necessary Data for OS Booting System Information APM OS ACPI OS DOS Service Routines Conclusions.
Media Transfer Protocol Implementation Details
Microsoft Windows XP SP2 Urs P. Küderli Strategic Security Advisor Microsoft Schweiz GmbH.
Auxiliary Display Platform in Longhorn Andrew Fuller Lead Program Manager Mobile PC microsoft.com Microsoft Corporation.
14.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
MCDST : Supporting Users and Troubleshooting a Microsoft Windows XP Operating System Chapter 9: Troubleshooting Power Management and I/O Devices.
1 DOS with Windows 3.1 and 3.11 Operating Environments n Designed to allow applications to have a graphical interface DOS runs in the background as the.
Hybrid Hard Drives with Non-Volatile Flash and Longhorn Jack Creasey Program Manager Hardware Innovation Group Microsoft Corporation.
Operating Systems.
WDK Driver Test Manager. Outline HCT and the history of driver testing Problems to solve Goals of the WDK Driver Test Manager (DTM) Automated Deployment.
Windows Server Virtualization Scenarios And Features Jeff Woolsey Lead Program Manager Windows Virtualization Microsoft Corporation.
Windows Media DRM Device Porting Kit Review Scott Plette Program Manager Media Technology Group microsoft.com Microsoft Corporation.
Advances in Display and Composition Architecture for Longhorn Kam VedBrat Lead Program Manager Windows Client Platform Team microsoft.com Microsoft.
Secure Startup Hardware-Enhanced Security Peter Biddle Product Unit Manager Windows Security Microsoft Corporation Stacy Stonich Program Manager Windows.
Adding Applications and Services to Windows Media Center John Canning Technical Evangelist Windows eHome Division Microsoft Corporation.
Building Support Solutions with Windows PE Mark Myers Senior Program Manager Industry Engagement & Engineering.
How to Manage a Quality Device Driver Donald D. Burn Chief Software Architect acm.org Reliable Technologies, Inc.
Case Study: ATI Device Power Management In Windows Vista Phil Mummah Software Architect ATI.
Mahesh Wagh Intel Corporation Member, PCIe Protocol Workgroup.
WHEA System Design And Implementation
New Document Lifecycle Opportunities N. Gregg Brown Lead Program Manager Digital Documents microsoft.com Microsoft Corporation.
Windows Server Licensing
CYPRESS PNSQC (15-17 Oct. 2001) 1 Testing a Bluetooth Product With Web and Embedded Software Rick Clements cypress.com Cypress Semiconductors 9125.
Windows Debugging Demystified
Dynamic Partitioning in Windows Longhorn Santosh Jodh Software Design Engineer Windows Kernel Platform Group microsoft.com Microsoft Corporation.
Computer Organization
IT Essentials: PC Hardware and Software 1 Chapter 7 Windows NT/2000/XP Operating Systems.
Chapter-4 Windows 2000 Professional Win2K Professional provides a very usable interface and was designed for use in the desktop PC. Microsoft server system.
PCIe Trusted Configuration Space
Unified EFI Update Tony Pierce President United EFI Forum microsoft.com.
Windows Longhorn Logo Program “To lead tomorrow, start today” Susanne Peterson Director Windows Client Business Group microsoft.com Microsoft.
Mobile PC Extensibility Yu-Kuan Lin Program Manager Mobile PC Business Division microsoft.com Microsoft Corporation.
USB/1394 on the PC Mark Slezak Program Manager Windows Device experience group microsoft.com Microsoft Corporation.
A+ Guide to Software Managing, Maintaining and Troubleshooting THIRD EDITION Chapter 2 How an OS Works with Hardware and Other Software.
11 SYSTEM PERFORMANCE IN WINDOWS XP Chapter 12. Chapter 12: System Performance in Windows XP2 SYSTEM PERFORMANCE IN WINDOWS XP  Optimize Microsoft Windows.
How Hardware and Software Work Together
Computing and the Web Operating Systems. Overview n What is an Operating System n Booting the Computer n User Interfaces n Files and File Management n.
Laface Operating System Design Booting a PC to run a kernel from Low memory VGA display.
Windows XP Professional Features ©Richard L. Goldman February 5, 2003.
Enabling Protected and Premium Broadcast Content in Windows Jay Kapur & Jan Hofmeyr Windows TV Group Microsoft Corporation.
PCI Express Update for Windows Longhorn
Firmware Storage : Technical Overview Copyright © Intel Corporation Intel Corporation Software and Services Group.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Network Topology: Connectivity Visualized Dennis Morgan Lead Program Manager Network Experience microsoft.com Microsoft Corporation.
Longhorn Power Management Update Geralyn Miller Program Manager Mobile PC microsoft.com Microsoft Corporation Pat Stemen Program Manager Windows.
Microsoft Virtual Server: Overview and Roadmap Mike Neil Product Unit Manager Windows Virtualization microsoft.com Microsoft Corporation.
OPERATING SYSTEMS BY LANDON, KYLE, AND ETHAN. WHAT IS THEIR PURPOSE? (1) manage the computer's resources, such as the central processing unit (2) establish.
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
Building A Longhorn-Ready Mobile PC Burt Parker Technology Evangelist Mobile Platforms Division microsoft.com Microsoft Corporation.
IST 222 Day 3. Homework for Today Take up homework and go over Go to Microsoft website and check out their hardware compatibility list.
Error Management Solutions Synergy With WHEA John Strange Software Design Engineer Core OS microsoft.com Microsoft Corporation.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
Network Location Awareness Vision And Scenarios Tracey Yao Program Manager Windows Wireless Networking microsoft.com Microsoft Corporation.
Extensible Hardware Management Using WS-management and IPMI Steve Menzies Technical Lead Management Infrastructure microsoft.com Microsoft Corporation.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
Application Software System Software.
The Next Generation Designed for Windows Logo Program: An Introduction Jon Morris Program Manager Windows Logo Program microsoft.com Microsoft.
Evolving the PC Platform Chipset Directions for 2005 and Beyond Mark Overby Platform Architect NVIDIA Corporation.
BABCA Software Operating Systems (OS) aka Systems Software A set of instructions that coordinate all the activities among computer hardware resources.
NDIS 6.0 Roadmap and Value Statement
Developing For The Windows Hardware Error Architecture John Strange Software Design Engineer Windows Kernel Microsoft Corporation.
Changes To The Display Driver Interface In Windows ® XP Erick Smith Development Lead Base OS Drivers Team Microsoft Corporation.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Evaluation of Advanced Power Management for ClassCloud based on DRBL Rider Grid Technology Division National Center for High-Performance Computing Research.
Option ROM Designs for UEFI
Windows Virtual PC / Hyper-V
Presentation transcript:

Goodbye SMI - ACPI and Graphics Driver/System Firmware Interface Paul Blinzer Staff Engineer ATI Research, Inc.

Session Outline Where this session applies Booted OS and an active device driver No coverage for pre-boot environment The intricate art of component communication Where Video BIOS, System Firmware, driver and OS need to work together for display hotkey and custom functionality support Problems with current approach for Windows codenamed “Longhorn” What can be done? The new interface to ACPI in LDDM ACPI Mechanisms available for use

Where Does This Session Apply? Hotkey support when graphics driver is running Custom display & graphics features that are not supported by standard OS and ACPI methods Often the hardware state needs to be synchronized between OS, graphics driver, system & video BIOS On WindowsXP, the graphics driver can’t directly communicate with the ACPI system firmware Video BIOS is a resource mediator between the system firmware and the driver. Driver can call VideoPortInt10 function to pass execution and parameters to Video BIOS via IHV specific BIOS functions ACPI firmware may generate a SMI, then issue Int10h from there to do the same to set and retrieve status

System BIOS VIDEOPRT.SYS Driver-Firmware Communication Graphics hardware VGA/Video BIOS Miniport driver ACPI.SYS ACPI Firmware Kernel Mode Provided by: Microsoft OEM IHV Keyboard/Input

General Issues and Challenges SMM is not OS/developer friendly Everything else is stopped while executing SMM code Some Video BIOS functions (e.g. display detection) may potentially take some time to finish May cause problems for time-sensitive OS functions Requires x86 assembly language for development May not be available on some platforms

General Issues and Challenges Video BIOS is x86 “real mode” code Limited to 64KByte size due to legacy PC architecture Hard to customize/extend/debug (16bit x86 assembly) Almost all of the available space is used for required functions 64bit: no “virtual x86” mode, OS SW emulation layer Requires use of VGA legacy resources (0xA0000 aperture, 0x3D4/0x3D5 I/O range, etc.) to program hardware Requires fixed video memory range for any buffers Video BIOS buffers are not available to OS/driver management Hardware alignment requirements may cause video memory partitioning to allow fixed range that BIOS can use/reference

Provided by: Microsoft OEM IHV System BIOS DXGKRNL.SYS Driver-Firmware communication for LDDM Graphics hardware VGA/Video BIOS LDDM KM Driver ACPI.SYS ACPI Firmware Kernel Mode Keyboard/Input

Longhorn LDDM Challenges VideoPortInt10 is deprecated in LDDM Graphics driver doesn’t “own” video memory management anymore Video memory usage is virtualized by OS VidMM Driver specifies video memory range(s) available to VidMM Longhorn has a “richer”, more responsive UI Average video memory utilization may be higher than on XP due to desktop composition process and more graphical content being processed Any video memory reserved for BIOS functionality can’t be used for other purposes Longhorn has explicit support for display hotplug Arrival/departure of displays will be much more common and OS, driver, ACPI firmware and Video BIOS need to stay in sync

The New Interface to ACPI in LDDM LDDM allows the driver to directly interface to ACPI methods in VGA namespace via it’s DDI DxgkCbEvalAcpiMethod() Hotkey/Lid/Dock notification events can be forwarded by OS to the graphics driver via DriverInitializationData.DxgkDdiNotifyAcpiEvent() Due to the new DMM (Display Mode Management) architecture of the LDDM, the graphics driver and OS are much better in sync regarding output device state, capabilities and display device topology _DGS/_DSS methods will be handled by graphics driver _DSS will update the ACPI FW with the _DGS state request as matched with the current display status detected by the driver Workarounds done in ACPI FW for older OS to handle corner cases with output device detection and display topology are not necessary anymore

More Flexible Use of Available Methods _ROM method (VGA namespace) Provide display devices’ ROM image if stored in proprietary format (e.g. PCI “ROM BAR” not available) Allows configuration data transfer from ACPI FW to graphics driver, up to 4KB in size Offset, Size parameter can be specified to request data (e.g. Offset = 0x10000: additional ACPI status and configuration data) Limited use even on WindowsXP and earlier OS through VideoPortGetRomImage() in the driver (only length from beginning of “ROM” can be passed to the OS function)

Custom Methods in the ACPI VGA Namespace Allows handling custom display features that can’t be supported by standard ACPI methods without resorting to Int10h/SMI mechanisms Faster and simpler code development Safer interface from LDDM driver

Restrictions ACPI FW needs to explicitly check _OS/OSI For any Windows OS before Longhorn, the new ACPI LDDM DDI mechanisms are not available If _ROM method is sufficient as available on XP, that mechanism may be usable ACPI FW needs to be aware when LDDM device driver starts up and shuts down _DOS method is used by LDDM driver to notify ACPI FW when it takes over device hotkey switching after DmStartDevice() and when it passes control back before DmStopDevice() Better: have defined handover mechanism on DmStartDevice() and DmStopDevice() of the LDDM driver via ACPI method calls When LDDM driver is not active, ACPI FW either disables functionality or has to handle it in a “pre-boot” fashion

Restrictions ACPI Thermal events currently don’t get forwarded to the graphics device ACPI Thermal zones are currently not associated with devices in the OS For critical notification (e.g. overheating) fallback mechanisms still need to be in place

Resources Provides Windows related Information for ACPI and Power management support: powermgmt/default.mspx powermgmt/default.mspx ACPI overview, tools and specifications LDDM specification

Community Resources Windows Hardware & Driver Central (WHDC) Technical Communities Non-Microsoft Community Sites Microsoft Public Newsgroups Technical Chats and Webcasts Microsoft Blogs

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.