The ASRock H170M Pro4 motherboard features a TPMS1
header with an unusual 17-pin (9x2 with one missing) configuration. Here's the pinout breakdown from the manual:
Bottom Row (left to right):
1. PCICLK
2. FRAME
3. PCIRST#
4. LAD3
5. +3V
6. LAD0
7. [NO PIN]
8. +3VSB
9. GND
Top Row (left to right):
10. GND
11. SMB_CLK_MAIN
12. SMB_DATA_MAIN
13. LAD2
14. LAD1
15. GND
16. S_WRDWN#
17. SERIRQ
18. GND
ASRock offers three distinct TPM module variants:
- TPM-S Module (v1.2): Legacy TPM 1.2 implementation
- TPM-S Module (v2.0): Updated version with same physical interface
- TPM2-S Module (v2.0): Newer design with potential pinout differences
The confusion stems from different TPM implementations:
- 14-pin modules: Typically use LPC bus interface with reduced pin count
- 20-pin modules: Often include additional power/reset lines for enhanced functionality
- 17-pin (ASRock): Custom implementation with specific features:
- Dedicated SMBus (pins 11-12) for system management
- Separate 3V and 3VSB power rails
To programmatically verify TPM capabilities on Linux:
# Check TPM device presence
ls /dev/tpm*
# Get TPM version information
sudo tpm2_getcap properties-fixed
# Alternative check for TPM 1.2
sudo tpm_version
This C code snippet demonstrates low-level LPC bus communication that the TPM header uses:
#include
#include
#include
#define TPM_BASE_ADDR 0xFED40000
int tpm_read(uint32_t offset, uint8_t *data, size_t len) {
int fd = open("/dev/mem", O_RDWR);
void *map = mmap(0, len, PROT_READ, MAP_SHARED, fd, TPM_BASE_ADDR + offset);
memcpy(data, map, len);
munmap(map, len);
close(fd);
return 0;
}
When choosing a TPM module for this motherboard:
- Verify physical pin compatibility (17-pin with specific missing pin)
- Check ASRock's QVL for tested modules
- Consider Windows 11 requirements (mandates TPM 2.0)
- For Linux systems, confirm kernel module support
If encountering detection problems:
- Verify +3VSB (standby power) is present
- Check LPC bus termination resistors
- Confirm BIOS settings enable TPM (often under Security settings)
- Update to latest UEFI firmware
The ASRock H170M Pro4 motherboard features a TPMS1
header with an unusual 17-pin (9x2 with one missing) configuration. This differs from the more common 14+1 or 20-pin TPM headers seen elsewhere. Here's the pinout breakdown from the manual:
Bottom row (left to right):
1. PCICLK
2. FRAME
3. PCIRST#
4. LAD3
5. +3V
6. LAD0
7. (No pin)
8. +3VSB
9. GND
Top row (left to right):
10. GND
11. SMB_CLK_MAIN
12. SMB_DATA_MAIN
13. LAD2
14. LAD1
15. GND
16. S_WRDWN#
17. SERIRQ
18. GND
ASRock offers three distinct TPM modules for different security requirements:
- TPM-S Module (v1.2): Legacy TPM implementation using LPC bus
- TPM-S Module (v2.0): Updated version maintaining the same physical interface
- TPM2-S Module (v2.0): Alternative implementation with potential firmware differences
When working with TPM modules on this motherboard, consider these technical details:
// Example code to check TPM status in Linux
#include <stdio.h>
#include <tss2/tss2_tpm2_types.h>
int main() {
TSS2_RC rc;
TSS2_SYS_CONTEXT *sysContext;
// Initialize TPM communication
rc = Tss2_Sys_Initialize(sysContext);
if (rc != TSS2_RC_SUCCESS) {
printf("TPM initialization failed: 0x%x\n", rc);
return 1;
}
// Check TPM version
TPM2_CAPABILITY capability;
rc = Tss2_Sys_GetCapability(sysContext,
TPM2_CAP_TPM_PROPERTIES,
TPM2_PT_FAMILY_INDICATOR,
1,
&capability);
if (rc == TSS2_RC_SUCCESS) {
printf("TPM version: %d.%d\n",
(capability.data.tpmProperties.tpmProperty[0].value >> 16) & 0xFF,
capability.data.tpmProperties.tpmProperty[0].value & 0xFF);
}
Tss2_Sys_Finalize(sysContext);
return 0;
}
The non-standard pin configuration presents these considerations:
- Power delivery: Uses both +3V and +3VSB (standby power)
- Bus interface: Utilizes LPC (Low Pin Count) bus signals
- Missing pin: Pin 7 is intentionally omitted for keying
For Windows systems, verify TPM status with PowerShell:
# Check TPM version and status
Get-Tpm | Select-Object -Property TpmPresent, TpmReady, TpmVersion
# Detailed TPM information
tpmtool getdeviceinformation