Jump to content

XFX Radeon HD 5770


osx151212
 Share

14 posts in this topic

Recommended Posts

Hello,

I am attempting to configure XFX Radeon HD 5770 (0x68B8) in 'El Captain' and 'Yosemite' -- so far without success.

Clover EFI installer log - Mon Oct  1 12:32:38 PDT 2018
Installer version: v2.4k r4674 EFI bootloader

In the attempt:

1. Edited EFI/CLOVER/OEM/P5KPL-VM

      ........................................

                <key>DSDT</key>

                <dict>

                        <key>Fixes</key>

                        <dict>

                                <key>AddDTGP</key>

                                <true/>

                                <key>FixDisplay</key>

                                <true/>

                                <key>FixHDA</key>

                                <true/>

                                <key>FixHPET</key>

                                <true/>

                                <key>FixIPIC</key>

                                <true/>

                        </dict>

        .......................................

        <key>Graphics</key>

        <dict>

                <key>FBName</key>

                <string>Vervet</string>

                <key>Inject</key>

                <dict>

                        <key>ATI</key>

                        <true/>

                </dict>

                <key>VideoPorts</key>

                <integer>4</integer>

                <key>PatchVBios</key>

                <true/>

        </dict>


When computer boots I able to see black screen with apple logo and progress bar advancing to about 55%-60% and then it stays at this level. I got filling that the system boots successfully but there is no video. 

My understanding is that Radeon HD 5770 supposedly should be recognised by OS if device id is 0x68B8 (exactly what my video card identified in linux or PCI_ID).
I even attempted to inject Fake_ID 0x68B81002 for ATI card but it has changed nothing -- same behavour.

At this moment I am writing this message on same computer (P5KPL-VM) booted into El Capitan (10.11.6) with installed GeForce GT 8400 video card.

I attach original DSDT extracted through Clover F4 and Video BIOS extracted through F6.

My guess is that I have missed something in my attempt.
I had previously a success with Radeon HD 5450 in other computer by injecting FakeID for ATI card and modifying 'Graphics' section of config.plist Clover bootloader.
(NOTE: Radeon HD 5450 works well upto 'Sierra', I was not able to get this card properly in 'High Sierra' -- system recognizes only 7MB of VRAM and not video acceleration works)

I would appreciate any thoughts what can be wrong and why Radeon HD 5770 video card is not recognized by OS X.

Thank you,
osx151212

 

DSDT_origin.zip

c0000.bin

Edited by osx151212
Link to comment
Share on other sites

Hi  :)

 

HD 5770 gpus have native support in osx - its device-id (0x68B81002) is already present in AMD5000Controller.kext and AMDRadeonX3000.kext so all you have to do it is to check Inject ATI feature in config.plist and that's all.

 

Clover recognizes perfectly these gpus and injects the right framebuffer.

Link to comment
Share on other sites

  • 1 month later...

Hi,

I still struggle to make XFX Radeon HD 5770 work in Sierra (El Capitan, High Sierra).

Please see the following screen photo with debug information.

NOTE: SMBIOS Mac 5,1 / Lilu / Whatevergreen / no clover patching (also tried with only clover bootloader patching without Lilu and Whatevergreen kexts)

The computer can be booted in save mode with flags (-x -v -f) with no GPU acceleration. I can provide ioreg for GFX0 device if it would help in problem resolution.

osx151212

P1290183.JPG

Link to comment
Share on other sites

Guest ricoc90

MacPro5.1 uses ECC RAM. Either use a different SMbios or patch AppleTyMCEDriver, by either using this flag: -nehalem_error_disable or by kext patch:

 

<dict>
<key>Name</key>
<string>AppleTyMCEDriver</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
cgoATWFjUHJvNCwxAE1hY1BybzUsMQBY
</data>
<key>Replace</key>
<data>
cgoAAAAAAAAAAAAAAAAAAAAAAAAAAABY
</data>
</dict>



-x is safe mode, on which only the necessary kexts are being loaded, thus no graphics acceleration. That's the expected behavior

Edited by ricoc90
Link to comment
Share on other sites

Hello ricoc90,

yesterday late night I figured out that Mac5,1 has ECC memory and AppleTyMCEDriver error related to memory ECC.

