Issue #433 has been updated by Maciej Pijanowski.
Sergii Dmytruk wrote in #note-3:
Add an option to compile all drivers for TPM 1.2, 2.0 TIS and CRB.
An option like "compile all of them" or just allow selecting any subset of the drivers?
I'd say select which drivers to include. Currently, one can include only one IIUC. There would be no point in including driver if we know that given platform will never come with given set of TPMs.
For example, we have a laptop which can use either discrete TPM 2.0 or fTPM. We could give user selection which TPM should be used. Or, for example, use fTPM if discrete TPM 2.0 module is not present. Etc.
---------------------------------------- Feature #433: Unify TPM drivers in coreboot https://ticket.coreboot.org/issues/433#change-1226
* Author: Michał Żygowski * Status: New * Priority: Normal * Target version: none * Start date: 2022-10-24 ---------------------------------------- Add an option to compile all drivers for TPM 1.2, 2.0 TIS and CRB. The motivation is to not build multiple coreboot ROMs for each possible TPM supported by the platform.
The tasks would include: - runtime TPM detection (probing TPM_INTF_CAPABILITY and TPM_INTERFACE_ID) - rename the TPM driver functions, make them static and expose them as a driver structure, e.g.
struct tpm_driver { void (*init)(void); int (*open)(void); int (*close)(void); int (*sendrecv)(const uint8_t *sendbuf, size_t send_size, uint8_t *recvbuf, size_t *recv_len); }
- based on the detected TPM, hook the tpm_driver functions to provide the global TPM API: tis_open, tis_close, tis_init, tis_sendrecv. Some additional API to get vendor/device name could also be considered.