ATI HD *AGP* card with HDMI audio problems? Read this!

If you have an ATI HDXXXX Series of AGP graphics cards with an integrated High Definition Audio Controller, you probably noticed you can't get audio over HDMI and you receive an error in the System Event Viewer like this one:

IRQARB: ACPI BIOS does not contain an IRQ for the device in PCI slot 0, function 1. Please contact your system vendor for technical assistance.

This problems happens on old AGP boards and also on some older PCIe boards. Newer PCIe boards don't have this problem. AGP boards weren't designed for multiple devices on the AGP bus. But this problem has an easy fix. At least for BIOS that rely on ACPI for IRQ routing. For those that don't, you can assign IRQ on the BIOS menu or under the OS.

Certain ATI HDXXXX cards come with an integrated High Definition Audio Controller to provide audio over HDMI. They have an HDMI output. So you will get two devices on the AGP bus. "Bus 2 Device 0 Function 0" and "Bus 2 Device 0 Function 1". Since most BIOS don't provide IRQ Routing for more than "Bus 2 Device 0 Function 0" the graphics function, the HDA function won't get an IRQ and audio over HDMI won't work.

There is a definitive solution for this problem. You need to edit the ACPI table of your System Board's BIOS. Not the Graphics card one! I am going to give a brief explanation on how I achieved this. In the hopes that this information might help others to fix their system board's BIOS too.

I only have AWARD BIOS systems, but if you have others like AMI and you are familiar with replacing their BIOS modules you can easily adapt this method.

So for AWARD you need CBROM 32 bit. I find that version 1.80 works well. However version 1.40 extracts corrupt unusable ACPI tables from the BIOS. Do a search on the Internet for this tool.
You also need the Intel ASL Compiler, a Text Editor (Notepad will do) and an HEX Editor of your choice, for whatever BIOS AWARD, Phoenix or AMI you are using. You can get the Intel ASL Compiler here -> http://www.acpica.org/downloads/binary_tools.php Extract iasl.exe to a folder of your choice. This is going to be your working folder. Also place the CBROM tool and your Motherboard's BIOS on that folder.

1 -> Execute Windows Cmd command and on the command prompt enter your working folder. I guess you know how to do that.

2 -> Extract the ACPI table. On the command prompt execute:

Code:

cbrom biosfilename.bin /acpitbl extract

This will extract an ACPITBL.BIN file to your working folder. You might need to press Enter twice.

3 -> Extract the DSDT (Differentiated System Description Table) from ACPITBL.BIN. For this open ACPITBL.BIN file with an HEX Editor. Search for an ASCII signature labeled DSDT. Select all the bytes starting immediately before the D of the DSDT word to the end of the ACPITBL.BIN file. Now copy all these bytes to a new file on the HEX Editor and save this new file as DSDT.bin placed on your working folder.

4 -> Decompile the DSDT table. Execute on the command prompt:

Code:

iasl -d DSDT.bin

If you did everything right up until now you will get a file named DSDT.dsl on your chosen folder.

5 -> Edit the DSDT table. Open the file DSDT.dsl with your text editor and do a search for the AGP word. This is what you will probably find if you have an nForce 2 BIOS:

Your BIOS might have been written a lot differently from this. And in that case a deeper understanding is needed to do it the right way. If you are really interested read the ACPI specifications. You can find them here -> http://www.acpi.info/
I recommend you study the version of the ACPI spec of you system board's implementation. Just before you try this way, know you need to tell all the 4 possible devices under the AGP bus to get to the same IRQ.

7 -> Put the compiled DSDT table back into the ACPITBL.BIN file. Open the ACPITBL.BIN file with an hex editor again. Select the DSDT table like it was explained in point 3. Open the file DSDT.aml with the HEX Editor on a new window. Select all bytes from the DSDT.aml file and select Copy. Now go to the ACPITBL.BIN HEX Editor Window and Paste replacing the old DSDT table. Save the edited ACPITBL.BIN with the same name.

8 -> Replace the old ACPITBL.BIN module on the BIOS file with the new one. On the command prompt under your working folder execute:

