AC 97 and AMR Plug and Play Design

Updated: December 4, 2001

Note: See the related Windows Logo Program FAQ in the current version of the Windows Logo Program System and Device Requirements.

This article discusses Microsoft Windows-related design issues and compatibility requirements for modularized AC'97 subsystems, called Audio/Modem Riser (AMR). AC'97 defines a low pin count serial interface between a system board chip set and codec-based subsystem, particularly Audio and Modems. The Audio Modem Riser (AMR) specification describes a modular connector between a system board and AC'97 devices.

Intel provides the AC'97 specification for adding analog codecs to a system board chip set, plus a specification for AMR. The Modem Daughter Card (MDC) is similar to AMR, with a smaller form factor. AC'97 and AMR-based devices are now being prototyped and prepared for market. (See the References for access to the related specifications.)

On This Page
Plug and Play for AMRPlug and Play for AMR
AC'97/AMR Plug and Play SolutionsAC'97/AMR Plug and Play Solutions
Call to Action for AMR DesignCall to Action for AMR Design
ReferencesReferences
*

Plug and Play for AMR

There is diversity in system board chip sets that will support AC'97, in the codecs that support AC'97, and in the AMR or MDC subsystems that support those codecs. Ensuring that the correct drivers are loaded is a significant issue.

AMR was not designed for use as a bus. However, it can be used like one. There are potential problems for PC manufacturers if they do not maintain good control of which AMR or MDC card is used with which system board and BIOS. These are manufacturing quality assurance issues, not a system design issue. Other potential problems can occur if users gain access to the AMR devices and remove or change them.

These problems can be prevented by applying Plug and Play system design methodology to anything that has bus characteristics. This makes life easier for both the PC manufacturer and end users. For any bus, including PCI, the fundamental hardware requirement is that the device provides an ID that is unique, for the purpose of specifying the necessary driver for Windows to load. A given driver may support multiple devices, but for any given device, there must be at least one driver.

Therefore, if a device is changed in such a way that any part of the driver has to change, then that device needs a new and distinct ID. For example, if a given modem design can change to enable Caller ID, that change needs to be represented in the registry keys in the modem’s INF. That INF is part of the driver; therefore, that hardware change requires a new ID.

Conversely, if the hardware design has options that the driver can adaptively distinguish with no changes visible to the operating system, a single ID mapping to a single capable driver is appropriate. For example, two related designs may use different chips for capturing Caller ID; if the one driver can adaptively distinguish them, transparent to Windows, then only one ID is needed. If a third version is implemented, and the original driver cannot handle it, then a new device ID is needed.

Top of pageTop of page

AC'97/AMR Plug and Play Solutions

There are three chained components of AC'97 Plug and Play:

The AC'97 device identifies itself to the BIOS

The BIOS uses that ID to generate a 16-bit Subsystem Vendor ID (SVID) and a 16-bit Subsystem device ID (SID).

The BIOS then writes the SVID and SID into the system board chip set before the Windows PCI bus enumerator comes looking for it.

AC'97 specifies that the codec may provide a 32-bit ID in registers 7Ch and 7Eh. This codec ID was made mandatory by a PCI Engineering Change Notice (ECN) in 1999. This 32-bit ID is defined to include a 24-bit three-character Plug and Play manufacturer ID and an 8-bit revision ID.

As specified in AC'97, this three-character Plug and Play codec ID must identify the codec manufacturer.

A BIOS algorithm for mapping an AC’97 codec ID into PCI SVID and SID is published by Intel at http://developer.intel.com/ ial/ scalableplatforms/ audio/ index.htm ;This link leaves the Microsoft.com site. This algorithm includes these parts:

1.

Read the three-character Plug and Play Manufacturer’s ID from register 7Ch and half of register 7Eh.

2.

Convert that Plug and Play manufacturer’s ID into the corresponding 16-bit PCI bus manufacturer’s ID, registered by the PCI SIG (see http://www.pcisig.com/ membership/ This link leaves the Microsoft.com site), and write that PCI SIG manufacturer's ID into the SVID.

3.

Read register 7Eh and copy it directly into SID.

This algorithm has the virtue that it exists and works well enough to identify drivers.

Top of pageTop of page

Call to Action for AMR Design

Implement the codec ID in all AMR devices shipped, unique to the AMR device.

Implement the minimal BIOS codec detection in all AMR-capable systems boards shipped.

Top of pageTop of page

References

Windows Logo Program requirements

http://www.microsoft.com/whdc/winlogo/downloads.mspx

WHQL test criteria and procedures for AC'97 and AMR

ICH BIOS Specification 1.0, or later, and ICH AC'97 External Architecture Specification 1.6, Intel Corporation

Non-disclosure agreement required; to request the NDA, please contact Abdul Jarrar by e-mail at abdul.jarrar@intel.com.


Top of pageTop of page