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.
The problem could be not in timings. Afflec and Aomorhid is designed for two diff mxm gpu design. But memory always the same. If gpu from G5, then Aomorhid should be used, if from G4 Afflec should be used.

At least G4 and G5 are same with Samsung timings.

But key problem that none of HP 4170 and 4150 wont work on Catalina and higher, Also bios has problems with voltage tables.
 
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
For some reason any vbios wont be opened, the app "saying wrond file size" But those roms images are as it is.
 
Nice work on the hardware mods, but before we just blame the seller and assume the cards are dead you might want to check that the vBIOS used actually contains the memory training / timing tables for the Hynix RAM chips.

If not then someone might want to try transplanting these tables into a working 4150 / 560 vBIOS - because using any of the original 4170 vBIOS will probably trigger a known and fatal bug in the Catalina and newer MacOS drivers.

(you could try replacing the buggy driver plug-in with one from Mojave or an early Catalina build - but that would probably cause all kinds of problems with kext validation / signing / DRM etc).

You will lose some performance using a lower clocked 4150 BIOS but hopefully these guys have some ideas on fixing-up the faster 4170 vBIOS...



Stay safe everyone

(und trocken!)

;)
Feel free to make post in this (linked) threads! Actually it’s not a driver problem but vbios. I’m currently finishing new vbios build for 4150 for hp mxm. If method will work, then 4170 will have more chance to get working with native PowerPlay and voltages. But we focused on g4 4150 and g5 4170. Anyway they are Based on Samsung vram ics. But I know that the micron and Hynix cards exist. I spend tons of time to build version_54 that’s fine working for me, but this build has some mismatch between object info and transmission modules, that’s why the build is working only in dual igpu+dGPU mode.

But I am very excited about gpu fan at iMac, is it working fine with non supported gpu? And if someone here have a logic analyzer to test mxm smbus?

Thanks!
 
I'd like to report another successful POST of a modded HP WX4150 card in an iMac12,2 (27' 2011 iMac). I now have two modded HP WX4150 cards happily running in two 27' 2011 machines, reported temperatures are sensible (ie. they are no different from those reported by a machine with a Dell WX4150 built in). I also ran some GPU benchmarks - I did not notice any anomalies after 30 minutes of benchmarking.

On the other hand, while the card did POST without a problem in an iMac11,2 (21.5' 2010 iMac), some sensors reported abnormal values, CPU and ODD fans ran at full speed, and I believe that CPU was throttled. (That's still better than iMac11,2 with an unmodded HP WX4150 card - sometimes it POSTs, sometimes it doesn't, definitely does not POST with a HDD connected.) I replaced it with a Dell WX4150 (from my 27' 2011 machine), which works perfectly. I'm not sure (when) I'll investigate this (iMac11,2 + modded HP WX4150) further.

If your soldering skills are above basic and you have the tools required, please do try this. Here's how I did it:
  • a (at least) 50W soldering iron with precision tip and temperature control (80W+ is better, 50W should be enough for leaded solder)
  • flux (pen)
  • solder wick (to remove excess solder)
  • tweezers
  • magnifying glass (I did not use it, but I should.)
  • a (non-POSTing) HP WX4150 card
  • two 0R 1206 resistors (Buy more. They are really cheap and you will probably destroy one...)
  • 0.5mm (or thinner) solder wire
Two jumpers (the 0R 1206 resistors) are needed between the pads in the orange rectangles under the red arrows (see attached pictures). Those pads had some excess solder on my cards. I removed it with a solder wick to facilitate soldering later. Note that those pads are a part of a (relatively) large copper area, which means that a fair amount of heat will be required to melt the solder. Be very careful not to remove tiny capacitors and other components which are in close proximity. Cover cleared pads with a generous amount of flux. Place the resistor and align it with tweezers. Take your time. Use tweezers (in your left hand) to press down on the middle of the resistor (if it moves, align it again), then pick a small amount of solder with the soldering iron (in your right hand) and solder one pad of the resistor. Remember the 'large copper area'? A certain amount of heat will be required again. (This is really important to avoid cold joints. Believe me...) Again: Be careful not to short the nearby components. If you do, remove the shorts with the solder wick. Repeat for the second pad and second resistor. (Add flux as needed, you can remove excess flux when finished with a toothbrush and isopropyl alcohol.)
I attached some photos of my card before and after the mod.
Hi! How you figure out about this mod? I mean why this gpu need to be modified?
 
