Audio System Design Considerations For Windows Vista System

  • Slides: 64
Download presentation
Audio System Design Considerations For Windows Vista System Logo Certification Håkon Strande Program Manager

Audio System Design Considerations For Windows Vista System Logo Certification Håkon Strande Program Manager Media Technology Group Microsoft Corporation

Agenda Vista and Streaming audio – The Vision Discoverability in hardware Enabling Class drivers,

Agenda Vista and Streaming audio – The Vision Discoverability in hardware Enabling Class drivers, transparency, flexibility Extensibility in hardware Standard that lasts, enables new scenarios Stability from software infrastructure Wave. RT, System Effects Infrastructure Quality from hardware and software Fidelity, latency HD Audio System Implementation Deep Dive

Discoverability It just works. . . Class driver enabling through standards Universal Audio Architecture

Discoverability It just works. . . Class driver enabling through standards Universal Audio Architecture UAA USB driver UAA HDA driver UAA Futures USB Audio HD Audio Future HW Standards

UAA? What Does It Mean? Paradigm shift: Universal Audio Architecture Initiative System Audio device

UAA? What Does It Mean? Paradigm shift: Universal Audio Architecture Initiative System Audio device compliance with select standardized technology spec System Audio device compatibility with Windows Vista Audio class driver System logo tests performed with relevant Windows Audio Class driver

Discoverability Designed for Windows Vista audio hardware expose standardized HW interfaces Guaranteed audio functionality

Discoverability Designed for Windows Vista audio hardware expose standardized HW interfaces Guaranteed audio functionality on all Windows Vista PCs These standard interfaces are supported by Microsoft audio class drivers Broad Industry Benefits from UAA System Integrators and IHVs Windows natively always covers their audio solution Value products – Low cost and business PCs SKUs where stability and security are more important Vendor specific driver can be provided for differentiation End User Benefits Guaranteed audio support on upgrade or clean Windows installation Provides option for stable, secure audio device support

Discoverability Transparency of audio subsystem extending to HW OS Policy opportunities like aggregation, routing,

Discoverability Transparency of audio subsystem extending to HW OS Policy opportunities like aggregation, routing, mixing, user choice No user control of device usage User controlled OS/App Policy Layer Hardware a Black Box to System

Discoverability Transparency of audio subsystem extending to HW OS Policy opportunities like aggregation, routing,

Discoverability Transparency of audio subsystem extending to HW OS Policy opportunities like aggregation, routing, mixing, user choice User controlled OS/App Policy Layer Discoverable Hardware

Discoverability Transparency of audio subsystem extending to HW OS Policy opportunities like aggregation, Aggregate

Discoverability Transparency of audio subsystem extending to HW OS Policy opportunities like aggregation, Aggregate routing, mixing, user choice devices Smart policy like ducking and device roles User controlled OS/App Policy Layer Host-based mixing and routing

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios like ubiquitous VOIP

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios like ubiquitous VOIP Device availability better illustrated User controlled OS/App Policy Layer

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like ubiquitous VOIP Device availability better illustrated User controlled OS/App Policy Layer

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like ubiquitous VOIP Device availability better illustrated Device Role: Entertainment User controlled OS/App Policy Layer

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like ubiquitous VOIP Device availability better illustrated Device Role: Entertainment User controlled OS/App Policy Layer Device Role: Console

Discoverability Transparency of audio subsystem extending to HW OS Policy opportunities like aggregation, routing,

Discoverability Transparency of audio subsystem extending to HW OS Policy opportunities like aggregation, routing, mixing, user choice No user control of device usage User controlled OS/App Policy Layer Hardware was a Black Box to OS

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like ubiquitous VOIP Device availability better illustrated Device Role: Entertainment User controlled OS/App Policy Layer Device Role: Console

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like ubiquitous VOIP Device availability better illustrated Device Role: Entertainment User controlled OS/App Policy Layer Device Role: Console

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like ubiquitous VOIP Device availability better illustrated Disconnected Device Role: Entertainment User controlled OS/App Policy Layer Device Role: Console

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like

Discoverability Independent devices, Dynamic Devices, and Device Roles Multi streaming scenarios Device Role: like ubiquitous VOIP Device availability better illustrated Disconnected Device Role: Entertainment User controlled OS/App Policy Layer Device Role: Console

Extensibility UAA standards must be extensible Ensure long life of technology USB Audio OK

