osx151212 Posted October 10, 2018 Share Posted October 10, 2018 (edited) 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 October 10, 2018 by osx151212 Link to comment Share on other sites More sharing options...
fantomas Posted October 10, 2018 Share Posted October 10, 2018 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 More sharing options...
osx151212 Posted November 28, 2018 Author Share Posted November 28, 2018 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 Link to comment Share on other sites More sharing options...
Guest ricoc90 Posted November 28, 2018 Share Posted November 28, 2018 (edited) 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 November 28, 2018 by ricoc90 Link to comment Share on other sites More sharing options...
osx151212 Posted November 28, 2018 Author Share Posted November 28, 2018 (edited) 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 November 28, 2018 by osx151212 Link to comment Share on other sites More sharing options...
osx151212 Posted November 28, 2018 Author Share Posted November 28, 2018 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 More sharing options...
osx151212 Posted November 28, 2018 Author Share Posted November 28, 2018 (edited) 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 Edited November 28, 2018 by osx151212 Link to comment Share on other sites More sharing options...
duffs Posted November 28, 2018 Share Posted November 28, 2018 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 More sharing options...
osx151212 Posted November 29, 2018 Author Share Posted November 29, 2018 (edited) 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 : HDMI11020104 : 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 November 29, 2018 by osx151212 Link to comment Share on other sites More sharing options...
duffs Posted November 29, 2018 Share Posted November 29, 2018 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 More sharing options...
osx151212 Posted November 30, 2018 Author Share Posted November 30, 2018 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 More sharing options...
osx151212 Posted November 30, 2018 Author Share Posted November 30, 2018 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 More sharing options...
duffs Posted November 30, 2018 Share Posted November 30, 2018 (edited) try this. Hoolock fb, 2 dvi and hdmi. config_new.plist Edited November 30, 2018 by duffs Link to comment Share on other sites More sharing options...
osx151212 Posted November 30, 2018 Author Share Posted November 30, 2018 (edited) 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 November 30, 2018 by osx151212 Link to comment Share on other sites More sharing options...
Recommended Posts