Hi! How you figure out about this mod? I mean why this gpu need to be modified?
This particular HP card did not post in the iMac12,2 model (the same happens with some WX7100 and RX480 cards). After comparing the HP version with the Dell version he could discover some differences and using the mod these differences could be compensated.
Since we do not own HP or Dell laptop models we cannot really tell what will happen if you use HP cards in Dell laptops and vice versa (out of scope).

Good to see you here, read you posts on techpowerup and tonymacx86 last night….
 
For some reason any vbios wont be opened, the app "saying wrond file size" But those roms images are as it is.
Could you please send me one or all of the offending VBIOSes? I'll analyze the problem and can tell you what needs to be fixed.
That tool is really useful for modifying or exchanging ATOM tables.
 
This particular HP card did not post in the iMac12,2 model (the same happens with some WX7100 and RX480 cards). After comparing the HP version with the Dell version he could discover some differences and using the mod these differences could be compensated.
Since we do not own HP or Dell laptop models we cannot really tell what will happen if you use HP cards in Dell laptops and vice versa (out of scope).

Good to see you here, read you posts on techpowerup and tonymacx86 last night….
I am glad to hear that:)

This mossfet is used for protection possibly and possibly connected to power controller at gate pin. I am not sure, but possibly. As both dell and hp are on same power controller, but different with SetVoltageTable. The dell has 30miliseconds timeout before voltage controller will connect, but any of HP doesn’t. Possibly this timeout needs to get response of power controller. So that’s mod bypass some safety initializing. That’s interesting! Maybe Dells Gpus are less protected of short circuit. As 0 resistor is smd bridge for traces, nothing more. So it can be replaced with short wire.



I am not in thread, read it two years ago, but what’s the reason why you read about our research? What’s your are trying to find and how I can help with that?
 
Could you please send me one or all of the offending VBIOSes? I'll analyze the problem and can tell you what needs to be fixed.
That tool is really useful for modifying or exchanging ATOM tables.
Could you please send me one or all of the offending VBIOSes? I'll analyze the problem and can tell you what needs to be fixed.
That tool is really useful for modifying or exchanging ATOM tables.
Thanks! Will do it when get back to home. I opened one of 480 vbioses but it shows only 10-14 tables, but not all ~80-90 of existed.

I have made for that job google sheet analyzer, but it needs to be corrected every time I open new vbios tables, as all vbioses has 00 bytes between some of the modules and it’s takes many time to found them. Actually I don’t know why they are existing there and I cannot find any offsets to this, so it could be some kind of methods to get editing of bios a little more harder then it could be.
 
@edwardgeo and I have been at it for a couple of months now, another possible candidate for WX4170 is Falcon rom. Memory size is reported wrong but it is apple native and shares a lot with Affleck/Aomorhid
 
Last edited:
Thanks! Will do it when get back to home. I opened one of 480 vbioses but it shows only 10-14 tables, but not all ~80-90 of existed.

I have made for that job google sheet analyzer, but it needs to be corrected every time I open new vbios tables, as all vbioses has 00 bytes between some of the modules and it’s takes many time to found them. Actually I don’t know why they are existing there and I cannot find any offsets to this, so it could be some kind of methods to get editing of bios a little more harder then it could be.
You have to uncheck "Hide: Command Table" in order to be able to see all tables (command and data) that are correctly defined in the ATOM table index structures.
If there are any tables missing the index or size probably isn't correctly specified in those structures.
 