Extensibility UAA standards must be extensible Ensure long life of technology USB Audio OK (with 2. 0 spec) 1394 Audio OK AC-97 not so much Needed a new HW design for the 95% market segment Intel and Microsoft developed the High Definition Audio specification with extensibility in mind

Extensibility DMA Engines Dynamic allocation of DMA engine to a single stream System Memory

Extensibility DMA Engines Dynamic allocation of DMA engine to a single stream System Memory Controller RAM Streams Flexible Link Protocol Managed resource with future bandwidth extensibility Variable number of streams each with different rates and widths Initialization and Configuration 3 -tiers: a) controller b) link or codec c) acoustic device Fully enumerated Codec Structure Codec communication Packet-like command response Ring buffer (not “PIO” register-based) HD Audio Controller HD Audio Link Bind single program’s audio to a DMA engine Each stream’s sample sizes and rate are independent DMA DMA Codec C C Integrated C C C C Mobile Docking Station Motherboard Add-in

Stability And Transparency Stable, reliable audio device infrastructure User mode audio system Audio Device

Stability And Transparency Stable, reliable audio device infrastructure User mode audio system Audio Device Infrastructure changes Simplified and scope limited device driver model Wave. RT Port. Cls miniport Value-add audio processing moved to user mode System Effects Infrastructure

Stability And Transparency Gaming Audio API Audio Engine Memory Buffer Port. Cls Microsoft HD

Stability And Transparency Gaming Audio API Audio Engine Memory Buffer Port. Cls Microsoft HD Audio Function System Class Driver Effects (Wave. RT) User Mode Kernel Mode System Effects Or 3 rd party driver Or 3 party driver Microsoft HD Audio Bus Driver HW

Stability And Transparency Gaming Audio API Audio Engine System Effects Port. Cls 3 rd

Stability And Transparency Gaming Audio API Audio Engine System Effects Port. Cls 3 rd party value-add Memory Buffer User Mode Kernel Mode DDI Microsoft HD Audio Function System Class Driver Effects (Wave. RT) Or 3 rd party driver DDI Microsoft HD Audio Bus Driver HW

Stability And Transparency Wave. RT friendly hardware designs A UAA HD Audio-compatible implementation meets

Stability And Transparency Wave. RT friendly hardware designs A UAA HD Audio-compatible implementation meets this requirement automatically To be considered Wave. RT port friendly, the audio hardware must support the following Cyclic DMA engine with a scatter-gather list Position register that is separate from other hardware registers (can be a copy) Ability to split samples between pages Ability to loop on buffers without software intervention This requirement does not apply to external or internal USB audio and 1394 audio devices

Quality Wave. RT: Low latency enabling driver model HW Maps buffer to audio engine

Quality Wave. RT: Low latency enabling driver model HW Maps buffer to audio engine user mode buffer HW Maps position similarly Multi-media Class Scheduler Improved file I/O Higher fidelity opportunities Multiple streams with multi-channel data at high bit depth and sample rates from all PCs Breaking the limitations of common legacy solutions Transition away from AC-97 16 bit/48 KHz is no longer the limit

Quality New initiative from Microsoft to improve baseline PC audio fidelity Evangelization of board/device

Quality New initiative from Microsoft to improve baseline PC audio fidelity Evangelization of board/device design guidelines Defined Logo fidelity requirements Enforcement using automated tests and analyzers Bar set at current industry state

Quality New initiative from Microsoft to improve baseline PC audio fidelity Evangelization of board/device

Quality New initiative from Microsoft to improve baseline PC audio fidelity Evangelization of board/device design guidelines Defined Logo fidelity requirements Enforcement using automated tests and analyzers Bar set at current industry state

How Does UAA Affect System Implementation? Please invest time to understand the new Windows

How Does UAA Affect System Implementation? Please invest time to understand the new Windows requirements and implement the system audio device accordingly Your systems will fail Windows Vista logo certification if you do nothing You cannot continue to design and validate the same way as in the past with AC-97 solutions There are new considerations New way of reporting system and device capabilities, CRITICAL for logo certification: System BIOS programs HD Audio codec pin configuration registers according to Microsoft guidelines New model for how the system’s audio device is tested relies on the new system audio capabilities reporting mechanism The codec vendor’s customized driver now plays less of a role during system certification phase, thus the Microsoft class driver should be your system bring-up validation tool

What Do You Have To Do Differently? To ensure Windows Vista Logo certification, System

