Unlocking i5s to 4c/8t

Bubbleawsome

Diamond Member
Apr 14, 2013
4,834
1,204
146
Let me start off by saying that this might include BIOS modding if you choose to do that, otherwise it's just information. This man is trying to unlock i5s into i7s, and possibly even pentiums into i3s or i7s or non-ks into k chips. No one really know how far these chips could go.
He currently needs BIOS dumps from 3770ks on gigabyte z77 and Asrock z68 boards. Let's help him out!

http://www.overclock.net/t/1496007/3570k-ht-unlocked-4c-8t/600#post_22467136
 
Last edited:

Bubbleawsome

Diamond Member
Apr 14, 2013
4,834
1,204
146
Whaaat? I've never heard of that, it's common wisdom that that certain features are fused off in the manufacturing process. Of course common wisdom is not always 100%, but still...

Something is going on here, but what?

https://www.youtube.com/watch?v=cQOACBuf5_s&feature=youtu.be
Someone made the point that the HT cores are too close to the normal cores to be lasered off, unlike cache. Theory goes that the owner of the chip messed with his RAM too much and accidentally forced the BIOS to load the HT settings, since they aren't defined in the CPU microcode. This also applies to cores, so Pentiums might unlock into i3s. Certain i3/pentium dies might also unlock to full i7s! Cache is the issue though as it seems to be lasered, and a 4770k with 1mb cache will be a bit weak. :p
 

crashtech

Lifer
Jan 4, 2013
10,652
2,257
146
If you are able to keep track of this, any updates would be appreciated. I started reading the thread, but had to stop. I'm getting spread a little thin.
 

Insert_Nickname

Diamond Member
May 6, 2012
4,971
1,695
136
Someone made the point that the HT cores are too close to the normal cores to be lasered off, unlike cache. Theory goes that the owner of the chip messed with his RAM too much and accidentally forced the BIOS to load the HT settings, since they aren't defined in the CPU microcode. This also applies to cores, so Pentiums might unlock into i3s. Certain i3/pentium dies might also unlock to full i7s! Cache is the issue though as it seems to be lasered, and a 4770k with 1mb cache will be a bit weak. :p

I wouldn't get my hopes up for Pentium/Celerons unlocking into i7s. All Pentium/Celerons use the 2C/GT2 die, so the last two cores aren't physically present.

That said, a HT unlocked Pentium G3258 could be pretty **** competitive... :cool:
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
145
106
He's posted prime 95 screens with 8 threads showing

Yes, from a random other person. ;)

This is from my own PC. Its not photoshopped, its a real unmodified screenshot.

7ghz.png


However it is certainly not running 7Ghz.
 
Last edited:

zir_blazer

Golden Member
Jun 6, 2013
1,217
507
136
Back on Socket A era, there were several features that were independent from the die itself but controlled by bridges in the Processor PCB, including Multiplier, Voltage and even Multiprocessor support. There were tons of possible mods for them because how they behaved was very well documented. I even recall that it was possible to re-enable Cache L2 on Durons Thoroughbreds and Athlons XP Thortons with a solder mod below the die, but these were hard.

There were some upgradeable Intel Processors some years ago. If someone would reverse engineering the upgrade Software to know what it does, you would know where the features on/off controls are at. Hyper Threading itself is the most easier one, chances are that it is a single feature flag bit. Could also be a microcode that BIOS patchs into the Processor at boot time, sometimes BIOS upgrades includes microcode upgrades but only Intel and AMD themselves know what exactly it does.
 

Bubbleawsome

Diamond Member
Apr 14, 2013
4,834
1,204
146
Zir_blazer has the guys theory perfect. We know some parts are lasered/fused but the HT and unlocked multiplier options are not stored in the CPU. The chips load the exact same microcode for 3570, 3570k, 3770, and 3770k. If you read his last few posts you see that he is trying to trick the BIOS to show the HT switch, even though he thinks it has been there the entire time. The upgradable chips make it even more likely.

I'm not an expert on this so I don't know if this is actually possible, but it is looking good.
 

sm625

Diamond Member
May 6, 2011
8,172
137
106
When they released upgradeable chips, I was sure someone would find a way to hack them for a free upgrade. Words cannot express my disappointment. This generation has no ingenuity.
 

Maximilian

Lifer
Feb 8, 2004
12,604
15
81
First interesting thing to happen with CPU's in a while! :awe: Hope something comes of this.
 

Torn Mind

