Audio system design considerations for windows vista system logo certification l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 64

Audio System Design Considerations For Windows Vista System Logo Certification PowerPoint PPT Presentation


  • 196 Views
  • Uploaded on
  • Presentation posted in: General

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, transparency, flexibility

Download Presentation

Audio System Design Considerations For Windows Vista System Logo Certification

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Audio system design considerations for windows vista system logo certification l.jpg

Audio System Design Considerations For Windows Vista System Logo Certification

Håkon StrandeProgram ManagerMedia Technology GroupMicrosoft Corporation


Agenda l.jpg

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

      • WaveRT, System Effects Infrastructure

    • Quality from hardware and software

      • Fidelity, latency

    • HD Audio System Implementation Deep Dive


Discoverability l.jpg

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

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


Discoverability5 l.jpg

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


Discoverability6 l.jpg

Discoverability

  • Transparency of audio subsystem extending to HW

    • OS Policy opportunities like aggregation, routing, mixing, user choice

No user control of device usage

User controlledOS/AppPolicy Layer

Hardware a

Black Box to System

In the past...


Discoverability7 l.jpg

Discoverability

  • Transparency of audio subsystem extending to HW

    • OS Policy opportunities like aggregation, routing, mixing, user choice

User controlledOS/AppPolicy Layer

DiscoverableHardware

Now with HD Audio...


Discoverability8 l.jpg

Discoverability

  • Transparency of audio subsystem extending to HW

    • OS Policy opportunities like aggregation, routing, mixing, user choice

Aggregate devices

Smart policy like ducking and device roles

User controlledOS/AppPolicy Layer

Host-based mixing and routing


Discoverability9 l.jpg

Discoverability

  • Independent devices, Dynamic Devices, and Device Roles

    • Multi streaming scenarios like ubiquitous VOIP

    • Device availability better illustrated

User controlledOS/AppPolicy Layer


Discoverability10 l.jpg

Discoverability

  • Independent devices, Dynamic Devices, and Device Roles

    • Multi streaming scenarios like ubiquitous VOIP

    • Device availability better illustrated

Device Role: VOIP

User controlledOS/AppPolicy Layer


Discoverability11 l.jpg

Discoverability

  • Independent devices, Dynamic Devices, and Device Roles

    • Multi streaming scenarios like ubiquitous VOIP

    • Device availability better illustrated

Device Role: VOIP

Device Role:Entertainment

User controlledOS/AppPolicy Layer


Discoverability12 l.jpg

Discoverability

  • Independent devices, Dynamic Devices, and Device Roles

    • Multi streaming scenarios like ubiquitous VOIP

    • Device availability better illustrated

Device Role: VOIP

Device Role:Entertainment

User controlledOS/AppPolicy Layer

Device Role: Console


Discoverability13 l.jpg

Discoverability

From this

  • Transparency of audio subsystem extending to HW

    • OS Policy opportunities like aggregation, routing, mixing, user choice

No user control of

device usage

User controlledOS/AppPolicy Layer

Hardware was a

Black Box to OS


Discoverability14 l.jpg

Discoverability

To this!

  • Independent devices, Dynamic Devices, and Device Roles

    • Multi streaming scenarios like ubiquitous VOIP

    • Device availability better illustrated

Device Role: VOIP

Device Role:Entertainment

User controlledOS/AppPolicy Layer

Device Role: Console


Discoverability15 l.jpg

Discoverability

Great UI

But can we really

use the device?

  • Independent devices, Dynamic Devices, and Device Roles

    • Multi streaming scenarios like ubiquitous VOIP

    • Device availability better illustrated

Device Role: VOIP

Device Role:Entertainment

User controlledOS/AppPolicy Layer

Peripherals are connected

Device Role: Console


Discoverability16 l.jpg

Discoverability

  • Independent devices, Dynamic Devices, and Device Roles

    • Multi streaming scenarios like ubiquitous VOIP

    • Device availability better illustrated

Device Role: VOIP

Disconnected

Device Role:Entertainment

User controlledOS/AppPolicy Layer

Microphone is disconnected

Device Role: Console


Discoverability17 l.jpg

Discoverability

  • Independent devices, Dynamic Devices, and Device Roles

    • Multi streaming scenarios like ubiquitous VOIP

    • Device availability better illustrated

Device Role: VOIP

Disconnected

Device Role:Entertainment

User controlledOS/AppPolicy Layer

Microphone is connected again

Device Role: Console


Extensibility l.jpg

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


Extensibility19 l.jpg

C

C

Extensibility

System Memory

  • DMA Engines

    • Dynamic allocation of DMA engine to a single stream

  • Streams

    • Bind single program’s audio to a DMA engine

    • Each stream’s sample sizes and rate are independent

  • 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 and response

    • Ring buffer (not “PIO” register-based)

Controller

RAM

HD AudioController

DMA

DMA

DMA

DMA

Codec

C

Integrated

C

HD Audio Link

Codec

C

Motherboard

C

Codec

C

Add-in

C

Mobile Docking Station

Codec

C

C


Stability and transparency l.jpg

Stability And Transparency

  • Stable, reliable audio device infrastructure

    • User mode audio system

  • Audio Device Infrastructure changes

    • Simplified and scope limited device driver model

      • WaveRT PortCls miniport

    • Value-add audio processing moved to user mode

      • System Effects Infrastructure


Stability and transparency21 l.jpg

Stability And Transparency

Audio Engine

Gaming Audio API

Memory

Buffer

User Mode

Kernel Mode

PortCls

Microsoft HD Audio FunctionClass Driver (WaveRT)

System Effects

System Effects

Or 3rd party driver

Microsoft HD Audio Bus Driver

HW


Stability and transparency22 l.jpg

Stability And Transparency

Audio Engine

