Jump to content

Clover test and patches for Polaris GPU


fantomas
279 posts in this topic

Recommended Posts

I was able to to boot MacOS only with R9290X. Thanks to Okrasit (http://www.insanelymac.com/forum/topic/313977-r9-nano/?p=2333976

Just insert fake PCI ID to videoROM and save it to GPU. 

I attach boots.log and IO.reg. I hope this will help to find good and more comfortable solution for "BlackScreen" 

 

I was able to to boot MacOS only with R9290X. Thanks to Okrasit (http://www.insanelymac.com/forum/topic/313977-r9-nano/?p=2333976

Just insert fake PCI ID to videoROM and save it to GPU. 

I attach boots.log and IO.reg. I hope this will help to find good and more comfortable solution for "BlackScreen" 

Is there any instabilities, Do you lose boot output, on any stage?

Link to comment
Share on other sites

Is there any instabilities, Do you lose boot output, on any stage?

Yes...completely. But I have 2 GPU and I flash only one. In bios I have disable CSM so if I want go to bios or clover I just need to plug monitor cable to secend gpu. 

There are no any instabilities. FCPX stop crash randomly, so there is only good parts. 

  • Like 1
Link to comment
Share on other sites

Yes...completely. But I have 2 GPU and I flash only one. In bios I have disable CSM so if I want go to bios or clover I just need to plug monitor cable to secend gpu. 

There are no any instabilities. FCPX stop crash randomly, so there is only good parts. 

How about loading it without flashing, does it still work and boots without IGPU?

Link to comment
Share on other sites

Tried this method 10 minutes ago with my SAPPHIRE RX460... and it DOESN'T work for me.

 

First try: tried to patch VBIOS with "PatchVBiosBytes" method within CONFIG.plist. <--- didn't work.

Second try: saved original VBIOS to desktop, modified it as described above and flashed modified VBIOS back to card. <--- not even that i was no longer able to get into BIOS (because of no signal on monitor), SIERRA won't boot into system completely. Normaly i could connect via SSH to the SIERRA machine from MacBook. I wasn't no longer able to do this, when booting SIERRA with modified, flashed VBIOS.

 

So i changed VBIOS back to saved original SAPPHIRE factor VBIOS. Sorry folks... nice try and i was hoping it will also work for RX4x0 gfx-cards. But for me it was a "NO GO". Maybe someone else want to try?

  • Like 1
Link to comment
Share on other sites

tried to patch VBIOS with "PatchVBiosBytes" method within CONFIG.plist.

I get that this doesn't work with Polaris, but if this was done with a Hawaii-based card like the R9 290X, could this allow the user to have pre-macOS video output, while still being able to boot macOS?  Also are we finally past the iGPU method with this new VBIOS patch?

 

Bought an R9 290X recently and I've been monitoring your developments for Sierra.  Keep up the good work guys!

Link to comment
Share on other sites

I get that this doesn't work with Polaris, but if this was done with a Hawaii-based card like the R9 290X, could this allow the user to have pre-macOS video output, while still being able to boot macOS?  Also are we finally past the iGPU method with this new VBIOS patch?

 

Bought an R9 290X recently and I've been monitoring your developments for Sierra.  Keep up the good work guys!

NO, all blackscreen and beeping when you push the power button, the issue is when need the hawaii card in uninitilized state when it enter mac booting to fix this issue. just like in genuine apple machine.

  • Like 1
Link to comment
Share on other sites

 

 

This weekend i setup my system completely new from the ground up. Now i have fallen into a new problem:

 

as you all know, i use SAPPHIRE RX460 NITRO as my main GFX - which needs ACRE as default framebuffer. Default connectors have been set within CLOVER to 3. But when i open IORegistryExplorer, i will find always this entry now:

Bildschirmfoto_2016_12_18_um_16_11_55.pn

There is always an entry of "@3,connectors-type DATA <00 08 00 00>" which is HDMI-connector. for sure i have SAMSUNG HDMI TV connected to the card, but it is hanging at "@1, connector-type" !!!

For ACRE there should be only "@0, @1 and @2" (DP, HDMI and DVI) <--- so where the f... does the entry "@3,connectors-type" come from ?!?

 

Not also that there is this entry... no, my real HDMI-TV (hanging at connector @1) also gets disabled and no longer recognized than! So, anyone? What's going on here? I for myself have NO explanation!

 

 

PS: i DON'T have this phenomen when using IGPU as main GFX. The screen you see above was made with RX460 as main and only GFX w/o loading AMDRadeonX4100.kext.

 

 

EDIT#1: ooops, i just recognize, i also have this problem when using IGFX as main. i DON'T have this problem, if i use "MacPro5,1" as SMBIOS*. This problem seems just to occure when using "iMac14,2" or "iMac17,1" as SMBIOS (just tested).

 

* = i mean, that real HDMI-Monitor does no longer get recognized. The entry with "@3,connector..." still stay there, even if i use "MacPro5,1" as SMBIOS.

 

Same Screenshot taken with "MacPro5,1" as SMBIOS, RX460 as main and only GFX - watch the entry for display under ATY,Acre@1:

Bildschirmfoto_2016_12_18_um_16_38_45.pn

 

 

 

EDIT#2: found out, what it was: "@3,connect..." was produced by a HDMIAudio.kext in ESP/CLOVE/KEXT/otherKext folder

Link to comment
Share on other sites

Thank you Mork and all others for all your work here. I just got a Powercolor RX480 Red Devil (8GB). Since I don't have an iGPU (I'm still on the first i7 Gen. ever) and my other PCI-E slot is occupied by a SATA-3 card (no second PCI-E GPU), I can't use my Mac installs. That's ok because I only this PC for gaming these days.

If I could be of any help (GPU BIOS dump (from windows) or a clover boot log), please feel free to ask.

I hope we find a solution to use the Polaris chips without iGPU soon :)

  • Like 1