Thank you for provided options to go around AppleTyMCEDriver error.

I've tried -nehalem_error_disable option -- as result got black screen with 'progress bar' line and no 'Apple' logo. I believe that the computer booted but no graphics output.

Can it be somehow be related to framebuffer? I tried clover patch with frame buffer 'Vervet',
'Uakari', 'Alouatta' (4 ports) -- there is no difference.

Clover AMDcontroller framebuffers

I read on this issue and according following link 'Radeon HD 5770' supposedly should work OOB (my understanding is that Mac5,1 has this card installed in [with Apple VBIOS] -- I decided to give a try Mac5,1 SMBIOS because there was other error message in log [dmesg] about AGPM -- graphics card power management [ioreg shows that I have GFX0 and AGPM expects IGPU]).

Radeon Compatibility Guide - ATI/AMD Graphics Cards

 

My experimentation lead me to believe that somehow the problem probably related to framebuffer connectors be incorrect in framebuffer and not matching VBIOS. I've attempted to patch framebuffer connectors [Vervet] (through clover kext patch) but without success -- I am not sure that I did it right, if somebody could check it out then it would be great help.

This video card works well in Linux (Knoppix) and Windows 10 -- I do not have enough experience with Radeon HD cards in OSX (I had a success with Radeon HD 5450 through clover patch).

At some point I even read on VBIOS EFI patching but I believe that in my case it will not resolve the issue (although it might be desirable if the card get used with real Mac).

AMD and Nvidia GOP update (VBIOS EFI patching)

I have tried iMac11,2 SMBIOS which has IGPU to avoid dmesg AGPM message -- still no graphics mode working.

NOTE: I have tried to disable clover AMD Graphic patching and utilize as alternative Lilu and WhatEverGreen kexts with -v flag -- I can see on the screen boot process but no 'Apple' logo and progress bar appear, I believe that the computer boot successfully but without graphics mode (I did not try connect to HDMI connector).

INFO: XFX Radeon HD 5770 with 4 connectors [ 2xDVI, HDMI, DP] 

osx151212

Edited by osx151212
Link to comment
Share on other sites

Hello,

I've booted the computer [Sierra, clover ATI patch, Vervet, no Lilu/Whatevergreen kext] with iMac11,2 SMBIOS to look at dmesg and ioreg output [ssh into the hackintosh]. 

bash-3.2# dmesg | egrep -i 'AGPM|GFX0|IGPU|ATY|Vervet'
[AGPM Controller] build gpuDict by GPU GFX0.
AGPM::start - publish fMinPowerState = 0 fMaxPowerState = 3
ATY,Vervet: Not usable
ATY,Vervet: Not usable
ATY,Vervet: Not usable

For some reason 'Vervet' frameboofer is 'Not usable' what causes graphics mode fail.

bash-3.2# kextstat | grep AMD
   77    1 0xffffff7f82187000 0x14c000   0x14c000   com.apple.kext.AMDSupport (1.4.4) DE6DDF10-212A-31AC-9866-AD498B159045 <76 73 12 11 7 5 4 3 1>
   78    0 0xffffff7f829bd000 0x769000   0x769000   com.apple.kext.AMD5000Controller (1.4.4) 8E382918-AE78-3092-9DCB-E7D4C35895BB <77 73 12 11 5 4 3 1>
   81    0 0xffffff7f82382000 0x608000   0x608000   com.apple.AMDRadeonX3000 (1.4.4) 9BA87B01-1C6A-3F8C-98DA-A56416DD21C2 <80 79 73 12 7 5 4 3 1>
bash-3.2#

Please see attached files.

Any clue what is wrong and how to debug the problem is greatly appreciated.

osx151212

 

dmesg.txt

ioreg_gfx0.txt

Link to comment
Share on other sites

Hello,

some reading on 'Whatevergreen' kext caught the following statement by my eye

---- Quote ----------------------------------------------------------------
What are the hardware requirements for WhateverGreen?
Full UEFI without CSM. You are strongly recommended to flash a UEFI-compatible ROM unless your card already has it. Failing to do so will quite likely result in issues in multi-monitor configurations and possibly even in single-monitor configurations. It may stil work for non-UEFI motherboards, try at your own risk. There are known issues when using 2 or more GPUs in multi-monitor configurations.
-----------------------------------------------------------------------------

