@@ -1428,12 +1444,22 @@ void acpi_build(PcGuestInfo *guest_info,
AcpiBuildTables *tables)
acpi_add_table(table_offsets, tables_blob);
build_hpet(tables_blob, tables->linker);
}
- if (misc.has_tpm) {
+ if (misc.tpm_version != TPMVersion_Unspec) {
acpi_add_table(table_offsets, tables_blob);
build_tpm_tcpa(tables_blob, tables->linker, tables->tcpalog);
acpi_add_table(table_offsets, tables_blob);
- build_tpm_ssdt(tables_blob, tables->linker);
+ switch (misc.tpm_version) {
+ case TPMVersion1_2:
+ build_tpm_ssdt(tables_blob, tables->linker);
+ break;
+ case TPMVersion2_0:
+ build_tpm2(tables_blob, tables->linker);
+ break;
+ case TPMVersion_Unspec:
+ /* not possible */
+ break;
+ }
}
if (guest_info->numa_nodes) {
acpi_add_table(table_offsets, tables_blob);