Last edited:
You have to uncheck "Hide: Command Table" in order to be able to see all tables (command and data) that are correctly defined in the ATOM table index structures.
If there are any tables missing the index or size probably isn't correctly specified in those structures.
none of them wont open
 

Attachments

  • _VBIOSES.zip
    1,018.6 KB · Views: 93
@edwardgeand I have been at it for a couple of months now, another possible candidate for WX4170 is Falcon rom. Memory size is wrong but it is apple native amd shares a lot with Affleck/Aomorhid
Have you tried Affleck, Aomorhid roms?

Here is my vbios collection which can work on 4150 but not all roms are working as expected to be. Affleck, Aomorhid can be found here.
 
The Zeros "00" are probably there for checksum purposes of the PCI CRC32 security validation known as "Binary BIOS_IDTF". For us in the iMac world, it may not matter as we have already manipulated tables without altering this region. But for Windows, it may invalidate secureboot.
Anyways, the ATOMbiosTable resizer tool calls this align_padding?


Let me give you an example of a Thunderbolt DROM found in an iMac 2011, 21.5" that uses CRC-32C and not CRC-32:

imac21.5" -TDROM:
ee 80 11 22 33 44 55 01 00 ae 3e 32 ca 01 54 00 01 00 01 00 01 01 08 81 80 02 40 26 00 00 08 82 90 01 40 26 00 00 02 c3 02 c4 02 c5 08 86 00 00 00 00 00 00 03 87 80 03 88 a0 03 89 c0 03 8a 60 04 8b 50 00 04 8c 50 00 04 8d 50 00 0e 01 41 70 70 6c 65 2c 20 49 6e 63 2e 00 07 02 69 4d 61 63 00

  • Green = CRC-8 for the red UID
  • Red = UID (first byte of UID "80" is Thunderbolt Bus ID) *obfuscated*
  • Blue = CRC-32C for all the remaining bytes (yellow and black)
  • Yellow = 9-byte Preamble (specific to imac 21.5")

1626712940753.png



You can see the correct checksum is calculated, little-endian.
 
Last edited:
Let me give you an example of a Thunderbolt DROM found in an iMac 2011, 21.5" that uses CRC-32C and not CRC-32:

imac21.5" -TDROM:
ee 80 11 22 33 44 55 01 00 ae 3e 32 ca 01 54 00 01 00 01 00 01 01 08 81 80 02 40 26 00 00 08 82 90 01 40 26 00 00 02 c3 02 c4 02 c5 08 86 00 00 00 00 00 00 03 87 80 03 88 a0 03 89 c0 03 8a 60 04 8b 50 00 04 8c 50 00 04 8d 50 00 0e 01 41 70 70 6c 65 2c 20 49 6e 63 2e 00 07 02 69 4d 61 63 00

  • Green = CRC-8 for the red UID
  • Red = UID (first byte of UID "80" is Thunderbolt Bus ID)
  • Blue = CRC-32C for all the remaining bytes (yellow and black)
  • Yellow = 9-byte Preamble (specific to imac 21.5")

View attachment 1808368


You can see the correct checksum is calculated, little-endian.
Great info! How calculate checksum for Amd Vbios with hex editor?


Anyways, the ATOMbiosTable resizer tool calls this align_padding?
No, Itoday found it, never heard and found before :(
But this app not working with any of vbioses i have :(



So i designed (in work) Google sheet for import\export LUT Data and Command Tables




import from atom reader
01-import.png


02-presented modules influences and connections.png


03-auto alighn possition.png


04-zeros pading revealed.png


06-export.png
 
  • Like
Reactions: nikey22
none of them wont open
Some of those don't have a size ATOMTableResize can deal with; you will have to fill it up to 128 kB (0x10000 bytes) or 256 kB (0x20000 bytes).
Additionally ATOMTableResize needs at least one UEFI driver to be present in the file or it will crash; I added one manually when I needed it.
 
  • Like
Reactions: edwardgeo
Some of those don't have a size ATOMTableResize can deal with; you will have to fill it up to 128 kB (0x10000 bytes) or 256 kB (0x20000 bytes).
Additionally ATOMTableResize needs at least one UEFI driver to be present in the file or it will crash; I added one manually when I needed it.
Do you have an example before and after?
 
Do you have an example before and after?
Here an example.

There's one very potentially very important thing - the block of data or code normally starting at address 0x37000. All non Apple ATOM BIOSes need that in order to work properly. I added that and a GOP driver to your VBIOS, taken from the Dell RX560 VBIOS.
In Apple VBIOSes there's another ATOM table instead: "MemoryTrainingInfo/ASIC_MVDDQ_Info". By comparing both chunks of data you can discover some similarities, so I concluded they do the same thing.
 

Attachments

  • 67E0 - 113-C9801A0-015.zip
    160.5 KB · Views: 84
  • Love
Reactions: edwardgeo
Some of those don't have a size ATOMTableResize can deal with; you will have to fill it up to 128 kB (0x10000 bytes) or 256 kB (0x20000 bytes).
Additionally ATOMTableResize needs at least one UEFI driver to be present in the file or it will crash; I added one manually when I needed it.



This is correct 256 size


Screen Shot 2021-07-19 at 21.52.30.png


after i added gop and aditional efi table at 38000, the file is openned))) i will test it with my new build tomorrow!
Screen Shot 2021-07-19 at 21.49.26.png
 
  • Like
Reactions: hugodlc
Hi! How you figure out about this mod? I mean why this gpu need to be modified?
I wish I could elaborate on @Ausdauersportler ‘s answer. I wrote something similar in my original announcement.

Let me try anyway. As you correctly guessed the proposed mod bypasses the two power MOSFETs, which are there to either:
  • delay power to certain subcircuits of the card, a protective measure (most likely), or
  • switch on/off certain subcircuits as needed to preserve power, a power saving measure (unlikely).
The fact that Dell WX4150 cards lack these MOSFETs - they are essentially bypassed there - made me believe that there is little harm in trying this out. And the lucky guess worked out. I still hope that bypassing these ‘protective measures’ will not harm our AMD GPUs when used in our 27’ iMacs.

I admit, I still do not ‘understand’ why the mod works. I wish I had a schematic (at least the power delivery subsection) of one of those cards to see what those added jumpers actually do or to provide a better mod (maybe even see why this mod seemingly doesn’t ‘get along’ with 21.5’ iMacs). Maybe someone with internal/practical knowledge of the power delivery implementation of (iterations of) the MXM standard can help us out. (Or maybe it’s just something specific to HP laptops…)
 
ATOMTableResize is an amazing app. Fast and easy modding! Happy that reveal it!

Wx4150 same method for wx4170

Reporting:
After registers recovery still no login to Catalina. But I pay attention to TVOUTINFO, and found strange bug at HP vbioses: the parser is ok, then table report 5 displays, but data table structure contains 6 displays and according to Linux open source driver if 5 entries are expected then it will read five only. And one of ports are out of execution. But all this ports are connected to mux, so gpu knows about connected state, but could fail as one port is missing. The data could also use I2C for aux, and could be failed. I replaced that module with Pegatron, also patched callparserfar and that build almost boot to Catalina desktop. Sometimes it freezes or goes panic to pci io. On other oses everything is fine.

The next step is to use Pegatron objectinfo and patch it with edp and G3 ports order.

The other thing I was interested in is goldenrevision at PowerPlayInfo. Crane has 3025, Pegatron 3125, but Vaughn is 4626.

If this patch modes will fail, then the other thing that could be a problem is VRAMINFO.


Also need to pay more attention to SetVoltages in order to compare that to Apple type vbioses. This table is responsible to set registers to DAC2OutputControl, Asic_Init




Here is interesting research of goldenrevision



I found before a lot of this while hex search of kexts. So maybe if my patching will work (goldenrevision) then all need to do is hex patch few Baffin kexts :)



