Jump to content

R9 Nano


Brumbaer
 Share

129 posts in this topic

Recommended Posts

For example:

https://www.techpowerup.com/vgabios/152284/asus-r9290x-4096-131206

 

It's pci-id is 67b0:1002

 

At offset 0x230:

00000220   43 10 6C 04  2C 02 1C A0  C2 A0 A0 00  50 43 49 52  C.l.,.......PCIR

00000230   02 10 B0 67  00 00 18 00  00 00 00 03  80 00 29 0F  ...g..........).

00000240   00 00 00 00  41 4D 44 20  41 54 4F 4D  42 49 4F 53  ....AMD ATOMBIOS

replace B0 67 with something that doesn't match e.g. B5 67
 
And the EFI blob at offset 0x10020

00010000   55 AA 71 00  F1 0E 00 00  0B 00 64 86  01 00 00 00  U.q.......d.....

00010010   00 00 00 00  00 00 58 00  1C 00 00 00  50 43 49 52  ......X.....PCIR

00010020   02 10 B0 67  00 00 18 00  00 00 00 03  71 00 00 00  ...g........q...

Same thing B0 67 -> B5 67

 

Flash it to the card and you'll lose boot screen but it'll work with Sierra.

which screen output i'll lose, mac boot or the UEFI, Ami going to be able to select which system to boot to from F12 list?

Link to comment
Share on other sites

SLgCAAAAAQAAAEiJQ1THQ3wIAAAA

SLgEAAAAAQAAAEiJQ1THQ3wgAAAA

 

D0LIiYuAAAAARIizmQAAAESIcyA=

kJCQiYuAAAAARIizmQAAAESIcyA=

 

6EmF/v++SAEAAEyJ9w==

6HMCAQC+SAEAAEyJ9w==

 

In hex:

 

48 B8 02 00 00 00 01 00  00 00 48 89 43 54 C7 43 7C 08 00 00 00

48 B8 04 00 00 00 01 00  00 00 48 89 43 54 C7 43 7C 20 00 00 00

 

0F 42 C8 89 8B 80 00 00  00 44 88 B3 99 00 00 00 44 88 73 20 

90 90 90 89 8B 80 00 00  00 44 88 B3 99 00 00 00 44 88 73 20

 

E8 49 85 FE FF BE 48 01  00 00 4C 89 F7 

E8 73 02 01 00 BE 48 01  00 00 4C 89 F7

 

Here are shorter patches that hopefully survive updates!

  • Like 4
Link to comment
Share on other sites

Are you patching the AMDRadeonX4100 directly, or are you using the patch kext function in Clover?  I'm hoping this will work on a FuryX also.

 

I'm patching the kext directly, it should work with FuryX as it's exactly the same config as nano.

Link to comment
Share on other sites

Great work!

 

I've adapted your patch for Polaris 10 GPUs, details and benchmarks are here: https://www.tonymacx86.com/threads/enable-all-cores-r9-fury-cards.209892/#post-1393445

 

Of course credits belong to you for figuring this out, changing a few more bytes wasn't difficult when you know where to look.

Also, remember to enable PP_DisablePowerContainment in the controller kext (edit the Info.plist), it should be the same for 9500! You'll get 10-30% increase in performance!

  • Like 1
Link to comment
Share on other sites

Next step would be reversing the OpenGL driver. It seems that there are limitations set in! 

Do you have any evidence for this? Just had a quick look, but I didn't find anything device specific except the assignment of the device name (e.g. "Baffin Unknown Prototype"). This looks purely cosmetic to me though, it's just a switch/case statement based on the device ID for setting up some strings.

Link to comment
Share on other sites

Do you have any evidence for this? Just had a quick look, but I didn't find anything device specific except the assignment of the device name (e.g. "Baffin Unknown Prototype"). This looks purely cosmetic to me though, it's just a switch/case statement based on the device ID for setting up some strings.

 