My video card XFX Radeon HD 5770 as of this moment is not EFI ready (I did not patch VBIOS yet).

NOTE #1: VBIOS for XFX Radeon HD5770 (Juniper) is included as attachment to this post.

NOTE #2: I am on 'Legacy' computer P5KPL-VM, E8400, 4GB DDR2 800MHz, latest BIOS, clover bootloader  -- OSX El Capitan/ Sierra/ High Sierra

osx151212

c0000.bin

P1290184.JPG

Edited by osx151212
Link to comment
Share on other sites

Frame Buffer 10.11 elcapitan

Orig:

Personality: Vervet

ConnectorInfo count in decimal: 4

Disk offset in decimal 1833520

00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  02

04  00  00  00  14  00  00  00  00  71  00  00  01  12  01  04

00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  03

00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  01

 

FIX:

Personality: Vervet

ConnectorInfo count in decimal: 4

Disk offset in decimal 1833520

00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  02

00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  01

04  00  00  00  14  02  00  00  00  71  00  00  11  02  01  04

04  00  00  00  14  02  00  00  00  71  00  00  10  00  06  03

 

DP and HDMI looking good. DVI fix. 

Link to comment
Share on other sites

Hello duffs,

I used following instruction to patch AMD5000Controller.kext [I attach output of the commands to this post] and my patch looks somewhat different

Output of amd-personality.php for AMD5000Controller.kext / Vervet frame buffer

-------------------------AMD5000Controller.kext-------------------------
Vervet (4) @ 0x1af1c0
DP, DVI-D, DVI-SL, HDMI
000400000004000000710000000000001204040200000000
040000001400000000710000000000000112010400000000
000200001400000000710000000000000000060300000000
000800000002000000710000000000002205050100000000

Output of radeon_bios_decode

ATOM BIOS Rom:
        SubsystemVendorID: 0x1682 SubsystemID: 0x2990
        IOBaseAddress: 0xe000
        Filename: 577ZNFA5.BIN
        BIOS Bootup Message:
JUNIPER BIOS UCODEv:126

PCI ID: 1002:68b8
Connector at index 0
        Type [@offset 44664]: DisplayPort (10)
        Encoder [@offset 44668]: INTERNAL_UNIPHY2 (0x21)
        i2cid [@offset 44784]: 0x91, OSX senseid: 0x2
        HotPlugID: 4
Connector at index 1
        Type [@offset 44674]: HDMI-A (11)
        Encoder [@offset 44678]: INTERNAL_UNIPHY2 (0x21)
        i2cid [@offset 44811]: 0x90, OSX senseid: 0x1
        HotPlugID: 5
Connector at index 2
        Type [@offset 44684]: DVI-I (2)
        Encoder [@offset 44688]: INTERNAL_UNIPHY1 (0x20)
        i2cid [@offset 44848]: 0x93, OSX senseid: 0x4
        HotPlugID: 1
Connector at index 3
        Type [@offset 44694]: DVI-I (2)
        Encoder [@offset 44698]: INTERNAL_KLDSCP_DAC2 (0x16)
        i2cid [@offset 44848]: 0x93, OSX senseid: 0x4
        HotPlugID: 1
Connector at index 4
        Type [@offset 44704]: DVI-I (2)
        Encoder [@offset 44708]: INTERNAL_UNIPHY (0x1e)
        i2cid [@offset 44885]: 0x92, OSX senseid: 0x3
        HotPlugID: 6
Connector at index 5
        Type [@offset 44714]: DVI-I (2)
        Encoder [@offset 44718]: INTERNAL_KLDSCP_DAC1 (0x15)
        i2cid [@offset 44885]: 0x92, OSX senseid: 0x3
        HotPlugID: 6

Output of redsock_bios_decoder

577ZNFA5.BIN:

JUNIPER BIOS UCODEv:126                                     ^M

Subsystem Vendor ID: 1682
       Subsystem ID: 2990
Object Header Structure Size: 384
Connector Object Table Offset: 52
Router Object Table Offset: 0
Encoder Object Table Offset: 111
Display Path Table Offset: 12
Connector Object Id [19] which is [DISPLAY_PORT]
        encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
        encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
