[Problem] PCIe x16 Slot doesn't work after Flashing a mod BIOS

Hello guys, I recently modified the BIOS of my Z370(Gigabyte Z370-HD3) motherboard to make it compatible with my Kabylake CPU. I used CoffeeTime (a simple integrated modding soft that can replace ME, microcode, and perform some patching) to do the modifications. I replaced and disabled MOD ME (11.8COR), modified the microcode, patched PCIe, applied PCIe 1440, removed Recovery, and disabled SPD Write Protection. Then I flashed this BIOS using the CH341 Programmer. After flashing, it booted normally and entered the system, but my PCIe x16 slot stopped working (other slots worked fine)…

I also tried manually downgrading ME to 11.6.27.3264_CON, and using a patch script provided by @revlaay ( [Tool] Easy automated Mod tool for Coffee Lake bios ) to modify the BIOS file, but that doesn’t seem to work either (it boots but can’t read the PCIe x16 slot).

I have no reverse engineering or hardware engineering knowledge and have absolutely no idea what to do next…

Below is my modified BIOS file:

Z370-HD3_MOD-ME11.8.zip (5.5 MB)

can anyone help me? Thanks guys.

@newbie007
Welcome to the Win-Raid Forum!
You should better have asked for help before flashing a modded BIOS!
Good luck!

Do you need it for Skylake-CoffeeLake Refresh support + Intel PTT Working (ME Still Enabled)? Or just the cpu support but didn’t mind with PTT Support (Disabled)?

The latter one.I want my Z370 supported kabylake. I have downgraded and disabeled ME.It works(boot and entered the windows),but pcie x16 slot doesnt work.

Here, you can try this: Z370HD3_SklCfl.rar (6.7 MB)

ME Enabled: Uses ME 11.7.0.1261 CON_H_DA + Enabled
ME Disabled: Uses ME 11.8.97.4739 COR_H_DA (Cut) + Disabled

You could try by flashing the ME Enabled one and see if it works (in coffeetime, ME 11.7 Consumer + 300 Chipset = Skl Kbl Support, tho i never tested it). See If the ME Firmware is changed.

Additionally, i add NvStrapsRebar just in case if you use Nvidia Turing (GTX 16xx/RTX 20xx), and did uefipatch and found out it patched Remove <64GB BAR size limit in PciBus.

WOW, thanks bro.But the key issue is that the PCIe x16 slot is not working.I had actually tried ā€œME 11.8.97.4739 COR_H_DA (Cut) + Disabledā€ before. I will try your modded bios tomorrow.Could the PCIe x16 slot be related to whether Intel ME is enabled or not?
And I don’t think NvStrapsRebar is directly relevant here, because I’ve tested the PCIe x16 slot with multiple GPUs (both AMD and NVIDIA), and the slot is completely unable to detect any device at all.

So both bios still not working on the x16 slot?

yep, and I bought a G5400 and flash the origon BIOS to test if the slot hardware was working properly, and it actually worked fine.(By the way, this PCIe x16 slot appears to be CPU-direct (PEG).
I also tested flashing a BIOS where I only downgraded Intel ME and modified the CPU microcode, without applying any other patches. The system can still boot and enter the OS, but the PCIe x16 slot still doesnt work.)

I’ll try to ask in another forum, hoping that i could get an answer to share here

Thanks, bro. I rechecked the BIOS version history and noticed that after version F10, Gigabyte seems to have removed 6th/7th gen CPU microcodes.
I then tried modding the F10 BIOS, and it works. That’s good, but F10 obviously isn’t the latest version.

So I’m wondering whether it would make sense to open a new post to compare the differences and changes between these two BIOS versions, in order to make the latest F14 BIOS properly compatible with Skylake and Kaby Lake.

1 Like

If you dont mind, you can compare both of them in the dxe regions and peim regions ig? Im interested in this, but have little knowledge about your problem :frowning:

The key is MicroCode. I transplanted the older version of MicroCode from F10 to F14, and it seems to be working well so far. It’s possible that Gigabyte hasn’t adapted to the updated Kaby/Sky Lake MicroCode. In fact, most microcode files I could find on Win-Raid, GitHub, and elsewhere online are the latest versions, and it seems quite difficult to find archived older microcode versions. Anyway, thanks for your help. The problem is solved.

I may have celebrated too early — under this setup, the PCIe x16 slot seems to operate only in PCIe x2 mode.

It turns out the whole issue was caused by oxidized CPU contacts. After cleaning the CPU pads with an eraser, all problems were resolved

I’ll package and upload the three origin BIOS versions (from Gigabyte official) for anyone who wants to continue researching or experimenting with them.

mb_bios_z370-hd3_f10_v1.zip (6.5 MB)

mb_bios_z370-hd3_f11.zip (6.3 MB)

mb_bios_z370-hd3_f14.zip (6.4 MB)