Edit1. Reporting on TVOUT Info:
Yeah that is strange bug at HP vbios, but actually not a huge problem.
Attached TVOUT research not 100% is correct, something i missed and i get wrong positions of "usDispClkIdOffset // point to clock source id list supported by Encoder Object"
_ATOM_DISP_OUT_INFO_V3.png
 

Attachments

  • TvOutWTF.txt
    3.1 KB · Views: 87
Last edited:
Hey,

have you installed a new internal SSD instead of the old HHD? I just found this #21 of my own old post...

Try to disconnect the SSD and boot from an external USB device to test it or get a cheap SATA splitter cable to rule out this problem.
Yes, tried with HDD and also with external USB boot: nothing turns on
By detaching the iMac internal display, it works perfectly by connecting an external monitor ...
:(
 
hey guys, quick question:
revived an 21.5" iMac from 2011, imac12,1 with a K2100M MXM a card. everything runs smooth and I check the Thunderbolt Port with my external Screen + HDMI + Adapter. I also got a picture.

but now my buddy wants to attach his iMac to an original Apple Thunderbolt screen directly with the built in Thunderbolt Cable and has no luck to get it running. It stays black.

Is there anything we can do or are we suddenly fckd by no-logic-present-thats-make-no-sense?

Hi, I installed Big Sur 11.2.3 using the latest OCLP (0.1.0) on my iMac12.2. It worked very well but the only problem is that it does not recognize the thunderbolt display (was working in HS and Catalina). I did a quick search but did not find anything useful. Might anyone know the reason? The GPU is K4100M using nikey22's vbios. For the OCLP GPU option, I used NVIDIA. Thank you for your help!

I think these cases are the same case as I have.
The iMac lost its Thunderbolt capability, only worked for DisplayPort..
 
Last edited:
Hello everybody, I am trying to upgrade another 27‘‘ 2011 with AMD 4150 video card which should be a fully tested working green Dell version (see pictures attached). I made heatsink mod with copper plate as described. Unfortunately video card won‘t be recognized as only 2 diagnostic led came up on boot and amdflash tool won‘t see an adapter (xandertons usb flash tool). Now I am trying to find a 2009 or 2010 imac to check out if vid card is DOA or if it is incompatible with 2011 and (maybe not a working green Dell as mentioned). Or do I need to get this card flashed in advanced with clip programmer? Do you have any other ideas/suggestions to get this solved?
F1BC6A00-D20B-40C7-B015-A7DC43FF1E81.jpeg
F636AF65-746A-4B23-94E5-314E9038DB53.jpeg
 
Hello everybody, I am trying to upgrade another 27‘‘ 2011 with AMD 4150 video card which should be a fully tested working green Dell version (see pictures attached). I made heatsink mod with copper plate as described. Unfortunately video card won‘t be recognized as only 2 diagnostic led came up on boot and amdflash tool won‘t see an adapter (xandertons usb flash tool). Now I am trying to find a 2009 or 2010 imac to check out if vid card is DOA or if it is incompatible with 2011 and (maybe not a working green Dell as mentioned). Or do I need to get this card flashed in advanced with clip programmer? Do you have any other ideas/suggestions to get this solved?View attachment 1808792View attachment 1808793
According to all written docs AMD cards show only two LED without the the LCD and the fourth LED with the internal LCD connected.

If the Linux flashtool does not recognize your card (very, very unusual behavior ) try a CH341A clip programmer.
 
Last edited:
  • Like
Reactions: searge
This particular HP card did not post in the iMac12,2 model (the same happens with some WX7100 and RX480 cards). After comparing the HP version with the Dell version he could discover some differences and using the mod these differences could be compensated.
Since we do not own HP or Dell laptop models we cannot really tell what will happen if you use HP cards in Dell laptops and vice versa (out of scope).

Good to see you here, read you posts on techpowerup and tonymacx86 last night….
I think I found the answer why: it’s start up voltage, GPIO and possibly the I2C initialize delay. By default that values in hp vbios is zeros, while Apple use other value. So possibly to get it working need to patch strartup voltages, and something more.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.