Connector Object Id [2] which is [DVI_I]
        encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
Connector Object Id [2] which is [DVI_I]
        encoder obj id [0x16] which is [INTERNAL_KLDSCP_DAC2] linkb: false
Connector Object Id [2] which is [DVI_I]
        encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Connector Object Id [2] which is [DVI_I]
        encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

It is a little bit confusing as output commands has 6 connectors and 'personality' Vervet has only 4 (matching number of physical connectors on video card).

Ok, lets construct connectors which consist of 4 groups 2 digits (transmitter, encoder, hotplug id, sense id)

12040402 : DP (Display Port)
22050501 : HDMI
11020104 : DVI-DL (DVI Dual Link)
10000603 : DVI-DL (DVI Dual Link)

Now Connector type must be defined

onnector Type LVDS 0 × 00000002 = 02 00 00 00 Note: Laptop Monitor
Connector Type DVIDL 0 × 00000004 = 04 00 00 00 Note: Dual Link DVI
Connector Type VGA 0 × 00000010 = 10 00 00 00
Connector Type SV 0 × 00000080 = 08 00 00 00
Connector Type DP = 0 × 00000400 = 00 04 00 00
Connector Type HDMI 0 × 00000800 = 00 08 00 00
Connector Type DVISL 0 × 00000200 = 00 02 00 00 Note: Single Link DVI

00040000 : DP
00080000 : HDMI
04000000 : DVI-DL
04000000 : DVI-DL

Control flags

0×0002 : LVDS ControlFlag : 0×0040 and 0×0100
0×0004 : DVI-DL ControlFlag : 0×0016, 0×0014, and 0×0214
0×0010 : VGA ControlFlag : 0×0010
0×0080 : S-Video ControlFlag : 0×0002
0×0200 : DVI-SL ControlFlag : 0×0014, 0×0214, and 0×0204
0×0400 : DisplayPort ControlFlag : 0×0100, 0×0104, 0×0304, 0×0604, and 0×0400
0×0800 : HDMI ControlFlag : 0×0204

Translated in to standard control flags:

Connector Type DP 04 03 00 00
Connector Type HDMI 04 02 00 00
Connector Type DVIDL 14 02 00 00
Connector Type DVISL 04 02 00 00
Connector Type S-VD 02 00 00 00
Connector Type LVDS 00 01 00 00

04030000 : DP
04020000 : HDMI
14020000 : DVI-DL

14020000 : DVI-DL

Feature block -- following the instructions it is not fully understood block. It is mentioned that last two digits should be zerroed and digits 5-6 define port activation order. Ok copy our 'Vervet' block and modify it to reflect our changes

Original 'Vervet' frame buffer connectors

Vervet (4) @ 0x1af1c0
DP, DVI-D, DVI-SL, HDMI
000400000004000000710000000000001204040200000000
040000001400000000710000000000000112010400000000
000200001400000000710000000000000000060300000000
000800000002000000710000000000002205050100000000

Modified to this point

Vervet (4) @ 0x1af1c0
DP, DVI-D, DVI-SL, HDMI
000400000403000000710400000000001204040200000000 : DP     activate #4
000800000402000000710300000000002205050100000000 : HDMI   activate #3
040000001402000000710100000000001102010400000000 : DVI-DL activate #1
040000001402000000710200000000001000060300000000 : DVI-DL activate #2

Legend : 
000400000403000000710000000000001204040200000000 : DP
1. Connector type
2. Control flags
3. Feature block
4. Reserved future use
5. Transmitter, Encoder, Hotplug ID, Sense ID
6. Reserved future use


Our 'calculation' agree on most position except control flags for HDMI port [mine 0402][yours 0400]. 

Please confirm that my 'calculation' is correct (at least based on the instruction mentioned earlier).

AMD5000Controller.kext does not honor activation order, this field utilized in controllers starting with AMD7000Controller.kext

 

Thank you,
osx151212

 

amd-personality.php

amd-personality.txt

radeon_bios_decode

radeon_bios_decode.txt

redsock_bios_decoder

redsock_bios_decoder.txt

c0000.bin

 

Edited by osx151212
Link to comment
Share on other sites

Our 'calculation' agree on most position except control flags for HDMI port [mine 0402][yours 0400]. 

 

