Contribute
Register

Snow Leopard HDMI Audio - Part 3a: Kext Edits for AMD 5xxx

Status
Not open for further replies.

toleda

Moderator
Joined
May 19, 2010
Messages
22,834
Motherboard
Asus Maximus VII Impact
CPU
i7-4770K
Graphics
RX 560 + HD4600
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Classic Mac
  1. 512K
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

images.jpeg
2.jpeg
1im.jpeg

3.jpeg


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.

SL_HDMI-preferences-sound-output.png
 

Attachments

  • DSDT-HDMI_Audio_Edits_v2.dsl
    13.5 KB · Views: 499
  • HDMI_Audio_Kext_Verification.pdf
    1.7 MB · Views: 711
  • amd_hd_5xxx_hdmi_audio_case_studies.rtf
    22.8 KB · Views: 457
Last edited by a moderator:
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

Some information for your reference.
My card was MSI HD5670 with HDMI device id "60 aa", codec is "aa 01",
However, I still need to patch ATIFramebuffer and AppleHDA to make HDMI+Audio work.
 
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

ishige said:
Some information for your reference.
My card was MSI HD5670 with HDMI device id "60 aa", codec is "aa 01",
However, I still need to patch ATIFramebuffer and AppleHDA to make HDMI+Audio work.

No AppleHDA patch is required. Try your card with the HDMI audio DSDT edits. Most likely, you have to edit ATIFramebuffer. You have to get a copy of the VBIOS for your card and perform the edits as described. Good luck
 
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

Hi toleda
I have my DSDT edit same with yours, and also have VBIOS for my HD5670.
The problem is not HDMI/DisplayPort audio output, it's on-board audio output.
If I did not patch AppleHDA, there will have problem with ALC889 outputs.
I will got sound assertion error and ALC889 can not work.
I think your on board audio was ALC892, maybe it's the different from mine.

You can see my previous post here:
viewtopic.php?f=162&t=12511&start=30
 
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

ishige said:
Hi toleda
I have my DSDT edit same with yours, and also have VBIOS for my HD5670.
The problem is not HDMI/DisplayPort audio output, it's on-board audio output.
If I did not patch AppleHDA, there will have problem with ALC889 outputs.
I will got sound assertion error and ALC889 can not work.
I think your on board audio was ALC892, maybe it's the different from mine.

You can see my previous post here:
http://tonymacx86.com/viewtopic.php?f=1 ... 1&start=30

You're right. For HDMI audio, with you're graphics card, no AppleHDA edit is required. For on board audio (off topic), you have to patch AppleHDA for your motherboard. There are many guides for enabling on board audio. It is good to hear you have both HDMI and on board audio working. Hopefully, many others will have the same success.
 
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

Hey Toleda, I am currently on 10.6.6 with AppleHDA 1.9.9 and modified DSDT from a friend. If I were to update to 10.6.8, will I still have HDMI audio?
 

Attachments

  • DSDT.aml
    19.1 KB · Views: 196
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

Jammol said:
Hey Toleda, I am currently on 10.6.6 with AppleHDA 1.9.9 and modified DSDT from a friend. If I were to update to 10.6.8, will I still have HDMI audio?

I'd suggest going only to 10.6.7. I have not gotten HDMI audio to work on 10.6.8, yet.
 
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

How do you get the volume control working?
Because I got this working on my 4670 (YEAH!) but I don't have control over the volume....
 
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

munkicloud said:
How do you get the volume control working?
Because I got this working on my 4670 (YEAH!) but I don't have control over the volume....
What device is the HDMI cable plugged into (TV, receiver, etc.)? Use that device for volume control.
 
Re: Demystifying HDMI Audio Part 3a: Kext Edits for AMD 5xxx

The HDMI port is connected to my monitor, and I have my speakers connected to that monitor. I can adjust the sound on my speakers, however when I use my headphone, connected to my speakers, I cannot change the volume using the speakers' volume control. Which is why I need the volume control on the hackintosh to work.
 
Status
Not open for further replies.
Back
Top