Simon Newton has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/32080 )
Change subject: mainboard/asus/p8h61-m_pro : Support TPM module ......................................................................
Patch Set 3:
Patch Set 3:
(6 comments)
Patch Set 3:
I don't have a TPM to test this change with :(
I don't recall if some genX_dec settings for TPM are missing or not, though.
Heres the serial output for the 1.2
lpc_tpm: Read reg 0xf00 returns 0xb15d1 Found TPM SLB9635 TT 1.2 by Infineon lpc_tpm: Read reg 0x0 returns 0x81 lpc_tpm: Write reg 0x0 with 0x2 lpc_tpm: Read reg 0x0 returns 0xa1 lpc_tpm: Write reg 0x18 with 0x40 lpc_tpm: Read reg 0x18 returns 0x40 TPM: Startup lpc_tpm: Read reg 0x18 returns 0x40 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0xc1 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0xc lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x99 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x1 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x20 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0xc4 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0xa lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x2 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x40 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x40 lpc_tpm: Read reg 0x18 returns 0x40 TPM: command 0x99 returned 0x0 TPM: Asserting physical presence lpc_tpm: Read reg 0x18 returns 0x40 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0xc1 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0xc lpc_tpm: Write reg 0x18 with 0x40 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0xa lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x8 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x20 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0xc4 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0xa lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x2 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x40 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x40 lpc_tpm: Read reg 0x18 returns 0x40 TPM: command 0x4000000a returned 0x0 lpc_tpm: Read reg 0x18 returns 0x40 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0xc1 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x16 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x65 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x4 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x4 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x0 lpc_tpm: Write reg 0x18 with 0x1 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x18 returns 0x88 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Write reg 0x18 with 0x8 lpc_tpm: Read reg 0x18 returns 0x8 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x20 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0xc4 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x24 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x16 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x1f lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x1 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x1 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x1 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x8 lpc_tpm: Read reg 0x24 returns 0x1 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x1 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x18 returns 0x90 lpc_tpm: Read reg 0x19 returns 0x4 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x24 returns 0x0 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x40 lpc_tpm: Read reg 0x18 returns 0x80 lpc_tpm: Write reg 0x18 with 0x40 lpc_tpm: Read reg 0x18 returns 0x40 TPM: command 0x65 returned 0x0 TPM: flags disable=0, deactivated=0, nvlocked=1 TPM: setup succeeded
In Fedora the device is present
$dmesg | grep tpm [ 4.403095] tpm_tis 00:06: 1.2 TPM (device-id 0xB, revid 16)
Further testing of 1.2
[root@localhost-live liveuser]# dmesg | grep -i tpm [ 4.403600] tpm_tis 00:06: 1.2 TPM (device-id 0xB, rev-id 16) [root@localhost-live liveuser]# systemctl start tcsd [root@localhost-live liveuser]# tpm_version TPM 1.2 Version Info: Chip Version: 1.2.3.19 Spec Level: 2 Errata Revision: 2 TPM Vendor ID: IFX Vendor Specific data: 0313000b 00 TPM Version: 01010000 Manufacturer Info: 49465800 [root@localhost-live liveuser]# tpm_takeownership Enter owner password: Confirm password: Enter SRK password: Confirm password: [root@localhost-live liveuser]# tpm_selftest TPM Test Results: bfbff5bf ff8f [root@localhost-live liveuser]# tpm_clear Enter owner password: TPM Successfuly Cleared. You need to reboot to complete this operation. After reboot the TPM will be in the default state: unowned, disabled and inactive.