netkas.org forum
February 24, 2020, 02:40:06 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Information for registering users http://forum.netkas.org/index.php/topic,2246.0.html
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Physical connectors, EFI, and personalities  (Read 22674 times)
rthpjm
Not Newbie
*
Offline Offline

Posts: 16


« on: November 25, 2011, 12:27:09 PM »

I thought I would try and contribute to the community. I hope this helps in some way...

Like many others I appreciate the work of the key forum members here, there are many. Thanks guys.

I have had some success flashing an XFX 5770 single slot XFX-HD-577X-ZMF3-V-A4. This card has 2 x DVI-I dual-link connectors and 1 x Mini Display Port. I've posted my ROM on the forum, and even helped others to use it for their cards.

I followed the instructions in the "make your own radeon HD 5770/5870/6870/6850 Mac ROM!' thread, and successfully built my own ROM + EFI. I used the Vervet EFI part created by Netkas, found here 5770 efi rom message 5. (Remember you must be signed in as a registered member to find the attached files. If you don't see the attachments then you need to register, it's free).

Like most other people, my card works, and works well, but not perfectly. I seem to be able to use 2 out of 3 of my physical connectors at any one time (DVI and DVI, or DVI and MDP) but not all three at the same time. I also do not get the grey boot screen at start up. So I began to do a bit more research.

I came across a great thread at Insanely Mac. This thread by forum member bcc9 talks about 'Editing custom personalities for ATI Radeon HD[45]xxx, Build your own ATI personality for better ATI Radeon HD[45]xxx support'. Contained in the thread are some great tools for getting more information about your card.

There is a binary command-line tool called 'radeon_bios_decode'. This tool is used to provide information about your card by decoding the original BIOS code. To use the tool, first make sure you have a copy of your original ROM already extracted from your card.

Code:
radeon_bios_decode < /path/to/your/card-bios.rom

You should get an output like this:

Code:
ATOM BIOS Rom:
SubsystemVendorID: 0x1682 SubsystemID: 0x2994
IOBaseAddress: 0x0000
Filename: 577ZMF73.BIN
BIOS Bootup Message:
JUNIPER BIOS UCODEv:1255                                   

PCI ID: 1002:68b8
Connector at index 0
Type [@offset 44278]: DisplayPort (10)
Encoder [@offset 44282]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44380]: 0x91, OSX senseid: 0x2
Connector at index 1
Type [@offset 44288]: DVI-I (2)
Encoder [@offset 44292]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44417]: 0x93, OSX senseid: 0x4
Connector at index 2
Type [@offset 44298]: DVI-I (2)
Encoder [@offset 44302]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 44417]: 0x93, OSX senseid: 0x4
Connector at index 3
Type [@offset 44308]: DVI-I (2)
Encoder [@offset 44312]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44454]: 0x92, OSX senseid: 0x3
Connector at index 4
Type [@offset 44318]: DVI-I (2)
Encoder [@offset 44322]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44454]: 0x92, OSX senseid: 0x3

Notice my card reports 5 connectors, but I said earlier that I had 3 physical connectors. The clue is in DAC1 and DAC2, DAC is an acronym for digital to analog converter, so these are analog versions of the same connector ID (i2cid). Remember my DVI ports are DVI-I, which means they combine both digital and analog signals into the same connector (the analog connections are the cross-shaped part of the connector).

