[Guide] Add TPM module on Chinese X99 and X79

TLDR: Apart from just Windows 11, some games like Battlefield 6 are now requiring TPM to work. The key contribution of this post is establishing a general methodology on how to find out an unknown JLPC/Debug pinout, so that a TPM module can be safely and correctly connected. Nothing more than a normal digital multi-meter and around ten 2.54mm pitch female to male wires are needed. Generally speaking, the Chinese X99 boards lack any sort of official manual/documentation, and the JLPC/Debug pinout is of course no exception. General buying advice is also given, enabling a simple and solder free installation. Please understand that if you break something while attempting this, it is on you. I am also providing some information and BIOS files for two “classical” Chinese X99 motherboards

  1. X99Z V102, mostly sold under the Machinist or Runing brand name
  2. ZX-99EV3 v1.23 (also called PlexHD-X99, Atermiter X99, Kllisre X99)

Update 2026-01-03
I now have better BIOS available, see this post. Overview and old deprecated BIOS can be downloaded from here, including a simple but practical PPT template.

X99Z V102: Measuring voltages on the JLPC1 pins

  • First start the computer normally, go into the BIOS and load optimal defaults, reboot, and then leave it idling in the BIOS.
  • Take a multimeter, and connect the black cable to ground. I choose to use the 2 separated ground wires in a 6+2 GPU power supply cable
  • Now push on a 2.54mm female on each JLPC1 pin, and then measure the voltage
  • Three pins will be very easy to determine, namely: VCC3 (3.33V), GND (~0.1V) and finally LCLK (VCC3/2~1.66V) since this is a clock signal with 50% duty cycle)
  • When measuring a particular pin, I did indeed get a system reset. So I assumed that was LRESET (more on this pin later, the ZX-99EV3 behaved differently)
  • I had one NC (Not Connected) pin. To be 100% sure that is was NC, I moved the black cable from power supply ground to power supply +12V. Still the multi-meter showed 0.00V.

This left me with five undetermined pins (four LADx and LFRAME). While this is on a level that can arguably be tested until it works, I still wasn’t too happy. Expressed mathematically the number of combinations are still “5!”, which equates to 120 different combinations. With that said, the most likely type of pinout is that the four data pins are next to each other (could be either 0-3 or 3-0 order). This leaves the remaining pin as LFRAME, and hence only 2 combinations to test.
After a lot of digging and reading, I happened to stumble upon the pinout for another Machinist board, and it was exactly the same on this motherboard – In a video that basically does what I set out to do (but with an extremely messy wiring method). See the specified timestamp in this video. WARNING: That video states “For any Chinese board”, but at the end of the day it just provides one common pinout. As will be shown later, the pinout for my second board was completely different. So in other words: Do not blindly trust any random diagram, you need to measure yourself to verify! Just to re-iterate, the core of this post is indeed about establishing a general methodology for finding the pinout for any motherboard, rather than just giving out the end result for one particular board.

X99Z V102: Flashing a BIOS with TPM support
It is very straight forward to get all required BIOS functionality on this board: Simply use a CH341A programmer and flash the latest official Machinist/JuXieShi X99-K9 BIOS (X9XK9 Ver:007 12/25/2023 17:07:48) on the board. Everything works perfectly. RAM timings are already unlocked by the manufacturer, and they even provide a TBU (Turbo Boost Unlocked) version if you have a Xeon 2xxxV3 series CPU. Since the download links do not work on the English version of the official page, see the first Mega link in this post. Since I am primarily gaming focused, I am also including a modified BIOS to make CPU and cache overclocking work with for instance Throttlestop. For reference, the official product page in Chinese can be found here.

X99Z V102: Selecting, wiring up, and verifying that the TPM works
The core reason why the wiring becomes terribly messy in the video I linked to before, is that the TPM female connectors are very close to each other. In technical terms, the motherboard uses a 2.54mm pitch, while the TPM module in that video uses a 2.00mm pitch. The easiest solution to all of this is simply: Check carefully and buy a TPM module that also has 2.54mm pitch, then it will be very straightforward to wire everything up. So that is what I did. When looking online on several sites, then there is typically a common/general 20-pin LPC type TPM module being sold. I checked and sure enough, it uses 2.54mm pitch. Then I bought a pack of 10cm long 2.54mm female to male cables.

