Contribute
Register

H55ITX-C-E & GT240 No HDMI Audio -FIXED

Status
Not open for further replies.
Joined
Sep 16, 2010
Messages
18
Motherboard
Mavericks
CPU
iCore 7
Graphics
Intel HD4000
Mac
  1. MacBook Pro
  2. Mac mini
Classic Mac
  1. PowerBook
Mobile Phone
  1. 0
I wish I could get HDMI audio working with my setup. I have the Zotac H55ITX-C-E and I got everything working (64bit) except HDMI audio. I have tried all the VoodooHDA version, and I actually loose my onboard Digital Output when I switch over from the AppleHDA kext.

I took a look at my DSDT and I noticed I don't have an HDEF section, I have the video card enabled via Graphics enabler = yes in my plist. If someone could give me some advice.

Do I need to modify my DSDT? and include an HDEF section? would it go under Scope (_SB.PCI0) ? I noticed that in IO Reg, my Nvidia hardware is listed under Pop3? I'm not afraid to mess with things, so please any advice would be appreciated.

I'm going to include my lspci, ioreg, and dsdt.aml

00:1b.0 Audio device: Intel Corporation Ibex Peak High Definition Audio (rev 06)
Subsystem: ZOTAC International (MCO) Ltd. Unknown device a130
Flags: bus master, fast devsel, latency 0, IRQ 22
Memory at f9ff8000 (64-bit, non-prefetchable)
Capabilities: [50] Power Management version 2
Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [100] #8086

01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0ca3 (rev a2) (prog-if 00 [VGA controller])
Subsystem: Unknown device 196e:075b
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at fa000000 (32-bit, non-prefetchable)
Memory at d0000000 (64-bit, prefetchable)
Memory at ce000000 (64-bit, prefetchable)
I/O ports at cc00
Capabilities: [60] Power Management version 3
Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [b4] Vendor Specific Information <?>
Capabilities: [100] #10de

01:00.1 Audio device: nVidia Corporation Unknown device 0be4 (rev a1)
Subsystem: Unknown device 196e:075b
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at fbb7c000 (32-bit, non-prefetchable)
Capabilities: [60] Power Management version 3
Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [100] #10de
hdef-IOreg.png
 

Attachments

  • Archive.zip
    575.9 KB · Views: 110
Re: H55ITX-C-E & GT240 No HDMI Audio

Took me a long time, but I finally figured out how these DSDT's work and why it wasn't working for me before.

Here's what I had to do to get it to work.
Modify my DSDT using the NVCAP I got from IORegistryeditor.
My board (Zotac H55ITX-C-E) enumerates my PCI devices differently, I kept trying to create a PEGP device under PCI0 instead of inserting GFX0 under POP3. So when ever I inserted PEGP with the same address as POP3 Name (_ADR, 0x00030000) , it would cause my board not to boot and give me the message "Still Waiting for Root device"

Once I figured out that I didn't have to create a PEGP device and instead just insert this DSDT edit under POP3, everything works. I now have the GT 240 working with no Graphics Enablers and HDMI audio working as well.

Here is my DSDT - Inserted under PCI0 -> POP3