Link to comment
Share on other sites

Thank you Mork and all others for all your work here. I just got a Powercolor RX480 Red Devil (8GB). Since I don't have an iGPU (I'm still on the first i7 Gen. ever) and my other PCI-E slot is occupied by a SATA-3 card (no second PCI-E GPU), I can't use my Mac installs. That's ok because I only this PC for gaming these days.

If I could be of any help (GPU BIOS dump (from windows) or a clover boot log), please feel free to ask.

I hope we find a solution to use the Polaris chips without iGPU soon :)

Its already possible to use Polaris cards without an IGPU.  I'm doing it right now.  I have no IGPU at all (Xeon processors) and the only PCIE card installed is an RX 480.  The problem is it is impossible to have preboot video AND acceleration.  If the card is posted already, Sierra stops booting when it loads the X4100 kext (and the screen dies, and the RX480 fans usually slow down or turn off).  If the card is uninitialized, then the X4100 kext effectively causes it to post almost at the end of the boot process and suddenly you have video and working graphics acceleration.  

 

This means, however, that you cannot actually see clover, the BIOS screen, or anything else.  No video until OS X is mostly finished booting.  Obviously this is less than ideal :).  

 

All one has to do is prevent the card from getting posted by the BIOS/clover.  One way is to have another GPU as primary, but not the only way.  What I did was flash my card with a new ROM that doesn't have the legacy section anymore, then tell my bios to force the legacy option rom to be loaded.  This makes it try to load something that isn't there, so the card fails to post, and the machine behaves as if it has no card installed at all.  Assuming nothing gets screwed with the OS X boot process though, I eventually am rewarded with working video :).  Since many of the polaris GPUs have dual roms selectable by a switch, I have a working legacy rom saved in the second rom slot.  If something gets screwed and OS X can't boot, I can flip the switch to get working pre-boot video and make any changes needed in clover, the BIOS, or whatever.  And OS X will boot just fine as long as the X4100 kext is prevented from loading, but for working acceleration, I have to switch back to the 'hold onto your butt' (to quote Samual L Jackson from Jurassic Park) method and stare at a black screen hoping it boots.  

 

Note, I strongly discourage anyone from flashing their card, I did it because I have the ability to flash the ROM chip manually if I accidentally bricked the card.  It's also possible to unbrick them by soldering a wire to short two pins on a SOIC-8 chip (the SPI flash rom).  The leads are spaced 1.27mm apart, so be comfortable with that idea before attempting any thing like that ;).  For most people, its just not worth it, its better to use your IGPU as primary or just buy a cheapo $20 video card if you don't have an IGPU.

  • Like 3
Link to comment
Share on other sites