Yes, that's exactly the point. The OpenGL API reports the same limits for all AMD GPUs, which isn't how it's supposed to be.

Link to comment
Share on other sites

For example:

https://www.techpowerup.com/vgabios/152284/asus-r9290x-4096-131206

 

It's pci-id is 67b0:1002

 

At offset 0x230:

00000220   43 10 6C 04  2C 02 1C A0  C2 A0 A0 00  50 43 49 52  C.l.,.......PCIR

00000230   02 10 B0 67  00 00 18 00  00 00 00 03  80 00 29 0F  ...g..........).

00000240   00 00 00 00  41 4D 44 20  41 54 4F 4D  42 49 4F 53  ....AMD ATOMBIOS

replace B0 67 with something that doesn't match e.g. B5 67
 
And the EFI blob at offset 0x10020

00010000   55 AA 71 00  F1 0E 00 00  0B 00 64 86  01 00 00 00  U.q.......d.....

00010010   00 00 00 00  00 00 58 00  1C 00 00 00  50 43 49 52  ......X.....PCIR

00010020   02 10 B0 67  00 00 18 00  00 00 00 03  71 00 00 00  ...g........q...

Same thing B0 67 -> B5 67

 

Flash it to the card and you'll lose boot screen but it'll work with Sierra.

What do these two bytes (B0 67) mean? Why we change them?

Link to comment
Share on other sites

What do these two bytes (B0 67) mean? Why we change them?

those are the device ids in hex, changing them make the gpu's  EFI in uninitialized state ( not only just EFI you may to consult gpgpu programmer to confirm this) , thus when the driver on osx loads it initializes the gpu... as in real macs. also this will make your 290X works 100% with sleep and wake. the only cons of this method, you get no screen output, also you won't be able to go to windows or linux if you're on a multiboot installations, a work around is to flip the vBIOS switch to the other rom so you can get screen output... 

 

beaware: doing this method of BIOS patching may bricks your card or get it out of warranty (to any gpu else not just r9s).

Link to comment
Share on other sites

those are the device ids in hex, changing them make the gpu's  EFI in uninitialized state ( not only just EFI you may to consult gpgpu programmer to confirm this) , thus when the driver on osx loads it initializes the gpu... as in real macs. also this will make your 290X works 100% with sleep and wake. the only cons of this method, you get no screen output, also you won't be able to go to windows or linux if you're on a multiboot installations, a work around is to flip the vBIOS switch to the other rom so you can get screen output... 

 

beaware: doing this method of BIOS patching may bricks your card or get it out of warranty (to any gpu else not just r9s).

Interestingly, on real MAC too there is no boot screen until GPU initialization?

Link to comment
Share on other sites

Interestingly, on real MAC too there is no boot screen until GPU initialization?

Yeah only if the gpu card/model isn't shipped in real macs and isn't flashed with custom rom. you get no image to boot. that means if the R9 290X for example is flashed with Apple special vBIOS it'll boot showing output, means, you can select from boot menu which drive you want to boot to...

Link to comment
Share on other sites

Yeah only if the gpu card/model isn't shipped in real macs and isn't flashed with custom rom. you get no image to boot. that means if the R9 290X for example is flashed with Apple special vBIOS it'll boot showing output, means, you can select from boot menu which drive you want to boot to...

Whether there is for R9 290X special Apple vBios? 

Link to comment
Share on other sites

Whether there is for R9 290X special Apple vBios? 

unfortunatly there is no, only 5,6,7 series that have this rom and it is also not needed in hackintosh, in fact all these models doesn't have this issue ( IGPU enabled as primary). 

Link to comment
Share on other sites

I used to run my 290 (40cu) with 390X memory controller init & tighter timings! I think it was clocked at 1130/1500 or something like that.... It did Luxmark @~18k!

290x* you mean send me that bios please

Link to comment
Share on other sites

 Share

×
×
  • Create New...