When double checking the pinout from the supplier, it didn’t make sense. From my point of view, the pinout should be what I see when I look directly at the connection header. In this case, nothing lined up. So I took this approach: I have three GND (ground) pins, that should connect to the same electrical point. So I just put the multimeter in Ohm beep testing mode and checked. The end result can be expressed as: “The manufacturer had swapped the upper and lower rows with each other”. Not rotated, swapped. So based on this, I simply re-drew the TPM module header as well, and thought one step ahead. By selecting one particular ground out of the 3 possible, I could get all 10 wires physically close to each other. This makes it easy to connect and also easy to reinforce with electrical tape. Finally I connected everything and it worked, just took a few reboots before I had something under Advanced/Trusted Computing in the BIOS. The default settings were fine, the module then shows up as avaliable in Windows.

What follows here is the core part. Since we have both measuring results and a proven pinout for the previous X99Z V102 board, we can now start comparing and see what pin is what on the unknown Debug port on the ZX-99EV3.

ZX-99EV3: Measuring voltage on the Debug pins

  • I found VCC3, GND and LCLK very quickly just like on the first board
  • I did not get a system reset when measuring. But I did find one pin which had a voltage higher than VCC3 (3.45V, ~0.12V higher than 3.33V). I made the assumption that this was reset
  • Next, I assumed that the pin with a voltage just below VCC3 was still LFRAME (3.285V on the first board, 3.29V on this one)
  • This left me with the 4 data pins, or at most 24 possible combinations. LAD2 had the highest voltage on the first board, so I assumed that here as well. So the first board had a 3-0 LADx order, and if I had identified LAD2 correctly, then this second board should most likely have a 0-3 LADx order.

All of this qualified guessing was indeed correct, and I got the TPM up and running.

ZX-99EV3: Flashing a BIOS with TPM support
This turned out more difficult than expected, and I had to spend 1 week+ on this part alone. See the first Mega link in this post. After a lot of testing, this worked perfectly fine:

  • I took the X99D4M4 complete 16M BIOS as a starting point
  • I then swapped out the 8M BIOS region with the Machinist X99 MR9A PRO MAX. Yes, I know, this board does not have a C612 chipset, but typically B85. But it works perfectly
  • I put in a lot of smaller changes with AMIBCP to startup with TPM and Secure Boot enabled by default, and also to enable overclocking of for instance 1660V3
  • A CH341A programmer is needed to flash the BIOS

5 Likes

Fully working TPM on X99D3M4

Some time ago I got help soldering on a 2.54mm header on the DEBUG port. So let us first start with the pinout. In short, it was exactly the same as the ZX-99EV3.

Update 2026-01-03
I now have a much, much better BIOS available, see this post. Overview and old deprecated BIOS can be downloaded from here, including a simple but practical PPT template.

—***—And then I could use my TL631 Pro debug card, which greatly simplified all further testing. After many, many hours of testing, I found that the JGINYUE X99-8D4/2.5G BIOS works perfectly on this board, and hence I could get a TPM up and running. Yes, I know, that is a dual socket board with a C612 chipset. But it does indeed work on the X99D3M4. No bugs or glitches observed in all my testing. And with this BIOS, RAM ECC functionality also work. Below is a picture of me testing all PCIe slots, with the TPM installed instead of the TL631 Pro debug card.

Changelog for “FIB_J9984402_250914.bin”

  1. Fixed the PCIe X4 slot, by setting “IIO 0” to “Auto ; x4x4x4x4 ; Auto”.
  2. Secure Boot and Resizeable Bar is enabled by default
  3. Modified the Smart Fan curve to have lower RPM when idling
  4. Default values enables CPU overclocking with for instance Throttlestop. This was verified on a ZX-99EV3 board, but I am 99.9% sure it works on for instance X99D4M4 as well
  5. Most importantly: Changed the startup logo

