Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
It's roughly the same with my iMac. So it's not a software problem, but rather a problem with the new graphics cards themselves? But why doesn't the key combination work? With my old HD5750 the TDM ran without problems with "cmd + f2".
You have the option to test the other vBIOS version @nikey22 published. Yes, it will be most likely (99.99+ %) a hardware problem. During the test phase with @stephle I checked (and returned to the seller) a dozen of those cards and half of them surprised me with some missing features (not posting in 2011, not booting, sleep broken, not posting with internal LCD connected, etc). Never tested TDM myself.

If you *need* TDM you should take a look at the K1100M or K2100M cards. We had a bunch of positive reports, just search the thread.
 
  • Like
Reactions: Nguyen Duc Hieu
You have the option to test the other vBIOS version @nikey22 published. Yes, it will be most likely (99.99+ %) a hardware problem. During the test phase with @stephle I checked (and returned to the seller) a dozen of those cards and half of them surprised me with some missing features (not posting in 2011, not booting, sleep broken, not posting with internal LCD connected, etc). Never tested TDM myself.

If you *need* TDM you should take a look at the K1100M or K2100M cards. We had a bunch of positive reports, just search the thread.
Thanks for your answer.
That would be a possibility to test the other VBios, but in my case the VBios from @stephle works great without any problems. The Target Display Mode itself also works without any problems. The only thing is to switch with "cmd + f2". And because everything is working so well, I don't want to change anything right now ... Maybe in the future.
I think, I have no choice to continue testing it. Maybe I can live with it, or someday someone will have a solution for it.
 
hi everyone, I bought a k610m 1gb with bios nikey22, I installed it on an imac 27-2009. at startup nothing is visible. if I turn it on I take shift at the start it can be seen and it goes without graphic drivers I think doing stripes, should I flash the firmware? I don't know how to do it. this and what you see in safe mode I see it recognizes it thoughView attachment 1822861
Thanks @nikey22 for help, i put old amd card and install high sierra after i put k610m and work when boot is complete.
Now The boot screen is black and Brightness is not selectable. What i do?
 

Attachments

  • CB99264F-A12E-490F-8DD1-3974E56233BB.jpeg
    CB99264F-A12E-490F-8DD1-3974E56233BB.jpeg
    993.7 KB · Views: 199
Yes, in a way. (due to the modified non-Apple vBIOS and the interactions between the card and the internal hardware.)
Okok and for permanently i flash ultimate firmware for card??
I search opencorepatcher work on high sierra? I read for big sur
 
Last edited:
sub system ID: 103C 80D5

let's break it down and decode it:

HP: 0x103C x 4 = 0x40F0 + 2 = 0x40F2 --> 22 0F 44 ( with a half byte, the HEX code in the header highlighted tag 2)
HP: 0x80D5 x 2 = 0x101AA, carry over the half byte 1 = AA 01 21 (the HEX code in the header highlighted tag 1)

ATOM BIOS Header
View attachment 1809705

;)
After having been able to make successful use of this, I found that Red BIOS Editor (linked in my previous post below, link updated) allows for reading and modifying that value. However, it's a Windows tool (runs in Wine on macOS) and does only open Ellesmere VBIOSes. Baffin VBIOSes need to be modified to have an Ellesmere device id in order to be able to use it on them - after editing the original device id has to be restored.
Here the tools I used that helped me very much, the most helpful ones first:
  • ATOMTableResize
    Exchange and modify ATOM objects easily, automatically fixing the checksum upon saving - can be used together with "Hex Fiend" by adding the correct path in the file "editor.ini"
    this tool was originally recommended to me by NickD
  • Hex Fiend,
    together with PCI option ROM template
  • EfiRom from EDK2
    EfiRom (BaseTools/Source/C/EfiRom) can be compiled for macOS relatively easy but I attached the executable here
    Combines compressed EFI drivers and legacy VBIOS part into a VBIOS image ready for flashing
  • AtomDis
    For checking the ATOM pointer tables after manually moving/modifying them, compiled executable attached,
    header file atombios.h contains valuable information about the structure of most ATOM objects
  • netkas thread
    about how to modify port mapping in assembly code
  • radeon_bios_decode and redsock_bios_decoder
    get information about port mappings in a VBIOS file
  • Red BIOS Editor
    tune clock settings (transferring the PowerPlayInfo to a VIBOS accepted by RBE, editing it and finally transfer the edited PowerPlayInfo back to the target VBIOS),
    can be used in macOS by means of wine
  • Polaris BIOS Editor
    mainly helpful for quickly inspecting the VRAM_Info ATOM object and for correcting the checksum after manual modifications,
    doesn't run in wine, so Windows only
