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.
Here are my autoport files. It's and imac 12,2 with an AMD WX4130 graphics card.
 

Attachments

  • imac12_2.zip
    287.4 KB · Views: 120
iMac 12,x iGPU (IGD) Full Disable patch

This firmware patch removes the Integrated Graphics Device (IGD, Bus 0 Device 2 Function 0) from the PCI bus.
The iGPU will not be initialized, will not be seen by OS nor use any hardware resources.

Behavior is the same as selecting "Disable Integrated Graphics" or "Disable onboard video" in other vendors bios.
As a side effect, it fixes the Windows BSOD when loading Intel Graphics Kernel Mode driver (igdkmd64.sys).

Notes:
  • Tested on iMac 12,x with bootrom 87.0.0.0.0. May work on other Mac models and versions. If you try it watch UEFIPatch output for clues.
  • Sleep works after applying patch.
I have started a Github repository to better keep track of firmware patches, this patch is there.
 
Bonjour,

AtherosWifi replaced by BroadcomWirelessDxe of the iMac 2015.
Apple80211 replaced by the iMac 2015 version.

Test replacing BroadcomGigabitEthernetDxe with the version of the iMac 2015 (my internal card doesn't work, we can't even see it) to see if it allows my thunderbolt ethernet card to work without modified kext, because it works perfectly on the iMac 2015 without modification.

I have no idea if it would help for the internal card and won't be able to check it.

I'll re-flash soon and keep you informed.

Edit: Tests of the mods carried out without success, I would wait to change the motherboard (it is partly defective for those who were not aware of it) to try again modifications.
can you explain what you mean by
Apple80211 replaced by the iMac 2015 version.
is the dxe?? thx
 
Hello,

(Because this iMac has this Wifi/Bluetooth card natively.) <- error in the answer I misread the question.

Because it worked natively on my 2015 iMac, it didn't work in the end.
Today I don't have my 2011 iMac anymore (broken and I didn't find out why).

Have a nice day.;)
 
  • Like
Reactions: Rendell001
iMac 12,x iGPU (IGD) Full Disable patch

This firmware patch removes the Integrated Graphics Device (IGD, Bus 0 Device 2 Function 0) from the PCI bus.
The iGPU will not be initialized, will not be seen by OS nor use any hardware resources.

Behavior is the same as selecting "Disable Integrated Graphics" or "Disable onboard video" in other vendors bios.
As a side effect, it fixes the Windows BSOD when loading Intel Graphics Kernel Mode driver (igdkmd64.sys).

Notes:
  • Tested on iMac 12,x with bootrom 87.0.0.0.0. May work on other Mac models and versions. If you try it watch UEFIPatch output for clues.
  • Sleep works after applying patch.
I have started a Github repository to better keep track of firmware patches, this patch is there.
Does this also means that it fixes the several minutes wait time under boot with black screen when using OCLP and Windows?
 
Does this also means that it fixes the several minutes wait time under boot with black screen when using OCLP and Windows?
The Windows delay only happens with Kepler cards, but the real cause is unknown and probably unrelated to this patch.

Maybe using a legacy Nvidia EFI + EnableGop on a Kepler card could fix the delay, I have no Kepler card to test this.
 
iMac 12,x DDR3 Frequency Limit disable

This firmware patch removes the 1333 MHz frequency limit Apple hardcoded in bios settings.
Faster DDR3 modules did work on iMac, but their speed was limited to 1333 MHz.
This patch removes such limit, allowing the use of 1600/1867/2133 MHz compatible modules at full speed.

ddr3_1600.png


Many thanks to @Ausdauersportler & @dfranetic for help in testing this!

Notes:
  • Tested on iMac 12,x with bootrom 87.0.0.0.0.
  • Not all ram modules tested seem to work. If they do not work at 1333 MHz for a start, they will probably not work at higher speeds. Please report if you get 1867/2133 modules to work at full speed with this patch.
  • The "sweet spot" for Sandy Bridge seems 1600 MHz. Faster modules will bring very little (if any) performance increase.
I have started a Github repository to better keep track of firmware patches, this patch is there.
 
Last edited:
I've been testing former patch with a couple of 1600 MHz CL11 (average latency) dimms on the iMac 12,2 vs the stock 1333 MHz CL9 memory. CPU used on testing was a slightly overclocked i7-2700k @ 4GHz.