For most people, its just not worth it, its better to use your IGPU as primary or just buy a cheapo $20 video card if you don't have an IGPU.

Thank you metacollin for your explanations. My Powercolor Red Devil seems to have such a switch and the option to have two different BIOS(es?). Do you have by any chance a "fool-proof" guide which BIOS I would have to flash etc.? If flashing one BIOS failed, I should still be able to use the other BIOS to boot and try a re-flash, I assume?

I'm very much out of the loop at this point when it comes to "hackintoshing" -- my main install is still Yosemite :( I guess I should work on a Sierra install first (with a working graphics card) and then try to work in my 480 when I won't need to access Clover anymore...

Link to comment
Share on other sites

Its already possible to use Polaris cards without an IGPU.  I'm doing it right now.  I have no IGPU at all (Xeon processors) and the only PCIE card installed is an RX 480.  The problem is it is impossible to have preboot video AND acceleration.  If the card is posted already, Sierra stops booting when it loads the X4100 kext (and the screen dies, and the RX480 fans usually slow down or turn off).  If the card is uninitialized, then the X4100 kext effectively causes it to post almost at the end of the boot process and suddenly you have video and working graphics acceleration.  

 

This means, however, that you cannot actually see clover, the BIOS screen, or anything else.  No video until OS X is mostly finished booting.  Obviously this is less than ideal :).  

 

All one has to do is prevent the card from getting posted by the BIOS/clover.  One way is to have another GPU as primary, but not the only way.  What I did was flash my card with a new ROM that doesn't have the legacy section anymore, then tell my bios to force the legacy option rom to be loaded.  This makes it try to load something that isn't there, so the card fails to post, and the machine behaves as if it has no card installed at all.  Assuming nothing gets screwed with the OS X boot process though, I eventually am rewarded with working video :).  Since many of the polaris GPUs have dual roms selectable by a switch, I have a working legacy rom saved in the second rom slot.  If something gets screwed and OS X can't boot, I can flip the switch to get working pre-boot video and make any changes needed in clover, the BIOS, or whatever.  And OS X will boot just fine as long as the X4100 kext is prevented from loading, but for working acceleration, I have to switch back to the 'hold onto your butt' (to quote Samual L Jackson from Jurassic Park) method and stare at a black screen hoping it boots.  

 

Note, I strongly discourage anyone from flashing their card, I did it because I have the ability to flash the ROM chip manually if I accidentally bricked the card.  It's also possible to unbrick them by soldering a wire to short two pins on a SOIC-8 chip (the SPI flash rom).  The leads are spaced 1.27mm apart, so be comfortable with that idea before attempting any thing like that ;).  For most people, its just not worth it, its better to use your IGPU as primary or just buy a cheapo $20 video card if you don't have an IGPU.

Could you please share the bios file.

Link to comment
Share on other sites

Hi all,

I created a tool to dump Radeon state.

Make, please, the follow

sudo chown -R root:wheel ~/Downloads/RadeonPCI.kext
sudo chmod -R 755 ~/Downloads/RadeonPCI.kext
sudo kextutil -v ~/Downloads/RadeonPCI.kext

..

~/Downloads/RadeonDump2 -r 0,100

..

It is interesting to compare two states: when it is working and not working.

RadeonPCI.kext.zip

RadeonDump2.zip

  • Like 1
Link to comment
Share on other sites

Hi all,

I created a tool to dump Radeon state.

Make, please, the follow

sudo chown -R root:wheel ~/Downloads/RadeonPCI.kext

sudo chmod -R 755 ~/Downloads/RadeonPCI.kext

sudo kextutil -v ~/Downloads/RadeonPCI.kext

..

~/Downloads/RadeonDump2 -r 0,100

..

It is interesting to compare two states: when it is working and not working.

attachicon.gifRadeonPCI.kext.zip

attachicon.gifRadeonDump2.zip

 

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/PEGP@0/RadeonPCI
it matched on name "ATY_GPU"
Assertion failed: (KERN_SUCCESS == kr), function main, file ./RadeonDump2.c, line 251.
[1]    881 abort      ~/Downloads/RadeonDump2 -r 0,100
Link to comment
Share on other sites

 

sudo chown -R root:wheel ~/Downloads/RadeonPCI.kext

sudo chmod -R 755 ~/Downloads/RadeonPCI.kext

