When installing TPM Firmware updates or updates that communicate through a TPM driver, the update may take longer depending on the TPM driver implementation.
Some TPM firmware updates send commands to the TPM from the Windows operating system. In Windows Vista and Windows Server 2008 the firmware update may send commands to the TPM Base Services (TBS) which sends each command to the Microsoft TPM driver. The Microsoft TPM driver sends each command to the TPM. On earlier operating systems like Windows XP, Microsoft does not provide a TPM driver, so the firmware updates may send commands directly to an non-Microsoft TPM driver. Microsoft recommends usage of the TBS and the Microsoft TPM driver on Windows Vista and Windows Server 2008, however, it is also possible for a firmware update on use a non-Microsoft TPM driver on these operating systems too.
While communicating with the TPM hardware, the Microsoft TPM driver thread may briefly sleep while waiting for the TPM hardware to respond. Having the TPM driver sleep reduces CPU usage which improves the responsiveness of other processes running on the computer or may reduce system power consumption. When the Microsoft TPM driver thread sleeps it may not be scheduled again until after the TPM hardware has responded, increasing the total command duration by the time the TPM hardware responded until the Microsoft TPM driver thread was scheduled. Non-Microsoft TPM drivers may not sleep when communicating with the TPM hardware resulting in a shorter total command duration at the cost of using more system resources.
If a TPM firmware update involves sending a large number of commands through a TPM driver, different implementations of the TPM driver will impact the total time for the firmware update to complete. Due to design trade-offs between speed and the balancing of system resources, a firmware update using the Microsoft TPM driver may take longer than a firmware update using a non-Microsoft TPM driver.