Code:

cbrom biosfilename.bin /acpitbl release

This will release the old ACPITBL.BIN module from the BIOS.
To insert the new one execute:

Code:

cbrom biosfilename.bin /acpitbl ACPITBL.BIN

9 -> Flash the BIOS file obtained like you normally do. And pray!

NOTE: Make sure you can recover from a bad flash before trying this. In case anything goes wrong.

HI! i'm new around here and i'd like to ask ARTBIO a favor
Can you please make for me all this things with acpitbl.bin... that you tould us above,i tried to do it,but i even cannot extract acpitbl.bin...that noob i am :shadedshu.
i have a ASUS AH3450 512\64 and i can't install drivers because it remain stuck after windows logon screen (black screen).i've tried everything,all possible drivers,all windows 32bit versions,change irq's from bios,same result (xp-black screen/vista+win7-blue screen of death)

Yes I can try that as soon as I can. However my success here is limited to Award BIOS. The first and last AMI BIOS file I tried ended up on an unusable computer.
What version do you want me to patch? F5?

i'd like you to try F5 ver. because it's the last one and i think it has some improvementrs.
currently i have F5 ver. installed on my mobo but as i told you above...no succes with my drivers
oh and don't worry,if will not work,i have a "backup" motherboard,an asrock (P4I65PG), with the latest bios ver.2.30,but i can't use it with my graphic card because it's not detected at all,no post,no image on agp card,but the onboard video card works.
in bios is no agp\irq\pci settings,only boot screen settings (agp\pci\onboard) i had try all 3 combination with same result.so my video card it dose not work on this mobo.

and don't worry,if will not work, i will use this mobo with onboard video

There is a great chance that it will work. Since it is an Award BIOS. However I am unable to identify where in the DSDT is the problem. Since yours is very different from mine. So I need you to check one thing for me. I need the address of your AGP controller. Go to Windows Device Manager -> View -> Devices by connection. Then search for the device that your graphics card is under. Look for something like this: "PCI bus 0, device X, function Y". Tell me your X and Y. Please.

All PCI/IRQ settings in bios are set on auto,since if i change it has no effect for me
Also in resources tab i have this conflicts (if will help you)
All 8 devices had the same conflict
Memory Range E0000000 - EFFFFFFF used by:
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
Input/Output Range 8C00 - 8CFF used by:
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
Memory Range F9070000 - F907FFFF used by:
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series
ASUS AH3450 Series

Although that information will help. That wasn't exactly what I was looking for. I mean the AH3450 is connected to a device, the AGP Controller. If you go to device manager.
Settings -> Control Panel -> System -> Hardware -> Device Manager -> View -> Devices by connection you will be able to get that. Usually it is on PCI bus 0

Your DSDT doesn't have an AGP section that describes IRQ routing, so I had to add one. I think this is kind of dangerous. I have never tried it. So you need to do a little experiment before I do any BIOS editing that could ruin your motherboard. Download Microsoft ASL Compiler from here -> http://download.microsoft.com/downl...e4bf7b65496/Microsoft_ASL_Compiler-v4-0-0.msi
Install it. Now download the aml file I provide and copy it over to the directory where "asl.exe" is. Open a command prompt on that directory and load the aml file with the following command:

Code:

asl.exe /loadtable -v -d DSDT.aml

Reboot your PC after that. Your PC might not boot into Windows. In that case I think you need to reinstall it. That's better than kill a motherboard for good. If it works than report back. Then I will incorporate the DSDT in the BIOS file and it's safe to flash it.

Yes that's good news.
You should have two devices on IRQ 17 your AH3450 and an High Definition Audio Device. Just check that for me. If everything works fine, I will incorporate these modifications into your BIOS. And your problems should go away definitely. Before that please don't uninstall the Microsoft ASL Compiler. You will have to unload the DSDT again, before flashing your BIOS.

i think i was do it correctly because after "asl.exe /loadtable -v -d DSDT.aml" and hit "enter" it was telling me something but i don't memorize what.if ill do it again i will tell you what that numbers are