toleda
Moderator
- Joined
- May 19, 2010
- Messages
- 22,834
- Motherboard
- Asus Maximus VII Impact
- CPU
- i7-4770K
- Graphics
- RX 560 + HD4600
- Mac
- Classic Mac
- Mobile Phone
Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx
Enabling HDMI audio via AppleHDA in Mac OS X 10.6.x is comprised of four guides:
Snow Leopard HDMI Audio - Part 1: Requirements
Snow Leopard HDMI Audio - Part 2: DSDT Edits
Snow Leopard HDMI Audio - Part 3a: Kext Edits for AMD 5xxx
Snow Leopard HDMI Audio - Part 3b: Kext Edits for NVIDIA 4xx
Please note: This guide applies to Mac OS X 10.6.5, 10.6.6 and 10.6.7 only. The Early 2011 MacBookPro 10.6.7 release, Early 2011 iMac 10.6.7 release and Mac OS X 10.7 are not considered.
Even with a successfully configured DSDT, more work is required. Specifically, your system must be enabled for the specific graphics card you have installed. Typically, this means editing particular software components in your system for compatibility with your graphics card. There is a specific method for Nvidia GeForce GT4XX graphics cards and a different method for AMD Radeon HD 5XXX graphics cards.
What you will need:
DSDTSE v1.4.3 - http://www.osx86.es/?p=610
IORegistryExplorer - Mac OS X Retail Install Disc v10.6 or v10.6.3 (Optional Installs/Xcode)
HexEdit v220 - http://hexedit.sourceforge.net/
dsdt-hdmi_audio-v2.dsl
DSDT-HDMI_Audio_Edits_v2.dsl
AtiFrambuffer_v1.6.26 Framebuffer_List - see HDMI Audio Kext Verification
radeon_bios_decode - http://www.insanelymac.com/forum/index.php? showtopic=249642
vbios - see HDMI Audio Kext Verification
Additional Audio Kext editing details are included in HDMI Audio Kext Verification
HDMI_Audio_Kext_Verification.pdf
Depending on how your graphics card is enabled, additional edits of your DSDT may be required. The edits are defined as GraphicsEnabler=Yes or Graphics Enabler=No.
Two components of AppleHDA are relevant to enabling HDMI audio. They are 1. AppleHDA binary and 2. AppleHDAController binary. For AMD graphics cards, the AtiFramebuffer binary is also important. HexEdit is the tool used to edit each of the binaries. Additional information describing AppleHDA and HexEdit are available in HDMI Audio Kext Verification.
Credit to tmongkol and bcc9
Part 3a: Kext Edits Table of Contents
1. *AMD RADEON HD 5XXX Graphics Cards
** * * **a. *Additional DSDT Edits
** * * * * * * **GraphicsEnabler=Yes
** * * * * * * * GraphicsEnabler=No
** * * * b. *Kext Edits
** * * * * * * * *AppleHDA
** * * * * * * * *AtiFramebuffer
1. AMD RADEON HD 5XXX Graphics Cards
a. *Additional DSDT edits
With GraphicsEnabler=Yes in com.apple.Boot.plist, no changes are required in the DSDT.
1.* Jump to b. Audio Kext Edits
With GraphicsEnabler=No in com.apple.Boot.plist, make the following changes to your dsdt.
Add the following code to Device (GFX0) - Modify for your particular Radeon HD 5XXX graphics card.
1. Open your dsdt in DSDTSE. open DSDT-HDMI_Audio_Edits_v2 in DSDTSE
2. Copy the code labeled "AMD_GE=N-DSDT_HDMI_Audio_Edit - Complete"
3. Paste the copied code over the existing Device (PEGP), Device (GFX0) and Device (HDAU)
4. Compile, install, reboot with HDMI device plugged 5. Run IOReg, Search "HDAU", Note device-id, this your HDMI Device_id; save for later.
b. Audio Kext Edits
Verify AppleHDA v 1.9.9 is installed in S/L/E.
Editing binary details are included in HDMI Audio Kext Verification
AppleHDAController Binary Edit
If your HDMI Device_id is one the following, an edit is not required (i.e., HD 5770, 5870).
50 aa, 58 aa, 60 aa, 61 aa, 68 aa
Example: HDMI Device_id: "50 aa" > Find: 02 10 50 aa Replace: 02 10 50 aa
1.* Run IOReg - Skip to Step 3, if you have HDMI Device_id
2.* Search HDAU, Note device-id, this your HDMI Device_id
3. *Edit AppleHDAController Binary; *
** * * * * * * Find: 02 10 50 aa * Replace: 02 10 ?? aa * 2 Times
4.* Install AppleHDAController Binary in AppleHDA.kext
5.* Install AppleHDA.kext in S/L/E
6.* Run Kext Utility
7.* Reboot with HDMI device plugged in
AppleHDA Binary Edit
The AMD HDMI Codec_id is always 10 02 aa 01.* No edits Of AppleHDA Binary required.
ATIFramebuffer Binary Edit
Example 1:* Sapphire HD 5870,* vbios: HDMI sense_id 0x4, Uakari FrameBuffer:* HDMI (00 08) 0x4
1.* In terminal, run ./radeon_bios_decode < HD5XXX.vbios.bin (example: HD5870.bin)
2.* Identify HDMI sense_id (example: 4)
3.* Run IOReg
4.* Search ATY
5.* Identfy Frambuffer* (i.e., Uakari)
6.* Locate HDMI connector (00 08) (example: 4)
7.* HDMI sense_id = HDMI connector_id
8.* No edit necessary
Example 2:* Gigabyte HD 5770, vbios: HDMI sense_id 0x5, Vervet FrameBuffer:* HDMI (00 08) 0x1
1.* In terminal, run ./radeon_bios_decode < HD5XXX.vbios.bin (example: HD5770.bin)
2.* Identify HDMI sense_id (example: 5)
3.* Run IOReg
4.* Search ATY
5.* Identfy Frambuffer* (i.e., Vervet)
6.* Locate HDMI connector (00 08) (example: 1)
7.* HDMI sense_id not HDMI connector_id
8.* Edit AtiFramebuffer Binary;
** * * * * * *Find: *00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 01
** * * * Replace: *00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 01 * * 2 Times
9.* Install AtiFramebuffer Binary in AtiFramebuffer.kext
10.* Install AtiFramebuffer.kext in S/L/E
11.* Run Kext Utility
12.* Reboot with HDMI device plugged in
Additional AMD HD 5xxx HDMI Audio Case Studies
amd_hd_5xxx_hdmi_audio_case_studies.rtf
Mac OS X 10.6.x HDMI Audio
Select System Preferences/Sound/Output.* Select the HDMI audio device. *
Note: DisplayPort Audio is also enabled.
Enabling HDMI audio via AppleHDA in Mac OS X 10.6.x is comprised of four guides:
Snow Leopard HDMI Audio - Part 1: Requirements
Snow Leopard HDMI Audio - Part 2: DSDT Edits
Snow Leopard HDMI Audio - Part 3a: Kext Edits for AMD 5xxx
Snow Leopard HDMI Audio - Part 3b: Kext Edits for NVIDIA 4xx
Please note: This guide applies to Mac OS X 10.6.5, 10.6.6 and 10.6.7 only. The Early 2011 MacBookPro 10.6.7 release, Early 2011 iMac 10.6.7 release and Mac OS X 10.7 are not considered.
Even with a successfully configured DSDT, more work is required. Specifically, your system must be enabled for the specific graphics card you have installed. Typically, this means editing particular software components in your system for compatibility with your graphics card. There is a specific method for Nvidia GeForce GT4XX graphics cards and a different method for AMD Radeon HD 5XXX graphics cards.
What you will need:
DSDTSE v1.4.3 - http://www.osx86.es/?p=610
IORegistryExplorer - Mac OS X Retail Install Disc v10.6 or v10.6.3 (Optional Installs/Xcode)
HexEdit v220 - http://hexedit.sourceforge.net/
dsdt-hdmi_audio-v2.dsl
DSDT-HDMI_Audio_Edits_v2.dsl
AtiFrambuffer_v1.6.26 Framebuffer_List - see HDMI Audio Kext Verification
radeon_bios_decode - http://www.insanelymac.com/forum/index.php? showtopic=249642
vbios - see HDMI Audio Kext Verification
Additional Audio Kext editing details are included in HDMI Audio Kext Verification
HDMI_Audio_Kext_Verification.pdf
Depending on how your graphics card is enabled, additional edits of your DSDT may be required. The edits are defined as GraphicsEnabler=Yes or Graphics Enabler=No.
Two components of AppleHDA are relevant to enabling HDMI audio. They are 1. AppleHDA binary and 2. AppleHDAController binary. For AMD graphics cards, the AtiFramebuffer binary is also important. HexEdit is the tool used to edit each of the binaries. Additional information describing AppleHDA and HexEdit are available in HDMI Audio Kext Verification.
Credit to tmongkol and bcc9
Part 3a: Kext Edits Table of Contents
1. *AMD RADEON HD 5XXX Graphics Cards
** * * **a. *Additional DSDT Edits
** * * * * * * **GraphicsEnabler=Yes
** * * * * * * * GraphicsEnabler=No
** * * * b. *Kext Edits
** * * * * * * * *AppleHDA
** * * * * * * * *AtiFramebuffer
1. AMD RADEON HD 5XXX Graphics Cards
a. *Additional DSDT edits
With GraphicsEnabler=Yes in com.apple.Boot.plist, no changes are required in the DSDT.
1.* Jump to b. Audio Kext Edits
With GraphicsEnabler=No in com.apple.Boot.plist, make the following changes to your dsdt.
Add the following code to Device (GFX0) - Modify for your particular Radeon HD 5XXX graphics card.
Code:
* * * * * * * * * * * * Store (Package (0x0C)
* * * * * * * * * * * * * * {
* * * * * * * * * * * * * * * * "@0,name",*
* * * * * * * * * * * * * * * * Buffer (0x0D)
* * * * * * * * * * * * * * * * {
* * * * * * * * * * * * * * * * * * "ATY,Uakari"
* * * * * * * * * * * * * * * * },*
* * * * * * * * * * * * * * * * "@1,name",*
* * * * * * * * * * * * * * * * Buffer (0x0D)
* * * * * * * * * * * * * * * * {
* * * * * * * * * * * * * * * * * * "ATY,Uakari"
* * * * * * * * * * * * * * * * },*
* * * * * * * * * * * * * * * * "@2,name",*
* * * * * * * * * * * * * * * * Buffer (0x0D)
* * * * * * * * * * * * * * * * {
* * * * * * * * * * * * * * * * * * "ATY,Uakari"
* * * * * * * * * * * * * * * * },*
* * * * * * * * * * * * * * * * "@3,name",*
* * * * * * * * * * * * * * * * Buffer (0x0D)
* * * * * * * * * * * * * * * * {
* * * * * * * * * * * * * * * * * * "ATY,Uakari"
* * * * * * * * * * * * * * * * },*
* * * * * * * * * * * * * * * * "model",*
* * * * * * * * * * * * * * * * Buffer (0x13)
* * * * * * * * * * * * * * * * {
* * * * * * * * * * * * * * * * * * "AMD Radeon HD 5870"
* * * * * * * * * * * * * * * * },*
1. Open your dsdt in DSDTSE. open DSDT-HDMI_Audio_Edits_v2 in DSDTSE
2. Copy the code labeled "AMD_GE=N-DSDT_HDMI_Audio_Edit - Complete"
3. Paste the copied code over the existing Device (PEGP), Device (GFX0) and Device (HDAU)
4. Compile, install, reboot with HDMI device plugged 5. Run IOReg, Search "HDAU", Note device-id, this your HDMI Device_id; save for later.
b. Audio Kext Edits
Verify AppleHDA v 1.9.9 is installed in S/L/E.
Editing binary details are included in HDMI Audio Kext Verification
AppleHDAController Binary Edit
If your HDMI Device_id is one the following, an edit is not required (i.e., HD 5770, 5870).
50 aa, 58 aa, 60 aa, 61 aa, 68 aa
Example: HDMI Device_id: "50 aa" > Find: 02 10 50 aa Replace: 02 10 50 aa
1.* Run IOReg - Skip to Step 3, if you have HDMI Device_id
2.* Search HDAU, Note device-id, this your HDMI Device_id
3. *Edit AppleHDAController Binary; *
** * * * * * * Find: 02 10 50 aa * Replace: 02 10 ?? aa * 2 Times
4.* Install AppleHDAController Binary in AppleHDA.kext
5.* Install AppleHDA.kext in S/L/E
6.* Run Kext Utility
7.* Reboot with HDMI device plugged in
AppleHDA Binary Edit
The AMD HDMI Codec_id is always 10 02 aa 01.* No edits Of AppleHDA Binary required.
ATIFramebuffer Binary Edit
Example 1:* Sapphire HD 5870,* vbios: HDMI sense_id 0x4, Uakari FrameBuffer:* HDMI (00 08) 0x4
1.* In terminal, run ./radeon_bios_decode < HD5XXX.vbios.bin (example: HD5870.bin)
2.* Identify HDMI sense_id (example: 4)
3.* Run IOReg
4.* Search ATY
5.* Identfy Frambuffer* (i.e., Uakari)
6.* Locate HDMI connector (00 08) (example: 4)
7.* HDMI sense_id = HDMI connector_id
8.* No edit necessary
Example 2:* Gigabyte HD 5770, vbios: HDMI sense_id 0x5, Vervet FrameBuffer:* HDMI (00 08) 0x1
1.* In terminal, run ./radeon_bios_decode < HD5XXX.vbios.bin (example: HD5770.bin)
2.* Identify HDMI sense_id (example: 5)
3.* Run IOReg
4.* Search ATY
5.* Identfy Frambuffer* (i.e., Vervet)
6.* Locate HDMI connector (00 08) (example: 1)
7.* HDMI sense_id not HDMI connector_id
8.* Edit AtiFramebuffer Binary;
** * * * * * *Find: *00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 01
** * * * Replace: *00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 01 * * 2 Times
9.* Install AtiFramebuffer Binary in AtiFramebuffer.kext
10.* Install AtiFramebuffer.kext in S/L/E
11.* Run Kext Utility
12.* Reboot with HDMI device plugged in
Additional AMD HD 5xxx HDMI Audio Case Studies
amd_hd_5xxx_hdmi_audio_case_studies.rtf
Mac OS X 10.6.x HDMI Audio
Select System Preferences/Sound/Output.* Select the HDMI audio device. *
Note: DisplayPort Audio is also enabled.
Attachments
Last edited by a moderator: