For the Intel® 82801GB ICH7 and 82801GR ICH7R I/O Controller
Hubs
April 2005
Document Number: 307017-001
Contents
2 Programmer’s Reference Manual
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY
ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PRO PERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN
INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEV ER, AND INTEL DISCLAIMS
ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES
RELATING T O FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER
INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, or life sustaining applications.
Intel may make changes to specifications and product descriptions at any time, without notice.
Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “un defined.” Intel reserves these for
future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.
®
The Intel
to deviate from published specifications. Current characteri zed errata are available on request.
I/O Controller Hub 7 (ICH7) Family chipset component may contain design defect s or errors known as er rat a which may cause t he product
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
2
I
C is a two-wire communications bus/protocol developed by Philips. SMBus is a subset of the I2C bus/protocol and was developed by Intel.
Implementations of the I
Corporation.
2
C bus/protocol may require licenses from various entities, including Philips Electronics N.V. and North American Philips
Alert on LAN is a result of the Intel-IBM Advanced Manageability Alliance and a trademark of IBM.
Intel, Intel SpeedStep, and the Intel logo are trademarks or registered tr ademarks of Intel Corpor ation o r its sub sidiari es in the United States and other
countries.
Intel® High Definition Audio Controller Registers (D27:F0)
1Intel
Controller Registers (D27:F0)
The Intel® HD Audio controller resides in PCI Device 27, Function 0 on bus 0. This function
contains a set of DMA engines that are used to move samples of digitally encoded data between
system memory and external codecs.
Note:All registers in this function (including memory-mapped registers) must be addressable in byte,
word, and DWord quantities. The software must always make register accesses on natural
boundaries (i.e. DWord accesses must be on DWord boundaries; word accesses on word
boundaries, etc.) In addition, the memory-mapped register space must not be accessed with the
LOCK semantic exclusive-access mechanism. If software attempts exclusive-access mechanisms
to the Intel® HD Audio memory-mapped space, the results are undefined.
Note:Users interested in providing feedback on the Intel
implement the Intel
execute the Intel
information, contact nextgenaudio@intel.com.
1.1Intel
®
®
High Definition Audio
®
®
High Definition Audio specification into a future product will need to
®
High Definition Audio Specification Developer’s Agreement. For more
High Definition Audio PCI Configuration
HD Audio specification or planning to
Space
®
(Intel
Note:Address locations that are not shown should be treated as Reserved.
09hPIProgramming Interface00hRO
0AhSCCSub Class Code03hRO
0BhBCCBase Class Code04hRO
0ChCLSCache Line Size00hR/W
0DhLTLatency Timer00hRO
0EhHEADTYPHeader Type00hRO
®
High Definition Audio Lower Base Address
Intel
(Memory)
See register
description.
See register
description.
00000004hR/W, RO
RO
RO
Programmer’s Reference Manual 13
Intel® High Definition Audio Controller Registers (D27:F0)
Table 1-1. Intel® High Definition Audio PCI Register Address Map
0= The INTx# signals may be asserted.
1= The Intel
NOTE: This bit does not affect the generation of MSIs.
9Fast Back to Back Enable (FBE) — RO. Not implemented. Hardwired to 0.
SERR# Enable (SERR_EN) — R/W. SERR# is not generated by the ICH7 Intel High Definition
8
Audio Controller.
7Wait Cycle Control (WCC) — RO. Not implemented. Hardwired to 0.
6Parity Error Response (PER) — RO. Not implemented. Hardwired to 0.
5VGA Palette Snoop (VPS). Not implemented. Hardwired to 0.
4Memory Write and Invalidate Enable (MWIE) — RO. Not implemented. Hardwired to 0.
3Special Cycle Enable (SCE). Not implemented. Hardwired to 0.
Bus Master Enable (BME) — R/W. Controls standard PCI Express* bus mastering capabilities
for Memory and I/O, reads and writes. Note that this bit also controls MSI generation since MSIs
are essentially Memory writes.
2
0 = Disable
1 = Enable
Memory Space Enable (MSE) — R/W. Enables memory space addresses to the Intel High
Definition Audio controller.
1
0 = Disable
1 = Enable
I/O Space Enable (IOSE)—RO. Hardwired to 0 since the Intel High Definition Audio controller
0
does not implement I/O space.
®
High Definition Audio controller’s INTx# signal will be de-asserted
16 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
15Detected Parity Error (DPE) — RO. Not implemented. Hardwired to 0.
14SERR# Status (SERRS) — RO. Not implemented. Hardwired to 0.
Received Master Abort (RMA) — R/WC. Software clears this bit by writing a 1 to it.
0 = No master abort received.
13
1 = The Intel
master abort. When set, the Intel High Definition Audio controller clears the run bit for the
channel that received the abort.
12Received Target Abort (RTA) — RO. Not implemented. Hardwired to 0.
11Signaled Target Abort (STA) — RO. Not implemented. Hardwired to 0.
10:9DEVSEL# Timing Status (DEV_STS) — RO. Does not apply. Hardwired to 0.
8Data Parity Error Detected (DPED) — RO. Not implemented. Hardwired to 0.
7Fast Back to Back Capable (FB2BC) — RO. Does not apply. Hardwired to 0.
6Reserved.
566 MHz Capable (66MHZ_CAP) — RO. Does not apply. Hardwired to 0.
Capabilities List (CAP_LIST) — RO. Hardwired to 1. Indicates that the controller contains a
4
capabilities pointer list. The first item is pointed to by looking at configuration offset 34h.
Interrupt Status (IS) — RO.
0 = This bit is 0 after the interrupt is cleared.
3
1 = This bit is 1 when the INTx# is asserted.
Note that this bit is not set by an MSI.
2:0Reserved.
®
High Definition Audio controller sets this bit when, as a bus master, it receives a
1.1.5RID—Revision Identification Register
®
(Intel
Offset:08h Attribute:RO
Default Value:See bit descriptionSize:8 Bits
BitDescription
7:0
Programmer’s Reference Manual 17
High Definition Audio Controller—D27:F0)
Revision ID — RO. Refer to the Intel
the value of the Revision ID Register.
®
I/O Controller Hub 7 (ICH7) Family Specification Update for
Intel® High Definition Audio Controller Registers (D27:F0)
Lower Base Address (LBA) — R/W. This field contains the base address for the Intel
Definition Audio controller’s memory mapped configuration registers; 16 KB are requested by
hardwiring bits 13:4 to 0s.
13:4RO. Hardwired to 0’s
3Prefetchable (PREF) — RO. Hardwired to 0 to indicate that this BAR is NOT prefetchable.
Address Range (ADDRNG) — RO. Hardwired to 10b, indicating that this BAR can be located
2:1
anywhere in 64-bit address space.
0Space Type (SPTYP) — RO. Hardwired to 0. Indicates this BAR is located in memory space.
The SVID register, in combination with the Subsystem ID register (D27:F0:2Eh), enable the
operating environment to distinguish one audio subsystem from the other(s).
This register is implemented as write-once register. Once a value is written to it, the value can be
read back. Any subsequent writes will have no effect.
The SID register, in combination with the Subsystem Vendor ID register (D27:F0:2Ch) make it
possible for the operating environment to distinguish one audio subsystem from the other(s).
High Definition Audio Controller—D27:F0)
This register is implemented as write-once register. Once a value is written to it, the value can be
read back. Any subsequent writes will have no effect.
T
This register is not affected by the D3
BitDescription
15:0Subsystem ID — R/WO.
to D0 transition.
HOT
20 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
0 = Clock detect circuit is operational and maybe enabled.
1 = Writing a 1 to this bit clears bit 1 (CLKDET#) in this register. CLKDET# bit remains clear when
3
2
1
0
this bit is set to 1.
NOTE: This bit is not affected by the D3
BITCLK Detect Enable (CLKDETEN) — R/W.
0 = Latches the current state of bit 1 (CLKDET#) in this register
1 = Enables the clock detection circuit
NOTE: This bit is not affected by the D3
BITCLK Detected Inverted (CLKDET#) — RO. This bit is modified by hardware.
It is set to 0 when the Intel
AC’97 codec on the link
NOTES:
1. Bit 2 (CLKDETEN) and bit 3 (CLKDETCLR) in this register control the operation of this bit and
must be manipulated correctly in order to get a valid CLKDET# indicator.
2. This bit is not affected by the D3
®
High Definition Audio/AC ‘97 Signal Mode — R/W. This bit selects the shared Intel High
Intel
Definition Audio/AC ‘97 signals.
0 = AC ’97 mode is selected (Default)
1 = Intel High Definition Audio mode is selected
NOTES:
1. This bit has no effect on the visibility of the Intel High Definition Audio and AC ’97 function
configuration space.
2. This bit is in the resume well and only clear on a power-on reset. Software must not makes
assumptions about the reset state of this bit and must set it appropriately.
®
High Definition Audio Control Register
to D0 transition.
HOT
to D0 transition.
HOT
®
ICH7 detects that the BITCLK is toggling, indicating the presence of an
to D0 transition.
HOT
22 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
23Bus Power/Clock Control Enable — RO. Does not apply. Hardwired to 0.
22B2/B3 Support — RO. Does not apply. Hardwired to 0.
21:16Reserved.
PME Status (PMES) — R/WC.
0 = Software clears the bit by writing a 1 to it.
1 = This bit is set when the Intel
15
14:9Reserved
8
7:2Reserved
signal independent of the state of the PME_EN bit (bit 8 in this register)
This bit is in the resume well and only cleared on a power-on reset. Software must not make
assumptions about the reset state of this bit and must set it appropriately.
PME Enable (PMEE) — R/W.
0 = Disable
1 = when set and if corresponding PMES also set, the Intel High Definition Audio controller sets the
AC97_STS bit in the GPE0_STS register (PMBASE +28h). The AC97_STS bit is shared by AC
’97 and Intel High Definition Audio functions since they are mutually exclusive.
This bit is in the resume well and only cleared on a power-on reset. Software must not make
assumptions about the reset state of this bit and must set it appropriately.
®
High Definition Audio controller would normally assert the PME#
Programmer’s Reference Manual 25
Intel® High Definition Audio Controller Registers (D27:F0)
BitDescription
Power State (PS) — R/W. This field is used both to determine the current power state of the Intel
High Definition Audio controller and to set a new power state.
00 = D0 state
11 = D3
Others = reserved
1:0
NOTES:
1. If software attempts to write a value of 01b or 10b in to this field, the write operation must
2. When in the D3
3. When software changes this value from D3
state
HOT
complete normally; however, the data is discarded and no state change occurs.
available, but the I/O and memory space are not. Additionally, interrupts are blocked.
is generated, and software must re-initialize the function.
states, the Intel High Definition Audio controller’s configuration space is
HOT
state to the D0 state, an internal warm (soft) reset
31:28Reserved
27:26Captured Slot Power Limit Scale (SPLS) — RO. Hardwired to 0.
25:18Captured Slot Power Limit Value (SPLV) — RO. Hardwired to 0.
17:15Reserved
11:9Endpoint L1 Acceptable Latency — R/WO.
8:6Endpoint L0s Acceptable Latency — R/WO.
4:3
2:0
High Definition Audio Controller—D27:F0)
BitDescription
14Power Indicator Present — RO. Hardwired to 0.
13Attention Indicator Present — RO. Hardwired to 0.
12Attention Button Present — RO. Hardwired to 0.
5Extended Tag Field Support — RO. Hardwired to 0. Indicates 5-bit tag field support
Phantom Functions Supported — RO. Hardwired to 0. Indicates that phantom functions are not
supported.
Max Payload Size Supported — RO. Hardwired to 0. Indicates 128-B maximum payload size
capability.
28 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
0 = Indicates that completions for all non-posted requests have been received.
5
1 = Indicates that Intel
not been completed.
4AUX Power Detected — RO. Hardwired to 1 indicating the device is connected to resume power.
3Unsupported Request Detected — RO. Not implemented. Hardwired to 0.
2Fatal Error Detected — RO. Not implemented. Hardwired to 0.
1Non-Fatal Error Detected — RO. Not implemented. Hardwired to 0.
0Correctable Error Detected — RO. Not implemented. Hardwired to 0.
®
High Definition Audio controller has issued non-posted requests that have
Intel® High Definition Audio Controller Registers (D27:F0)
31:20
19:16Capability Version — RO. Hardwired to 1h.
15:0PCI Express* Extended Capability — RO. Hardwired to 0002h.
High Definition Audio Controller—D27:F0)
BitDescription
Next Capability Offset — RO. Hardwired to 130h. Points to the next capability header that is the
Root Complex Link Declaration Enhanced Capability Header.
VC Arbitration Table Offset — RO. Hardwired to 0 indicating that a VC arbitration table is not
present.
VC Arbitration Capability — RO. Hardwired to 0. These bits are not applicable since the Intel
Definition Audio controller reports a 0 in the Low Priority Extended VC Count bits in the PVCCAP1
register.
VC Arbitration Select — RO. Hardwired to 0. Normally these bits are R/W. However, these bits are
not applicable since the Intel
Extended VC Count bits in the PVCCAP1 register.
0Load VC Arbitration Table — RO. Hardwired to 0 since an arbitration table is not present.
®
High Definition Audio controller reports a 0 in the Low Priority
31:24Port Arbitration Table Offset — RO. Hardwired to 0 since this field is not valid for endpoint devices.
22:16Maximum Time Slots — RO. Hardwired to 0 since this field is not valid for endpoint devices.
13:8Reserved.
7:0Port Arbitration Capability — RO. Hardwired to 0 since this field is not valid for endpoint devices.
High Definition Audio Controller—D27:F0)
BitDescription
23Reserved.
15Reject Snoop Transactions — RO. Hardwired to 0 since this field is not valid for endpoint devices.
14Advanced Packet Switching — RO. Hardwired to 0 since this field is not valid for endpoint devices.
30:27Reserved.
26:24VC0 ID — RO. Hardwired to 0 since the first VC is always assigned as VC0.
23:20Reserved.
19:17Port Arbitration Select — RO. Hardwired to 0 since this field is not valid for endpoint devices.
15:8Reserved.
7:0
High Definition Audio Controller—D27:F0)
BitDescription
31VC0 Enable — RO. Hardwired to 1 for VC0.
16Load Port Arbitration Table — RO. Hardwired to 0 since this field is not valid for endpoint devices.
TC/VC0 Map — R/W, RO. Bit 0 is hardwired to 1 since TC0 is always mapped VC0. Bits [7:1] are
implemented as R/W bits.
31:24Port Arbitration Table Offset — RO. Hardwired to 0 since this field is not valid for endpoint devices.
23Reserved.
22:16Maximum Time Slots — RO. Hardwired to 0 since this field is not valid for endpoint devices.
15Reject Snoop Transactions — RO. Hardwired to 0 since this field is not valid for endpoint devices.
14Advanced Packet Switching — RO. Hardwired to 0 since this field is not valid for endpoint devices.
13:8Reserved
7:0Port Arbitration Capability — RO. Hardwired to 0 since this field is not valid for endpoint devices.
VCi Enable — R/W.
0 = VCi is disabled
1 = VCi is enabled
NOTE: This bit is not reset on D3
30:27Reserved.
26:24
23:20Reserved.
19:17Port Arbitration Select — RO. Hardwired to 0 since this field is not valid for endpoint devices.
VCi ID — R/W. This field assigns a VC ID to the VCi resource. This field is not used by the ICH7
hardware, but it is R/W to avoid confusing software.
16Load Port Arbitration Table — RO. Hardwired to 0 since this field is not valid for endpoint devices.
15:8Reserved.
TC/VCi Map — R/W, RO. This field indicates the TCs that are mapped to the VCi resource. Bit 0 is
7:0
hardwired to 0 indicating that it cannot be mapped to VCi. Bits [7:1] are implemented as R/W bits.
This field is not used by the ICH7 hardware, but it is R/W to avoid confusing software.
to D0 transition; however, it is reset by PLTRST#.
HOT
Programmer’s Reference Manual 33
Intel® High Definition Audio Controller Registers (D27:F0)
1VCi Negotiation Pending — RO. Does not apply. Hardwired to 0.
0Port Arbitration Table Status — RO. Hardwired to 0 since this field is not valid for endpoint devices.
1.1.46RCCAP—R oot Complex Link Declaration Enhanced
Port Number — RO. Hardwired to 0Fh indicating that the Intel
assigned as Port #15d.
Component ID — RO. This field returns the value of the ESD.CID field of the chip configuration
section. ESD.CID is programmed by BIOS.
Number of Link Entries — RO. The Intel High Definition Audio only connects to one device, the ICH7
egress port. Therefore this field reports a value of 1h.
Element Type (ELTYP) — RO. The Intel High Definition Audio controller is an integrated Root
Complex Device. Therefore, the field reports a value of 0h.
®
High Definition Audio controller is
34 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
31:0Link 1 Upper Address — RO. Hardwired to 00000000h.
Programmer’s Reference Manual 35
High Definition Audio Controller—D27:F0)
Intel® High Definition Audio Controller Registers (D27:F0)
1.2Intel
Configuration Registers
Intel
(
The base memory location for these memory mapped configuration registers is specified in the
HDBAR register (D27:F0:offset 10h and D27:F0:offset 14h). The individual registers are then
accessible at HDBAR + Offset as indicated in Table 1-2.
These memory mapped registers must be accessed in byte, word, or DWord quantities.
104h–107hOSD0LPIBOSD0 Link Position in Buffer00000000hRO
108h–10BhOSD0CBLOSD0 Cyclic Buffer Length00000000hR/W
10Ch–10DhOSD0LVIOSD0 Last Valid Index0000hR/W
10Eh–10FhOSD0FIFOWOSD0 FIFO Watermark0004hR/W
124h–127hOSD1LPIBOSD1 Link Position in Buffer00000000hRO
128h–12BhOSD1CBLOSD1 Cyclic Buffer Length00000000hR/W
12Ch–12DhOSD1LVIOSD1 Last Valid Index0000hR/W
12Eh–12FhOSD1FIFOWOSD1 FIFO Watermark0004hR/W
130h–131hOSD1FIFOSOSD1 FIFO Size00BFhR/W
132h–133hOSD1FMTOSD1 Format0000hR/W
MnemonicRegister NameDefaultAccess
ISD2 Buffer Descriptor List Pointer-Lower
Base Address
ISD2 Buffer Description List Pointer-Upper
Base Address
ISD3 Buffer Descriptor List Pointer-Lower
Base Address
ISD3 Buffer Description List Pointer-Upper
Base Address
OSD0 Buffer Descriptor List Pointer-Lower
Base Address
OSD0 Buffer Description List Pointer-Upper
Base Address
00000000hR/W, RO
00000000hR/W
00000000hR/W, RO
00000000hR/W
00000000hR/W, RO
00000000hR/W
38 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
Table 1-2. Intel® High Definition Audio PCI Register Address Map
Number of Output Stream Supported — RO. Hardwired to 0100b indicating that the ICH7 Intel
Definition Audio controller supports 4 output streams.
Number of Input Stream Supported — RO. Hardwired to 0100b indicating that the ICH7 Intel High
11:8
Definition Audio controller supports 4 input streams.
Number of Bidirectional Stream Supported — RO. Hardwired to 0 indicating that the ICH7 Intel High
Number of Serial Data Out Signals — RO. Hardwired to 0 indicating that the ICH7 Intel High
1
Definition Audio controller supports 1 serial data output signal.
64-bit Address Supported — RO. Hardwired to 1b indicating that the ICH7 Intel High Definition
0
Audio controller supports 64-bit addressing for BDL addresses, data buffer addressees, and
command buffer addresses.
Output Payload Capability — RO. Hardwired to 3Ch indicating 60 word payload.
This field indicates the total output payload available on the link. This does not include bandwidth
used for command and control. This measurement is in 16-bit word quantities per 48 MHz frame.
The default link clock of 24.000 MHz (the data is double pumped) provides 1000 bits per frame, or
62.5 words in total. 40 bits are used for command and control, leaving 60 words available for data
payload.
Input Payload Capability — RO. Hardwired to 1Dh indicating 29 word payload.
This field indicates the total output payload available on the link. This does not include bandwidth
used for response. This measurement is in 16-bit word quantities per 48 MHz frame. The default link
clock of 24.000 MHz provides 500 bits per frame, or 31.25 words in total. 36 bits are used for
response, leaving 29 words available for data payload.
6:0
00h = 0 word
01h = 1 word payload.
.....
FFh = 256 word payload.
Programmer’s Reference Manual 41
Intel® High Definition Audio Controller Registers (D27:F0)
Accept Unsolicited Response Enable — R/W.
0 = Unsolicited responses from the codecs are not accepted.
8
1 = Unsolicited response from the codecs are accepted by the controller and placed into the
Response Input Ring Buffer.
7:2Reserved.
Flush Control — R/W.
0 = Flush Not in progress.
1 = Writing a 1 to this bit initiates a flush. When the flush completion is received by the controller,
hardware sets the Flush Status bit and clears this Flush Control bit. Before a flush cycle is
1
0
initiated, the DMA Position Buffer must be programmed with a valid memory address by
software, but the DMA Position Buffer bit 0 needs not be set to enable the position reporting
mechanism. Also, all streams must be stopped (the associated RUN bit must be 0).
When the flush is initiated, the controller will flush the pipelines to memory to ensure that the
hardware is ready to transition to a D3 state. Setting this bit is not a critical step in the power state
transition if the content of the FIFIOs is not critical.
Controller Reset # — R/W.
0 = Writing a 0 to this bit causes the Intel
machines, FIFOs, and non-resume well memory mapped configuration registers (not PCI
configuration registers) in the controller will be reset. The Intel High Definition Audio link
RESET# signal will be asserted, and all other link signals will be driven to their default values.
After the hardware has completed sequencing into the reset state, it will report a 0 in this bit.
Software must read a 0 from this bit to verify the controller is in reset.
1 = Writing a 1 to this bit causes the controller to exit its reset state and deassert the Intel High
Definition Audio link RESET# signal. Software is responsible for setting/clearing this bit such
that the minimum Intel High Definition Audio link RESET# signal assertion pulse width
specification is met. When the controller hardware is ready to begin operation, it will report a 1
in this bit. Software must read a 1 from this bit before accessing any controller registers. This
bit defaults to a 0 after Hardware reset, therefore, software needs to write a 1 to this bit to
begin operation.
NOTES:
1. The CORB/RIRB RUN bits and all stream RUN bits must be verified cleared to 0 before writing
a 0 to this bit in order to assure a clean re-start.
2. When setting or clearing this bit, software must ensure that minimum link timing requirements
(minimum RESET# assertion time, etc.) are met.
3. When this bit is 0 indicating that the controller is in reset, writes to all Intel High Definition Audio
memory mapped registers are ignored as if the device is not present. The only exception is this
register itself. The Global Control register is write-able as a DWord, Word, or Byte even when
CRST# (this bit) is 0 if the byte enable for the byte containing the CRST# bit (Byte Enable 0) is
active. If Byte Enable 0 is not active, writes to the Global Control register will be ignored when
CRST# is 0. When CRST# is 0, reads to Intel High Definition Audio memory mapped registers
will return their default value except for registers that are not reset with PLTRST# or on a
D3
to D0 transition.
HOT
®
High Definition Audio controller to be reset. All state
42 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
SDIN Wake Enable Flags — R/W. These bits control which SDI signal(s) may generate a wake
event. A 1b in the bit mask indicates that the associated SDIN signal is enabled to generate a wake.
Bit 0 is used for SDI0
Bit 1 is used for SDI1
Bit 2 is used for SDI2
NOTE: These bits are in the resume well and only cleared on a power on reset. Software must not
make assumptions about the reset state of these bits and must set them appropriately.
SDIN State Change Status Flags — R/WC. Flag bits that indicate which SDI signal(s) received a
state change event. The bits are cleared by writing 1’s to them.
Bit 0 = SDI0
Bit 1 = SDI1
Bit 2 = SDI2
NOTE: These bits are in the resume well and only cleared on a power on reset. Software must not
Programmer’s Reference Manual 43
make assumptions about the reset state of these bits and must set them appropriately.
Intel® High Definition Audio Controller Registers (D27:F0)
Output FIFO Padding Type (OPADTYPE)— RO: This field indicates how the controller pads the
samples in the controller's buffer (FIFO). Controllers may not pad at all or may pad to byte or
memory container sizes.
15:14
0h = Controller pads all samples to bytes
1h = Reserved
2h = Controller pads to memory container size
3h = Controller does not pad and uses samples directly
Output Stream Payload Capability (OUTSTRMPAY)— RO: This field indicates maximum number
of words per frame for any single output stream. This measurement is in 16 bit word quantities per
48 kHz frame. The maximum supported is 48 Words (96B); therefore, a value of 30h is reported in
this register. The value does not specify the number of words actually transmitted in the frame, but is
the size of the data in the controller buffer (FIFO) after the samples are padded as specified by
OPADTYPE. Thus, to compute the supported streams, each sample is padded according to
13:0
OPADTYPE and then multiplied by the number of channels and samples per frame. If this computed
value is larger than OUTSTRMPAY, then that stream is not supported. The value specified is not
affected by striping.
Software must ensure that a format that would cause more Words per frame than indicated is not
programmed into the Output Stream Descriptor Register.
The value may be larger than the OUTPAY register value in some cases.
44 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
Input FIFO Padding Type (IPADTYPE)— RO: This field indicates how the controller pads the
samples in the controller's buffer (FIFO). Controllers may not pad at all or may pad to byte or
memory container sizes.
0h = Controller pads all samples to bytes
1h = Reserved
2h = Controller pads to memory container size
3h = Controller does not pad and uses samples directly
Input Stream Payload Capability (INSTRMPAY)— RO: This field indicates the maximum number
of Words per frame for any single input stream. This measurement is in 16-bit Word quantities per
48-kHz frame. The maximum supported is 24 Words (48B); therefore, a value of 18h is reported in
this register.
The value does not specify the number of words actually transmitted in the frame, but is the size of
the data as it will be placed into the controller's buffer (FIFO). Thus, samples will be padded
according to IPADTYPE before being stored into controller buffer. To compute the supported
streams, each sample is padded according to IPADTYPE and then multiplied by the number of
channels and samples per frame. If this computed value is larger than INSTRMPAY, then that
stream is not supported. As the inbound stream tag is not stored with the samples it is not included
in the word count.
The value may be larger than INPAY register value in some cases, although values less than INP AY
may also be invalid due to overhead. Software must ensure that a format that would cause more
Words per frame than indicated is not programmed into the Input Stream Descriptor Register.
Programmer’s Reference Manual 45
Intel® High Definition Audio Controller Registers (D27:F0)
Global Interrupt Enable (GIE) — R/W. Global bit to enable device interrupt generation.
0 = Disable.
1 = Enable. The Intel
31
30
control is in addition to any bits in the bus specific address space, such as the Interrupt Enable
bit in the PCI configuration space.
NOTE: This bit is not affected by the D3
Controller Interrupt Enable (CIE) — R/W. Enables the general interrupt for controller functions.
0 = Disable.
1 = Enable. The controller generates an interrupt when the corresponding status bit gets set due to
a Response Interrupt, a Response Buffer Overrun, and State Change events.
NOTE: This bit is not affected by the D3
Stream Interrupt Enable (SIE) — R/W.
0 = Disable.
1 = Enable. When set to 1, the individual streams are enabled to generate an interrupt when the
corresponding status bits get set.
A stream interrupt will be caused as a result of a buffer with IOC = 1in the BDL entry being
completed, or as a result of a FIFO error (underrun or overrun) occurring. Control over the
generation of each of these sources is in the associated Stream Descriptor.
The streams are numbered and the SIE bits assigned sequentially, based on their order in the
register set.
Bit 0: input stream 1
Bit 1: input stream 2
Bit 2: input stream 3
Bit 3: input stream 4
Bit 4: output stream 1
Bit 5: output stream 2
Bit 6: output stream 3
Bit 7: output stream 4
®
High Definition Audio function is enabled to generate an interrupt. This
to D0 transition.
HOT
to D0 transition.
HOT
46 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
Global Interrupt Status (GIS) — RO. This bit is an OR of all the interrupt status bits in this register.
NOTE: This bit is not affected by the D3
Controller Interrupt Status (CIS) — RO. Status of general controller interrupt.
0 = An interrupt condition did Not occur as described below.
1 = An interrupt condition occurred due to a Response Interrupt, a Response Buffer Overrun
Interrupt, or a SDIN State Change event. The exact cause can be determined by interrogating
other registers. This bit is an OR of all of the stated interrupt status bits for this register.
NOTES:
1. This bit is set regardless of the state of the corresponding interrupt enable bit, but a hardware
interrupt will not be generated unless the corresponding enable bit is set.
2. This bit is not affected by the D3
Stream Interrupt Status (SIS) — RO.
0 = An interrupt condition did Not occur on the corresponding stream.
1 = An interrupt condition occurred on the corresponding stream. This bit is an OR of all of the
stream’s interrupt status bits.
NOTE: These bits are set regardless of the state of the corresponding interrupt enable bits.
The streams are numbered and the SIE bits assigned sequentially, based on their order in the
register set.
Bit 0: input stream 1
Bit 1: input stream 2
Bit 2: input stream 3
Bit 3: input stream 4
Bit 4: output stream 1
Bit 5: output stream 2
Bit 6: output stream 3
Bit 7: output stream 4
Wall Clock Counter — RO. This 32-bit counter field is incremented on each link BCLK period and
rolls over from FFFF FFFFh to 0000 0000h. This counter will roll over to 0 with a period of
approximately 179 seconds.
This counter is enabled while the BCLK bit is set to 1. Software uses this counter to synchronize
between multiple controllers. Will be reset on controller reset.
Intel® High Definition Audio Controller Registers (D27:F0)
0 = Data is Not blocked from being sent on or received fro m the link
1 = The set bits block data from being sent on or received from the link. Each bit controls the
associated stream descriptor (i.e., bit 0 corresponds to the first stream descriptor, etc.)
To synchronously start a set of DMA engines, these bits are first set to 1. The RUN bits for the
associated stream descriptors are then set to 1 to start the DMA engines. When all streams are
ready (FIFORDY =1), the associated SSYNC bits can all be set to 0 at the same time, and
transmission or reception of bits to or from the link will begin together at the start of the next full link
frame.
To synchronously stop the streams, first these bits are set, and then the individual RUN bits in the
stream descriptor are cleared by software.
If synchronization is not desired, these bits may be left as 0, and the stream will simply begin running
normally when the stream’s RUN bit is set.
The streams are numbered and the SIE bits assigned sequentially, based on their order in the
register set.
Bit 0: input stream 1
Bit 1: input stream 2
Bit 2: input stream 3
Bit 3: input stream 4
Bit 4: output stream 1
Bit 5: output stream 2
Bit 6: output stream 3
Bit 7: output stream 4
CORB Lower Base Address — R/W. Lower address of the Command Output Ring Buffer, allowing
the CORB base address to be assigned on any 128-B boundary. This register field must not be
written when the DMA engine is running or the DMA transfer may be corrupted.
CORB Lower Base Unimplemented Bits — RO. Hardwired to 0. This requires the CORB to be
allocated with 128B granularity to allow for cache line fetch optimizations.
Intel® High Definition Audio Controller Registers (D27:F0)
CORB Upper Base Address — R/W. Upper 32 bits of the address of the Command Output Ring
buffer. This register field must not be written when the DMA engine is running or the DMA transfer
may be corrupted.
CORB Write Pointer — R/W. Software writes the last valid CORB entry offset into this field in
DWord granularity. The DMA engine fetches commands from the CORB until the Read pointer
matches the Write pointer. Supports 256 CORB entries (256x4B = 1KB). This register field may be
written when the DMA engine is running.
CORB Read Pointer Reset — R/W. Software writes a 1 to this bit to reset the CORB Read Pointer
to 0 and clear any residual prefetched commands in the CORB hardware buffer within the Intel
High Definition Audio controller. The hardware will physically update this bit to 1 when the CORB
Pointer reset is complete. Software must read a 1 to verify that the reset completed correctly.
Software must clear this bit back to 0 and read back the 0 to verify that the clear completed correctly.
The CORB DMA engine must be stopped prior to resetting the Read Pointer or else DMA transfer
may be corrupted.
CORB Read Pointer (CORBRP)— RO. Software reads this field to determine how many commands
it can write to the CORB without over-running. The value read indicates the CORB Read Pointer
offset in DWord granularity. The offset entry read from this field has been successfully fetched by the
DMA controller and may be over-written by software. Supports 256 CORB entries (256 x 4B=1KB).
This field may be read while the DMA engine is running.
®
Programmer’s Reference Manual 49
Intel® High Definition Audio Controller Registers (D27:F0)
Enable CORB DMA Engi ne — R/W. After software writes a 0 to this bit, the hardware may not stop
immediately. The hardware will physically update the bit to 0 when the DMA engine is truly stopped.
Software must read a 0 from this bit to verify that the DMA engine is truly stopped.
CORB Lower Base Address — R/W. Lower address of the Response Input Ring Buffer, allowing
the RIRB base address to be assigned on any 128-B boundary. This register field must not be
written when the DMA engine is running or the DMA transfer may be corrupted.
RIRB Lower Base Unimplemented Bits — RO. Hardwired to 0. This required the RIRB to be
allocated with 128-B granularity to allow for cache line fetch optimizations.
RIRB Upper Base Address — R/W. Upper 32 bits of the address of the Response Input Ring
Buffer. This register field must not be written when the DMA engine is running or the DMA transfer
may be corrupted.
RIRB Write Pointer Reset — R/W. Software writes a 1 to this bit to reset the RIRB Write Pointer to
0. The RIRB DMA engine must be stopped prior to resetting the Write Pointer or else DMA transfer
may be corrupted.
This bit is always read as 0.
RIRB Write Pointer (RIRBWP) — RO. Indicates the last valid RIRB entry written by the DMA
controller. Software reads this field to determine how many responses it can read from the RIRB.
The value read indicates the RIRB Write Pointer offset in 2 DWord RIRB entry units (since each
RIRB entry is 2 DWords long). Supports up to 256 RIRB entries (256 x 8 B = 2 KB). This register
field may be written when the DMA engine is running.
Programmer’s Reference Manual 51
Intel® High Definition Audio Controller Registers (D27:F0)
Response Overrun Interrupt Status — R/WC.
0 = Software clears this bit by writing a 1 to it.
1 = Software sets this bit to 1 when the RIRB DMA engine is not able to write the incoming
2
1Reserved.
0
responses to memory before additional incoming responses overrun the internal FIFO. When
the overrun occurs, the hardware will drop the responses that overrun the buffer. An interrupt
may be generated if the Response Overrun Interrupt Control bit is set. Note that this status bit is
set even if an interrupt is not enabled for this event.
Response Interrupt — R/WC.
0 = Software clears this bit by writing a 1 to it.
1 = Hardware sets this bit to 1 when an interrupt has been generated after N number of Responses
are sent to the RIRB buffer OR when an empty Response slot is encountered on all SDI[x]
inputs (whichever occurs first). Note that this status bit is set even if an interrupt is not enabled
for this event.
Immediate Response Read (IRR) — RO. This register contains the response received from a codec
resulting from a command sent via the Immediate Command mechanism.
If multiple codecs responded in the same time, there is no assurance as to which response will be
latched. Therefore, broadcast-type commands must not be issued via the Immediate Command
mechanism.
0 = Software must clear this bit by writing a 1 to it before issuing a new command so that the
1
0
software may determine when a new response has arrived.
1 = Set to 1 by hardware when a new response is latched into the Immediate Response register
(HDBAR + 64). This is a status flag indicating that software may read the response from the
Immediate Response register.
Immediate Command Busy (ICB) — R/W. When this bit is read as 0, it indicates that a new
command may be issued using the Immediate Command mechanism. When this bit transitions from
0-to-1 (via software writing a 1), the controller issues the command currently stored in the Immediate
Command register to the codec over the link. When the corresponding response is latched into the
Immediate Response register, the controller hardware sets the IRV flag and clears the ICB bit back
to 0.
NOTE: An Immediate Command must not be issued while the CORB/RIRB mechanism is
54 Programmer’s Reference Manual
operating, otherwise the responses conflict. This must be enforced by software.
Intel® High Definition Audio Controller Registers (D27:F0)
1.2.33DPLBASE—DMA Position Lower Base Address Register
Intel® High Definition Audio Controller Registers (D27:F0)
BitDescription
Stream Number — R/W. This value reflects the Tag associated with the data being transferred on
the link.
When data controlled by this descriptor is sent out over the link, it will have its stream number
encoded on the SYNC signal.
When an input stream is detected on any of the SDI signals that match this value, the data samples
are loaded into FIFO associated with this descriptor.
23:20
17:16Stripe Control — RO. This bit is only meaningful for input streams; therefore, this bit is hardwired to 0.
Note that while a single SDI input may contain data from more than one stream number, two different
SDI inputs may not be configured with the same stream number.
0000 = Reserved
0001 = Stream 1
........
1110 = Stream 14
1111 = Stream 15
Bidirectional Direction Control — RO. This bit is only meaningful for bidirectional streams; therefore,
19
this bit is hardwired to 0.
Traffic Priority — RO. Hardwired to 1 indicating that all streams will use VC1 if it is enabled through
18
the PCI Express* registers.
15:5Reserved
Descriptor Error Interrupt Enable — R/W.
4
0 = Disable
1 = An interrupt is generated when the Descriptor Error Status bit is set.
FIFO Error Interrupt Enable — R/W.
0 = Disable.
3
1 = Enable. This bit controls whether the occurrence of a FIFO error (overrun for input or underrun
for output) will cause an interrupt or not. If this bit is not set, bit 3 in the Status register will be set,
but the interrupt will not occur. Either way, the samples will be dropped.
Interrupt on Completion Enable — R/W.
0 = Disable.
2
1 = Enable. This bit controls whether or not an interrupt occurs when a buffer completes with the
IOC bit set in its descriptor. If this bit is not set, bit 2 in the Status register will be set, but the
interrupt will not occur.
Stream Run (RUN) — R/W.
0 = Disable. The DMA engine associated with this input stream will be disabled. The hardware will
1
0
report a 0 in this bit when the DMA engine is actually stopped. Software must read a 0 from this
bit before modifying related control registers or restarting the DMA engine.
1 = Enable. The DMA engine associated with this input stream will be enabled to transfer data from
the FIFO to the main memory. The SSYNC bit must also be cleared in order for the DMA engine
to run. For output streams, the cadence generator is reset whenever the RUN bit is set.
Stream Reset (SRST) — R/W.
0 = Writing a 0 causes the corresponding stream to exit reset. When the stream hardware is ready
to begin operation, it will report a 0 in this bit. Software must read a 0 from this bit before
accessing any of the stream registers.
1 = Writing a 1 causes the corresponding stream to be reset. The Stream Descriptor registers
(except the SRST bit itself) and FIFO’s for the corresponding stream are reset. After the stream
hardware has completed sequencing into the reset state, it will report a 1 in this bit. Software
must read a 1 from this bit to verify that the stream is in reset. The RUN bit must be cleared
before SRST is asserted.
56 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
For output streams, the controller hardware will set this bit to 1 while the output DMA FIFO contains
enough data to maintain the stream on the link. This bit defaults to 0 on reset because the FIFO is
5
cleared on a reset.
For input streams, the controller hardware will set this bit to 1 when a valid descriptor is loaded and
the engine is ready for the RUN bit to be set.
Descriptor Error — R/WC.
0 = No error detected.
1 = A serious error occurred during the fetch of a descriptor. This could be a result of a Master
4
Abort, a parity or ECC error on the bus, or any other error which renders the current Buffer
Descriptor or Buffer Descriptor list useless. This error is treated as a fatal stream error, as the
stream cannot continue running. The RUN bit will be cleared and the stream will stop.
NOTE: Software may attempt to restart the stream engine after addressing the cause of the error
FIFO Error — R/WC. The bit is cleared by writing a 1 to it.
0 = No error detected.
1 = FIFO error occurred. This bit is set even if an interrupt is not enabled.
For an input stream, this indicates a FIFO overrun occurring while the RUN bit is set. When this
3
happens, the FIFO pointers do not increment and the incoming data is not written into the FIFO,
thereby being lost.
For an output stream, this indicates a FIFO underrun when there are still buffers to send. The
hardware should not transmit anything on the link for the associated stream if there is not valid data
to send.
Buffer Completion Interrupt Status — R/WC.
0 = Last sample of a buffer has Not been processed as described below.
2
1 = Set to 1 by the hardware after the last sample of a buffer has been processed, AND if the
1:0Reserved.
and writing a 1 to this bit to clear it.
Interrupt on Completion bit is set in the command byte of the buffer descriptor. It remains active
until software clears it by writing a 1 to it.
Programmer’s Reference Manual 57
Intel® High Definition Audio Controller Registers (D27:F0)
1.2.37SDLPIB—Stream Descriptor Link Position in Buffer
Cyclic Buffer Length — R/W. Indicates the number of bytes in the complete cyclic buffer. This
register represents an integer number of samples. Link Position in Buffer will be reset when it
reaches this value.
31:0
Software may only write to this register after Global Reset, Controller Reset, or Stream Reset has
occurred. This value should be only modified when the RUN bit is 0. Once the RUN bit has been set
to enable the engine, software must not write to this register until after the next reset is asserted, or
transfer may be corrupted.
58 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
1.2.39SDLVI—Stream Descriptor Last Valid Index Register
FIFO Size — RO (Input stream), R/W (Output stream). Indicates the maximum number of bytes that
could be fetched by the controller at one time. This is the maximum number of bytes that may have
been DMA’d into memory but not yet transmitted on the link, and is also the maximum possible value
that the PICB count will increase by at one time.
The value in this field is different for input and output streams. It is also dependent on the Bits per
Samples setting for the corresponding stream. Following are the values read/written from/to this
register for input and output streams, and for non-padded and padded bit formats:
Output Stream R/W value:
ValueOutput Streams
0Fh = 16B8, 16, 20, 24, or 32 bit Output Streams
1Fh = 32B8, 16, 20, 24, or 32 bit Output Streams
3Fh = 64B8, 16, 20, 24, or 32 bit Output Streams
7Fh = 128B8, 16, 20, 24, or 32 bit Output Streams
7:0
BFh = 192B8, 16, or 32 bit Output Streams
FFh = 256B20, 24 bit Output Streams
NOTES:
1. All other values not listed are not supported.
2. When the output stream is programmed to an unsupported size, the hardware sets itself to the
default value (BFh).
3. Software must read the bit field to test if the value is supported after setting the bit field.
Input Stream RO value:
ValueInput Streams
77h = 120B8, 16, 32 bit Input Streams
9Fh = 160B20, 24 bit Input Streams
NOTE: The default value is different for input and output streams, and reflects the default state of
the BITS fields (in Stream Descriptor Format registers) for the corresponding stream.
60 Programmer’s Reference Manual
Intel® High Definition Audio Controller Registers (D27:F0)
Sample Base Rate Devisor — R/W.
000 = Divide by 1(48 kHz, 44.1 kHz)
001 = Divide by 2 (24 kHz, 22.05 kHz)
010 = Divide by 3 (16 kHz, 32 kHz)
011 = Divide by 4 (11.025 kHz)
100 = Divide by 5 (9.6 kHz)
101 = Divide by 6 (8 kHz)
110 = Divide by 7
111 = Divide by 8 (6 kHz)
7Reserved.
Bits per Sample (BITS) — R/W.
000 = 8 bits. The data will be packed in memory in 8-bit containers on 16-bit boundaries
001 = 16 bits. The data will be packed in memory in 16-bit containers on 16-bit boundaries
010 = 20 bits. The data will be packed in memory in 32-bit containers on 32-bit boundaries
011 = 24 bits. The data will be packed in memory in 32-bit containers on 32-bit boundaries
100 = 32 bits. The data will be packed in memory in 32-bit containers on 32-bit boundaries
Others = Reserved.
Number of Channels (CHAN) — R/W. Indicates number of channels in each frame of the stream.
0000 =1
0001 =2
........
1111 =16
Programmer’s Reference Manual 61
Intel® High Definition Audio Controller Registers (D27:F0)
1.2.43SDBDPL—Stream Descriptor Buffer Descriptor List Pointer
Lower Base Address Register
09hPIProgramming Interface00RO
0AhSCCSub Class Code01hRO
0BhBCCBase Class Code04hRO
0EhHEADTYPHeader Type00hRO
10h–13hNAMBBARNative Audio Mixer Base Address00000001hR/W, RO
14h–17hNAMMBARNative Audio Bus Mastering Base Address00000001hR/W, RO
18h–1BhMMBARMixer Base Address (Mem)00000000hR/W, RO
1Ch–1FhMBBARBus Master Base Address (Mem)00000000hR/W, RO
41hCFGConfiguration00hR/W
50h–51hPIDPCI Power Management Capability ID0001hRO
52h–53hPCPC -Power Management CapabilitiesC9C2hRO
54h–55hPCSPower Management Control and Status0000hR/W, R/WC
See register
description.
See register
description
See register
description
RO
RO
RO
Note:Internal reset as a result of D3
to D0 transition will reset all the core well registers except the
HOT
following BIOS programmed registers as BIOS may not be invoked following the D3-to-D0
transition. All resume well registers will not be reset by the D3
Programmer’s Reference Manual 63
to D0 transition.
HOT
AC ’97 Audio Controller Registers (D30:F2)
Core well registers not reset by the D3
to D0 transition:
HOT
• offset 2Ch–2Dh – Subsystem Vendor ID (SVID)
• offset 2Eh–2Fh – Subsystem ID (SID)
• offset 40h – Programmable Codec ID (PCID)
• offset 41h – Configuration (CFG)
Resume well registers will not be reset by the D3
to D0 transition:
HOT
• offset 54h–55h – Power Management Control and Status (PCS)
• Bus Mastering Register: Global Status Register, bits 17:16
• Bus Mastering Register: SDATA_IN MAP register, bits 7:3
PCICMD is a 16-bit control register. Refer to the PCI 2.3 specification for complete details on each
bit.
BitDescription
15:11Reserved.Read 0.
Interrupt Disable (ID) — R/W.
10
0 = The INTx# signals may be asserted and MSIs may be generated.
1 = The AC ‘97 controller’s INTx# signal will be de-asserted and it may not generate MSIs.
9Fast Back to Back Enable (FBE) — RO. Not implemented. Hardwired to 0.
8SERR# Enable (SERR_EN) — RO. Not implemented. Hardwired to 0.
7Wait Cycle Control (WCC) — RO. Not implemented. Hardwired to 0.
6Parity Error Response (PER) — RO. Not implemented. Hardwired to 0.
5VGA Palette Snoop (VPS). Not implemented. Hardwired to 0.
4Memory Write and Invalidate Enable (MWIE) — RO. Not implemented. Hardwired to 0.
3Special Cycle Enable (SCE). Not implemented. Hardwired to 0.
Bus Master Enable (BME) — R/W. Controls standard PCI bus mastering capabilities.
2
0 = Disable
1 = Enable
Memory Space Enable (MSE) — R/W. Enables memory space addresses to the AC ’97 Audio
controller.
1
0 = Disable
1 = Enable
I/O Space Enable (IOSE) — R/W. This bit controls access to the AC ’97 Audio controller I/O space
registers.
0 = Disable (Default).
1 = Enable access to I/O space. The Native PCI Mode Base Address register should be
0
programmed prior to setting this bit.
NOTE: This bit becomes writable when the IOSE bit in offset 41h is set. If at any point software
decides to clear the IOSE bit, software must first clear the IOS bit.
PCISTA is a 16-bit status register. Refer to the PCI 2.3 specification for complete details on each
bit.
BitDescription
15Detected Parity Error (DPE). Not implemented. Hardwired to 0.
14 Signaled System Error (SSE) — RO. Not implemented. Hardwired to 0.
Master Abort Status (MAS) — R/WC. Software clears this bit by writing a 1 to it.
13
0 = No master abort generated.
1 = Bus Master AC '97 2.3 interface function, as a master, generates a master abort.
12Reserved — RO. Will always read as 0.
11Signaled Target Abort (STA) — RO. Not implemented. Hardwired to 0.
DEVSEL# Timing Status (DEV_STS) — RO. This 2-bit field reflects the ICH7's DEVSEL# timing
when performing a positive decode.
10:9
01b = Medium timing.
8Data Parity Error Detected (DPED) — RO. Not implemented. Hardwired to 0.
Fast Back to Back Capable (FB2BC) — RO. Hardwired to 1. This bit indicates that the ICH7 as a
7
target is capable of fast back-to-back transactions.
6UDF Supported — RO. Not implemented. Hardwired to 0.
566 MHz Capable (66MHZ_CAP) — RO. Hardwired to 0.
Capabilities List (CAP_LIST) — RO. Indicates that the controller contains a capabilities pointer list.
4
The first item is pointed to by looking at configuration offset 34h.
The Native PCI Mode Audio function uses PCI Base Address register #1 to request a contiguous
block of I/O space that is to be used for the Native Audio Mixer software interface. The mixer
requires 256 bytes of I/O space. Native Audio Mixer and Modem codec I/O registers are located
from 00h to 7Fh and reside in the codec. Access to these registers will be decoded by the AC '97
controller and forwarded over the AC-link to the codec. The codec will then respond with the
register value.
In the case of the split codec implementation, accesses to the different codecs are differentiated by
the controller by using address offsets 00h
–7Fh for the primary codec and address offsets 80h–FEh
for the secondary codec.
Note:The tertiary codec cannot be addressed via this address space. The tertiary space is only available
from the new MMBAR register. This register powers up as read only and only becomes write-able
when the IOSE bit in offset 41h is set.
For description of these I/O registers, refer to the Audio Codec ‘97 Component Specification, Version 2.3.
BitDescription
31:16Hardwired to 0’s.
Base Address — R/W. These bits are used in the I/O space decode of the Native Audio Mixer
interface registers. The number of upper bits that a device actually implements depends on how
15:8
much of the address space the device will respond to. For the AC ‘97 mixer, the upper 16 bits are
hardwired to 0, while bits 15:8 are programmable. This configuration yields a maximum I/O block
size of 256 bytes for this base address.
7:1Reserved. Read as 0s.
Resource Type Indicator (RTE) — RO. This bit defaults to 0 and changes to 1 if the IOSE bit is set
0
(D30:F2:Offset 41h, bit 0). When 1, this bit indicates a request for I/O space.
68 Programmer’s Reference Manual
AC ’97 Audio Controller Registers (D30:F2)
2.1.11NABMBAR—Native Audio Bus Mastering Base Address
Register (Audio—D30:F2)
The Native PCI Mode Audio function uses PCI Base Address register #1 to request a contiguous
block of I/O space that is to be used for the Native Mode Audio software interface.
Note:The DMA registers for S/PDIF* and Microphone In 2 cannot be addressed via this address space.
These DMA functions are only available from the new MBBAR register. This register powers up
as read only and only becomes write-able when the IOSE bit in offset 41h is set.
BitDescription
31:16Hardwired to 0’s
Base Address — R/W. These bits are used in the I/O space decode of the Native Audio Bus
Mastering interface registers. The number of upper bits that a device actually implements depends
15:6
on how much of the address space the device will respond to. For AC '97 bus mastering, the upper
16 bits are hardwired to 0, while bits 15:6 are programmable. This configuration yields a maximum
I/O block size of 64 bytes for this base address.
5:1Reserved. Read as 0’s.
Resource Type Indicator (RTE) — RO. This bit defaults to 0 and changes to 1 if the IOSE bit is set
0
(D30:F2:Offset 41h, bit 0). When 1, this bit indicates a request for I/O space.
2.1.12MMBAR—Mixer Base Address Register (Audio—D30:F2)
This BAR creates 512 bytes of memory space to signify the base address of the register space. The
lower 256 bytes of this space map to the same registers as the 256-byte I/O space pointed to by
NAMBAR. The lower 384 bytes are divided as follows:
• 128 bytes for the primary codec (offsets 00–7Fh)
• 128 bytes for the secondary codec (offsets 80–FFh)
• 128 bytes for the tertiary codec (offsets 100h–17Fh).
• 128 bytes of reserved space (offsets 180h–1FFh), returning all 0’s.
BitDescription
Base Address — R/W. This field provides the lower 32-bits of the 512-byte memory offset to use for
31:9
decoding the primary, secondary, and tertiary codec’s mixer spaces.
8:3Reserved. Read as 0’s.
2:1Type — RO. Hardwired to 00b to Indicate the base address exists in 32-bit address space
0Resource Type Indicator (RTE) — RO. Hardwired to 0 to indicate a request for memory space.
Programmer’s Reference Manual 69
AC ’97 Audio Controller Registers (D30:F2)
2.1.13MBBAR—Bus Master Base Address Register
(Audio—D30:F2)
This BAR creates 256-bytes of memory space to signify the base address of the bus master
memory space. The lower 64-bytes of the space pointed to by this register point to the same
registers as the MBBAR.
BitDescription
Base Address — R/W. This field provides the I/O offset to use for decoding the PCM In, PCM Out,
31:8
and Microphone 1 DMA engines.
7:3Reserved. Read as 0’s.
2:1Type — RO. Hardwired to 00b to indicate the base address exists in 32-bit address space
0Resource Type Indicator (RTE) — RO. Hardwired to 0 to indicate a request for memory space.
The SVID register, in combination with the Subsystem ID register (D30:F2:2Eh), enable the
operating environment to distinguish one audio subsystem from the other(s).
This register is implemented as write-once register. Once a value is written to it, the value can be
read back. Any subsequent writes will have no effect.
The SID register, in combination with the Subsystem Vendor ID register (D30:F2:2Ch) make it
possible for the operating environment to distinguish one audio subsystem from the other(s).
This register is implemented as write-once register. Once a value is written to it, the value can be
read back. Any subsequent writes will have no effect.
This register indicates which PCI interrupt pin is used for the AC '97 module interrupt. The AC '97
interrupt is internally OR’d to the interrupt controller with the PIRQB# signal.
BitDescription
7:0AC '97 Interrupt Routing — RO.This reflects the value of D30IP .AAIP in chipset configuration space.
This register is used to specify the ID for the secondary and tertiary codecs for I/O accesses. This
register is not affected by the D3
before any AC ’97 codec accesses.
to D0 transition. The value in this register must be modified
HOT
BitDescription
7:4Reserved.
Tertiary Codec ID (TID) — R/W. These bits define the encoded ID that is used to address the
3:2
tertiary codec I/O space. Bit 1 is the first bit sent and Bit 0 is the second bit sent on ACZ_SDOUT
during slot 0.
Secondary Codec ID (SCID) — R/W. These two bits define the encoded ID that is used to address
the secondary codec I/O space. The two bits are the ID that will be placed on slot 0, bits 0 and 1,
1:0
upon an I/O access to the secondary codec. Bit 1 is the first bit sent and bit 0 is the second bit sent
on ACZ_SDOUT during slot 0.
This register is used to specify the ID for the secondary and tertiary codecs for I/O accesses. This
register is not affected by the D3
BitDescription
7:1Reserved—RO.
I/O Space Enable (IOSE) — R/W.
0 = Disable. The IOS bit at offset 04h and the I/O space BARs at offset 10h and 14h become read
0
only registers. Additionally, bit 0 of the I/O BARs at of fsets 10h and 14h are hardwired to 0 when
this bit is 0. This is the default state for the I/O BARs. BIOS must explicitly set this bit to allow a
legacy driver to work.
1 = Enable.
to D0 transition.
HOT
72 Programmer’s Reference Manual
AC ’97 Audio Controller Registers (D30:F2)
2.1.21PID—PCI Power Management Capability Identification
Register (Audio—D30:F2)
PME Status (PMES) — R/WC. This bit resides in the resume well. Software clears this bit by writing
a 1 to it.
15
0 = PME# signal Not asserted by AC ‘97 controller.
1 = This bit is set when the AC ’97 controller would normally assert the PME# signal independent of
the state of the PME_En bit.
14:9Reserved — RO.
Power Management Event Enable (PMEE) — R/W.
0 = Disable.
8
1 = Enable. When set, and if corresponding PMES is also set, the AC '97 controller sets the
AC97_STS bit in the GPE0_STS register
7:2Reserved—RO.
Power State (PS) — R/W. This field is used both to determine the current power state of the AC ’97
controller and to set a new power state. The values are:
00 = D0 state
01 = not supported
10 = not supported
1:0
11 = D3
When in the D3
memory spaces are not. Additionally, interrupts are blocked.
If software attempts to write a value of 10b or 01b in to this field, the write operation must complete
normally; however, the data is discarded and no state change occurs.
HOT
state
state, the AC ’97 controller’s configuration space is available, but the I/O and
HOT
74 Programmer’s Reference Manual
AC ’97 Audio Controller Registers (D30:F2)
2.2AC ’97 Audio I/O Space (D30:F2)
The AC ’97 I/O space includes Native Audio Bus Master registers and Native Mixer registers. For
the ICH7, the offsets are important as they will determine bits 1:0 of the TAG field (codec ID).
Audio Mixer I/O space can be accessed as a 16-bit field only since the data packet length on
AC-link is a word. Any S/W access to the codec will be done as a 16-bit access starting from the
first active byte. In case no byte enables are active, the access will be done at the first word of the
QWord that contains the address of this request.
Table 2-2. Intel
Primary Offset
(Codec ID =00)
®
ICH7 Audio Mixer Register Configuration
Secondary Offset
(Codec ID =01)
00h80h100hReset
02h82h102hMaster Volume
04h84h104hAux Out Volume
06h86h106hMono Volume
08h88h108hMaster Tone (R & L)
0Ah8Ah10AhPC_BEEP Volume
0Ch8Ch10ChPhone Volume
0Eh8Eh10EhMic Volume
10h90h110hLine In Volume
12h92h112hCD Volume
14h94h114hVideo Volume
16h96h116hAux In Volume
18h98h118hPCM Out Volume
1Ah9Ah11AhRecord Select
1Ch9Ch11ChRecord Gain
1Eh9Eh11EhRecord Gain Mic
20hA0h120hGeneral Purpose
22hA2h122h3D Control
24hA4h124hAC ’97 RESERVED
26hA6h126hPowerdown Ctrl/Stat
28hA8h128hExtended Audio
2AhAAh12AhExtended Audio Ctrl/Stat
2ChACh12ChPCM Front DAC Rate
2EhAEh12EhPCM Surround DAC Rate
30hB0h130hPCM LFE DAC Rate
32hB2h132hPCM LR ADC Rate
34hB4h134hMIC ADC Rate
36hB6h136h6Ch Vol: C, LFE
38hB8h138h6Ch Vol: L, R Surround
3AhBAh13AhS/PDIF Control
1. Software should not try to access reserved registers
2. Primary Codec ID cannot be changed. Secondary codec ID can be changed via bits 1:0 of configuration
register 40h. Tertiary codec ID can be changed via bits 3:2 of configuration register 40h.
3. The tertiary offset is only available through the memory space defined by the MMBAR register.
Secondary Offset
(Codec ID =01)
Tertiary Offset
(Codec ID =10)
NAMBAR Exposed Registers
(D30:F2)
The Bus Master registers are located from offset + 00h to offset + 51h and reside in the AC ’97
controller. Accesses to these registers do not cause the cycle to be forwarded over the AC-link to
the codec. S/W could access these registers as bytes, word, DWord or qword quantities, but reads
must not cross DWord boundaries.
In the case of the split codec implementation, accesses to the different codecs are differentiated by
the controller by using address offsets 00h
the secondary codec and address offsets 100h
–7Fh for the primary codec, address offsets 80h–FFh for
–17Fh for the tertiary codec.
The Global Control (GLOB_CNT) (D30:F2:2Ch) and Global Status (GLOB_STA) (D30:F2:30h)
registers are aliased to the same global registers in the audio and modem I/O space. Therefore a
read/write to these registers in either audio or modem I/O space affects the same physical register.
Bus Mastering registers exist in I/O space and reside in the AC ’97 controller. The six channels,
PCM in, PCM in 2, PCM out, Mic in, Mic 2, and S/PDIF out, each have their own set of Bus
Mastering registers. The following register descriptions apply to all six channels. The register
definition section titles use a generic “x_” in front of the register to indicate that the register applies
to all six channels. The naming prefix convention used in Table 2-3 and in the register description
I/O address is as follows:
PI = PCM in channel
PO = PCM out channel
MC = Mic in channel
MC2 = Mic 2 channel
PI2 = PCM in 2 channel
SP = S/PDIF out channel.
76 Programmer’s Reference Manual
AC ’97 Audio Controller Registers (D30:F2)
Table 2-3. Native Audio Bus Master Control Registers (Sheet 1 of 2)
OffsetMnemonicNameDefaultAccess
00hPI_BDBARPCM In Buffer Descriptor list Base Address 00000000hR/W
04hPI_CIVPCM In Current Index Value00hRO
05hPI_LVIPCM In Last Valid Index00hR/W
06hPI_SRPCM In Status 0001hR/WC, RO
08hPI_PICBPCM In Position in Current Buffer0000hRO
0AhPI_PIVPCM In Prefetched Index Value00hRO
0BhPI_CRPCM In Control 00hR/W, R/W (special)
10hPO_BDBAR
14hPO_CIVPCM Out Current Index Value00hRO
15hPO_LVIPCM Out Last Valid Index 00hR/W
16hPO_SRPCM Out Status 0001hR/WC, RO
18hPO_PICBPCM In Position In Current Buffer0000hRO
1AhPO_PIVPCM Out Prefetched Index Value00hRO
1BhPO_CRPCM Out Control 00hR/W, R/W (special)
20hMC_BDBARMic. In Buffer Descriptor List Base Address 00000000hR/W
24hMC_CIVMic. In Current Index Value 00hRO
25hMC_LVIMic. In Last Valid Index00hR/W
26hMC_SRMic. In Status 0001hR/WC, RO
28hMC_PICBMic. In Position In Current Buffer0000hRO
2AhMC_PIVMic. In Prefetched Index Value00hRO
2BhMC_CRMic. In Control 00hR/W, R/W (special)
30hGLOB_STAGlobal Status
34hCASCodec Access Semaphore 00hR/W (special)
40hMC2_BDBAR Mic. 2 Buffer Descriptor List Base Address 00000000hR/W
44hMC2_CIVMic. 2 Current Index Value 00hRO
45hMC2_LVIMic. 2 Last Valid Index00hR/W
46hMC2_SRMic. 2 Status 0001hRO, R/WC
48hMC2_PICBMic 2 Position In Current Buffer0000hRO
4AhMC2_PIVMic. 2 Prefetched Index Value00hRO
4BhMC2_CRMic. 2 Control 00hR/W, R/W (special)
50hPI2_BDBAR
54hPI2_CIVPCM In 2 Current Index Value00hRO
55hPI2_LVIPCM In 2 Last Valid Index00hR/W
56hPI2_SRPCM In 2 Status 0001hR/WC, RO
PCM Out Buffer Descriptor list Base
Address
PCM In 2 Buffer Descriptor List Base
Address
00000000hR/W
See register
description
00000000hR/W
R/W, R/WC, RO
Programmer’s Reference Manual 77
AC ’97 Audio Controller Registers (D30:F2)
Table 2-3. Native Audio Bus Master Control Registers (Sheet 2 of 2)
OffsetMnemonicNameDefaultAccess
58hPI2_PICBPCM In 2 Position in Current Buffer0000hRO
5AhPI2_PIVPCM In 2 Prefetched Index Value00hRO
5BhPI2_CRPCM In 2 Control 00hR/W, R/W (special)
60hSPBARS/PDIF Buffer Descriptor List Base Address 00000000hR/W
64hSPCIVS/PDIF Current Index Value00hRO
65hSPLVIS/PDIF Last Valid Index00hR/W
66hSPSRS/PDIF Status 0001hR/WC, RO
68hSPPICBS/PDIF Position In Current Buffer0000hRO
6AhSPPIVS/PDIF Prefetched Index Value00hRO
6BhSPCRS/PDIF Control 00hR/W, R/W (special)
80hSDMSData_IN Map00hR/W, RO
Note:Internal reset as a result of D3
to D0 transition will reset all the core well registers except the
HOT
registers shared with the AC ’97 Modem (GCR, GSR, CASR). All resume well registers will not be
reset by the D3
Core well registers and bits not reset by the D3
to D0 transition.
HOT
to D0 transition:
HOT
• offset 2Ch–2Fh – bits 6:0 Global Control (GLOB_CNT)
• offset 30h–33h – bits [29,15,11:10,0] Global Status (GLOB_STA)
Software can read the register at offset 00h by performing a single 32-bit read from address offset
00h. Reads across DWord boundaries are not supported.
BitDescription
Buffer Descriptor Base Address[31:3] — R/W. These bits represent address bits 31:3. The data
31:3
should be aligned on 8-byte boundaries. Each buffer descriptor is 8 bytes long and the list can
contain a maximum of 32 entries.
2:0Hardwired to 0.
78 Programmer’s Reference Manual
AC ’97 Audio Controller Registers (D30:F2)
2.2.2x_CIV—Current Index Value Register (Audio—D30:F2)
Software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single,
32-bit read from address offset 04h. Software can also read this register individually by doing a
single, 8-bit read to offset 04h.
BitDescription
7:5Hardwired to 0
Current Index Value [4:0] — RO. These bits represent which buffer descriptor within the list of 32
4:0
descriptors is currently being processed. As each descriptor is processed, this value is incremented.
The value rolls over after it reaches 31.
NOTE: Reads across DWord boundaries are not supported.
2.2.3x_LVI—Last Valid Index Register (Audio—D30:F2)
Software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single,
32-bit read from address offset 04h. Software can also read this register individually by doing a
single, 8-bit read to offset 05h.
BitDescription
7:5 Hardwired to 0.
Last Valid Index [4:0] — R/W. This value represents the last valid descriptor in the list. This value is
4:0
updated by the software each time it prepares a new buffer and adds it to the list.
NOTE: Reads across DWord boundaries are not supported.
Software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single,
32-bit read from address offset 04h. Software can also read this register individually by doing a
single, 16-bit read to offset 06h. Reads across DWord boundaries are not supported.
BitDescription
15:5Reserved.
FIFO Error (FIFOE) — R/WC. Software clears this bit by writing a 1 to it.
0 = No FIFO error.
1 = FIFO error occurs.
PISR Register: FIFO error indicates a FIFO overrun. The FIFO pointers don't increment, the
4
incoming data is not written into the FIFO, thus is lost.
POSR Register: FIFO error indicates a FIFO underrun. The sample transmitted in this case should
be the last valid sample.
The ICH7 will set the FIFO bit if the under-run or overrun occurs when there are more valid buffers
to process.
Buffer Completion Interrupt Status (BCIS) — R/WC.
0 = Software clears this bit by writing a 1 to it.
3
1 = Set by the hardware after the last sample of a buffer has been processed, AND if the Interrupt
on Completion (IOC) bit is set in the command byte of the buffer descriptor. It remains active
until cleared by software.
Last Valid Buffer Completion Interrupt (LVBCI) — R/WC.
0 = Software clears this bit by writing a 1 to it.
1 = Last valid buffer has been processed. It remains active until cleared by software. This bit
indicates the occurrence of the event signified by the last valid buffer being processed. Thus
2
this is an event status bit that can be cleared by software once this event has been
recognized. This event will cause an interrupt if the enable bit (D30:F2:NABMBAR + 0Bh, bit
2) in the Control Register is set. The interrupt is cleared when the software clears this bit.
In the case of Transmits (PCM out, Modem out) this bit is set, after the last valid buffer has
been fetched (not after transmitting it). While in the case of Receives, this bit is set after the
data for the last buffer has been written to memory.
Current Equals Last Valid (CELV) — RO.
0 = Cleared by hardware when controller exists state (i.e., until a new value is written to the LVI
register.)
1 = Current Index is equal to the value in the Last Valid Index Register (D30:F2:NABMBAR + 05h),
1
0
and the buffer pointed to by the CIV has been processed (i.e., after the last valid buffer has
been processed). This bit is very similar to bit 2, except this bit reflects the state rather than the
event. This bit reflects the state of the controller, and remains set until the controller exits this
state.
DMA Controller Halted (DCH) — RO.
0 = Running.
1 = Halted. This could happen because of the Start/Stop bit being cleared and the DMA engines
are idle, or it could happen once the controller has processed the last valid buffer.
80 Programmer’s Reference Manual
AC ’97 Audio Controller Registers (D30:F2)
2.2.5x_PICB—Position In Current Buffer Register
(Audio—D30:F2)
Software can read the registers at the offsets 08h, 0Ah, and 0Bh by performing a 32-bit read from
the address offset 08h. Software can also read this register individually by doing a single, 16-bit
read to offset 08h. Reads across DWord boundaries are not supported.
BitDescription
Position In Current Buffer [15:0] — RO. These bits represent the number of samples left to be
15:0
processed in the current buffer. This means the number of samples not yet read from memory (in
the case of reads from memory) or not yet written to memory (in the case of writes to memory),
irrespective of the number of samples that have been transmitted/received across
AC-link.
2.2.6x_PIV—Prefetched Index Value Register (Audio—D30:F2)
Software can read the registers at the offsets 08h, 0Ah, and 0Bh by performing a 32-bit read from
the address offset 08h. Software can also read this register individually by doing a single, 8-bit read
to offset 0Ah. Reads across DWord boundaries are not supported.
BitDescription
7:5 Hardwired to 0.
Prefetched Index Value [4:0] — RO. These bits represent which buffer descriptor in the list has
4:0
been prefetched. The bits in this register are also modulo 32 and roll over after they reach 31.
Software can read the registers at the offsets 08h, 0Ah, and 0Bh by performing a 32-bit read from
the address offset 08h. Software can also read this register individually by doing a single, 8-bit read
to offset 0Bh. Reads across DWord boundaries are not supported.
BitDescription
7:5Reserved.
Interrupt on Completion Enable (IOCE) — R/W. This bit controls whether or not an interrupt
occurs when a buffer completes with the IOC bit set in its descriptor.
4
0 = Disable. Interrupt will not occu r.
1 = Enable.
FIFO Error Interrupt Enable (FEIE) — R/W. This bit controls whether the occurrence of a FIFO
error will cause an interrupt or not.
3
0 = Disable. Bit 4 in the Status register will be set, but the interrupt will not occur.
1 = Enable. Interrupt will occur.
Last Valid Buffer Interrupt Enable (L VBIE) — R/W . This bit controls whether the completion of the
last valid buffer will cause an interrupt or not.
2
0 = Disable. Bit 2 in the Status register will still be set, but the interrupt will not occur.
1 = Enable.
1 = Contents of all Bus master related registers to be reset, except the interrupt enable bits (bit
1
0
4,3,2 of this register). Software needs to set this bit but need not clear it since the bit is self
clearing. This bit must be set only when the Run/Pause bit (D30:F2:2Bh, bit 0) is cleared.
Setting it when the Run bit is set will cause undefined consequences.
Run/Pause Bus Master (RPBM) — R/W.
0 = Pause bus master operation. This results in all state information being retained (i.e., master
mode operation can be stopped and then resumed).
1 = Run. Bus master operation starts.
82 Programmer’s Reference Manual
AC ’97 Audio Controller Registers (D30:F2)
2.2.8GLOB_CNT—Global Control Register (Audio—D30:F2)
S/PDIF Slot Map (SSM) — R/W. If the run/pause bus master bit (bit 0 of offset 2Bh) is set, then the
value in these bits indicate which slots S/PDIF data is transmitted on. Software must ensure that the
programming here does not conflict with the PCM channels being used. If there is a conflict,
unpredictable behavior will result — the hardware will not check for a conflict.
31:30
29:24Reserved.
23:22
21:20
00 = Reserved
01 = Slots 7 and 8
10 = Slots 6 and 9
11 = Slots 10 and 11
PCM Out Mode (POM) — R/W. Enables the PCM out channel to use 16- or 20-bit audio on PCM
out. This does not affect the microphone of S/PDIF DMA. When greater than 16-bit audio is used,
the data structures are aligned as 32-bits per sample, with the highest order bits representing the
data, and the lower order bits as don’t care.
00 = 16 bit audio (default)
01 = 20 bit audio
10 = Reserved. If set, indeterminate behavior will result.
11 = Reserved. If set, indeterminate behavior will result.
PCM 4/6 Enable — R/W. This field configures PCM Output for 2-, 4- or 6-channel mode.
00 = 2-channel mode (default)
1 = Enable an interrupt to occur when the codec on the ACZ_SDIN2 causes a resume event on the
6
AC-link.
NOTE: This bit is not affected by AC ‘97 Audio Function D3
ACZ_SDIN1 Interrupt Enable — R/W.
0 = Disable.
1 = Enable an interrupt to occur when the codec on the ACZ_SDIN1 causes a resume event on the
5
4
3
AC-link.
NOTE: This bit is not affected by AC ‘97 Audio Function D3
ACZ_SDIN0 Interrupt Enable — R/W.
0 = Disable.
1 = Enable an interrupt to occur when the codec on ACZ_SDIN0 causes a resume event on the
AC-link.
NOTE: This bit is not affected by AC ‘97 Audio Function D3
AC-LINK Shut Off (LSO) — R/W.
0 = Normal operation.
1 = Controller disables all outputs which will be pulled low by internal pull down resistors.
NOTE: This bit is not affected by AC ‘97 Audio Function D3
to D0 reset.
HOT
to D0 reset.
HOT
to D0 reset.
HOT
to D0 reset.
HOT
Programmer’s Reference Manual 83
AC ’97 Audio Controller Registers (D30:F2)
BitDescription
AC ’97 Warm Reset — R/W (special).
0 = Normal operation.
1 = Writing a 1 to this bit causes a warm reset to occur on the AC-link. The warm reset will awaken
2
a suspended codec without clearing its internal registers. If software attempts to perform a
warm reset while bit_clk is running, the write will be ignored and the bit will not change. This bit
is self-clearing (it remains set until the reset completes and bit_clk is seen on the AC-link, after
which it clears itself).
NOTE: This bit is not affected by AC ‘97 Audio Function D3
AC ’97 Cold Reset# — R/W.
0 = Writing a 0 to this bit causes a cold reset to occur throughout the AC ‘97 circuitry. All data in the
controller and the codec will be lost. Software needs to clear this bit no sooner than the
1
minimum number of ms have elapsed.
1 = This bit defaults to 0 and hence after reset, the driver needs to set this bit to a 1. The value of
this bit is retained after suspends; hence, if this bit is set to a 1 prior to suspending, a cold reset
is not generated automatically upon resuming.
NOTE: This bit is in the core well and is not affected by AC ‘97 Audio Function D3
GPI Interrupt Enable (GIE) — R/W. This bit controls whether the change in status of any GPI
causes an interrupt.
0 = Bit 0 of the Global Status register is set, but no interrupt is generated.
0
1 = The change on value of a GPI causes an interrupt and sets bit 0 of the Global Status register.
NOTE: This bit is not affected by AC ‘97 Audio Function D3
NOTE: Reads across DWord boundaries are not supported.
to D0 reset.
HOT
to D0 reset.
HOT
to D0 reset.
HOT
84 Programmer’s Reference Manual
AC ’97 Audio Controller Registers (D30:F2)
2.2.9GLOB_STA—Global Status Register (Audio—D30:F2)
ACZ_SDIN2 Resume Interrupt (S2RI) — R/WC. This bit indicates a resume event occurred on
ACZ_SDIN2. Software clears this bit by writing a 1 to it.
0 = Resume event did Not occur.
29
1 = Resume event occurred.
NOTE: This bit is not affected by D3
ACZ_SDIN2 Codec Ready (S2CR)
ACZ_SDIN2. Bus masters ignore the condition of the codec ready bits, so software must check this
bit before starting the bus masters. Once the codec is “ready”, it must never go “not ready”
28
spontaneously.
0 = Not Ready.
1 = Ready.
Bit Clock Stopped (BCS)
27
0 = Transition is found on BIT_CLK.
1 = ICH7 detected that there has been no transition on BIT_CLK for four consecutive PCI clocks.
S/PDIF Interrupt (SPINT)
26
0 = When the specific status bit is cleared, this bit will be cleared.
1 = S/PDIF out channel interrupt status bits have been set.
PCM In 2 Interrupt (P2INT)
25
0 = When the specific status bit is cleared, this bit will be cleared.
1 = One of the PCM In 2 channel status bits have been set.
Microphone 2 In Interrupt (M2INT)
24
0 = When the specific status bit is cleared, this bit will be cleared.
1 = One of the Mic in channel interrupts status bits has been set.
MD3 — R/W. Power down semaphore for Modem. This bit exists in the suspend well and maintains
context across power states (except G3). The bit has no hardware function. It is used by software in
17
conjunction with the AD3 bit to coordinate the entry of the two codecs into D3 state.
to D0 Reset.
HOT
— RO. Reflects the state of the codec ready bit on
— RO. This bit indicates that the bit clock is not running.
— RO.
— RO.
— RO.
— RO. This field indicates the capability to support greater than 16-bit audio.
— RO. This field indicates the capability to support more 4 and 6
NOTE: This bit is not affected by D3
AD3 — R/W. Power down semaphore for Audio. This bit exists in the suspend well and maintains
context across power states (except G3). The bit has no hardware function. It is used by software in
16
conjunction with the MD3 bit to coordinate the entry of the two codecs into D3 state.
NOTE: This bit is not affected by D3
Read Completion Status (RCS) — R/WC. This bit indicates the status of codec read completions.
0 = A codec read completes normally.
1 = A codec read results in a time-out. The bit remains set until being cleared by software writing a
15
1 to the bit location.
NOTE: This bit is not affected by D3
to D0 Reset.
HOT
to D0 Reset.
HOT
to D0 Reset.
HOT
Programmer’s Reference Manual 85
AC ’97 Audio Controller Registers (D30:F2)
BitDescription
14Bit 3 of Slot 12 — RO. Display bit 3 of the most recent slot 12.
13Bit 2 of Slot 12 — RO. Display bit 2 of the most recent slot 12.
12Bit 1 of slot 12 — RO. Display bit 1 of the most recent slot 12.
ACZ_SDIN1 Resume Interrupt (S1R1) — R/WC. This bit indicates that a resume event occurred
on ACZ_SDIN1. Software clears this bit by writing a 1 to it.
0 = Resume event did Not occur
11
1 = Resume event occurred.
NOTE: This bit is not affected by D3
to D0 Reset.
HOT
ACZ_SDIN0 Resume Interrupt (S0R1) — R/WC. This bit indicates that a resume event occurred
on ACZ_SDIN0. Software clears this bit by writing a 1 to it.
0 = Resume event did Not occur
10
1 = Resume event occurred.
NOTE: This bit is not affected by D3
to D0 Reset.
HOT
ACZ_SDIN1 Codec Ready(S1CR) — RO. Reflects the state of the codec ready bit in ACZ_SDIN1.
Bus masters ignore the condition of the codec ready bits, so software must check this bit before
starting the bus masters. Once the codec is “ready”, it must never go “not ready” spontaneously.
9
0 = Not Ready.
1 = Ready.
ACZ_SDIN0 Codec Ready (S0CR) — RO. Reflects the state of the codec ready bit in ACZ_SDIN0.
Bus masters ignore the condition of the codec ready bits, so software must check this bit before
starting the bus masters. Once the codec is “ready”, it must never go “not ready” spontaneously.
8
0 = Not Ready.
1 = Ready.
Microphone In Interrupt (MINT) — RO.
7
0 = When the specific status bit is cleared, this bit will be cleared.
1 = One of the Mic in channel interrupts status bits has been set.
PCM Out Interrupt (POINT) — RO.
6
0 = When the specific status bit is cleared, this bit will be cleared.
1 = One of the PCM out channel interrupts status bits has been set.
PCM In Interrupt (PIINT) — RO.
5
0 = When the specific status bit is cleared, this bit will be cleared.
1 = One of the PCM in channel interrupts status bits has been set.
4:3Reserved
Modem Out Interrupt (MOINT) — RO.
2
0 = When the specific status bit is cleared, this bit will be cleared.
1 = One of the modem out channel interrupts status bits has been set.
Modem In Interrupt (MIINT) — RO.
1
0 = When the specific status bit is cleared, this bit will be cleared.
1 = One of the modem in channel interrupts status bits has been set.
GPI Status Change Interrupt (GSCI) — R/WC.
0 = Software clears this bit by writing a 1 to it.
0
1 = This bit reflects the state of bit 0 in slot 12, and is set when bit 0 of slot 12 is set. This indicates
that one of the GPI’s changed state, and that the new values are available in slot 12.
This bit is not affected by AC ‘97 Audio Function D3
to D0 Reset.
HOT
NOTE: Reads across DWord boundaries are not supported.
PCM In 2, Microphone In 2 Dat a In Lin e (DI2L)— R/W. When the SE bit is set, these bits indicates
which ACZ_SDIN line should be used by the hardware for decoding the input slots for PCM In 2 and
Microphone In 2. When the SE bit is cleared, the value of these bits are irrelevant, and PCM In 2
and Mic In 2 DMA engines are not available.
PCM In 1, Microphone In 1 Dat a In Lin e (DI1L)— R/W. When the SE bit is set, these bits indicates
which ACZ_SDIN line should be used by the hardware for decoding the input slots for PCM In 1 and
Microphone In 1. When the SE bit is cleared, the value of these bits are irrelevant, and the PCM In 1
and Mic In 1 engines use the OR’d ACZ_SDIN lines.
Steer Enable (SE) — R/W. When set, the ACZ_SDIN lines are treated separately and not OR’d
3
together before being sent to the DMA engines. When cleared, the ACZ_SDIN lines are OR’d
together, and the “Microphone In 2” and “PCM In 2” DMA engines are not available.
2Reserved — RO.
Last Codec Read Data Input (LDI) — RO. When a codec register is read, this indicates which
ACZ_SDIN the read data returned on. Software can use this to determine how the codecs are
mapped. The values are:
3DhINT_PNInterrupt Pin
50h–51hPIDPCI Power Management Capability ID0001hRO
52h–53hPCPower Management CapabilitiesC9C2hRO
54h–55hPCSPower Management Control and Status0000hR/W, R/WC
See register
description
See register
description
See register
description
RO
RO
RO
Note:Internal reset as a result of D3
to D0 transition will reset all the core well registers except the
HOT
following BIOS programmed registers as BIOS may not be invoked following the D3-to-D0
transition. All resume well registers will not be reset by the D3
Core well registers not reset by the D3
to D0 transition:
HOT
to D0 transition.
HOT
• offset 2Ch–2Dh – Subsystem Vendor ID (SVID)
• offset 2Eh–2Fh – Subsystem ID (SID)
Resume well registers will not be reset by the D3
to D0 transition:
HOT
• offset 54h–55h – Power Management Control and Status (PCS)
PCICMD is a 16-bit control register. Refer to the PCI Local Bus Specification for complete details
on each bit.
BitDescription
15:11Reserved. Read 0.
Interrupt Disable (ID)— R/W.
10
0 = The INTx# signals may be asserted and MSIs may be generated.
1 = The AC ‘97 controller’s INTx# signal will be de-asserted and it may not generate MSIs.
9Fast Back to Back Enable (FBE) — RO. Not implemented. Hardwired to 0.
8SERR# Enable (SERR_EN) — RO. Not implemented. Hardwired to 0.
7Wait Cycle Control (WCC) — RO. Not implemented. Hardwired to 0.
6Parity Error Response (PER) — RO. Not implemented. Hardwired to 0.
5VGA Palette Snoop (VPS) — RO. Not implemented. Hardwired to 0.
4Memory Write and Invalidate Enable (MWIE) — RO. Not implemented. Hardwired to 0.
3Special Cycle Enable (SCE) — RO. Not implemented. Hardwired to 0.
Bus Master Enable (BME) — R/W. This bit controls standard PCI bus mastering capabilities.
2
0 = Disable
1 = Enable
Memory Space Enable (MSE) — RO. Hardwired to 0, AC ‘97 does not respond to memory
1
accesses.
I/O Space Enable (IOSE) — R/W. This bit controls access to the I/O space registers.
0 = Disable access. (default = 0).
0
1 = Enable access to I/O space. The Native PCI Mode Base Address register should be
PCISTS is a 16-bit status register. Refer to the PCI Local Bus Specification for complete details on
each bit.
Note:For the writable bits, software must write a 1 to clear bits that are set. Writing a 0 to the bit has no
effect.
BitDescription
15Detected Parity Error (DPE) — RO. Not implemented. Hardwired to 0.
14Signaled System Error (SSE) —RO. Not implemented. Hardwired to 0.
Master Abort Status (MAS) — R/WC.
13
0 = Master abort Not generated by bus master AC ‘97 function.
1 = Bus Master AC ‘97 interface function, as a master, generates a master abort.
12Reserved. Read as 0.
11Signaled Target Abort (STA) — RO. Not implemented. Hardwired to 0.
DEVSEL# Timing Status (DEV_STS) — RO. This 2-bit field reflects the ICH7's DEVSEL# timing
10:9
parameter. These read only bits indicate the ICH7's DEVSEL# timing when performing a positive
decode.
8Data Parity Error Detected (DPED) — RO. Not implemented. Hardwired to 0.
Fast Back to Back Capable (FB2BC) — RO. Hardwired to 1. This bit indicates that the ICH7 as a
7
target is capable of fast back-to-back transactions.
6User Definable Features (UDF) — RO. Not implemented. Hardwired to 0.
566 MHz Capable (66MHZ_CAP) — RO. Hardwired to 0.
Capabilities List (CAP_LIST) — RO. Indicates that the controller contains a capabilities pointer list.
4
The first item is pointed to by looking at configuration offset 34h.
The Native PCI Mode Modem uses PCI Base Address register #1 to request a contiguous block of
I/O space that is to be used for the Modem Mixer software interface. The mixer requires 256 bytes
of I/O space. All accesses to the mixer registers are forwarded over the AC-link to the codec where
the registers reside.
In the case of the split codec implementation, accesses to the different codecs are differentiated by
the controller by using address offsets 00h
for the secondary codec.
–7Fh for the primary codec and address offsets 80h–FEh
BitDescription
31:16Hardwired to 0’s.
Base Address — R/W. These bits are used in the I/O space decode of the Modem interface
registers. The number of upper bits that a device actually implements depends on how much of the
15:8
address space the device will respond to. For the AC ‘97 Modem, the upper 16 bits are hardwired to
0, while bits 15:8 are programmable. This configuration yields a maximum I/O block size of
256 bytes for this base address.
7:1Reserved. Read as 0
0Resource Type Indicator (RTE) — RO. Hardwired to 1 indicating a request for I/O space.
Programmer’s Reference Manual 93
AC ’97 Modem Controller Registers (D30:F3)
3.1.11MBAR—Modem Base Address Register (Modem—D30:F3)
The Modem function uses PCI Base Address register #1 to request a contiguous block of I/O space
that is to be used for the Modem software interface. The Modem Bus Mastering register space
requires 128 bytes of I/O space. All Modem registers reside in the controller, therefore cycles are
not forwarded over the AC-link to the codec.
BitDescription
31:16Hardwired to 0’s.
Base Address — R/W. These bits are used in the I/O space decode of the Modem interface
registers. The number of upper bits that a device actually implements depends on how much of the
15:7
address space the device will respond to. For the AC ‘97 Modem, the upper 16 bits are hardwired to
0, while bits 15:7 are programmable. This configuration yields a maximum I/O block size of
128 bytes for this base address.
6:1Reserved. Read as 0
0Resource Type Indicator (RTE) — RO. Hardwired to 1 indicating a request for I/O space.
The SVID register, in combination with the Subsystem ID register, enable the operating
environment to distinguish one audio subsystem from the other(s). This register is implemented as
write-once register . Once a value is written to it, the value can be read back. Any subsequent writes
will have no effect.
The SID register, in combination with the Subsystem Vendor ID register make it possible for the
operating environment to distinguish one audio subsystem from another. This register is
implemented as write-once register. Once a value is written to it, the value can be read back. Any
subsequent writes will have no effect.
This register indicates which PCI interrupt pin is used for the AC ’97 modem interrupt. The AC ’97
interrupt is internally OR’d to the interrupt controller with the PIRQB# signal.
BitDescription
7:3Reserved
2:0Interrupt Pin (INT_PN) — RO. This reflects the value of D30IP.AMIP in chipset configuration space.
3.1.17PID—PCI Power Management Capability Identification
Register (Modem—D30:F3)
0 = Software clears this bit by writing a 1 to it.
15
1 = This bit is set when the AC ’97 controller would normally assert the PME# signal independent of
the state of the PME_En bit. This bit resides in the resume well.
14:9Reserved — RO.
PME Enable (PMEE) — R/W.
0 = Disable.
8
1 = Enable. When set, and if corresponding PMES is also set, the AC '97 controller sets the
AC97_STS bit in the GPE0_STS register.
7:2Reserved — RO.
Power State (PS) — R/W. This field is used both to determine the current power state of the AC ’97
controller and to set a new power state. The values are:
00 = D0 state
01 = not supported
10 = not supported
1:0
11 = D3
When in the D3
memory spaces are not. Additionally, interrupts are blocked.
If software attempts to write a value of 10b or 01b in to this field, the write operation must complete
normally; however, the data is discarded and no state change occurs.
HOT
state
state, the AC ’97 controller’s configuration space is available, but the I/O and
HOT
to D0 transition.
HOT
Programmer’s Reference Manual 97
AC ’97 Modem Controller Registers (D30:F3)
3.2AC ’97 Modem I/O Space (D30:F3)
In the case of the split codec implementation accesses to the modem mixer registers in different
codecs are differentiated by the controller by using address offsets 00h
and address offsets 80h
the modem mixer registers.
–FEh for the secondary codec. Table 3-2 shows the register addresses for
4ChCChGPIO Pin Config
4EhCEhGPIO Polarity/Type
50hD0hGPIO Pin Sticky
52hD2hGPIO Pin Wake Up
54hD4hGPIO Pin Status
56hD6hMisc. Modem AFE Stat/Ctrl
58hD8hAC ’97 Reserved
5AhDAhVendor Reserved
7ChFChVendor ID1
7EhFEhVendor ID2
®
ICH7 Modem Mixer Register Configuration
RegisterMMBAR Exposed Registers (D30:F3)
NOTES:
1. Registers in italics are for functions not supported by the ICH7.
2. Software should not try to access reserved registers.
3. The ICH7 supports a modem codec connected to ACZ_SDIN[2:0], as long as the Codec ID is 00 or 01.
However, the ICH7 does not support more than one modem codec. For a complete list of topologies, see
your ICH7 enabled Platform Design Guide.
The Global Control (GLOB_CNT) and Global Status (GLOB_STA) registers are aliased to the
same global registers in the audio and modem I/O space. Therefore a read/write to these registers in
either audio or modem I/O space affects the same physical register. Software could access these
registers as bytes, word, DWord quantities, but reads must not cross DWord boundaries.
98 Programmer’s Reference Manual
These registers exist in I/O space and reside in the AC ’97 controller . The two channels, Modem in
and Modem out, each have their own set of Bus Mastering registers. The following register
descriptions apply to both channels. The naming prefix convention used is as follows:
MI = Modem in channel
MO = Modem out channel
Table 3-3. Modem Registers
OffsetMnemonicNameDefaultAccess
00h–03hMI_BDBAR
04hMI_CIV Modem In Current Index Value 00hRO
05hMI_LVIModem In Last Valid Index 00hR/W
06h–07hMI_SRModem In Status 0001hR/WC, RO
08h–09hMI_PICBModem In Position In Current Buffer 0000hRO
0AhMI_PIVModem In Prefetch Index Value 00hRO
0BhMI_CRModem In Control 00h
10h–13hMO_BDBAR
14hMO_CIVModem Out Current Index Value 00hRO
15hMO_LVIModem Out Last Valid 00hR/W
16h–17hMO_SRModem Out Status 0001hR/WC, RO
18h–19hMI_PICBModem In Position In Current Buffer 0000hRO
1AhMO_PIVModem Out Prefetched Index 00hRO
1BhMO_CRModem Out Control 00h
3Ch–3FhGLOB_CNTGlobal Control00000000h
40h–43hGLOB_STAGlobal Status00300000h
44hCASCodec Access Semaphore 00hR/W (special)
AC ’97 Modem Controller Registers (D30:F3)
Modem In Buffer Descriptor List Base
Address
Modem Out Buffer Descriptor List Base
Address
00000000hR/W
R/W,
R/W (special)
00000000hR/W
R/W,
R/W (special)
R/W,
R/W (special)
RO, R/W,
R/WC
NOTE:
1. MI = Modem in channel; MO = Modem out channel
Note:Internal reset as a result of D3
to D0 transition will reset all the core well registers except the
HOT
registers shared with the AC ’97 audio controller (GCR, GSR, CASR). All resume well registers
will not be reset by the D3
Core well registers and bits not reset by the D3
to D0 transition.
HOT
to D0 transition:
HOT
• offset 3Ch–3Fh – bits [6:0] Global Control (GLOB_CNT)
• offset 40h–43h – bits [29,15,11:10] Global Status (GLOB_STA)
Software can read the register at offset 00h by performing a single, 32-bit read from address offset
00h. Reads across DWord boundaries are not supported.
BitDescription
31:3
Buffer Descriptor List Base Address [31:3] — R/W. These bits represent address bits 31:3. The
entries should be aligned on 8-byte boundaries.
2:0Hardwired to 0.
3.2.2x_CIV—Current Index Value Register (Modem—D30:F3)
Software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single,
32-bit read from address offset 04h. Software can also read this register individually by doing a
single, 8-bit read to offset 04h. Reads across DWord boundaries are not supported.
BitDescription
7:5Hardwired to 0.
Current Index Value[4:0] — RO. These bits represent which buffer descriptor within the list of 16
4:0
descriptors is being processed currently. As each descriptor is processed, this value is
incremented.
3.2.3x_LVI—Last Valid Index Register (Modem—D30:F3)
Software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single,
32-bit read from address offset 04h. Software can also read this register individually by doing a
single, 8-bit read to offset 05h. Reads across DWord boundaries are not supported.
BitDescription
7:5Hardwired to 0
Last Valid Index [4:0] — R/W. These bits indicate the last valid descriptor in the list. This value is
4:0
updated by the software as it prepares new buffers and adds to the list.
100 Programmer’s Reference Manual
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.