Notes on startup after flashing:

  • First there will be three short restarts
  • Then there will be a restart where it ultimately hangs (B7 debug code). Just power off and start again
  • And then the there will some beeps and a BIOS splash screen. Do not spam “Del” here, just let it continue. It will do yet another restart
  • Finally on the fifth(!) restart, you can enter the BIOS and load optimal defaults

Known bugs
None.

Next steps
The only remaining feature that I would personally value, would be to overclock the CPU directly from the BIOS on a DDR4 board. I may explore this in the future.

4 Likes

thank you sir, i download your bios and its work with ZX-99EV3 board, but i need somethink important, like ftpm in trusting computer, can u mod it so its have a ftpm and can use tpm 2.0 ? ZX-99EV3 board dont have a tpm module, so i think how to get tpm2.0 without tpm module

As far as I know, there is no and will never be an fTPM for older CPUs like on the X99 platform. Hence you need to add an external TPM module, and this is really the core thing done in this thread. I repeat: “The key contribution of this post is establishing a general methodology on how to find out an unknown JLPC/Debug pinout, so that a TPM module can be safely and correctly connected”. Please read the information provided. In short if you want to repeat what I did:

  • Buy a 20 pin TPM 2.0 module with 2.54mm pitch
  • Buy a pack of 10cm long 2.54mm female to male cables
  • First verify the pinout with a common digital multimeter, and then connect them according to the diagram provided
  • Enjoy your TPM 2.0 module

In the second post, you can see how I have the TPM module installed on my X99D3M4 board. Basically I use electrical vinyl tape to tape the TPM module underneath the motherboard.

can u give the pict of pin out ?, where should i search, and why can we just use pcie tpm module if have

You can start reading from this part

  • ZX-99EV3: Measuring voltage on the Debug pins

I have never ever heard of a TPM module that connects over PCIe. Can you provide a link to at least one manufacturer that sells such a thing? Are you saying you already have one?

1 Like

I just wonder if they have tpm with pcie, but i don’t this ITS exist

Why i have different version

Zx99ev 3 with rev 2.0 i have, but i don’t see debug, just USB and j .com 1

One piece of advice would be to ask clear questions like “are there TPM modules that connect over PCIe”, rather than “why can we just use pcie tpm module”.

Interesting. I know that previouslly there are 1.2x, 1.3x and 1.5x revisions. You are the first to ever mention that there is a 2.x revision of the ZX-99EV3 board. Can you share your own pictures of the board, especially the lower part? Then I might be able to tell you where to look for a potential JLPC/Debug header.

Okay sir thanks for correction,my English not really good, i Will give u a picture soon

This v1.5 but same port like 2.0![17584174103704767154600670613607|375x500]

1 Like

Thanks. I have some bad news. It seems that already back at the 1.31 revision, the Debug header was removed. Principally I think it is possible to de-solder the Dr. Debug post code indicator and connect there instead. But it is not something I would do personally. Much, much easier to just buy a board that has a dedicated TPM header from the factory.

1 Like

Oh no, thanks for information sir

An easier way to identify the pinout of JLPC1 header is to use continuity mode and compare against the legs of NCT5532D SuperIO chip. You can find it here: Распиновка LPC (JLPC1) китай плат x99 x79 / Электроника с Алиэкспресс (aliexpress) / Электроника (современная)

The only downside is that you cannot determine CLK pin using this method, so you will need to use of elimination (which can be tricky on boards with 1 unused pin, specifically Huananzhi X99-8M-F. Luckily we have the diagram for that in the above website)

I’m also contributing the JLPC1 layout of Jingsha motherboards I measured on my own:

1 CLK
2 LFRAME
3 3VCC
4 LAD3
5 LRESET
6 LAD2
7 GND
8 LAD1
10 LAD0

With what you’ve ascertained, I think there might even be the possibility of having TPM 2.0 on X79 boards (LGA 2011 and LGA 1356) since I’ve seen such boards with TPM 2.0 headers from Angxun brand.