The problem with AMD cards is that there's no simple table for modifying the port mappings. First there's the ATOM table "Object_Info", which is more or less what you're looking for.
But the port mapping will have to match with some of the framebuffer "personalities" of the macOS drivers - or you have to patch the driver. You'll have to search the web for finding out how to do this.
Last but not least and being the most difficult thing is that the port mapping is hard coded into Apple's EFI driver in the VBIOS. That means in case the port mapping in the Apple driver doesn't match with your card you'll have to disassemble and patch the EFI code in all necessary places in order to get a boot screen.
 
My setup is still going strong, done multiple OTA updates since installing the WX4130 2GB with the custom Bios from the first page and no issues what so ever. No glitching, no reboots. Flawless.
 
You‘ll have to use OpenCore to resolve those issues.

I have read that opencore is compatible with catalina, I have high sierra what should I do,? can I keep it or do I have to upgrade to catalina, big sur to have all the functions (brightness, bootscren, external display) fully functional? I should use this imac every day with Logic to make music. I hope for your help
Thanks
 
EFI analysis cont'd:

Let's take a closer look at i2cid scenarios.
For example, i2cid: 0x93

Hex: 0x93
Let’s convert it to binary:
Binary: 1001 0011

The formula to calculate SenseID/HotPlugID is:
senseid = (i2cid AND 0xf) + 1

SenseID/HotplugID are synonymous (for the most part):
Code:
 byte hotplugid;