my

00  08  00  00  | 00  02  00  00 | xxxx | 22  05  05  01 |xxx

so you use 204 i use 200 (byte flip)

every hdmi in AMD5000Controller is 200 or 00 02

 

try this.

 

Vervet (4) @ 0x1af1c0
DP, DVI-D, DVI-SL, HDMI
000400000406000000710000000000001204040200000000 : DP     activate #4
000800000002000000710000000000002205050100000000 : HDMI   activate #3
040000001402000000710000000000001102010400000000 : DVI-DL activate #1
040000001402000000710000000000001000060300000000 : DVI-DL activate #2

whatevergreen is not working ?

  • -raddvi to enable DVI transmitter correction (required for 290X, 370, etc.).
Link to comment
Share on other sites

Hi Duffs,

I applied suggested 'patched' connectors into config_vervet.plist (see attachments) -- at boot I see 'Apple' logo with progress bar at 0%.

I can ssh into the computer and run commands -- please see attachment for debugging information.

I am running out of ideas how to troubleshoot/resolve the issue with XFX Radeon HD 5770. Kexts are loaded, ioreg has reference to Vervet, dmesg states that 'ATY, Vervet: Not usable'.

Please check that clover patch for AMD5000Controller applied correctly in config_verver.plist (it is first time when I use it -- I hope that I did it right).

NOTE: I have booted the computer with config_vervet.plist configuration file, issued commands

touch /System/Library/Extensions
touch /Library/Extensions
kextcache -Boot -U /

and then reboot the computer.

 

I believe that clover on this boot should be able to patch AMD5000Controller on the fly -- still no luck.

I wonder if SMBIOS I have chosen can affect AMD5000Controller.kext?

osx151212

 

config_vervet.plist

dmesg.log

ioreg.log

kextstat.log

Link to comment
Share on other sites

Hi Duffs,

I attempted to boot the computer without clover patching for video card with 'WhateverGreen.kext' [SMBIOS Mac5,1] -- got screen with debug text [-v option] and nothing else. Still can ssh into computer remotely. dmesg has following message

kPEDDisableScreen 1
bool IOAccelDisplayMachine2::display_mode_did_change(uint32_t): vendor driver return false


As I mentioned earlier 'WhateverGreen' documentation does not guaranty to work with video cards which do not have EFI GOP [my case].

osx151212

dmesg.txt

Link to comment
Share on other sites

Hello duffs,

Ok, I tried your config_new.plist -- the computer boots with 'Apple logo' on the screen and progress bar at 0%. (I can ssh into the computer). For fullness of the test I have connected the monitor to all three connectors DVI, DVI, HDMI (cable HDMI to DVI).

I have saved ioreg for GFX0 and dmesg output which you will find attached to this message.

What is interesting, I have a config file with nothing related for video card. When the computer boots I see progress bar to go upto 40-45% (probably upto the point when card switches into graphics mode), when the computer rebooted or shut down on the screen I see a rotating circle (what typical when graphics card working in graphics mode).

Well this card is real puzzle, I read that XFX deviate from suggested design and with some cards people had problems.

---- Quote ------------------------------------------------------------
Definition of the term 'Reference Design / Layout'
The "reference design" is the PCB design AMD publishes when releasing a new card. Vendors like Sapphire or XFX can then decide to use this reference design for their cards or develop their own (somehow improved or cheaper) board layout.
In the past Apple has included Framebuffers for AMDs reference layouts which usually provide full functionality for those cards.
For the future this is quite unlikely, because Apple has abandoned the classic MacPro, which was the only Mac using standard PCI cards.
The physical ports of a card are no sufficient criterion to decide whether it's a reference card or not. It's a good hint though, and the best you can get without dumping the cards vBIOS, so I'll include this information in the compatibility chart.
My personal opinion on this: If you need multi screen support (especially Eyefinity = more than 2) and don’t want to risk any trouble, get something as close to the reference layout as possible. If you're happy with one screen, get any variant you'd like to have, in most cases it will do the job just fine.

---- End quote -----------------------------------------------------

Thank you for help,

osx151212

config.plist

dmesg.txt

ioreg.txt

Edited by osx151212
Link to comment
Share on other sites

 Share

×
×
  • Create New...