3 Likes

Thanks for your contribution, comments and suggestions. I did indeed run across that page in my earlier research. X99-8M-F was mentioned in a great Brazilian forum, and therefore I searched further on the LPC pinout for it.

From my point of view, I do not find continuity testing easier than my suggested approach. If anything, I find it much, much harder. Why? Simply put, the pins are so small on the SuperIO chip. I would need a large magnifying glass, very small probes, and lots of time and patience to go this way.

So while my suggested method leaves 3 undetermined pins (LAD0, LAD1 and LAD3), it also means that there are in a worst case scenario 3!=6 combinations to try out. But most importantly: So far in all actual X99 pinouts that I have seen (including the Jingsha you added above), then the data pins are in 0-3 or 3-0 order. So this is why I use the term “qualified guessing”. It wasnt random that I got it 100% right on the first attempt on both the ZX-99EV3 and X99D3M4.

Which Angxun X79 board have you looked at? Just bought their X99-XD4 and it works really well (best X99 for the money without a doubt). Principally it should be possible to add functionality to any X79 board. Practically, I am not sure what you need to do on the BIOS side, but there could of course be a great short-cut with a related Angxun BIOS. I am primarily looking from a gaming perspective here. Something like an old but great 1680V2 can still be very usable in many titles, but modern anti-cheat is starting to require both Secure Boot and TPM module. Angxun has a decent amount of BIOS:es to download.

1 Like

I have noticed three LGA 2011 motherboards with TPM 2.0 header

  1. Angxun X79-VG5
  2. Angxun X79-VG6
  3. Jginyue X79M-G ARGB

Sadly their BIOSes are not available to download yet.

However there’s one LGA 1356 board (H61 chipset), also with TPM header

X79 v5.7

The BIOS is available on the Angxun BIOS download page (not the product page). I wonder if the BIOS transplant thing you did with MR9A BIOS would work.

1 Like

I had a quick look at the BIOS for X79-V5.7 and it looks promising. The required PEI and DXE modules for Secure Boot and TPM support are included, and its all there in the menu system. You also have an option for Resizable Bar, which would make this a very advanced X79 system. My X99-XD4 uses a standard MSI 14-pin TPM, looks like they went the same way with this board.

As long as you have an external programmer, you should be able to at least try swapping in just the BIOS region without any big risk (just take a backup first). The major thing I have noticed in recent Chinese boards is that they start to use other brands than Winbond for SPI flash. The Winbond flash operates at 3.3V but is 5V tolerant, which many other brands are not.

1 Like

Just tried X79-V5.7 BIOS region on my G218A (a pretty old X79 motherboard already) and I can confirm there’s the Trusted Computing menu in the BIOS. I haven’t had a TPM module at hand yet, but connecting a diagnostic card shows TPM2.0 Device Found somehow.


2 Likes

Excellent news, and I have updated the title of this thread accordingly, you now carry the X79 TPM torch! Is everything else working correctly, boots into OS and no strange behavior etc? Is for instance Secure Boot and/or Resizable Bar working?

On the X99 boards there are totally 3 different “Trusted Computing” menus that are conditional depending on TPM status. Seems there are only 2 menus in the X79-V5.7 BIOS, so you will probably see the second menu once you have a TPM connected. And I still recommend that you get the 2.54mm pitch, 20-pin TPM module for very easy installation. Best of luck, looking forward to your updates! :slight_smile:

1 Like

Hi, I have a Huananzhi X99-TF-Q motherboard. Do you know if there’s any BIOS modified that enables support for TPM 2.0 on that board?
I saw your guide and discussions; any pointers or references would be greatly appreciated.
Thanks!

Very interesting topic, I have an Asus X79-Deluxe with the TPM 2.0 Infineon SLB9665TT2.0 Module, however it is not recognized in the bios despite it being UEFI and having Secure Boot, I believe that if there is this advance it would help a lot, I am willing to test the bios or anything like that.