Revision 2.0 September 22, 2013 AMD HDA Verbs © 2013 Advanced Micro Devices, Inc. Proprietary 1 Revision 2.0 September 22, 2013 Trademarks AMD, the AMD Arrow logo, Athlon, and combinations thereof, ATI, ATI logo, Radeon, and Crossfire are trademarks of Advanced Micro Devices, Inc. Microsoft and Windows are registered trademarks of Microsoft Corporation. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies. Disclaimer The contents of this document are provided in connection with Advanced Micro Devices, Inc. ("AMD") products. AMD makes no representations or warranties with respect to the accuracy or completeness of the contents of this publication and reserves the right to make changes to specifications and product descriptions at any time without notice. No license, whether express, implied, arising by estoppel, or otherwise, to any intellectual property rights are granted by this publication. Except as set forth in AMD's Standard Terms and Conditions of Sale, AMD assumes no liability whatsoever, and disclaims any express or implied warranty, relating to its products including, but not limited to, the implied warranty of merchantability, fitness for a particular purpose, or infringement of any intellectual property right. AMD's products are not designed, intended, authorized or warranted for use as components in systems intended for surgical implant into the body, or in other applications intended to support or sustain life, or in any other application in which the failure of AMD's product could create a situation where personal injury, death, or severe property or environmental damage may occur. AMD reserves the right to discontinue or make changes to its products at any time without notice. © 2013 Advanced Micro Devices, Inc. All rights reserved. © 2013 Advanced Micro Devices, Inc. Proprietary 2 Revision 2.0 September 22, 2013 1. AUDIO DESCRIPTOR SET AND GET ................................................................................................................. 4 2. SPEAKER ALLOCATION GET ............................................................................................................................ 5 3. MULTI-CHANNEL ENABLE SET AND GET ......................................................................................................... 6 4. CHANNEL ALLOCATION SET AND GET ............................................................................................................ 7 5. DOWN-MIX INFORMATION SET AND GET ...................................................................................................... 8 6. MULTI-CHANNEL MODE SET AND GET ........................................................................................................... 9 7. MULTI-CHANNEL ENABLE SET AND GET ....................................................................................................... 10 8. HBR COMPRESSED AUDIO PASS-THROUGH (24.576 MBPS) ......................................................................... 11 9. AUDIO/VIDEO DELAY VERBS (LIPSYNC) ....................................................................................................... 12 10. AUDIO-VIDEO ASSOCIATION PORT ID AND SINK INFORMATION ............................................................. 13 11. CONNECTION LIST ENTRY GET ................................................................................................................. 14 12. DDM AUDIO: SURROUND SOUND USING ONE STREAM AND MULTIPLE CONVERTERS-PINS ................... 15 13. SILENT STREAM RAMP RATE CONTROL SET AND GET .............................................................................. 18 © 2013 Advanced Micro Devices, Inc. Proprietary 3 Revision 2.0 September 22, 2013 1. Audio Descriptor Set and Get Audio Descriptor Set and Get (pin vendor defined verb 776, F76) Allows accessing the Short audio descriptor for each format in an indirect way. Only the Audio Format Code (bits [6:3] of Byte 0) is RW, the other formats are RO. After the Audio format Code is written using the Set function, the Get function will give the audio descriptor corresponding to the Audio Format Code written. Byte# 0 bit7 0 1 Rates supported. In the LPCM case, these are the rates supported for multi-channel 2 Reserved 3 Rates supported for stereo. Only applicable in the LPCM case. © 2013 Advanced Micro Devices, Inc. Proprietary bit6 bit5 bit4 bit3 Audio format code (1 to 14) 0: reserved 1:LPCM 2: AC-3 3: MPEG1 (Layers 1 and 2) 4: MP3 (MPEG1 Layer 3) 5: MPEG2 (Multichannel) 6: AAC 7: DTS 8: ATRAC 9: Reserved 10: Dolby Digital + 11: DTS-HD 12: MAT/MLP (Dolby True HD) 13: Reserved 14: WMA Pro 192khz 176.4 96 88.2 kHz kHz kHz BPS capability for LPCM: Bit0: 16 bit capable Bit1: 20 bit capable Bit 2: 24 bit capable Bits[7:3] reserved. Format specific for other formats Reserved 192khz 176.4khz 96khz 88.2 khz bit2 bit1 bit0 Max Num of channels – 1 48 kHz 44.1 kHz 32 kHz 48khz 44.1khz 32khz 4 Revision 2.0 September 22, 2013 2. Speaker Allocation Get Speaker Allocation Get (pin vendor defined verb F70) Byte 0 of the response contains the speaker allocation of the DTV according to its Short Audio Descriptor. All fields are RO. Byte # 0 1 Bit 7 0 bit6 bit5 RLC/RR C Rear left Center and Rear Right center speakers present FLC/FR RC C Rear Front left center Center speake and r Front present Right center speakers present Reserved 2 3 © 2013 Advanced Micro Devices, Inc. Proprietary bit4 bit3 bit2 bit1 bit0 RL/RR Rear left and rear right speaker s present FC Front center speake r present LFE Low frequency speaker present FL/FR Front left and Front right speakers present DP_CONNECTIO N (Only for parts supporting DP Audio, for GUI labeling) HDMI_CONNECTIO N (Only for parts supporting DP Audio, for GUI labeling) 0 0 5 Revision 2.0 September 22, 2013 3. Multi-Channel Enable Set and Get Multi-Channel Enable 01 Set and Get (pin vendor defined verb 777, F77) Multi-Channel Enable 23 Set and Get (pin vendor defined verb 778, F78) Multi-Channel Enable 45 Set and Get (pin vendor defined verb 779, F79) Multi-Channel Enable 67 Set and Get (pin vendor defined verb 77A, F7A) Allows the audio driver to enable sending multi-channel audio through the pin. OUT_ENABLE enables the corresponding channel pair of the HDMI/DP multichannel audio data stream. The channel pair selected are CHANNEL_ID and CHANNEL_ID+1 channels of the controller audio stream. bit7 bit6 bit5 CHANNEL_ID bit4 Channels CHANNEL_ID and CHANNEL_ID+1 of the audio stream are sent to the corresponding channel pair of the HDMI/DP. © 2013 Advanced Micro Devices, Inc. Proprietary bit3 bit2 Rsvd bit1 MUTE bit0 OUT_ENABLE Rsvd (Only for Codec Rev 3 and higher) Zeroes the audio in the channel pair Enables sending the stream channels selected by CHANNEL_ID to the corresponding channel pair of the HDMI/DP. 6 Revision 2.0 September 22, 2013 4. Channel Allocation Set and Get Channel Allocation Set and Get (pin vendor defined verb 771 and F71) Defines the value to be sent in the Audio InfoFrame data byte 4. Intended to determine how various speaker location are allocated to transmission channels. All fields are RW. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0 Channel Allocation 0: Channel 0 is Front Left, Channel 1 is Front Right, Other channels not used 1: Channel 0 is Front Left, Channel 1 is Front Right, Channel 2 is Low Freq speaker, Other channels not used … 0x1F: Channel 0 is Front Left, Channel 1 is Front Right, Channel 2 is Low Freq speaker, Channel 3 is Front Center, Channel 4 is Rear Left, Channel 5 is Rear Right, Channel 6 is Front Left Center, Channel 7 is Front Right Center. 0x20 to 0xFF: Reserved © 2013 Advanced Micro Devices, Inc. Proprietary 7 Revision 2.0 September 22, 2013 5. Down-Mix Information Set and Get Down-Mix Information Set and Get (pin vendor defined verb 772 and F72) Defines the value to be sent in the Audio InfoFrame data byte 5. Intended to communicate to the DTV the total attenuation that the source applied to the audio and if down-mixing is permitted. Also note that the Codec hardware will swap FC, LFE in order to meet the HDMI/DP requirement. This requires no programming on the audio driver side. All fields are RW. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 DM_INH LSV3 LSV2 LSV1 LSV0 Rsvd Rsvd Rsvd 0: Down-mix permitted or no information. 1: Down-mix prohibited. 0: 0dB level shift 1: 1dB Level Shift … 15: 15 dB level Shift 2.0 3.0 4.0 5.1 6.1 7.1 Channel allocation in system memory Corresponding Channel Allocatio n value to program 0,1 2,3 4,5 6,7 FL,F R FL,F R FL,F R FL,F R FL,F R FL,F R - - - 00 FC,- - - 02 SL,SR - - 08 FC, LFE FC, LFE FC, LFE SL,S R SL,S R BL,B R - 0B BC, SL,S R 0F © 2013 Advanced Micro Devices, Inc. Proprietary 13 Required channel allocation in HDMI/DP packets Codec channel crossbar programming MultiMultiMultiMultiChannel Channel Channel Channel Enable Enable Enable Enable 01 23 45 67 0, 1 2, 3 4, 5 6, 7 FL,F R FL,F R FL,F R FL,F R FL,F R FL,F R -, - -,- -, - 1 0 0 x 0 x 0 x -, FC -,- -, - 1 0 1 2 0 x 0 x -, - SL,S R SL,S R SL,S R SL,S R -, - 1 0 0 x 1 2 0 x -, - 1 0 1 2 1 4 0 x BC,- 1 0 1 2 1 4 1 6 BL, BR 1 0 1 2 1 6 1 4 LFE, FC LFE, FC LFE, FC OUT_ENAB LE CHANNEL_ ID OUT_ENAB LE CHANNEL_ ID OUT_ENAB LE CHANNEL_ ID OUT_ENAB LE CHANNEL_ ID Multichannel audio Format 8 Revision 2.0 September 22, 2013 6. Multi-Channel Mode Set and Get Multi-Channel Mode Set and Get (pin vendor defined verb 789, F89) Revision ID 3 and newer only. Allows use of the single-channel-wise Multi-Channel Enable verbs, which provide higher channel routing flexibility for single-sink and DDM Audio multi-sink surround sound. bit7:1 bit0 Rsvd Rsvd MULTICHANNEL_MODE 0: channel pair mode (uses only the channel-pair-wise Multi-channel Enable verbs) 1: single channel mode (uses the single-channel-wise Multi-channel Enable verbs) © 2013 Advanced Micro Devices, Inc. Proprietary 9 Revision 2.0 September 22, 2013 7. Multi-Channel Enable Set and Get Multi-Channel Enable 1 Set and Get (pin vendor verb 785, F85) Multi-Channel Enable 3 Set and Get (pin vendor verb 786, F86) Multi-Channel Enable 5 Set and Get (pin vendor verb 787, F87) Multi-Channel Enable 7 Set and Get (pin vendor verb 788, F88) Multi-Channel Enable 01 Set and Get (pin vendor verb 777, F77) (applies to ch 0 in single channel mode) Multi-Channel Enable 23 Set and Get (pin vendor verb 778, F78) (applies to ch 2 in single channel mode) Multi-Channel Enable 45 Set and Get (pin vendor verb 779, F79) (applies to ch 4 in single channel mode) Multi-Channel Enable 67 Set and Get (pin vendor verb 77A, F7A) (applies to ch 6 in single channel mode) When in “Single Channel Mode”, the channel-pair-wise Multi-channel Enable verbs (01, 23, 45 and 67) apply only to the even channels (0, 2, 4 and 6) and these verbs apply to the odd channels. Besides that, the format is the same, and the C/LFE swapping is not automatic anymore and has to be explicitly programmed in these controls. bit7 bit6 bit5 CHANNEL_ID bit4 Channel of the audio stream sent to the corresponding channel of the HDMI/DP. © 2013 Advanced Micro Devices, Inc. Proprietary bit3 bit2 Rsvd bit1 MUTE Rsvd Zeroes the audio in the channel bit0 OUT_ENABLE Enables sending the stream channels selected by CHANNEL_ID to the corresponding channel of the HDMI/DP. 10 Revision 2.0 September 22, 2013 8. HBR Compressed Audio Pass-Through (24.576 Mbps) The HBR Control allows for the transmission of compressed audio using the maximum audio channels in the HDMI/DP link (eight) instead of the regular two channels used for compressed audio. Since compressed audio is always transmitted at 16 data bits per channel and the maximum transmission rate is 192 kHz, the maximum HBR compressed audio transmission bit rate is 24.576 Mbps, a fourfold increase respect to the non-HBR 6.144 Mbps limit for compressed audio transmission. Lossless formats DTS HD Master Audio and Dolby True HD require HBR. HBR Control Set and Get (pin vendor defined verb 77C and F7C) Bit7 Bit6 Reserved Bit5 Bit4 HBR Enable Enables sending HBR Compressed Audio. This is a RW bit. Bit3 Bit2 Reserved. Bit1 Bit0 HBR Capable Indicates that the Pin can send HBR Compressed Audio This is a RO bit. Driver recommendations Declaring Support: If the HBR Capable bit is “1” and the Audio Descriptors indicate DTS HD Master Audio or Dolby True HD is supported, declare support for HBR Compressed Audio transmission with 8 channels, 16 Bits, 192 kHz. Enabling HBR: Ensure this is the setting before starting the Stream: Audio Controller Stream and Audio Codec Converter are set for 8 channels, 16 BPS, 192 kHz Multi-channel Enable Codec Pin controls enable all channels with increasing channel IDs. HBR Enable bit is set. © 2013 Advanced Micro Devices, Inc. Proprietary 11 Revision 2.0 September 22, 2013 9. Audio/Video Delay Verbs (Lipsync) Lipsync Control Get (pin vendor defined verb F7B) Byte# 0 1 2 3 Bit7 bit6 bit5 bit4 bit3 bit2 bit1 Video Latency. This is a RO field. Audio Latency. This is a RO field. 0 0 bit0 Video Latency and Audio Latency indicate the Video and Audio processing latency in the sink in (milliseconds/2 +1). A value of 0 indicates that the latency is not known. The Application can read this value and compensate for the difference between Video and Audio latency by delaying or padding the start of the audio or video stream. © 2013 Advanced Micro Devices, Inc. Proprietary 12 Revision 2.0 September 22, 2013 10. Audio-Video Association Port ID and Sink Information Applicable only to Codec Revision ID 3 and onwards. Used to fill the OS Sink Identification fields. Sink Information Index Set and Get (pin vendor defined verb 780 and F80) Bit7:0 Sink Information Index Sink Information Data Get (pin vendor defined verb F81) Bit 31:0 Sink Information Index = 0: {16’b0, Manufacturer ID[15:0]} Sink Information Index = 1: {16’b0, Product ID[15:0]} Sink Information Index = 2: Sink Description Length Sink Information Index = 3: Port ID [31:0] Sink Information Index = 4: Port ID [63:32] Sink Information Index = 5: {24’b0, Sink Description Byte 0 [7:0]} Sink Information Index = 6: {24’b0, Sink Description Byte 1 [7:0]} … Sink Information Index = 22: {24’b0, Sink Description Byte 17 [7:0]} © 2013 Advanced Micro Devices, Inc. Proprietary 13 Revision 2.0 September 22, 2013 11. Connection List Entry Get Connection List Entry Get (Pin vendor-defined verb F02) Bit 31:8 Rsvd Rsvd Bit 7:0 CONNECTION LIST ENTRY This is a RO field. Node number of the Converter connected to the pin: 2 for pin 0 (Node 3) 4 for pin 1 (Node 5) … “2*Number Of Output Pins” for pin “Number Of Output Pins -1” (Node “2*Number Of Output Pins +1”) © 2013 Advanced Micro Devices, Inc. Proprietary 14 Revision 2.0 September 22, 2013 12. DDM Audio: Surround sound using one stream and multiple converterspins Converter synchronization verb Starting with Revision ID 3, DDM Audio sends a multi-channel stream to multiple converters. In this case it is recommended that the converters be started in a synchronized fashion using the Converter synchronization verb. Converter Synchronization Set and Get (Function Group vendor defined verb 770, F70) Starting with Revision ID 3 Only: Synchronizes a group of converters Bit7:0 CONVERTER_SYNCHRONIZATION Bit 0: Used to synchronize Converter 0 Bit 1: Used to synchronize Converter 1 … This verb works is a way similar to how stream synchronization is done. The sequence to start the converters is: Set Converter Synchronization “1” for the converters Enable the converters one by one Release Converter Synchronization (“0”) for the converters in a single verb DDM Audio Association Information Get (Pin vendor defined verb F93) Starting with Revision ID 3 Only: Indicates the suggested channel to play in each speaker of the monitor It is recommended that the video driver issue a forced unsolicited response in one pin (like pin 0) with payload = 9 after the DDM Audio Association Information values are programmed in all pins to notify the audio driver of the DDM Audio configuration change request. Bits[31:28] Chan suggested to play in the monitor’s BR Speaker Bits[27:24] Chan suggested to play in the monitor’s BL Speaker Bits[23:20] Chan suggested to play in the monitor’s SR Speaker © 2013 Advanced Micro Devices, Inc. Proprietary Bits[19:16] Chan suggested to play in the monitor’s SL Speaker Bits[15:12] Chan suggested to play in the monitor’s LFE Speaker Bits[11:8] Chan suggested to play in the monitor’s FC Speaker Bits[7:4] Chan suggested to play in the monitor’s FR Speaker Bits[3:0] Chan suggested to play in the monitor’s FL Speaker 15 Revision 2.0 September 22, 2013 0: FL 1: FR 2: FC 3: LFE 4: SL 5: SR 6: BL 7: BR 8: Silence 9-14: reserved 15: No association (register default) Setting-up DDM Audio Some Possible Hearfinity Configurations (Bird’s eye view) FL FR FL 1x2 or 1x3 (stacked) Panels SL FC FC FR 2x1 or 2x2 (stacked) Panels FL FC FC FR FL SR 3x1 or 3x2 (stacked) Panels FL FC FC FR SL FR SR 4x1 Panels Requires MULTICHANNEL_MODE =1. The following table shows only some possible DDM Audio Configurations in order to illustrate the use of the controls. Required channel allocation in HDMI/DP packets (From DDM Audio Association Information Verb of each pin) Monitor Monitor Monitor Monitor Codec channel crossbar programming Chann el Alloca tion Code to Progra m in pins LPCM Forma t Stereo Monit ors across sidebyside Channel allocation in system memory © 2013 Advanced Micro Devices, Inc. Proprietary Monitor 0 (Pin0) Monitor 1 (Pin 1) Monitor 2 (Pin 2) Monitor 3 (Pin 3) 16 5 F L F R - - - - 0 0 F L F L F R F R 1, 0 0 1, 0 0 1, 0 1 1, 0 1 F L F R - - - - 0 0 F L - - F R 1, 0 0 1, 1 x 1, 1 x 1, 0 1 F L F R F C - - - 0 0 F L F C F C F R 1, 0 0 1, 0 2 1, 0 2 1, 0 1 F L F R F C L F E S L S R 0 0 S L F L F C F C F R S R 1, 0 4 1, 0 0 1, 0 2 1, 0 2 1, 0 1 1, 0 5 F L F R F C L F E S L S R 0 0 S L F L F L F C F C F R 1, 0 4 1, 0 0 1, 0 0 1, 0 2 1, 0 2 1, 0 1 © 2013 Advanced Micro Devices, Inc. Proprietary S R Multi-Channel Enable 1 OUT_ENABLE, MUTE CHANNEL_ID Multi-Channel Enable01 4 OUT_ENABLE, MUTE CHANNEL_ID 3 F R 1 F R Multi-Channel Enable 1 2 OUT_ENABLE, MUTE CHANNEL_ID 0 F L 1 F R Multi-Channel Enable 01 0 F L Multi-Channel Enable 1 1 F R Multi-Channel Enable 01 0 F L Multi-Channel Enable 1 1 F R 1 OUT_ENABLE, MUTE CHANNEL_ID 5. 1 0 F L 0 OUT_ENABLE, MUTE CHANNEL_ID 5. 1 3 (Pin 3) OUT_ENABLE, MUTE CHANNEL_ID 3. 0 2 (Pin 2) OUT_ENABLE, MUTE CHANNEL_ID 2. 0 2 x 1 2 x 1 2 x 1 3 x 1 4 x 1 1 (Pin 1) OUT_ENABLE, MUTE CHANNEL_ID 2. 0 0 (leftmos t) (Pin0) September 22, 2013 Multi-Channel Enable 01 Revision 2.0 1, 0 1, 0 1 17 5 Revision 2.0 September 22, 2013 13. Silent Stream Ramp Rate Control Set and Get Silent Stream Ramp Rate Control Set and Get (Converter Vendor-Defined verb 770, F70) Starting with Revision ID 3 Only Bit 31:8 Rsvd Rsvd Bit 7:0 RAMP RATE Defines the attenuation rate for silent stream (exponential ramp from last value to zero when stream disable, or from zero to active value when stream enable). The actual rate is RAMP RATE / 256. The default is 180/256 ≈ 0.7, which is recommended for LPCM. A value of zero disables ramping. This is recommended for compressed audio © 2013 Advanced Micro Devices, Inc. Proprietary 18