It is correct. You need to short these two pins. Some guys figured out that two other pins are problematic (can cause damage to board) and we are isolating them. But to be precise, we should isolate all pins that do not match between Skylake and Cofee Lake (I think it's more than twenty of them - the pictures can be googled).
I had the same problem a time ago. But I can't remember what the cause was now (usb disk in wrong port, bad format of cap file..). Anyway, you can use any other software flash method (afudos, afuwin...). In case of SPI flashing, dont forget to replace BIOS header/ME region of posted BIOS file.
@mtothaj, @oldirdey, @ziddey Actually, there is also fix for sync all cores (for M8I). You can't choose ratio for 4,5,6 cores individually, in BIOS, but if you choose "Sync All Cores", all cores will be synced now. It will work from one up to eight cores. One byte patch in module C654E340-2DB5-4896-BBC4-6EA45CFEB434. Here is a link to patched (16 cpu Coffee Lake compatible) M8I (v3801) BIOS capsule. Use Flashback method. Presence of Coffee Lake compatible BIOS (or at least ME region) is required - Flashback will not flash ME region.
I want to report (finally) the success with running 8700K with HT enabled (6 Cores/12 Threads) on ASUS Maximus VIII Impact (Z170) BIOS. Some software/BIOS modifications are needed - see this guide [GUIDE] Fixing HT for Coffee Lake CPUs on Skylake and Kaby Lake motherboards (Z170, Z270). The positive message is that these/similar modifications can be done relatively easily on (all) other Z170/Z270 BIOSes as well.
@diglo1@oldirdey@Yazon2006 1. board does not start at all (with Coffe Lake, but boots with old Skylake/Kaby Lake) -> probably hardware issue, connect the two CPU pads, pencil mod (with soft pencil - "8B") is usually sufficient 2. board blinks/starts only for a fraction of second -> probably ME issue, use/implant ME region from known working BIOS 3. board starts, fans are spinning (post codes are displayed), but won't post () -> issue in BIOS region, make sure you follow all the steps with patching the BIOS for Coffee Lake
1. locate and extract ACPI tables from BIOS 2. disassemble ACPI tables 3. increase number of supported CPUs in ACPI tables 4. compile modified tables 5. replace/insert modified tables to BIOS
For reading BIOS we will use UEFITool NE alpha (it has integrated hex view), this version cannot save/modify BIOS, use older version for this. For decompiling/recompiling ACPI tables we will use iASL tool from ACPICA.org
2.1 locate and extract ACPI tables from BIOS
The simple way - assuming that BIOS device name for CPU number 8 is "\_PR.CPU7" - we start by searching string/text "CPU7" in the body of our BIOS using UEFITool:
[[File:1.png|none|auto]]
This string is located in couple of Raw sections and one PE32 image section. Each Raw section is actually a (compiled) ACPI table:
[[File:2.png|none|auto]]
We will ignore the PE32 image (there is no need to patch this file) and extract only Raw sections that contain our string. We also write down the order/location of the extracted section(s) (under specific GUID) so we know exactly what section we are replacing in step 2.5.
2.2 disassemble ACPI tables
Now we execute iASL tool on files extracted in step 2.1:
[[File:3.png|none|auto]]
We get human readable/decompiled text file with extension ".dsl" that we can read/edit with notepad:
[[File:4_notepad.png|none|auto]]
Using iASL tool we have decompiled these ACPI tables:
2.3 increase number of supported CPUs in ACPI tables
Now we modify/add entries to the ACPI tables using "common sense" (with help of corresponding tables from some official Coffee Lake (Z370) BIOS). Start by searching for string "CPU7", add new entries accordingly:
The changes are pretty straightforward. When we see block of code with "CPU0", "CPU1" .. "CPU7" we simply create/append new block that will contain "CPU8", "CPU9" .. "CPUF". All modified files, for Maximus VIII Impact (M8I), are attached. Opening original and modified file (from subfolder "16"), in file compare tool, will help to understand what changes need to be done. Notice, that we also need to make changes to all references/objects/variables that are related to CPUs:
We need to add 8 new packages (for "CPU8" .. "CPUF") into this "DEVY" package. In this case, we do not want to insert the new packages for "CPU8" .. "CPUF" right after packages for "CPU1" .. "CPU7". If we do this, we will change the order of all remaining entries of the "DEVY" package, and we would need to change/modify all references to items in the "DEVY" package. Better solution is to add new packages (for "CPU8" .. "CPUF") at the end of the list. Using file compare tool on original and modified file should make this clear:
Notice, that we need to increase the number 0x2e (count of items in "DEVY" package) to 0x36 (we are adding 8 new items). We are inserting new items (into "DEVY" package) at position 0x2e .. 0x35 (for "CPU8" .. "CPUF"), so the location/reference to these items is DEVY[0x2e] .. DEVY[0x35]. We will remember this location when adding code:
[[File:11_devy3.png|none|auto]]
2.4 compile modified tables
We execute iASL tool on the modifed tables (.dsl files) to get compiled version of the tables (.aml files):
[[File:12_compile.png|none|auto]]
2.5 replace/insert modified tables to BIOS
Using UEFITool, we replace Raw sections/original ACPI tables (from step 2.1) from the BIOS file, with our new modified tables (.aml files):
[[File:13_replace.png|none|auto]]
Save the BIOS file and flash. Software flash method (ASUS Flashback) is sufficient, hardware/SPI flashing is not required.
Power management in operating system (Windows) should work now. If we get BSOD, after resuming from standby, or the CPU multiplier is locked to base frequency (no Turbo mode) - in load, then we probaly made some error in fixing ACPI tables.
The Hyper-threading (HT) might not work with 6-cores CPUs (i7-8700K). The problem is that the the BIOS of the boards is configured to support maximum of 8 (logical) CPUs. This guide will show you how to change/increase the maximum value of supported CPUs in your BIOS from 8 to 16. We use BIOS of Asus Maximus VIII Impact (M8I) as an example but these steps should work for BIOSes of other Z170, Z270 boards as well. Basic knowledge of UEFITool, hex editor/disassembler is required.
Two steps are required to (fully) support 16 CPUs:
According to dsanke, it looks like on some boards/BIOS variants additional module(s) needs to be patched (we have no solution for this):
Zitat von dsanke im Beitrag #56I've tested lots of motherboards. Most ASUS 100 series ( Z170/Z170I PRO GAMING , Z170-P ,Z170-A )need BIOS version lower than 3000. And these BIOS do not have CpuMpPei. HT is OK without patch. If I use BIOS version higher than 3000 , with CpuMpPei patched , it can boot with i7 , but stuck in ASUS logo or just keep rebooting. ROG M8H BIOS 3802 with CpuMpPei patched work with i7 perfectly. ROG M9A BIOS 0906 with CpuMpPei patched work with i7 , but newer version (1010 1203 1301 )stuck in ASUS logo ,debug light show 9C. ROG M9H all BIOS version with CpuMpPei patched , boot with i7 ,keep rebooting , debug light show 91. ROG STRIX Z270F BIOS 1301 with CpuMpPei patched , boot with i7 , stuck in ASUS logo .0906 with CpuMpPei patched works. All I tested BIOSTAR, ECS ,ASRock,GALAX,SOYO,Maxsun,Colorful,Gigabyte,Clevo BIOS with CpuMpPei patched work with i7 perfectly. MSI laptop MS-16L1 MS-16L3 and mini PC G65/G65VR work with cfl i7 after CpuMpPei patched. Lots of MSI 100 series 16M BIOS even can not boot with cfl i5. MSI 8M BIOS can work with i5. But after CpuMpPei patched , it won't boot with cfl i7.EZ debug light show CPU , DRAM and VGA keep circulating. According to my test , seems except ASUS and MSI , the other manufacturer's motherboard all can work with cfl i7 now.
1. patching PEI module CpuMpPei
Download UEFIPatch. Place UEFIPatch, extracted patches.txt from the attachment and the BIOS file in the same folder. Run UEFIPatch on the BIOS file:
[[File:14_patch.png|none|auto]]
If the file was patched (at one or two locations) skip to step 2 - modifying ACPI tables. If nothing was patched, please write a post with a link to your BIOS file, we can update patches.txt file. Alternatively, follow the guide:
Locate and extract TE image section of PEI module CpuMpPei (GUID: EDADEB9D-DDBA-48BD-9D22-C1C169C8C5C6)
[[File:1.png|none|auto]]
Open the extracted file in disassembler. The fix consist of patching 3 lines of code. The code, that is responsible for allocating and initializing some CPU structures. We need to replace:
At file offset 0x992 (this location may/will be different for different version of BIOS), there is a code responsible for allocating space/memory for some structures describing CPUs. Some technical details/math here - assuming:
"n" is the count of maximum supported CPUs "m" is largest monitor-line size in bytes, stored in eax "k" is some constant stored in esi
The total memory that needs to be allocated is:
n * (0x8000 + 0x38 + m) + 0x2d8 + k
For n = 8, we get:
8 * (0x8000 + 0x38 + m) + 0x2d8 + k = k + m *8 + 40498
It is exactly what is at offset 0x992. Now for n = 16 or 0x10 hex:
10 * (0x8000 + 0x38 + m) + 0x2d8 + k = k + m * 10 + 80658
As we can't write instruction:
lea ecx, [esi+eax*10+00080658]
And we know that "m" (value stored in eax) is 64 or 0x40 hex for our CPU (we can get this value via cpuid instruction - cpuid(5):ebx[15:0]), we can replace it with:
lea ecx, [esi+eax*8+00080858]
Changes at offsets 9c4, a4b follow the same principle - we are doubling the amount of CPUs, thus we need to double the numbers:
40000 -> 80000 1c0 -> 380
In the end, we only need to patch/modify 6 bytes:
[[File:2.png|none|auto]]
Save changes, replace body using UEFITool (note that this module is located at two locations in BIOS, we better replace both):
[[File:3.png|none|auto]]
After this change (and flashing modified BIOS) we should be able to successfully boot with 6C/12T active (on 8700K). For proper operation (power management in operating system) we need to modify ACPI tables now.
@Yazon2006 probably ME issue. I had the same symptoms before I get donored bios from @mtothaj - it has ME version 11.6.10.1196 region with only FTPR partition (other partitions are removed from ME region). After this change I was able to boot.
@oldirdey The problem with old (z170) boards, at least in case of Asus Maximus VIII Impact, is that their software/bios is configured to support maximum of 8 (logical) processors. Actually, the HT is working - I can boot 8700K with (up to) 4 cores/8 threads running. The problem is with 6c/12t configuration. I'm trying to figure out whether/how it can be patched - no success yet.
@shixinyuan z270 and z370 boards are usually very similiar - replacing bios modules between them might work. But it's not the case with z170 boards. I'm afraid you can't just take one key/important module from z370 board and make it work on z170 (without aditional patching) - hardware addresses are different, nvram/configurations are different...
@Mov AX, 0xDEAD Actually I was struggling to achieve this (via changing NVAR) until I realized that I do not verify/programm the BIOS chip properly. So if anyone is interested: NVAR store->StdDefaults->Setup->byte (variable) at offset 0x4cf: 01 - HT enabled, 00 - HT disabled. I also changed the byte in two other locations: NVRAM external defaults->StdDefaults->Setup->byte at offset 0x4cf.
Now the interesting question is why does the HT not work (on M8I with 8700K)? Any ideas what should be done to make it work?
Thanks @mtothaj . Disabling HT did the trick. Apologies for not following your instructions before. For other folks that don't have old processor with HT - nvram variable 0x4CF should be set to 0x0 to disable HT on Maximus VIII Impact. When I figure out how to disable HT by default I will post it here.
Using @mtothaj donor BIOS I was able to finally start the M8I board with 8700K. But I have no success with the system to POST. The process ends with Q-Code 18 (Pre-memory System Agent initialization is started) or sometimes with Q-Code 82. DRAM Q-LED is flashing right before it ends with Q-Code 18. The system is POSTing with old Skylake CPU. I even tried setting some values/voltages in BIOS manually before putting the 8700K in, it didn't help. Unfortunately, I can't test the 8700K on another system now - maybe the CPU is faulty.
Well, thanks for the hint. I used the copper tape because the pencil mod did not work for me. I can confirm that the adhesive is not conductive, but is this the issue? I mean we are trying to tell the motherboard that the CPU is present, so all we need is to short (connect SKTOCC with GND) the pins on motherboard side, this can be done by sticking the copper tape on CPU side/pins. Assuming the adhesive is not conductive you will loose one RSVD and one GND pin/connection on the CPU using this method. I assumed, from the presence of brief power draw, that the copper tape method works - when I tried to power on the board without CPU, I didn't see any power draw from the wall.
I tried running i7-8700K (required 2 pins connected with copper tape, some other pins isolated) on modified MAXIMUS VIII IMPACT BIOS 3504 (microcodes, vbios, GOP, SKU Z370, PCIe patch, flashing done via ASUS Flashback) but the board did not start (with 8700K) after pressing power button (wattmeter showed that it drawed a power for a brief period of time). With Skylake CPU, the board with modified BIOS runs normally. I guess I must be missing something - may I ask you for your BIOS file?
Zitat Congratulation! Which BIOS modification method did you use?
@Wolf Larsen dzięki :) I used the standard method - M8I bios + microcodes, vbios, GOP, SKU Z370 and PCIe patch. Flashed with SPI programmer. These are the stock settings with Multicore enhancement / XMP on. As a one time thing its necessary to use Intel Extreme Tuning Utility to increase core ratio multiplier to 43x on cores 5 and 6 as Multicore enhancement does not see / change ratios for those cores. After that, the change becomes permanent and do not need to be redone , even after powering off. Ideally I would like to use the M10F or M10A bios to have full overclocking control in the bios - unfortunately there is no direct successor for this board in the Z370 lineup so will need to improvise and adapt a bios from another board. Worst case scenario, I can keep these settings and increase BLCK to 125 or 133 for overclocking but as this is a mITX build in a small case the stock setting are good enough for me.