Code:
            Device (P0P3)
            {
                Name (_ADR, 0x00030000)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x05
                })
                Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x1A)
                            {
                                "AAPL,slot-name", 
                                "PCI x16", 
                                "@0,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@0,device_type", 
                                Buffer (0x08)
                                {
                                    "display"
                                }, 

                                "@0,name", 
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-A"
                                }, 

                                "@1,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@1,device_type", 
                                Buffer (0x08)
                                {
                                    "display"
                                }, 

                                "@1,name", 
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-B"
                                }, 

                                "NVCAP", 
                                Buffer (0x18)
                                {
                                    /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                    /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 
                                    /* 0010 */    0x00, 0x00, 0x00, 0x00
                                }, 

                                "VRAM,totalsize", 
                                Buffer (0x04)
                                {
                                    0x00, 0x00, 0x00, 0x20
                                }, 

                                "device_type", 
                                Buffer (0x0C)
                                {
                                    "NVDA,Parent"
                                }, 

                                "model", 
                                Buffer (0x16)
                                {
                                    "nVidia GeForce GT 240"
                                }, 

                                "rom-revision", 
                                Buffer (0x25)
                                {
                                    "70.15.2C.00.51"
                                }, 

                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Device (HDAU)
                {
                    Name (_ADR, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }

            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

Here's how the GT 240 shows up now in Profiler:
Screenshot2011-01-02at104932AM.png


Funny it thinks the HDMI Audio is coming out of the Display port!
Screenshot2011-01-02at104606AM.png


Screenshot2011-01-02at104354AM.png



And IORegistry now looks like this:

Screenshot2011-01-02at110458AM.png


I hope this helps someone else!
 
Congratulations! You're implementation is quite unusual. Usually, HDEF is used for on board audio and HDAU is used for HDMI audio. If you ever wanted on board audio, it wouldn't be available with this set-up. I can certainly understand any reluctance to change anything, however, the changes are simple.

1. Device P0P3 and Device (PEGP) are functionally the same. If you did a find all P0P3 and replace all with PEGP, then PEGP would be present.
2. Rename your current HDEF to HDAU.
3. Check to see if you have Device (AZAL). If so, do a find all AZAL and replace all with HDEF.
4. I believe your Zotac has the ALC888 codec. Iif you don't have AZAL (renamed HDEF), add the code below after Device (SATA).

You can now use the the new ALC8xxHDA to inject on board audio in MultiBeast 3.3 along with AppleHDA Rollback. AppleHDA will need to be patched for HDMI audio after MultiBeast runs.

Code:
            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D, 
                        0x05
                    })
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0A)
                        {
                            "built-in", 
                            Buffer (One)
                            {
                                0x00
                            }, 

                            "codec-id", 
                            Buffer (0x04)
                            {
                                0x88, 0x08, 0xEC, 0x10
                            }, 

                            "layout-id", 
                            Buffer (0x04)
                            {
                                0x78, 0x03, 0x00, 0x00
                            }, 

                            "device-type", 
                            Buffer (0x10)
                            {
                                "Realtek ALC888"
                            }, 

                            "PinConfigurations", 
                             Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
 
Thanks for the tip Toleda, but I'm not sure why it shows up as HDEF in IORegistry, if you look at my DSDT edit. You will see that I specifically name it HDAU and not HDEF. (Wierd?)

Anyway, I'd like to include the advice you provided and enable the onboard Realtek. I'm a little relucant since it was so troublesome getting the hdmi audio working. But I'm game, I just have a couple of questions.

Can you take a look at this lspci output and ioregistry and see if the DSDT edit you recommended will work. The address looks right at 1B, but I am hoping you could verify it now that you have all the info.

LSPCI for audio:
00:1b.0 Audio device [0403]: Intel Corporation Ibex Peak High Definition Audio [8086:3b56] (rev 06)

Ioregistry HDeff section:
rsz_1ioreg-hdef.png


And thanks again for your help!
 
thanks for sharing now can u pls give us a small walk tru if someone want to use same system configurations as u and a copy of u r dsdt is also welcome...thanks
 
Does this method still work for Lion?

I have the same board and a GT220. I imagine the process may be the same, or similar. But I don't know if anything is different for Lion.
 
mattbisme said:
Does this method still work for Lion?

I have the same board and a GT220. I imagine the process may be the same, or similar. But I don't know if anything is different for Lion.
Here's the Lion Guide http://www.tonymacx86.com/viewtopic.php?f=162&t=31664. The edit for the GT240 changed but everything else is the same.
 
I've been following the Lion guide, but I'm not getting very far. It's possible that I just don't understand enough about what I'm doing.

Where do I combine the info from this thread into the Lion HDMI guide (or am I approaching this the wrong way)?

toleda said:
mattbisme said:
Does this method still work for Lion?

I have the same board and a GT220. I imagine the process may be the same, or similar. But I don't know if anything is different for Lion.
Here's the Lion Guide http://www.tonymacx86.com/viewtopic.php?f=162&t=31664. The edit for the GT240 changed but everything else is the same.
 
mattbisme said:
I've been following the Lion guide, but I'm not getting very far. It's possible that I just don't understand enough about what I'm doing.

Where do I combine the info from this thread into the Lion HDMI guide (or am I approaching this the wrong way)?
Use the Lion guide.
 
Status
Not open for further replies.
Back
Top