Contribute
Register

[CLOSED] Adding ATI card IDs to Chimera 1.5 ATI.c

Status
Not open for further replies.
Re: Adding ATI card IDs to ATI.c - update (10-May)

Bismack said:
r2arthur said:
Bismarck I also noticed you're on 32bits, there is a reason for that?
No it's just Geekbench running in 32 bits. :p

For the HD6750, I've downloaded the latest trunk of chameleon and added the device id with framebuffer Vervet to ati.c, compiled the code and replaced the boot file with the new one. Then added the dev id to the ATI5000Controller.kext and GraphicsEnabler=No to org.chameleon.Bootplist.

Looks good but I still miss something since the DVD-Player is chrashing. :think:

At least looks like you have a good performance with your video card. I'm stuck at 1024x760.
If I simply replace my binaries for your, I will be able to have the same configuration? Btw, why you're choosing graphicsenabler=no ? When you set it the kext is loaded?
 
Re: Adding ATI card IDs to ATI.c - update (10-May)

GingaNinja said:
Well, I've been successful with my Sapphire HD 6670 card!

I'll post some more info tonight - I had to modify the framebuffer table inside the ati6000controller.kext (this might be because I am only using DVI on my screen), and also change ati.c to not have knull on my card. I found also that specifying

Code:
AtiConfig=Muskgrass -v
on boot didn't actually set the framebuffer, although it does override what you have in the boot.plist file.

I finally had success when I specified the framebuffer in the boot.plist file.

So now I have DVD player, and Geek bench working!

Hi there.

Any chance of some instructions for those of us who are still struggling?

Would be greatly appreciated...!

Thanks
 
Re: Adding ATI card IDs to ATI.c - update (10-May)

GingaNinja said:
Well, I've been successful with my Sapphire HD 6670 card!

I'll post some more info tonight - I had to modify the framebuffer table inside the ati6000controller.kext (this might be because I am only using DVI on my screen), and also change ati.c to not have knull on my card. I found also that specifying

Code:
AtiConfig=Muskgrass -v
on boot didn't actually set the framebuffer, although it does override what you have in the boot.plist file.

I finally had success when I specified the framebuffer in the boot.plist file.

So now I have DVD player, and Geek bench working!

i put the name as you did, but it was not working. i think we need your instruction.

i wanna have geek bench working too.

thanks.
 
Re: Adding ATI card IDs to ATI.c - update (10-May)

Ok, so here is how I got my 6670 card working. Sorry for the long wait, this week turned out busier than I thought it would be!

I should probably say that I'm still new to this, and have absolutely no idea if this will work for you, particularly if you have a different port configuration on your graphics card from me (DisplayPort, HDMI, DVI Digital, DVI Analogue - I think). Also, I only have DVI going into my screen, as I don't have any other fancy sockets on my screen, so it's quite likely that my DisplayPort and HDMI settings (and possibly DVI Analogue - if that's what it is) won't work.

First off - here's the info about my card:
http://www.yoyotech.co.uk/item-detail.php?products_id=4373341 - Sapphire Radeon HD 6670 1gb

Code:
sudo lspci -nnvd 0x1002: | grep -B2 Subsystem
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Turks XT [AMD Radeon HD 6600 Series] [1002:6758] (prog-if 00 [VGA controller])
	Subsystem: PC Partner Limited Unknown device [174b:e194]
--

01:00.1 Audio device [0403]: ATI Technologies Inc Unknown device [1002:aa90]
	Subsystem: PC Partner Limited Unknown device [174b:aa90]

5939105137_c3502bd0d2.jpg


So, I started off by going through all the framebuffer personalities mentioned by NoShy at the start, but nothing changed at all. My boot command was:
Code:
AtiConfig=framebuffer -v

I realised later that it seems that the -v stops the actual framebuffer loading, so try it without the -v, you might have success.

I realised this was todo with chimera and the fact that it doesn't set any framebuffer up for 6670 cards. I downloaded the source, and edited it, by putting an actual framebuffer personality in ati.c. I then ran
Code:
make
in the root of the chimera folder to compile and just copied the boot file over to the root of the drive. This at least meant that when I tried the framebuffer personalities, some of them halted the startup. But none of them made any difference to what personality was actually loaded.