Lifer
Nov 25, 2012
12,004
2,748
136
I have a 3770S and an H77 Asrock board. I do have a 3770K paired with a Z77 Asus board too.
 

Bubbleawsome

Diamond Member
Apr 14, 2013
4,834
1,204
146
Slight update. I'm going to put these in direct quotes because I only get the basic concepts.

I recall you said that the APCI ID for the 3770k and 3570k are identical

Interesting part!

Oh, I'm not trying for an os unlock just yet. I'm thinking that somehow, your chip had its switch flipped. I don't know where that switch is yet, or what it is, although if I was Intel, I would put it in an undocumented msr. Basically, your chip proves that the extra core logic that allows for Hyper-Threading is not physically removed (not that i expected it to be). That's the only major assumption I'm working with at the moment. And, it's a pretty safe one at this point.

What I have managed to do so far is examine the MADT of my own i5 chip. Now, here's what I found. The physical id's of the individual enabled cores are not sequential (This may be true of all i5's. Feel free to try this one at home. Fire up aida64, look at "ACPI" then "apic" or "madt"). 0, 2, 4, and 6 exist (only 4 ids), but the chip -reserves- 8 apic id's. This can be verified using the documented return values of the cpuid instruction, and comparing it to the raw values actually returned from the chip, and then comparing it to a dump of the ACPI tables.

I did another thing. I did some research, and found out that the memory address of the lapic (the local advanced programmable interrupt controller, ie: the part of the cpu that lets it communicate with other cpus and the chipset) of the bsp, or bootstrap processor (the one that executes all bios code) exists at address 0xfee00000 in memory. the icr (interrupt command register) exists with an offset of 0x300 from that location. The target of the icr can be set at 0x10 from there. This means that i can manually set a target, and manually fire an interrupt at that target, by poking those registers.

I executed the mm command to set the memory address 0xfee003010 to 0x01. this sets the target of the lapic to the physical address where the first deactivated hyperthreaded core should be. I then set memory address 0xfee00300 to 00 00 05 00. This is the "INIT IPI" Or in layman's terms, the command to start up. I then set it to 00 00 06 00. This is the command to start executing whatever is in its stack. Of course, nothing happened because the uefi firmware never gave it a stack, or anything to execute other than a loop full of nops. I tried it on the physical cpu's that were already initialized, and it did nothing [although the system worked flawlessly in the uefi shell (which is verified to use only one core), when an os tried to boot, it would go to turn on the cores that it knows are there, and are supposed to be doing absolutely nothing, find them executing already, and then freak out and kernel panic]. I tried it once more, with the address set to the bsp (0x00) and the system crashed. hard. So, it's entirely possible that the firmware explicitly disabled the interrupts on the lapic of the disabled cpus. Of course, that's going to bring me to my next point in a minute. I think it's more likely that it just had nothing to do at that point, didn't own any memory because the firmware already gave it to either the bsp or the other aps. AND basically nothing even knows that core exists, so it makes sense that kicking it on manually would do nothing to affect anything else. See in this case nothing is something, because if that was an invalid/remapped/random address, the system would have complained. Loudly. Instead, I got a fat load of nothing. See, on an i5 that says it only has 4 units, how can the firmware know that there are more? Answer: it can't. Not without probing them, and you DON'T probe the cpu like that. not even in firmware. The chance for something to go wrong, and corrupt all manner of things is very, very high. Much better to just identify the cpu using "cpuid" and set up everything around what it tells you.

So this brings me to where we stand right now. I'm 90% sure that i've -already- managed to kick on all 8 cpus of my i5. (By editing MMIO values of the BSP's LAPIC's ICR. By HAND) However, I have no way to verify that the cpus are executing without making them do something meaningful, which of course is not really possible in an OS which doesn't know or care they exist, or from a single threaded environment where the only thing i can really do is edit the BSP's local memory by hand. So, i'm going to have to do this a different way. My idea to force on the HT is to edit the uefi bios so that it reads an i5 as if it were an i7.

In order to do that, I set out to disassemble the routines in the uefi one at a time. And it's then that i discovered something very.. very.. interesting. According to the pei and dxe specs, most of the code in the pei and dxe routines are just functions that other routines can access and use. and when ripping them apart, i found a whole lot of that, but i didn't find the main routine that actually identifies and initializes the cpu's. I found many instructions for making the BSP do something and not really a whole lot concerning the AP's outside of the acpi table generator, which doesn't seem to do a lot of generating. I mean, I'm sure it does, but because of how pei and dxe work, there's not a lot of real code. just function calls. pei and dxe drivers... they're more like dll's and less like exe's, and very difficult to decipher.

What i DID find though was in the last place i looked, and the first place the cpu looks. The "Security Core". The very first piece of code to touch the cpu, which begins it's execution in real mode, and within 20 instructions or so, jumps into "protected mode" which allows for super fast boot times, fancy uefi shells, and... the ability to let me spot the protected-mode entry point in like 2 minutes. So, that means that the exact real-mode entry point, the first instruction to reach the cpu, should be very close. What this is going to do is let me know what the EXACT state of the processor's registers are at all times during execution. all of them. The stack, local memory, cache, absolute location of function calls and variables, everything! If i can follow the execution line by line (There's only a thousand, and the cpu has zero access to any ram at this point), and find out where it asks how many logical cpu's there are, I can adjust the offest by shl 0x1, to turn the "i have four" into an "i have eight". Then at that point the bios will do all the work for me! (unless the CPUs are physically disabled, which we know they aren't).

This is really playing with fire. It's analogous to poking your hypothalamus with a stick. if I make an edit and mess it up, I will truly brick a board beyond recovery. I may order some extra bios chips just in case.

For all you out there who can follow this post, I would appreciate some feedback, or especially some assistance if anyone has the uefi hacking skills to help me get this done.
 

jj109

Senior member
Dec 17, 2013
391
59
91
The features are fused off, not lasercut.

There is no magic unlock.

I don't know man... this particular CPU has been through a proverbial warzone. Just how durable are those fuses (or anti-fuses) when running way out of spec and handled with 0 ESD precautions?
 

Bubbleawsome

Diamond Member
Apr 14, 2013
4,834
1,204
146
Now some killjoys have come in saying they might use anti-fuses to blow the HT cores and his just got missed. :awe: I think it is still looking good.

Also gave the thread a more fun title.
 

Lepton87

Platinum Member
Jul 28, 2009
2,544
9
81
Would Intel really make such a mistake as to allow an i5 to essentially become an i7? Just because I switched from 2500k to 2600k a few days ago I give it a 0.2% chance of working. ;) It would be just my luck
 

DrMrLordX

Lifer
Apr 27, 2000
22,522
12,388
136
The possibility that a Pentium could have latent HT is more interesting in my opinion.
 

SPBHM

Diamond Member
Sep 12, 2012
5,065
418
126
Intel has been disabling HT since 2001 or so? not to mention other things, it sounds highly unlikely that a hack to fix this problem would be found... but hey, I hope it happens, but I doubt it
 

VirtualLarry

No Lifer
Aug 25, 2001
56,570
10,202
126
Intel has been disabling HT since 2001 or so? not to mention other things, it sounds highly unlikely that a hack to fix this problem would be found... but hey, I hope it happens, but I doubt it

BIOS/mobo makers figured out a way around the overclocking lock, so that they were able to enable overclocking on lower-spec chipsets, for Intel's "K" CPUs. Asus is supposed to release BIOSes for all of their 8-series boards, to allow overclocking the 20th Anniv. Pentium chip.
 

SPBHM

Diamond Member
Sep 12, 2012
5,065
418
126
BIOS/mobo makers figured out a way around the overclocking lock, so that they were able to enable overclocking on lower-spec chipsets, for Intel's "K" CPUs. Asus is supposed to release BIOSes for all of their 8-series boards, to allow overclocking the 20th Anniv. Pentium chip.

that's different, the PCH is not part of the CPU, and it also happened last year (h81-b85-h87) for the 4670K/4770K, but supposedly Intel fixed it, I'm not sure if it really happened, but they said they would, I don't know why it would be different with the g3258, but anyway,that's nothing like unlocking HT as I said, it would be more like unlocking the multiplier on any CPU (like overclock on G1820, or 4771) which never happened, and it probably never will, like the HT thing.
 

Bubbleawsome

Diamond Member
Apr 14, 2013
4,834
1,204
146
The guys over there have found an archive of the intel processor upgrade program. It looks like they are going to try to reverse engineer it. Intel took down all downloads of the tool after the thread was made from all websites that it was on. They found it through web.archive. There is something intel doesn't want us to see. :D
 

Bubbleawsome

Diamond Member
Apr 14, 2013
4,834
1,204
146
I am still reading the thread, but over the week I was gone they apparently lost hyperthreading on the chip.