byte senseid;    /* Sense line is bits 0-3

Remember the AND here is a bitwise operation, not the English word “and”. All bitwise operations are done in binary. So let's do it:
Code:
    1001 0011   # our i2cid we are testing
AND 0000 1111   # this if 0xF in binary
    ----------
    0000 0011   # only the top/bottom pair that match are "true=1”

   "0000 0011" in binary is 0x3 in hex

now let's plug it into our formula:
Senseid = ( 0x3 ) + 1 = 0x4

So our SenseID is 4 when our i2cid lane is 93. Will it work? Execute the rom and see if we have an LCD screen that lights up. If not, then choose i2cid 0x94, 0x92, 0x91, 0x90 etc……. and do the same.

How does this look in Assembler? Probably something like this:
Code:
mov ax, [0xD200]     // Move address of i2cid data into a register
and ax, 0xF        // perform the calculation
mov [0XD210], ax    // Write back new result in the SenseID address

If you already know the senseID and want to determine its i2cid lane, you perform this calculation:
i2cid = (senseid & 0xf-1)+0x90, it is just the reverse.
 
Last edited:
Okok and for permanently i flash ultimate firmware for card??
I search opencorepatcher work on high sierra? I read for big sur
Hi!

First: I wonder how you manage to ignore the long section on the first post about this black screen issue? This first post is a must read.

  1. Black Screen: After complete installation of the iMac the internal LCD can stay black, only three status LED light up. This is the black screen software issue. Normally you can get around it (temporarily) by pressing alt/option on boot. Late 2009 system you will face (only there) a more severe variant. After a PRAM reset the LCD gets and remains black. To fix this for all iMacs a kernel extension needs to be patched at best in advance. Only after booting into this patched macOS the internal LCD will come back. Use this package installer to solve this issue with all NVIDIA cards on all systems up to macOS Catalina. Do not use this package on Big Sur and later. Alternatively OpenCore (e.g. OCLP) with agdpmod=vit9696 in the boot-args fires up the LCD after a PRAM reset or GPU change, too.
So your three options are using the stock OpenCore published here on the thread (Catalina Loader), OCLP to generate a more recent version of OpenCore or just the package installer to patch your system. You can install this package with your old GPU installed.

There is no need to update the macOS version. And nobody can promise that your software will be 64bit ready.
 
  • Like
Reactions: Stefanox2410
Hi!

First: I wonder how you manage to ignore the long section on the first post about this black screen issue? This first post is a must read.

  1. Black Screen: After complete installation of the iMac the internal LCD can stay black, only three status LED light up. This is the black screen software issue. Normally you can get around it (temporarily) by pressing alt/option on boot. Late 2009 system you will face (only there) a more severe variant. After a PRAM reset the LCD gets and remains black. To fix this for all iMacs a kernel extension needs to be patched at best in advance. Only after booting into this patched macOS the internal LCD will come back. Use this package installer to solve this issue with all NVIDIA cards on all systems up to macOS Catalina. Do not use this package on Big Sur and later. Alternatively OpenCore (e.g. OCLP) with agdpmod=vit9696 in the boot-args fires up the LCD after a PRAM reset or GPU change, too.
So your three options are using the stock OpenCore published here on the thread (Catalina Loader), OCLP to generate a more recent version of OpenCore or just the package installer to patch your system. You can install this package with your old GPU installed.

There is no need to update the macOS version. And nobody can promise that your software will be 64bit ready.
Ok thanks thanks but my imac not stay black when boot complete watch every but brightness is not selectable, which options are much stable? Which firmware flash? I search everywhere
 

Attachments

  • F025F41F-73B4-4BA8-95EF-72C630BCDB1D.jpeg
    F025F41F-73B4-4BA8-95EF-72C630BCDB1D.jpeg
    993.7 KB · Views: 104
Ok thanks thanks but my imac not stay black when boot complete watch every but brightness is not selectable, which options are much stable? Which firmware flash? I search everywhere
The most easy way will be just installing OpenCore with the OCLP tool onto your internal hard drive as mentioned several times before.

There is no need to install a more modern macOS version. You can stick with High Sierra.

It will fix the black screen problem, too. And believe me, you will have it after a PRAM reset, again!
 
  • Like
Reactions: Stefanox2410
The most easy way will be just installing OpenCore with the OCLP tool onto your internal hard drive as mentioned several times before.

There is no need to install a more modern macOS version. You can stick with High Sierra.

It will fix the black screen problem, too. And believe me, you will have it after a PRAM reset, again!
The most easy way will be just installing OpenCore with the OCLP tool onto your internal hard drive as mentioned several times before.

There is no need to install a more modern macOS version. You can stick with High Sierra.

It will fix the black screen problem, too. And believe me, you will have it after a PRAM reset, again!
Thanks thanks one last question i can't find a download of oc
 
The most easy way will be just installing OpenCore with the OCLP tool onto your internal hard drive as mentioned several times before.

There is no need to install a more modern macOS version. You can stick with High Sierra.

It will fix the black screen problem, too. And believe me, you will have it after a PRAM reset, again!
sorry for my ignorance, but among all the guides and downloads I don't know which one to follow
 
Post 1 -> Spoiler: Installing OpenCore on your iMac. (Next time at least click a few times. Better still: Read post 1 again.)
ok thank you very much but do I install it on my ssd where the system is or do I need to create another partition? (I have high sierra in apfs)
 
I've purchased a new 27" 5k iMac and the Parallels Desktop virtual machine is running Windows 10 very well.
 

Attachments

  • QQ20210829-022146@2x.jpg
    QQ20210829-022146@2x.jpg
    105 KB · Views: 96
  • QQ20210829-022233@2x.jpg
    QQ20210829-022233@2x.jpg
    296.1 KB · Views: 101
  • QQ20210829-022507@2x.jpg
    QQ20210829-022507@2x.jpg
    258.4 KB · Views: 96
----Bump:



-----Could you comment on this, please, @edwardgeo?
Hi! Vbios will be read from platform bios first, but if change VendorID and subvendor at mxm, then system will work with mxm bios. But that should work on g3,G5.

Another way is to make nsh script to patch the ram with the new vctf acpi table, I tested and that works for my g3. But g5 is really difficult as @hugodlc reported.

But for Mac OS it will work fine with mxm, but not Catalina and higher with discrete mode.

The only question is where the Mac OS read the vbios. Actually the efi environment should do the same on Mac and pc but we have early research of platform bios and drivers. The mxm doesn’t work from mxm rom, it works from ram option rom. Also oprom injects a lot of data about platform it runs, edid, etc.

If you can reverse driver or platform bios, join to our research
 
  • Like
Reactions: RandomDSdevel
OpenCore Recovery CD (using a new AMD dGPU)

Following the guide from this post I created an recovery CD which is able to boot OpenCore by pressing the C button on boot. Of course you need to have the DVD still installed within your iMac!

To get a valid OpenCore EFI folder I used the latest OCLP TUI app. Because the recovery CD expects to have the boot.efi program located in the EFI/BOOT folder and have a name BOOTx64.efi you need to use configure this using the following steps (possibly it may work with the normal config, too)

  1. Ustart the TUI app
  2. select 5. Patcher Settings
  3. select 14. Advanced Patch Settings, for developers only (scary, right?)
  4. select 4. Set Generic Bootstrap
  5. select 2. EFI/BOOT/BOOTx64.efi
  6. select Q
  7. select Q
  8. select 1. Build OpenCore
  9. select 2. Install OpenCore to USB/internal drive
  10. follow the steps to write the new EFI to the disk of choice
Now mount the EFI volume (of your choice) and use the folder named EFI located in /Volumes/EFI to write to the CD image, create the CD. You do not need to change the RequestBootVarRouting value!

On reboot you can now do a PRAM reset and directly after the chime press and hold C to boot from the CD instead of the internal EFI folder.

(Note: A smart choice would be to disable SIP and SBM on this Recovery CD)

Why doing all this?

Now you can survive any corruption of the internal OpenCore configuration because you have a fall back and booting from OpenCore is for AMD users not having an EFI boot screen right now the only way to force a boot selection. On boot press C to boot from the CD and than use the OC boot picker to boot your macOS or Windows installations and fix the internal OpenCore either by using the one from the CD or edit your config manually.

I have already a working OC config, how can I use it?

Alternative: If you have already a working OC config you can mount the EFI volume, create manually the /Volume/EFI/EFI/BOOT folder and copy the file /Volume/EFI/System/Library/CoreServices/boot.efi and rename it to BOOTx64.efi.

Do I have to create a new CD with every OpenCore updates, again?

No!

I have multiple different iMacs with AMD dGPU, can I use the same recovery CD?

Difficult to promise in general! When using OCLP to generate the OpenCore these versions are pretty unique to the particular iMac model and you may miss some features booting of a CD. It is worth a try before you start to create a bunch of CDs.

Disclaimer:
I may edit this post and after checking the functionality with more than one iMac I may also add a single prepared ISO image for AMD users.

Ausdauersportler -
Thanks to you and cdf in the other thread for creating this brilliant OC recovery CD method. This just saved me about a days work disassembling my 2010 27” iMac to unplug the SSD to be able to boot from the OC usb again. I accidentally did a PRAM reset while trying to clean install macOS 11.5.2 using OCLP 0.2.5 last night. I wiped my SSD before starting and that wiped my OC EFI from it also. That left me with a black screen and unable to boot due to my upgraded RX460 GPU with no boot EFI picker.

Warning to those using OCLP with 3rd party AMD metal GPU with no boot EFI: after installing OC to the USB or SSD, you must manually create the EFI->BOOT->BOOTx64.efi file in the EFI because OCLP does not create this for you. It would be nice if a future version of OCLP could detect 3rd party GPUs with no boot EFI and create this BOOTx64.efi folder in the OC installation automatically.

Still hats off though to the OCLP developers for a superb tool for those of us still enjoying perfectly good Mac hardware and being able to run the latest and greatest macOS on them!
 
Hi! Vbios will be read from platform bios first, but if change VendorID and subvendor at mxm, then system will work with mxm bios. But that should work on g3,G5.

-----That shouldn't be a problem on my G6, then. As I've noted before over on tonymacx86 (here's last part and here's second part,) its system BIOS doesn't appear to contain an AMD Radeon Pro WX 4170 mobile VBIOS image it can use to boot. It'll only have the VBIOS on the card to fall back on. You didn't exactly answer whether:
adding an EEPROM + RP1 is enough to force that HP laptop to read VBIOS from the card
but one would expect a functional card should work. I'll go ahead and try the EEPROM mod, since that shouldn't hurt, then post on my thread and report back on my experience testing that out.



Another way is to make nsh script to patch the ram with the new vctf acpi table, I tested and that works for my g3. But g5 is really difficult as @hugodlc reported.

-----Given the above, I doubt I'll run into that issue.



But for Mac OS it will work fine with mxm, but not Catalina and higher with discrete mode.

The only question is where the Mac OS read the vbios. Actually the efi environment should do the same on Mac and pc but we have early research of platform bios and drivers. The mxm doesn’t work from mxm rom, it works from ram option rom. Also oprom injects a lot of data about platform it runs, edid, etc.

-----Yes, I've been following along over on tonymacx86, having started out over there.



If you can reverse driver or platform bios, join to our research
-----Unfortunately, I think that kind of work is going to stay beyond my reach for the time being, I'm afraid. I might well be able to dump my BIOS for you to take a look at, though, if you could point me toward what tool(s) you can use to do that from Windows. (Installing macOS is still blocked pending resolution of my graphics card issues, naturally.)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.