I then found on page 4 of these posts, NoShy mentioning editing the framebuffer configurations from the actual kext files. I read the post, and read his links to posts on InsanelyMac, and had a go!

I started off by getting a rom dump of the graphics card using gpu-z in windows. I then extracted the information of the rom using radeon_bios_decode - which is one of the files mentioned in NoShy's post. This gave me information about the ports on the card:
Code:
ATOM BIOS Rom: 
	SubsystemVendorID: 0x174b SubsystemID: 0xe194
	IOBaseAddress: 0x0000
	Filename: 194X0306.S22
	BIOS Bootup Message: 
TURKS XT C33302 GDDR5 64Mx32                                                

PCI ID: 1002:6758
Connector at index 0
	Type [@offset 44276]: DisplayPort (10)
	Encoder [@offset 44280]: INTERNAL_UNIPHY1 (0x20)
	i2cid [@offset 44360]: 0x93, OSX senseid: 0x4
Connector at index 1
	Type [@offset 44286]: HDMI-A (11)
	Encoder [@offset 44290]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44387]: 0x94, OSX senseid: 0x5
Connector at index 2
	Type [@offset 44296]: DVI-I (2)
	Encoder [@offset 44300]: INTERNAL_UNIPHY (0x1e)
	i2cid [@offset 44424]: 0x92, OSX senseid: 0x3
Connector at index 3
	Type [@offset 44306]: DVI-I (2)
	Encoder [@offset 44310]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 44424]: 0x92, OSX senseid: 0x3

I then used ati-personality.pl to get the info from the installed ati kexts - specifically ati6000controller.kext which is where stuff for the 6670 is found.

This gave me information about the settings for each framebuffer personality. Here's the Muskgrass personality - this is not what you'd see for yours, because I've edited it for my specific card:
Code:
Personality: Muskgrass
ConnectorInfo count in decimal: 4
Disk offset in decimal 173248
0000000    00  04  00  00  04  03  00  00  00  01  00  00  11  02  03  04
0000010    00  08  00  00  04  02  00  00  00  01  00  00  12  04  04  05
0000020    00  02  00  00  04  02  00  00  00  01  00  00  00  00  01  03
0000030    04  00  00  00  04  02  00  00  00  01  00  00  11  02  02  03
0000040

If you read the links from NoShy's post you'll find what this means, but the easier ones are the start and end sets of numbers. The first 4 pairs for each row specify each port type (HDMI, DVI or DisplayPort), and the last pair of each row is the sense id. I basically reconfigured these numbers as the ports were completely wrong for dvi (which is what I am using), as were the sense ids. To edit these, you have to view the contents of the Ati6000Controller.kext, and open the actual driver inside the MacOs folder with a hex editor.

I used Hex Fiend to change the numbers round (I used Gibba as a guide, because that personality had dvi ports specified) - obviously making a backup of the kext first - you don't want to muck it up, and not have your replacement.

That's it. It took a couple of tries, and there are some other numbers in the framebuffer table that help - specifically I found the hotplug id changed whether or not my dvi connected as the primary display or the secondary display.

Well, I've spent long enough on this post, but I'll try and answer any questions!....

--------------------------------------------------

Edit
Note that when you've edited your kext (which by the way, you will need to change permissions for), don't forget to repair permissions. I forgot when I was doing one of the edits, and found I couldn't boot - I managed to fix it by running the Snow Leopard dvd, and repairing permissions from the disk utility.
 

Attachments

  • \'s Mac Pro.zip
    505.9 KB · Views: 97
Re: Adding ATI card IDs to ATI.c - update (10-May)

GingaNinja said:
Ok, so here is how I got my 6670 card working. Sorry for the long wait, this week turned out busier than I thought it would be!

I should probably say that I'm still new to this, and have absolutely no idea if this will work for you, particularly if you have a different port configuration on your graphics card from me (DisplayPort, HDMI, DVI Digital, DVI Analogue - I think). Also, I only have DVI going into my screen, as I don't have any other fancy sockets on my screen, so it's quite likely that my DisplayPort and HDMI settings (and possibly DVI Analogue - if that's what it is) won't work.

First off - here's the info about my card:
http://www.yoyotech.co.uk/item-detail.php?products_id=4373341 - Sapphire Radeon HD 6670 1gb