I did not expect much gain due to slower latency on the 1600 MHz memory, but at least the synthetic benchmarks show good performance.

Geekbench 5 @ 1333 MHz CL9 (Windows):

1684921006683.png



Geekbench 5 @ 1600 MHz CL11 (Windows):

1684921158037.png


Note that some individual scores like clang compiler are slower on the 1600 MHz memory, probably due to slower latency, but overall there is a nice gain.

Also 3DMark Time Spy shows a nice 3411 CPU Score:

1684921397060.png


On real gaming with a 2023 released AAA game (RE4 Remake, which is well optimized) I'm getting consistent 60fps at native 2560x1440 resolution, while I was getting around 54 fps with the 1333 MHz memory. CPU temp was high, around 75ºC with fan at full speed.
 
Hi @m0bil, I tried to implement the disable Igpu patch, but got the following error "function called with invalid parameter" as shown in the picture. Can you please help to point me in the right direction on the command? Thanks.
 

Attachments

  • Untitled.png
    Untitled.png
    2.2 MB · Views: 150
Last edited:
Hi @m0bil, I tried to implement the disable Igpu patch, but got the following error "function called with invalid parameter" as shown in the picture. Can you please help to point me in the right direction on the command? Thanks.
Maybe something wrong with your bios dump ? This is usage and expected output:

1684953244035.png
 
I've been testing former patch with a couple of 1600 MHz CL11 (average latency) dimms on the iMac 12,2 vs the stock 1333 MHz CL9 memory. CPU used on testing was a slightly overclocked i7-2700k @ 4GHz.

I did not expect much gain due to slower latency on the 1600 MHz memory, but at least the synthetic benchmarks show good performance.

Geekbench 5 @ 1333 MHz CL9 (Windows):

View attachment 2206915


Geekbench 5 @ 1600 MHz CL11 (Windows):

View attachment 2206916

Note that some individual scores like clang compiler are slower on the 1600 MHz memory, probably due to slower latency, but overall there is a nice gain.

Also 3DMark Time Spy shows a nice 3411 CPU Score:

View attachment 2206917

On real gaming with a 2023 released AAA game (RE4 Remake, which is well optimized) I'm getting consistent 60fps at native 2560x1440 resolution, while I was getting around 54 fps with the 1333 MHz memory. CPU temp was high, around 75ºC with fan at full speed.
is this patch only for 2011?
 
Maybe something wrong with your bios dump ? This is usage and expected output:

View attachment 2207178
Hi @m0bil , in the end, I use the manual method to edit the GUID using hex editor. It works. thanks for your help.

Steps are :
0)Assume you have your imac saved bios, iMac.bin
1) Use UEFItool to extract the body of the GUID you want to edit from iMac.bin, .e.g. 53984C6A-1B4A-4174-9512-A65E5BC8B278
2) open the extracted body.bin using the hex editor
3) search the the bits we want to change e.g. "66C740013505"
4) change the bits according from 66C740013505 to 66C740010000
5) save the edited body.bin in hex editor as updatedbody.bin
6) Using UEFItool from step 1, replace the GUID from 1) with the updatedbody.bin.
7) saved updated bios, e.g. updatediMac.bin
8) flash updated iMac.bin
 
  • Like
Reactions: m0bil
Hi @m0bil , in the end, I use the manual method to edit the GUID using hex editor. It works. thanks for your help.

Steps are :
0)Assume you have your imac saved bios, iMac.bin
1) Use UEFItool to extract the body of the GUID you want to edit from iMac.bin, .e.g. 53984C6A-1B4A-4174-9512-A65E5BC8B278
2) open the extracted body.bin using the hex editor
3) search the the bits we want to change e.g. "66C740013505"
4) change the bits according from 66C740013505 to 66C740010000
5) save the edited body.bin in hex editor as updatedbody.bin
6) Using UEFItool from step 1, replace the GUID from 1) with the updatedbody.bin.
7) saved updated bios, e.g. updatediMac.bin
8) flash updated iMac.bin
That is the patch to disable the ram frequency limit.
Wonder why UEFIPatch does not work for you...
 
That is the patch to disable the ram frequency limit.
Wonder why UEFIPatch does not work for you...

Hi there. Using iMac 2011 with Xeon E3-1280, WX7100 8 GB as a GPU and RAID with 2 512 gb SSD but now I want to run faster ram.

