[tpm2] Re: Installing on FreeBSD?

John Connett <jrc at skylon.me.uk> Tue, 05 Apr 2022 18:03:15 +0100
Newsgroups dev.linux.lists.tpm2
Message-ID <[email protected]>
On 04/04/2022 15:42, Tadeusz Struk wrote:

> On 4/4/22 03:50, John Connett wrote:
>> I have built a debug kernel and am attempting to debug the tpm 
>> module. However, the tpm dtrace probes and symbols are not available 
>> until "kldload tpm" has run by which time the ENXIO error has occurred.
>>
>> I could pepper the tpm driver code with kernel printf calls but was 
>> wondering if there is an eaier way?
>
> There are only two spots where I would suspect it to fail and return 
> ENXIO
> from attach. One is on tpmcrb_request_locality():
> https://github.com/freebsd/freebsd-src/blob/main/sys/dev/tpm/tpm_crb.c#L171

It's ths one! I added a printf to output the value of "timeout" at:
https://github.com/freebsd/freebsd-src/blob/main/sys/dev/tpm/tpm_crb.c#L259

It counts down until timeout <= 0 (in steps of 10000) then ENXIO is 
returned.

I've had a quick look at:
https://trustedcomputinggroup.org/wp-content/uploads/Mobile-Command-Response-Buffer-Interface-v2-r12-Specification_FINAL2.pdf

If polling isn't working perhaps interrupt control or some other form of 
notification is required?

Is there anything I could dig out of the control structures that would 
help identify the problem?

Thanks
--
John
OpenPGP_0x8F3115112EB8DB54.asc (application/pgp-keys, 2.1 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
rA==
=DCrz
-----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.sig (application/pgp-signature, 495 B) - not displayed