What Do You Have To Do Differently? To ensure Windows Vista Logo certification, System Implementers should: Validate system audio solution UAA compliance with relevant Microsoft UAA design guidelines specifications and early in design cycle Validate system audio solution UAA compliance by using Microsoft provided UAA during design cycle test tools Validate system audio solution UAA compliance by using relevant Microsoft’s UAA during design and test cycles audio class driver

Focus: High Definition Audio HD Audio is the most important of the currently defined

Focus: High Definition Audio HD Audio is the most important of the currently defined UAA technologies Microsoft expects 95% of all UAA compliant systems to be based on HD Audio and require 100% of all Windows Vista systems to be UAA compliant HD Audio is extensible and discoverable Allowing multitude of solutions and the means to accurately report each solution’s capabilities

HD Audio Deep Dive Section Goals Understand what HD Audio Pin Configuration Default Register

HD Audio Deep Dive Section Goals Understand what HD Audio Pin Configuration Default Register is Understand its impact on HD Audio system implementation HD Audio Codec Configurability Pin Configuration Default Register Microsoft Pin Configuration Guidelines for HD Audio Devices HD Audio Class Driver Impacts to your HD Audio system designs Validation tools

HD Audio Codec Configurability HD Audio specification defines a way for system designers (like

HD Audio Codec Configurability HD Audio specification defines a way for system designers (like OEMs/ODMs) to specify how an HD audio codec is used in a particular system Specified through the programming of Pin Configuration Default Settings On the same codec, applying different set of Pin Configuration Default Settings, you can have different audio configurations to meet the needs of individual systems

HD Audio Codec Configurability Customized AC 97 Driver 1 Customized AC 97 Driver 2

HD Audio Codec Configurability Customized AC 97 Driver 1 Customized AC 97 Driver 2

HD Audio Codec Configurability One of our goals is to guarantee the availability of

HD Audio Codec Configurability One of our goals is to guarantee the availability of audio functionality right after Windows installation With AC 97 Audio, the only way to achieve this goal is to add every single 3 rd party driver into Windows, which is impossible

HD Audio Codec Configurability HD Audio Class Driver Pin Configuration Default Registers 1 Pin

HD Audio Codec Configurability HD Audio Class Driver Pin Configuration Default Registers 1 Pin Configuration Default Registers 2

What Is The Pin Configuration Register? Computer Box A 32 -bit register, one for

What Is The Pin Configuration Register? Computer Box A 32 -bit register, one for each pin to specify the intended usage for each pin

What Is The Pin Configuration Register? Configuration Default Register Computer Box Configuration Default Register

What Is The Pin Configuration Register? Configuration Default Register Computer Box Configuration Default Register Connectivity Location Def Device Connection Type Color Misc Def Association Sequence Number

What Is The Pin Configuration Register? Detailed Pin Configuration register fields Connectivity Location Def

What Is The Pin Configuration Register? Detailed Pin Configuration register fields Connectivity Location Def Device Connection Type Color Jack Override Def Association Sequence Number Jack, fixed, no connection… Rear, Front, Right, Left, External, Internal… Line. Out, Speaker, HP, SPDIF Out, Mic In… 1/8” jack, RCA, Optical… Black, Green, Orange, Blue… Jack presence detection capability How to group pins into logical devices Special information in a logical device

Location, Connection Type, Color Used in UI to guide users how to connect peripheral

Location, Connection Type, Color Used in UI to guide users how to connect peripheral devices Unique color in a location is user friendly – recommended!

Port Connectivity The Port Connectivity field indicates whether the pin widget represents an external

Port Connectivity The Port Connectivity field indicates whether the pin widget represents an external audio jack, has a fixed connection to an internal device (for example, integrated speakers), or is unconnected Set to no-physical connection for unused pins to avoid class exposing unusable audio device

Default Device indicates the intended use of the jack or device It could be

Default Device indicates the intended use of the jack or device It could be an input device (like Mic in, Line In, SPDIF In) or an output device (like speaker, line out, headphone, SPDIF Out…) Each pin can only have one “Default Device” This is where the HD Audio Specification comes short of supporting jack re-tasking

Association, Sequence Number Association is used to form groups of pins that operate as

Association, Sequence Number Association is used to form groups of pins that operate as multi-pin device Sequence Number is used for speaker-channel mapping in multi-channel devices Logical Device List Pin Configuration Register Line Out Pin Widget 10 Line Out Pin Widget 11 Line Out Pin Widget 18 Line In Pin Widget 12 Mic In Pin Widget 15 Association Default Bit 7: 4 Sequence Number Bit 3: 0 1 1 1 2 3 0 1 2 0 0 Association 1 Line Out Pin Widget 10 Translated by parser to Line Out Pin Widget 11 Line Out Pin Widget 18 Association 2 Line In Pin Widget 12 Association 3 Mic In Pin Widget 15

Jack Detection Override The HD Audio class driver uses “Jack Detection” to detect whether

Jack Detection Override The HD Audio class driver uses “Jack Detection” to detect whether speakers, headphones, microphones, and other external devices are plugged into audio jacks When “Jack Detection” capability is present, HD Audio class driver will enable “Dynamic Device” feature for this device Exposing it only when physical connection is detected Improved end user experience Avoid support calls Otherwise, each device is treated as “Static Device” – always exposed

Jack Detection Override Used to indicate whether external circuit on motherboard is present for

Jack Detection Override Used to indicate whether external circuit on motherboard is present for enabling jack detection capability When this bit is set, it means no external circuit is added; clear it when circuit is present (negative logic)

Common Issues Jack Detection Override Use HD Audio Front Panel because AC 97 Front

Common Issues Jack Detection Override Use HD Audio Front Panel because AC 97 Front Panel can not do jack detection with HD Audio codecs Use two Pin Widgets to associate re-directed behavior Splitting signals from one codec port is prohibited as the OS is not aware EAPD and SPDIF In EAPD behavior is reversed from AC-97 spec Use GPIO 0 if EAPD is used for SPDIF In

Microsoft Pin Configuration Guidelines For HD Audio Devices A Microsoft document that complements HD

Microsoft Pin Configuration Guidelines For HD Audio Devices A Microsoft document that complements HD Audio Specification The spec itself does not completely specify how exactly to program Pin Configuration Registers in a logical device with more than one pin Defines the pin configuration requirements for each Windows supported device type Is part of Windows Vista Logo requirements for systems with HD Audio solutions

Single Pin Device Types Speaker, Line Out, Headphone Out, SPDIF Out, HDMI Audio Out

Single Pin Device Types Speaker, Line Out, Headphone Out, SPDIF Out, HDMI Audio Out Mic in, Line In, Aux In, SPDIF In

Multi-Pin Devices Multi-channel Speaker/Line Out Devices Quad 5. 1 7. 1

Multi-Pin Devices Multi-channel Speaker/Line Out Devices Quad 5. 1 7. 1

Multi-Pin Devices Redirected Headphone Combine headphone with speakers/line out Redirected Internal Speaker Combine internal

Multi-Pin Devices Redirected Headphone Combine headphone with speakers/line out Redirected Internal Speaker Combine internal speaker with speakers/line out Internal Speaker

Multi-Pin Devices Muxed. Capture A collection of mutually exclusive input devices that share the

Multi-Pin Devices Muxed. Capture A collection of mutually exclusive input devices that share the same ADC Mic In Mux Line In or Mic In

Multi-Pin Devices Mixed. Capture A collection of devices that share the same ADC that

Multi-Pin Devices Mixed. Capture A collection of devices that share the same ADC that may work at the same time Mic In Mix Line In Mic In + Line In

Important Notes To System/Board Vendors Add external “Jack Detection” circuits Port connectivity field Mark

Important Notes To System/Board Vendors Add external “Jack Detection” circuits Port connectivity field Mark unused pins no-physical connection Make sure jack color is unique in a location Jack color needs to be specified correctly in pin configuration default register The user will see this! Make best use of the device types supported by the HD Audio Class Driver

HD Audio Class Driver Relies On Proper Pin Config Values System designers’ inputs (in

HD Audio Class Driver Relies On Proper Pin Config Values System designers’ inputs (in Configuration Default Settings) Codec capability Data Input HD Audio Class Driver Topology Parser Logical Devices Data Output Multichannel Render Mic. In Device Headphone Device SPDIF Out SPDIF In

HD Audio Drivers Codec capability for A/B/C Pin Configuration Default Settings 3 rd party

HD Audio Drivers Codec capability for A/B/C Pin Configuration Default Settings 3 rd party HD Audio Driver Codec A specific knowledge HD Audio Class Driver Codec B specific knowledge Topology Parser Codec C specific knowledge HD Audio Codec A HD Audio Codec B HD Audio Codec C

HD Audio System View 3 rd party HD Audio Driver or Microsoft HD Audio

HD Audio System View 3 rd party HD Audio Driver or Microsoft HD Audio Class Driver Microsoft HD Audio Bus Driver Device Interface Microsoft HD Audio Bus Driver Software HD Audio Specification 1. 0 and Microsoft UAA HD Audio HW Design Guidelines Hardware HD Audio Controller HD Audio Link HD Audio Codec From IHV A HD Audio Codec From IHV B HD Audio Codec From IHV C Microsoft UAA Pin Configuration Guidelines for HD Audio Devices

System Design Summary Design your HD Audio systems only with HD Audio spec compliant

System Design Summary Design your HD Audio systems only with HD Audio spec compliant HD Audio codecs Make sure your system BIOS program pin configuration settings that describe your HD Audio features Each HD Audio Codec has default pin configuration settings System BIOS needs to overwrite them to fit each specific HD Audio system Test with Microsoft HD Audio Class Driver System BIOS System Specific Pin Configuration Settings (Verb. Table) Pin Configuration Default Registers HD Audio Codec

Validation Tools HD Audio Utility (HDAU. exe) When running on HD Audio system, it

Validation Tools HD Audio Utility (HDAU. exe) When running on HD Audio system, it can validate pin config settings When running on non-HD Audio machine, it can take data file and simulate pinconfig settings verification Can output pin config settings in registry or BIOS verb table format Dump. Azalia. Reg. exe Collect codec information from HD Audio systems

Validation Tools. ini . dat Parser Output HDAU Dump. Azalia. Reg Verb. T able

Validation Tools. ini . dat Parser Output HDAU Dump. Azalia. Reg Verb. T able Debug Class Driver Codec Pinconfig BIOS Pin. Config Settings

Pin Config Validation Steps Use HDAU tool to collect codec and pinconfig information from

Pin Config Validation Steps Use HDAU tool to collect codec and pinconfig information from hardware Run HDAU’s parse function to verify pinconfig correctness If not correct, iterate this step until compliant configuration is found using Microsoft guidelines Use HDAU to create verb-table for BIOS Validate results with UAA HD Audio class driver

Call To Action 1 Build with HD Audio Spec 1. 0 compliant HD Audio

Call To Action 1 Build with HD Audio Spec 1. 0 compliant HD Audio codec and HD Audio controller Follow Microsoft UAA HD Audio HW design guidelines Program Pin Configuration Default registers correctly through BIOS by following Microsoft Pin Configuration Guidelines for High Definition Audio Devices Test with WDK DTM RC 1 UAATest. exe for Validating Pin Configuration Default settings Checking HD Audio Spec compliance Validate system designs with HD Audio Class driver by using it

Call To Action 2 Email uaa @ microsoft. com to obtain test tools and

Call To Action 2 Email uaa @ microsoft. com to obtain test tools and prerelease UAA class driver updates necessary to validate your solution during your design phase Review the Windows Logo Program Requirements http: //www. microsoft. com/whdc/winlogo/ hwrequirements. mspx Read the relevant documents on http: //www. microsoft. com/whdc/device/audio/default. mspx Especially but not exclusively UAA HW Design Guidelines UAA HD Audio Pn. P ID requirements UAA HD Audio Pin Configuration Programming Guidelines UAA HD Audio Codec Pin Configuration Test Procedures (TBP) Intel HD Audio Specification 1. 0 http: //www. intel. com/standards/hdaudio/

Additional Resources Web Resources Specs http: //www. intel. com/standards/hdaudio/ http: //www. usb. org/ http:

Additional Resources Web Resources Specs http: //www. intel. com/standards/hdaudio/ http: //www. usb. org/ http: //www. 1394 ta. org/ White Papers http: //www. microsoft. com/whdc/device/audio/UAA_HWdesign. mspx http: //www. microsoft. com/whdc/device/audio/Pin. Config. mspx http: //www. microsoft. com/whdc/device/audio/HD-aud_Pn. P. mspx Other Resources http: //www. microsoft. com/whdc/device/audio/uaa. mspx http: //www. microsoft. com/whdc/device/audio/default. mspx http: //www. microsoft. com/whdc/winlogo/hwrequirements. mspx The HD Audio book! Contact us: uaa @ microsoft. com

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. 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 provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.