Gaming Audio API

System Effects

Memory

Buffer

User Mode

Kernel Mode

PortCls

3rd party value-add

DDI

Microsoft HD Audio FunctionClass Driver (WaveRT)

System Effects

Or 3rd party driver

DDI

Microsoft HD Audio Bus Driver

HW


Stability and transparency23 l.jpg

Stability And Transparency

  • WaveRT friendly hardware designs

    • A UAA HD Audio-compatible implementation meets this requirement automatically

  • To be considered WaveRT 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 l.jpg

Quality

  • WaveRT: 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

      • 16bit/48KHz is no longer the limit


Quality25 l.jpg

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


Quality26 l.jpg

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

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

What Do You Have To Do Differently?

  • To ensure Windows Vista Logo certification, System Implementers should:

    • Validate system audio solution UAA compliance with relevant specifications and early in design cycle

    • Validate system audio solution UAA compliance by using Microsoft provided UAA during design cycle

    • Validate system audio solution UAA compliance by using relevant Microsoft’s UAA during design and test cycles

Microsoft UAA design guidelines

test tools

audio class driver


Focus high definition audio l.jpg

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 d eep d ive l.jpg

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

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 configurability32 l.jpg

HD Audio Codec Configurability

Customized AC 97 Driver 1

Customized AC 97 Driver 2


Hd audio codec configurability33 l.jpg

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 3rd party driver into Windows, which is impossible


Hd audio codec configurability34 l.jpg

HD Audio Codec Configurability

HD Audio Class Driver

HD Audio Class Driver

Pin Configuration Default Registers 1

Pin Configuration Default Registers 2


What is the pin configuration register l.jpg

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 register36 l.jpg

What Is The Pin Configuration Register?

Configuration

Default Register

Computer Box

Configuration Default Register

Connectivity

Def Device

Misc

Location

Def Association

Connection Type

Color

Sequence Number


What is the pin configuration register37 l.jpg

What Is The Pin Configuration Register?

  • Detailed Pin Configuration register fields

Jack, fixed, no connection…

Rear, Front, Right, Left, External, Internal…

LineOut, 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

Connectivity

Location

Def Device

Connection Type

Color

Jack Override

Def Association

Sequence Number


Location connection type color l.jpg

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

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

Default Device

  • 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 l.jpg

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

Sequence

Number Bit 3:0

Association

Default Bit 7:4

Association 1

Line Out

Pin Widget 10

Line Out

Pin Widget 11

Line Out

Pin Widget 18

Line Out

Pin Widget 10

1

0

Line Out

Pin Widget 11

1

1

Association 2

Translated

by parser to

Line In

Pin Widget 12

Line Out

Pin Widget 18

1

2

Association 3

Line In

Pin Widget 12

2

0

Mic In

Pin Widget 15

Mic In

Pin Widget 15

3

0


Slide42 l.jpg

Great results!


Jack detection override l.jpg

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 override44 l.jpg

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

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 GPIO0 if EAPD is used for SPDIF In


Microsoft pin configuration guidelines for hd audio devices l.jpg

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

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

Multi-Pin Devices

  • Multi-channel Speaker/Line Out Devices

    • Quad

    • 5.1

    • 7.1


Multi pin devices49 l.jpg

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 devices50 l.jpg

Multi-Pin Devices

  • MuxedCapture

    • A collection of mutually exclusive input devices that share the same ADC

Mux

Mic In

Line In or Mic In

Line In


Multi pin devices51 l.jpg

Multi-Pin Devices

  • MixedCapture

    • A collection of devices that share the same ADC that may work at the same time

Mix

Mic In

Mic In+Line In

Line In


Important notes to system board vendors l.jpg

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

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

MultichannelRender

MicIn Device

Headphone Device

SPDIFOut

SPDIF In


Hd audio driver s l.jpg

HD Audio Drivers

Codec capability

for A/B/C

Pin Configuration

Default Settings

Pin Configuration

Default Settings

3rd 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 A

HD Audio Codec B

HD Audio Codec B

HD Audio Codec C

HD Audio Codec C


Hd audio system view l.jpg

HD Audio System View

3rd party HD Audio Driver

Microsoft HD AudioClass Driver

or

MicrosoftHD Audio Bus Driver Device Interface

Microsoft HD Audio Bus Driver

Software

Hardware

HD Audio Specification 1.0 and Microsoft UAA HD Audio HW Design Guidelines

HD Audio Controller

HD Audio Link

HD Audio Codec

From IHV C

HD Audio Codec

From IHV A

HD Audio Codec

From IHV B

Microsoft UAA Pin Configuration Guidelines for HD Audio Devices


System design summary l.jpg

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 (VerbTable)

HD Audio Codec

Pin Configuration Default Registers


Validation tools l.jpg

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

  • DumpAzaliaReg.exe

    • Collect codec information from HD Audio systems


Validation tools58 l.jpg

Validation Tools

.ini

.dat

HDAU

Parser Output

DumpAzaliaReg

VerbTable

Debug Class Driver

BIOS PinConfig

Settings

Codec

Pinconfig


Pin config validation steps l.jpg

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

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 RC1 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 l.jpg

Call To Action 2

uaa @ microsoft.com

  • Email to obtain test tools and pre-release 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 PnP 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 l.jpg

Additional Resources

  • Web Resources

    • Specs

      • http://www.intel.com/standards/hdaudio/

      • http://www.usb.org/

      • http://www.1394ta.org/

    • White Papers

      • http://www.microsoft.com/whdc/device/audio/UAA_HWdesign.mspx

      • http://www.microsoft.com/whdc/device/audio/PinConfig.mspx

      • http://www.microsoft.com/whdc/device/audio/HD-aud_PnP.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


Slide63 l.jpg

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.


  • Login