Code:
sudo lspci -nnvd 0x1002: | grep -B2 Subsystem
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Turks XT [AMD Radeon HD 6600 Series] [1002:6758] (prog-if 00 [VGA controller])
	Subsystem: PC Partner Limited Unknown device [174b:e194]
--

01:00.1 Audio device [0403]: ATI Technologies Inc Unknown device [1002:aa90]
	Subsystem: PC Partner Limited Unknown device [174b:aa90]

5939105137_c3502bd0d2.jpg


So, I started off by going through all the framebuffer personalities mentioned by NoShy at the start, but nothing changed at all. My boot command was:
Code:
AtiConfig=framebuffer -v

I realised later that it seems that the -v stops the actual framebuffer loading, so try it without the -v, you might have success.

I realised this was todo with chimera and the fact that it doesn't set any framebuffer up for 6670 cards. I downloaded the source, and edited it, by putting an actual framebuffer personality in ati.c. I then ran
Code:
make
in the root of the chimera folder to compile and just copied the boot file over to the root of the drive. This at least meant that when I tried the framebuffer personalities, some of them halted the startup. But none of them made any difference to what personality was actually loaded.

I then found on page 4 of these posts, NoShy mentioning editing the framebuffer configurations from the actual kext files. I read the post, and read his links to posts on InsanelyMac, and had a go!

I started off by getting a rom dump of the graphics card using gpu-z in windows. I then extracted the information of the rom using radeon_bios_decode - which is one of the files mentioned in NoShy's post. This gave me information about the ports on the card:
Code:
ATOM BIOS Rom: 
	SubsystemVendorID: 0x174b SubsystemID: 0xe194
	IOBaseAddress: 0x0000
	Filename: 194X0306.S22
	BIOS Bootup Message: 
TURKS XT C33302 GDDR5 64Mx32                                                

PCI ID: 1002:6758
Connector at index 0
	Type [@offset 44276]: DisplayPort (10)
	Encoder [@offset 44280]: INTERNAL_UNIPHY1 (0x20)
	i2cid [@offset 44360]: 0x93, OSX senseid: 0x4
Connector at index 1
	Type [@offset 44286]: HDMI-A (11)
	Encoder [@offset 44290]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44387]: 0x94, OSX senseid: 0x5
Connector at index 2
	Type [@offset 44296]: DVI-I (2)
	Encoder [@offset 44300]: INTERNAL_UNIPHY (0x1e)
	i2cid [@offset 44424]: 0x92, OSX senseid: 0x3
Connector at index 3
	Type [@offset 44306]: DVI-I (2)
	Encoder [@offset 44310]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 44424]: 0x92, OSX senseid: 0x3

I then used ati-personality.pl to get the info from the installed ati kexts - specifically ati6000controller.kext which is where stuff for the 6670 is found.

This gave me information about the settings for each framebuffer personality. Here's the Muskgrass personality - this is not what you'd see for yours, because I've edited it for my specific card:
Code:
Personality: Muskgrass
ConnectorInfo count in decimal: 4
Disk offset in decimal 173248
0000000    00  04  00  00  04  03  00  00  00  01  00  00  11  02  03  04
0000010    00  08  00  00  04  02  00  00  00  01  00  00  12  04  04  05
0000020    00  02  00  00  04  02  00  00  00  01  00  00  00  00  01  03
0000030    04  00  00  00  04  02  00  00  00  01  00  00  11  02  02  03
0000040

If you read the links from NoShy's post you'll find what this means, but the easier ones are the start and end sets of numbers. The first 4 pairs for each row specify each port type (HDMI, DVI or DisplayPort), and the last pair of each row is the sense id. I basically reconfigured these numbers as the ports were completely wrong for dvi (which is what I am using), as were the sense ids. To edit these, you have to view the contents of the Ati6000Controller.kext, and open the actual driver inside the MacOs folder with a hex editor.

I used Hex Fiend to change the numbers round (I used Gibba as a guide, because that personality had dvi ports specified) - obviously making a backup of the kext first - you don't want to muck it up, and not have your replacement.

That's it. It took a couple of tries, and there are some other numbers in the framebuffer table that help - specifically I found the hotplug id changed whether or not my dvi connected as the primary display or the secondary display.

Well, I've spent long enough on this post, but I'll try and answer any questions!....