The next tool of interest is the PERL script written by bcc9, ati-personality.pl. This tool reads the personalities from all the ATI kexts on your system (it's been updated to do this). To use the tool, go into a terminal, change directory to the folder containing ati-personality.pl:

Code:
perl ati-personality.pl

You will get the personalities listed, look for the section of the output that matches with the KEXT for your card. I have an ATI 5770, so the section of interest for me is:

Code:
Kext ATI5000Controller
Personality: Douc
ConnectorInfo count in decimal: 2
Disk offset in decimal 484760
0000000    02  00  00  00  00  05  00  00  09  03  00  00  21  03  02  02
0000010    00  04  00  00  04  02  00  00  00  03  00  00  11  02  01  01
0000020
Personality: Langur
ConnectorInfo count in decimal: 3
Disk offset in decimal 484792
0000000    00  04  00  00  04  06  00  00  00  01  00  00  21  03  04  02
0000010    00  04  00  00  04  06  00  00  00  01  00  00  11  02  01  01
0000020    04  00  00  00  14  02  00  00  00  01  00  00  02  04  05  03
0000030
Personality: Uakari
ConnectorInfo count in decimal: 4
Disk offset in decimal 484840
0000000    00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  01
0000010    04  00  00  00  14  00  00  00  00  71  00  00  01  12  01  03
0000020    00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  05
0000030    00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  04
0000040
Personality: Zonalis
ConnectorInfo count in decimal: 6
Disk offset in decimal 484904
0000000    00  04  00  00  04  06  00  00  00  71  00  00  20  01  06  06
0000010    00  04  00  00  04  06  00  00  00  71  00  00  10  00  05  05
0000020    00  04  00  00  04  06  00  00  00  71  00  00  21  03  02  04
0000030    00  04  00  00  04  06  00  00  00  71  00  00  11  02  01  03
0000040    00  04  00  00  04  06  00  00  00  71  00  00  22  05  04  02
0000050    00  04  00  00  04  06  00  00  00  71  00  00  12  04  03  01
0000060
Personality: Alouatta
ConnectorInfo count in decimal: 4
Disk offset in decimal 485000
0000000    02  00  00  00  00  01  00  00  09  01  00  00  12  04  03  03
0000010    00  04  00  00  04  06  00  00  00  71  00  00  11  02  01  01
0000020    00  04  00  00  04  06  00  00  00  71  00  00  21  03  02  02
0000030    00  04  00  00  04  06  00  00  00  71  00  00  22  05  04  04
0000040
Personality: Hoolock
ConnectorInfo count in decimal: 3
Disk offset in decimal 485064
0000000    00  04  00  00  04  06  00  00  00  01  00  00  21  03  05  01
0000010    00  04  00  00  04  06  00  00  00  01  00  00  11  02  04  02
0000020    04  00  00  00  14  02  00  00  00  01  00  00  02  04  01  03
0000030
Personality: Vervet
ConnectorInfo count in decimal: 4
Disk offset in decimal 485112
0000000    00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  02
0000010    04  00  00  00  14  00  00  00  00  71  00  00  01  12  01  04
0000020    00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  03
0000030    00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  01
0000040
Personality: Baboon
ConnectorInfo count in decimal: 3
Disk offset in decimal 485176
0000000    04  00  00  00  14  00  00  00  00  01  00  00  01  02  01  03
0000010    00  08  00  00  00  02  00  00  00  71  00  00  22  05  02  01
0000020    10  00  00  00  10  00  00  00  00  01  00  00  00  10  00  02
0000030
Personality: Eulemur
ConnectorInfo count in decimal: 3
Disk offset in decimal 485224
0000000    04  00  00  00  14  00  00  00  00  01  00  00  01  02  01  04
0000010    00  08  00  00  00  02  00  00  00  71  00  00  12  04  04  02
0000020    10  00  00  00  10  00  00  00  00  00  00  00  00  10  00  01
0000030
Personality: Galago
ConnectorInfo count in decimal: 2
Disk offset in decimal 485288
0000000    02  00  00  00  00  01  00  00  09  03  00  00  21  03  02  02
0000010    00  04  00  00  04  06  00  00  00  73  00  00  11  02  01  01
0000020
Personality: Colobus
ConnectorInfo count in decimal: 2
Disk offset in decimal 485336
0000000    02  00  00  00  00  01  00  00  09  03  00  00  21  03  02  02
0000010    00  04  00  00  04  06  00  00  00  73  00  00  11  02  01  01
0000020
Personality: Mangabey
ConnectorInfo count in decimal: 2
Disk offset in decimal 485384
0000000    02  00  00  00  40  00  00  00  09  01  00  00  00  00  00  03
0000010    00  04  00  00  04  06  00  00  00  73  00  00  11  02  01  01
0000020
Personality: Nomascus
ConnectorInfo count in decimal: 4
Disk offset in decimal 485432
0000000    02  00  00  00  40  00  00  00  09  01  00  00  00  00  00  05
0000010    02  00  00  00  00  01  00  00  09  03  00  00  12  04  03  03
0000020    00  04  00  00  04  06  00  00  00  73  00  00  11  02  01  01
0000030    00  04  00  00  04  07  00  00  00  73  00  00  21  03  02  02
0000040
Personality: Orangutan
ConnectorInfo count in decimal: 2
Disk offset in decimal 485512
0000000    02  00  00  00  40  00  00  00  09  01  00  00  00  00  00  05
0000010    00  04  00  00  04  06  00  00  00  73  00  00  11  02  01  01
0000020

Now the Vervet personality only has 4 connectors defined, I'll leave it to the reader to cross-reference bcc9's post with the connector type info, but Vervet defines:

Code:
connector0 as Display Port
connector1 as Dual Link DVI (I think this is the digital half)
connector2 as DVI (I think this is the analog half)
connector3 as HDMI

Now that's close for my card, but not quite right. I have 5 connectors DP, DVI-D, DVI-A, DVI-D, DVI-A (and no HDMI). I think this explains why I can only use 2 out of 3 connectors at any one time. The KEXT personality needs to match the physical characteristics of my card.

The bcc9 post goes on to demonstrate how to alter the KEXT to match the card. Another Insanely Mac forum user (Mucha) has taken this a stage further, his post further discusses the personality code, together with Encoder-Transmitter Routing rules. The Encoder-Transmitter Routing rules are exciting, this could be the solution to finally getting the boot screen working on our modded cards.

I'm prepared to try some of this out, but I think I need a 5-connector personality for my card. So I'm off to see if I can interest Netkas in producing a Zonalis-based EFI part... (although I'm starting to wonder if my problem is with my test-rig, to test the MDP I'm using an after market MDP-to-VGA adaptor. I've had trouble with getting the display output with this adaptor before. I'm wondering if my problem is a loose wire in the adaptor, and therefore Vervet is okay for my card because the personality has entries for each of my connector types. But this doesn't tie up with the methodology in bcc9's post.... Oh, my head hurts!)

I'll post updates if I make progress....
Logged

2006 MacPro 1,1 upgraded:
2,1 with the firmware upgrade tool on this forum
2x Quad core Xeon E5345 2.33GHz 8MB
EVGA GTX 680 (ATI/XFX Radeon 5770 now in a box as backup)
Rominator
Hero Member
*****
Offline Offline

Posts: 2346



« Reply #1 on: November 25, 2011, 08:45:16 PM »

Exciting work.

I have posted before that I thought much could be accomplished going this route.

Good Luck !!!
Logged

Before asking a question, check your "Personal Settings" and be sure that you have "Brain Services" set to "On".
netkas
Administrator
Hero Member
*****
Offline Offline

Posts: 836



« Reply #2 on: November 28, 2011, 06:24:14 PM »

Nice work, no it will be easier for you to edit personality and change number of connectors, or just change personality name (e.g. Replace zonalis with vervet in kext,  so your the driver will use personalities of zonalis for ur vervet card, will write more about it later.
Logged
rthpjm
Not Newbie
*
Offline Offline

Posts: 16


« Reply #3 on: November 29, 2011, 09:38:22 AM »

Thanks Netkas. I look forward to your guidance. This will help with the OS side of things. I'm still curious to see if I can understand the EFI config a little better (since it is the EFI that configuration that will eventually get the boot screen to be reliable).
Logged

2006 MacPro 1,1 upgraded:
2,1 with the firmware upgrade tool on this forum
2x Quad core Xeon E5345 2.33GHz 8MB
EVGA GTX 680 (ATI/XFX Radeon 5770 now in a box as backup)
rthpjm
Not Newbie
*
Offline Offline

Posts: 16


« Reply #4 on: November 29, 2011, 09:44:48 AM »

Hi Rominator,

 I remember reading one of your posts some time ago where you said you had an Apple 5770. Do you still have it? Do you have an unmodified ROM extracted from it that you could attach? This would give me a reference starting point, to see how Apple do it. At least I'll be able to compare my XFX ROM to the Apple ROM. The differences (if any) in the BIOS section will be helpful if nothing else.

RTH
Logged

2006 MacPro 1,1 upgraded:
2,1 with the firmware upgrade tool on this forum
2x Quad core Xeon E5345 2.33GHz 8MB
EVGA GTX 680 (ATI/XFX Radeon 5770 now in a box as backup)
andystubbs
Hero Member
*****
Offline Offline

Posts: 505


« Reply #5 on: November 29, 2011, 09:59:35 AM »

Out of interest with a reference 5770, 5870 etc on a genuine mac has anybody tried using chameleon as the bootloader and using graphicsenabler to load a copy of the relevant genuine apple branded rom for the gpu?

Logged
cargo
Not Newbie
*
Offline Offline

Posts: 27


« Reply #6 on: November 29, 2011, 05:42:59 PM »

Hi Rominator,

 I remember reading one of your posts some time ago where you said you had an Apple 5770. Do you still have it? Do you have an unmodified ROM extracted from it that you could attach? This would give me a reference starting point, to see how Apple do it. At least I'll be able to compare my XFX ROM to the Apple ROM. The differences (if any) in the BIOS section will be helpful if nothing else.

RTH
APPLE OEM 5770 CARD ROM & APPLE OEM 5870 CARD ROM attached.
JUST TAKE IT FOR FREE.

* MAC5770oem.bin (128 KB - downloaded 449 times.)
* Mac5870oem.bin (128 KB - downloaded 426 times.)
Logged
rthpjm
Not Newbie
*
Offline Offline

Posts: 16


« Reply #7 on: November 29, 2011, 09:58:57 PM »

Thanks Cargo  Grin
Logged

2006 MacPro 1,1 upgraded:
2,1 with the firmware upgrade tool on this forum
2x Quad core Xeon E5345 2.33GHz 8MB
EVGA GTX 680 (ATI/XFX Radeon 5770 now in a box as backup)
rthpjm
Not Newbie
*
Offline Offline

Posts: 16


« Reply #8 on: November 30, 2011, 08:10:22 PM »

Out of interest with a reference 5770, 5870 etc on a genuine mac has anybody tried using chameleon as the bootloader and using graphicsenabler to load a copy of the relevant genuine apple branded rom for the gpu?

Andy, I'm not sure that will work too well. The BIOS reports different versions and different offsets across the same connector types. I might try it at the weekend.

Must remember to dig my trusty Nvidia GeForce 7300 GT original card out of the cupboard. Just in case!  Roll Eyes

Over time I've killed an ATI X1900XT (PC original, flashed for Mac) I think I messed up when I swapped the cooler on this card, and an Nvidia GeForce 8800 GT (Apple original!) where I cooked that one by not cleaning the cooler fins regularly enough  Shocked So the 7300 seems to be old reliable to me. Remember those days when a fan-less heatsink was all that was required Wink

---- Edit ----

Oops, I should've read the post more closely. I'm using a MacPro, so I don't have any experience with chameleon and graphicsenabler. I'm guessing you'd still be interested to find out what the Apple ROM does to another vendor's card though....
« Last Edit: November 30, 2011, 08:15:31 PM by rthpjm » Logged

2006 MacPro 1,1 upgraded:
2,1 with the firmware upgrade tool on this forum
2x Quad core Xeon E5345 2.33GHz 8MB
EVGA GTX 680 (ATI/XFX Radeon 5770 now in a box as backup)
rthpjm
Not Newbie
*
Offline Offline

Posts: 16


« Reply #9 on: December 04, 2011, 07:17:24 PM »

Out of interest with a reference 5770, 5870 etc on a genuine mac has anybody tried using chameleon as the bootloader and using graphicsenabler to load a copy of the relevant genuine apple branded rom for the gpu?



Hi Andy,

 I'm on a Macpro and don't use chameleon. So I thought I'd take your suggestion down to the hardware level. I flashed my XFX 5770 ZMF3 with the Apple OEM ROM supplied by Cargo. No luck I'm afraid. No video at all. It was a long shot, since the Apple cards differ greatly from the physical characteristics of my XFX. But hey, I said I'd give it a try  Wink I'm back using the 'make your own' with the vervet EFI from Netkas...

Logged

2006 MacPro 1,1 upgraded:
2,1 with the firmware upgrade tool on this forum
2x Quad core Xeon E5345 2.33GHz 8MB
EVGA GTX 680 (ATI/XFX Radeon 5770 now in a box as backup)
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!