Software Archive
Read-only legacy content
17061 Discussions

Accessing SMX/TPM registers in Windows

joseph1731
Beginner
984 Views
I would like to do a measured launch in Windows.I have a Dell Optiplex 755 with TXT/VT-x/VT-d and the TPM enabled from BIOS. Also, I've installed the manufacturer drivers for the TPM and Q35 chipset. The VMX instructions work correctly as well as GETSEC. The GETSEC[CAPABILITIES] reports a compatible chipset. I can't, however, access the SMX or TPM registers.

According to the documentation, the SMX registers are memory mapped to 0xFED20000 - FED3FFFF and the TPM registers are mapped to 0xFED40000 - 0xFED4FFFF. These regions are listed as allocated resources in the Device Manager application, so the system is finding them.

I've tried read/writes tothe public SMX regs(0xFED30000)in assembly and the READ_REGISTER_XXX macros. Neither work. Even windbg can see anything in these ranges. What am I doing wrong? How do I access the SMX registers?

Thank you,

Joseph
0 Kudos
1 Reply
David_O_Intel1
Employee
984 Views
You should be able to read the TXT public space registers (0xfed3xxxx) from a driver once you map them into your address space. I havent tried this under Windows myself, but I know of others who have.

In the case of the TPM, if you have a driver loaded then that may be preventing your access.

When you say that you are not able to read the registers, what exactly is the failure?


0 Kudos
Reply