sudo kextutil -v ~/Downloads/RadeonPCI.kext

..

~/Downloads/RadeonDump2 -r 0,100

 

 

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/BR2A@2/IOPP/GFX1@0/RadeonPCI

it matched on name "ATY,BaladiParentATY,RefCLK"

Assertion failed: (KERN_SUCCESS == kr), function main, file ./RadeonDump2.c, line 251.

Abort trap: 6

 

Link to comment
Share on other sites

Hi all,

I created a tool to dump Radeon state.

Make, please, the follow

sudo chown -R root:wheel ~/Downloads/RadeonPCI.kext

sudo chmod -R 755 ~/Downloads/RadeonPCI.kext

sudo kextutil -v ~/Downloads/RadeonPCI.kext

..

~/Downloads/RadeonDump2 -r 0,100

..

It is interesting to compare two states: when it is working and not working.

attachicon.gifRadeonPCI.kext.zip

attachicon.gifRadeonDump2.zip

Done on real macpro with RX 480 in it 

Henrys-Mac-Pro:Downloads henrybrock$ ./RadeonDump2 -r 0,100
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IOU0@3/IOPP/PXS1@0/RadeonPCI
it matched on name "ATY_GPU"
Assertion failed: (KERN_SUCCESS == kr), function main, file ./RadeonDump2.c, line 251.
Abort trap: 6
Link to comment
Share on other sites

Startetd with CSM disabled, RX460 as main and only gfx running Sierra 10.12.3 beta2:

SKYLAKE:~ md$ ~/Downloads/RadeonDump2 -r 0,100
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX1@0/RadeonPCI
it matched on name "ATY,AcreParent"
Assertion failed: (KERN_SUCCESS == kr), function main, file ./RadeonDump2.c, line 251.
Abort trap: 6

dump was made via SSH connection from my MacBook.

 

Link to comment
Share on other sites

Yes, it seems the kext is not working with 4xx. I will correct it tomorrow.

This is the same results with real Mac Pro 5,1 with 290X

Henrys-Mac-Pro:Storage henrybrock$ /Volumes/Storage/RadeonDump2 -r 0,100
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IOU0@3/IOPP/PXS1@0/RadeonPCI
it matched on name "ATY_GPU"
Assertion failed: (KERN_SUCCESS == kr), function main, file ./RadeonDump2.c, line 251.
Abort trap: 6
Link to comment
Share on other sites

Mateuszs-Mac-Pro:~ mateuszjachym$ ~/Downloads/RadeonDump2 -r 0,200

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/BR3C@3,2/IOPP/H000@0/RadeonPCI

it matched on name "ATY,BaladiParent"

0x0000:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0020:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0040:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0060:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0080:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x00A0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x00C0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x00E0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0100:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0120:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0140:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0160:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0180:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x01A0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x01C0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x01E0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0200:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/BR2A@2/IOPP/GFX1@0/RadeonPCI

it matched on name "ATY,BaladiParent?g"

0x0000:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0020:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0040:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0060:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0080:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x00A0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x00C0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x00E0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0100:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0120:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0140:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0160:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0180:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x01A0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x01C0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x01E0:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x0200:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Mateuszs-Mac-Pro:~ mateuszjachym$ ~/Downloads/RadeonDump2 -r 5400,5450

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/BR3C@3,2/IOPP/H000@0/RadeonPCI

it matched on name "ATY,BaladiParent"

0x5400:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x5420:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x5440:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/BR2A@2/IOPP/GFX1@0/RadeonPCI

it matched on name "ATY,BaladiParent?g"

0x5400:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x5420:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x5440:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Mateuszs-Mac-Pro:~ mateuszjachym$ 5400,5450

-bash: 5400,5450: command not found

Mateuszs-Mac-Pro:~ mateuszjachym$ ~/Downloads/RadeonDump2 -r 1700,1750

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/BR3C@3,2/IOPP/H000@0/RadeonPCI

it matched on name "ATY,BaladiParent"

0x1700:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x1720:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x1740:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/BR2A@2/IOPP/GFX1@0/RadeonPCI

it matched on name "ATY,BaladiParent?g"

0x1700:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x1720:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

0x1740:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Mateuszs-Mac-Pro:~ mateuszjachym$ 

Link to comment
Share on other sites

×
×
  • Create New...