I have used a CH431 clip to backup the bios from the iMac. I downloaded your mod and this is what i got after running commands in windows.

Is this OK? Do I just need to reflash bios and that all? No ther mod needed?
 

Attachments

  • 20230604_103709.jpg
    20230604_103709.jpg
    583.9 KB · Views: 153
Hi there. Using iMac 2011 with Xeon E3-1280, WX7100 8 GB as a GPU and RAID with 2 512 gb SSD but now I want to run faster ram.

I have used a CH431 clip to backup the bios from the iMac. I downloaded your mod and this is what i got after running commands in windows.

Is this OK? Do I just need to reflash bios and that all? No ther mod needed?
Yes, that is the expected output, just flashing the modified bios back should be enough to remove the memory frequency limit.

Since you'll have to use CH341 clip to write the bios back, I'd also recommend applying the patch to disable the eeprom write protection. That way if you want to make any other bios changes in the future you won't need to use hardware flashing.
 
Yes, that is the expected output, just flashing the modified bios back should be enough to remove the memory frequency limit.

Since you'll have to use CH341 clip to write the bios back, I'd also recommend applying the patch to disable the eeprom write protection. That way if you want to make any other bios changes in the future you won't need to use hardware flashing.
Can i apply 2 patches at the same time and then just flash?
 
@m0bil use one 8G 1867MHz available normal boot light up boot up

Two 8G 1867MHz will not be able to light up and boot normally Beep beep beep alarm

Two 4G 1600MHz and two 8G 1867MHz mixed together can be used to light up the boot normally, the overall downgrade to use 1600MHz.
截屏2023-06-15 21.29.34.png


截屏2023-06-15 21.35.53.png
 
@m0bil use one 8G 1867MHz available normal boot light up boot up

Two 8G 1867MHz will not be able to light up and boot normally Beep beep beep alarm

Two 4G 1600MHz and two 8G 1867MHz mixed together can be used to light up the boot normally, the overall downgrade to use 1600MHz.
View attachment 2218470

View attachment 2218471
hi @jay508 ! Thanks for testing!!

I guess you tested all Bank/Dimm combinations with the two 1867 Mhz dimms ??

No idea why it would work with one but not with two 1867 dimms... but when used mixed speed memory the behavior is as expected, all dimms get clocked to the slowest speed.

If you still got the memory, can you please post specs from CPU-Z and Thaiphoon Burner on windows, like this from the 1600 MHz CL11 I'm using now:

1687338275506.png
1687338304508.png

1687338352082.png
 
@m0bil Yes I use two or four 8G 1866 can not boot up and use, press the switch to observe the first two LEDs on the motherboard, but there is no dang boot up sound, and then the CPU GPU heatsink fan reaches maximum speed. Then automatically reboot repeatedly in this cycle.

Use a single 8G 1866 any of the four slots in one of the slots can be used to boot up and work properly.



The following is 8G 1867 + 4G 1600 use normal


1600.1 (1).png
1600.1 (2).png
1600.1 (3).png
1600.1 (4).png
1600.1 (5).png
1600.1 (6).png
1600.1 (7).png





The following is a separate 8G 1867 working properly

1866.png
1866.1.png
1866.2.png
1866.3.png


This 8G*4 32G 1866 is working fine on my iMac 27 2012 2013 2014 2015
MacBookPro 2012 8G*2 16G 1866 also works fine
qq_pic_merged_1687710316609.jpg


I'm wondering if the CPU memory controller is causing the problem or something.
Checking the official inter documentation shows that the I7 2600 supports DDR3 1066/1333 memory specifications up to 32G.
i7 2600.png

Before the BIOS was modified, this 8G*4 32G 1866 was available for normal use, only operating at 1333 instead of 1866 or 1600.
 
The problem is probably due to a bug in the MRC code (the one in the MemoryInit module, responsible for the initialization of the Memory Controller). The MRC code in the iMac seems to be an early release from Intel and probably was not well tested with higher speed ram modules. It is also possible Memory Controller needs a bit of overvolting to support 2x1867 memory, I'll take a look to see if that is possible.

While the official specifications from Intel state that the i7 only supports up to 1066/1333 MHz memory, the Memory Controller is basically the same used on Ivy Bridge, and capable of supporting up to 2133 MHz memory. This has been tested on other OEMs like Asus with same Z68 chipset as the iMac.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.