Wow - thanks for that! Doesn't make total sense to a newbie like me at the mo, but it's a great start.

1st question I have, is how/where do you edit the ati.c file....? I've been trying to find it without much luck!

Thanks again!
 
Re: Adding ATI card IDs to ATI.c - update (10-May)

1st question I have, is how/where do you edit the ati.c file....?

ati.c is in the Chimera source code, in i386/libsaio. You'll need to use svn to check out the code if you haven't got it. Obviously this might be beyond most people. But instructions for doing this are here:
http://forge.voodooprojects.org/p/chameleon/source/help/

although, this will actually check out all branches of the Chameleon project, so you will have to browse to branches/Chimera to get to the actual code.
 
Re: Adding ATI card IDs to ATI.c - update (10-May)

GingaNinja said:
1st question I have, is how/where do you edit the ati.c file....?

ati.c is in the Chimera source code, in i386/libsaio. You'll need to use svn to check out the code if you haven't got it. Obviously this might be beyond most people. But instructions for doing this are here:
http://forge.voodooprojects.org/p/chameleon/source/help/

although, this will actually check out all branches of the Chameleon project, so you will have to browse to branches/Chimera to get to the actual code.

OK cool - cheers.

So I have found the ati.c file in here:

/Users/theimageofall/chameleon/branches/Chimera/i386/libsaio/ati.c

Is this where I edit & replace the kNull with the different framebuffers & restart to see what happens?

Sorry about all the questions!
 
Re: Adding ATI card IDs to ATI.c - update (10-May)

theimageofall said:
GingaNinja said:
1st question I have, is how/where do you edit the ati.c file....?

ati.c is in the Chimera source code, in i386/libsaio. You'll need to use svn to check out the code if you haven't got it. Obviously this might be beyond most people. But instructions for doing this are here:
http://forge.voodooprojects.org/p/chameleon/source/help/

although, this will actually check out all branches of the Chameleon project, so you will have to browse to branches/Chimera to get to the actual code.

OK cool - cheers.

So I have found the ati.c file in here:

/Users/theimageofall/chameleon/branches/Chimera/i386/libsaio/ati.c

Is this where I edit & replace the kNull with the different framebuffers & restart to see what happens?

Sorry about all the questions!

I have also downloaded the ati.c file from here:

http://forge.voodooprojects.org/p/chame ... saio/ati.c

I'm sorting out the 'make' side of things now, but when you say the 'root' of the drive, where exactly do you mean? (pathname). Do you mean you copy the one from the /Users/theimageofall/chameleon/branches/Chimera/i386/libsaio folder?

Thanks once again.
 
Re: Adding ATI card IDs to ATI.c - update (10-May)

GingaNinja said:
1st question I have, is how/where do you edit the ati.c file....?

ati.c is in the Chimera source code, in i386/libsaio. You'll need to use svn to check out the code if you haven't got it. Obviously this might be beyond most people. But instructions for doing this are here:
http://forge.voodooprojects.org/p/chameleon/source/help/

although, this will actually check out all branches of the Chameleon project, so you will have to browse to branches/Chimera to get to the actual code.

could you upload your boot.plist and ati6000controller.kext and ati.c ?

i got a same graphics as you i need a reference.

thanks.
 
Re: Adding ATI card IDs to ATI.c - update (10-May)

GingaNinja said:
Ok, so here is how I got my 6670 card working. Sorry for the long wait, this week turned out busier than I thought it would be!

I should probably say that I'm still new to this, and have absolutely no idea if this will work for you, particularly if you have a different port configuration on your graphics card from me (DisplayPort, HDMI, DVI Digital, DVI Analogue - I think). Also, I only have DVI going into my screen, as I don't have any other fancy sockets on my screen, so it's quite likely that my DisplayPort and HDMI settings (and possibly DVI Analogue - if that's what it is) won't work.

First off - here's the info about my card:
http://www.yoyotech.co.uk/item-detail.php?products_id=4373341 - Sapphire Radeon HD 6670 1gb

Code:
sudo lspci -nnvd 0x1002: | grep -B2 Subsystem
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Turks XT [AMD Radeon HD 6600 Series] [1002:6758] (prog-if 00 [VGA controller])
	Subsystem: PC Partner Limited Unknown device [174b:e194]
