Contribute
Register

Using an ATI Radeon HD5970 without OS X driver edits

Status
Not open for further replies.
Joined
Sep 12, 2010
Messages
12
Mac
Classic Mac
Mobile Phone
I've been using an ATI Radeon HD5970 in my system for over 6 months now and it functions perfectly after disabling the second GPU (basically making it like a 5870). The commonly documented method involves editing two Info.plist files and adding the appropriate PCI ID as well as a PCI class match to ignore the second GPU. Performing these edits for each OS X update is kind of a hassle, especially because if you mess up the system won't boot and you have to dig up an iBoot CD....

Since Apple doesn't seem to have any interest in supporting CrossFire I was thinking about how to simplify this going forward and it got my wondering if this is something that could be done via DSDT edits. For the experts out there this is probably really obvious but after some tinkering I figured it out and thought it would be worth sharing.

On my system the card sits off of PEG0 and is nested down two PCI bridges. I added this to PEG0 device section:

Code:
                Device (P0P0)
                {
                    Name (_ADR, Zero)
                    Device (P0P4)
                    {
                        Name (_ADR, 0x00040000)
                        Device (GFX0)
                        {
                            Name (_ADR, Zero)
                            Name (_SUN, One)
                            Method (_DSM, 4, NotSerialized)
                            {
                                Store (Package (0x04)
                                    {
                                        "device-id", 
                                        Buffer (0x04)
                                        {
                                            0x99, 0x68, 0x00, 0x00
                                        }, 

                                        "model", 
                                        Buffer (0x13)
                                        {
                                            "ATI Radeon HD 5970"
                                        }
                                    }, Local0)
                                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                                Return (Local0)
                            }
                        }
                    }
                }

This changes the PCI device ID of the first GPU to 6899 which is a supported 5870 card listed in the stock drivers. It changes only the first GPU so there's no need to disable the second one since it has the original PCI device ID (689c) which is unknown to the stock drivers and will simply be ignored.

I suspect the same approach would work for 6xxx series cards. Or even for those that have CrossFire setups for gaming in Windows, just set the second GPU to an unsupported device ID.

Hope maybe someone finds this useful, I had fun messing with it!

-E
 
Joined
Aug 30, 2011
Messages
14
Mac
Classic Mac
Mobile Phone
@EEE3

how to proceed

ad your dsdt in TextEdit

need for compile

.......

you are on os X 10.6.X or 10.7.1

cheerios
 
Joined
Sep 12, 2010
Messages
12
Mac
Classic Mac
Mobile Phone
You need to use "ioreg" to find out where your card is. It'll be specific to your motherboard. Then edit your DSDT file and add a stanza like I supplied in the original post in the location you see the card. In other words the GFX0 part will be the same, but you need to figure out where to put it.

-E
 
Joined
Apr 20, 2011
Messages
1
Mac
Classic Mac
Mobile Phone
I'm sorry to revive this topic, but can anyone shed any light on this?
I have no clue how to find out which device is my Radeon 5970 on my DSDT, and the OP doesn't give a lot of insight to where exactly we should put his code.
Any help is appreciated, this is my last resort, I couldn't get my Radeon 5970 to work any other way I tried :(
 
Status
Not open for further replies.
Top