audio system design considerations for windows vista system logo certification
Download
Skip this Video
Download Presentation
Audio System Design Considerations For Windows Vista System Logo Certification

Loading in 2 Seconds...

play fullscreen
1 / 64

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


  • 255 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Audio System Design Considerations For Windows Vista System Logo Certification' - kory


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

Audio System Design Considerations For Windows Vista System Logo Certification

Håkon StrandeProgram ManagerMedia Technology GroupMicrosoft Corporation

agenda
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
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
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
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
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
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
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
Discoverability
  • Independent devices, Dynamic Devices, and Device Roles
    • Multi streaming scenarios like ubiquitous VOIP
    • Device availability better illustrated

User controlledOS/AppPolicy Layer

discoverability10
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
HD Audio Codec Configurability

Customized AC 97 Driver 1

Customized AC 97 Driver 2

hd audio codec configurability33
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
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
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
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
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
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
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
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
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

jack detection override
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
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
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
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
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-Pin Devices
  • Multi-channel Speaker/Line Out Devices
    • Quad
    • 5.1
    • 7.1
multi pin devices49
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
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
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
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
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
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
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
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
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
Validation Tools

.ini

.dat

HDAU

Parser Output

DumpAzaliaReg

VerbTable

Debug Class Driver

BIOS PinConfig

Settings

Codec

Pinconfig

pin config validation steps
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
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
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
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
© 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.

ad