--

01:00.1 Audio device [0403]: ATI Technologies Inc Unknown device [1002:aa90]
	Subsystem: PC Partner Limited Unknown device [174b:aa90]

5939105137_c3502bd0d2.jpg


So, I started off by going through all the framebuffer personalities mentioned by NoShy at the start, but nothing changed at all. My boot command was:
Code:
AtiConfig=framebuffer -v

I realised later that it seems that the -v stops the actual framebuffer loading, so try it without the -v, you might have success.

I realised this was todo with chimera and the fact that it doesn't set any framebuffer up for 6670 cards. I downloaded the source, and edited it, by putting an actual framebuffer personality in ati.c. I then ran
Code:
make
in the root of the chimera folder to compile and just copied the boot file over to the root of the drive. This at least meant that when I tried the framebuffer personalities, some of them halted the startup. But none of them made any difference to what personality was actually loaded.

I then found on page 4 of these posts, NoShy mentioning editing the framebuffer configurations from the actual kext files. I read the post, and read his links to posts on InsanelyMac, and had a go!

I started off by getting a rom dump of the graphics card using gpu-z in windows. I then extracted the information of the rom using radeon_bios_decode - which is one of the files mentioned in NoShy's post. This gave me information about the ports on the card:
Code:
ATOM BIOS Rom: 
	SubsystemVendorID: 0x174b SubsystemID: 0xe194
	IOBaseAddress: 0x0000
	Filename: 194X0306.S22
	BIOS Bootup Message: 
TURKS XT C33302 GDDR5 64Mx32                                                

PCI ID: 1002:6758
Connector at index 0
	Type [@offset 44276]: DisplayPort (10)
	Encoder [@offset 44280]: INTERNAL_UNIPHY1 (0x20)
	i2cid [@offset 44360]: 0x93, OSX senseid: 0x4
Connector at index 1
	Type [@offset 44286]: HDMI-A (11)
	Encoder [@offset 44290]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44387]: 0x94, OSX senseid: 0x5
Connector at index 2
	Type [@offset 44296]: DVI-I (2)
	Encoder [@offset 44300]: INTERNAL_UNIPHY (0x1e)
	i2cid [@offset 44424]: 0x92, OSX senseid: 0x3
Connector at index 3
	Type [@offset 44306]: DVI-I (2)
	Encoder [@offset 44310]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 44424]: 0x92, OSX senseid: 0x3

I then used ati-personality.pl to get the info from the installed ati kexts - specifically ati6000controller.kext which is where stuff for the 6670 is found.

This gave me information about the settings for each framebuffer personality. Here's the Muskgrass personality - this is not what you'd see for yours, because I've edited it for my specific card:
Code:
Personality: Muskgrass
ConnectorInfo count in decimal: 4
Disk offset in decimal 173248
0000000    00  04  00  00  04  03  00  00  00  01  00  00  11  02  03  04
0000010    00  08  00  00  04  02  00  00  00  01  00  00  12  04  04  05
0000020    00  02  00  00  04  02  00  00  00  01  00  00  00  00  01  03
0000030    04  00  00  00  04  02  00  00  00  01  00  00  11  02  02  03
0000040

If you read the links from NoShy's post you'll find what this means, but the easier ones are the start and end sets of numbers. The first 4 pairs for each row specify each port type (HDMI, DVI or DisplayPort), and the last pair of each row is the sense id. I basically reconfigured these numbers as the ports were completely wrong for dvi (which is what I am using), as were the sense ids. To edit these, you have to view the contents of the Ati6000Controller.kext, and open the actual driver inside the MacOs folder with a hex editor.

I used Hex Fiend to change the numbers round (I used Gibba as a guide, because that personality had dvi ports specified) - obviously making a backup of the kext first - you don't want to muck it up, and not have your replacement.

That's it. It took a couple of tries, and there are some other numbers in the framebuffer table that help - specifically I found the hotplug id changed whether or not my dvi connected as the primary display or the secondary display.

Well, I've spent long enough on this post, but I'll try and answer any questions!....

Right! I've got all the way through to the hex editor part & downloaded Hex Fiend. I've dragged the kext into it & I have no idea how to edit it! Any advice on that at all?

Thanks
 
Status
Not open for further replies.
Back
Top