* [PATCH v6 0/3] vTPM/aarch64 ACPI support @ 2020-06-19 14:18 Eric Auger 2020-06-19 14:18 ` [PATCH v6 1/3] acpi: Some build_tpm2() code reshape Eric Auger ` (3 more replies) 0 siblings, 4 replies; 13+ messages in thread From: Eric Auger @ 2020-06-19 14:18 UTC (permalink / raw) To: eric.auger.pro, eric.auger, stefanb, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb Those patches bring MMIO TPM TIS ACPI support in machvirt. On ARM, the TPM2 table is added when the TPM TIS sysbus device is dynamically instantiated in machvirt. Also the TPM2 device object is described in the DSDT. Many thanks to Ard for his support. Tested with LUKS partition automatic decryption. Also tested with new bios-tables-test dedicated tests, sent separately. Best Regards Eric This series can be found at: https://github.com/eauger/qemu/tree/v5.0-tpm-acpi-v6 History: v5 -> v6: - added reference to the spec - add some comments about LAML and LASA fields which are strangely undocumented in the spec for TPM2.0. So I kept the decision to keep the Acpi20TPM2 struct for documentation purpose. v4 -> v5: - Move of build_tpm2() in the generic acpi code was upstreamed but this does not correspond to latest proposed version. - Rebase on top of edfcb1f21a v3 -> v4: - some rework in build_tpm2() as suggested by Igor - Restored tpm presence check in acpi_dsdt_add_tpm() - add the doc related patch v2 -> v3: - Rebase on top of Stefan's "acpi: tpm: Do not build TCPA table for TPM 2" - brings conversion to build_append v1 -> v2: - move build_tpm2() in the generic code (Michael) - collect Stefan's R-b on 3/3 Eric Auger (3): acpi: Some build_tpm2() code reshape arm/acpi: Add the TPM2.0 device under the DSDT docs/specs/tpm: ACPI boot now supported for TPM/ARM docs/specs/tpm.rst | 2 -- hw/acpi/aml-build.c | 54 ++++++++++++++++++++++++++-------------- hw/arm/virt-acpi-build.c | 34 +++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 21 deletions(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 1/3] acpi: Some build_tpm2() code reshape 2020-06-19 14:18 [PATCH v6 0/3] vTPM/aarch64 ACPI support Eric Auger @ 2020-06-19 14:18 ` Eric Auger 2020-06-19 15:07 ` Stefan Berger ` (2 more replies) 2020-06-19 14:18 ` [PATCH v6 2/3] arm/acpi: Add the TPM2.0 device under the DSDT Eric Auger ` (2 subsequent siblings) 3 siblings, 3 replies; 13+ messages in thread From: Eric Auger @ 2020-06-19 14:18 UTC (permalink / raw) To: eric.auger.pro, eric.auger, stefanb, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb Remove any reference to Acpi20TPM2 and adopt an implementation similar to build_ghes_v2(). Signed-off-by: Eric Auger <eric.auger@redhat.com> Suggested-by: Igor Mammedov <imammedo@redhat.com> --- v5 -> v6: - add reference to the spec + comment about LAML and LASA fields - also moved LASA intro comment above build_append_int_noprefix() as requested by Igor --- hw/acpi/aml-build.c | 54 +++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 2cb7b991ef..1cc08a3eb9 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -1878,48 +1878,64 @@ build_hdr: "FACP", tbl->len - fadt_start, f->rev, oem_id, oem_table_id); } +/* + * build_tpm2 - Build the TPM2 table as specified in table 7 of + * "TCG ACPI Specification; Family 1.2 and 2.0; + * Level 00 Revision 00.37, December 19, 2014" + * Note: the LASA and LAML fields are optional for TPM-2.0 (the above + * table does not mention them) but are needed at least for SeaBIOS. + * See the Acpi20TPM2 struct for the corresponding layout. + */ void build_tpm2(GArray *table_data, BIOSLinker *linker, GArray *tcpalog) { - Acpi20TPM2 *tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); - unsigned log_addr_size = sizeof(tpm2_ptr->log_area_start_address); - unsigned log_addr_offset = - (char *)&tpm2_ptr->log_area_start_address - table_data->data; uint8_t start_method_params[12] = {}; + unsigned log_addr_offset, tpm2_start; + uint64_t control_area_start_address; TPMIf *tpmif = tpm_find(); + uint32_t start_method; + void *tpm2_ptr; - /* platform class */ + tpm2_start = table_data->len; + tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); + + /* Platform Class */ build_append_int_noprefix(table_data, TPM2_ACPI_CLASS_CLIENT, 2); - /* reserved */ + /* Reserved */ build_append_int_noprefix(table_data, 0, 2); if (TPM_IS_TIS_ISA(tpmif) || TPM_IS_TIS_SYSBUS(tpmif)) { - /* address of control area */ - build_append_int_noprefix(table_data, 0, 8); - /* start method */ - build_append_int_noprefix(table_data, TPM2_START_METHOD_MMIO, 4); + control_area_start_address = 0; + start_method = TPM2_START_METHOD_MMIO; } else if (TPM_IS_CRB(tpmif)) { - build_append_int_noprefix(table_data, TPM_CRB_ADDR_CTRL, 8); - build_append_int_noprefix(table_data, TPM2_START_METHOD_CRB, 4); + control_area_start_address = TPM_CRB_ADDR_CTRL; + start_method = TPM2_START_METHOD_CRB; } else { - g_warn_if_reached(); + g_assert_not_reached(); } + /* Address of Control Area */ + build_append_int_noprefix(table_data, control_area_start_address, 8); + /* Start Method */ + build_append_int_noprefix(table_data, start_method, 4); - /* platform specific parameters */ - g_array_append_vals(table_data, &start_method_params, 12); + /* Platform Specific Parameters */ + g_array_append_vals(table_data, &start_method_params, + ARRAY_SIZE(start_method_params)); - /* log area minimum length */ + /* Log Area Minimum Length */ build_append_int_noprefix(table_data, TPM_LOG_AREA_MINIMUM_SIZE, 4); acpi_data_push(tcpalog, TPM_LOG_AREA_MINIMUM_SIZE); bios_linker_loader_alloc(linker, ACPI_BUILD_TPMLOG_FILE, tcpalog, 1, false); - /* log area start address to be filled by Guest linker */ + log_addr_offset = table_data->len; + + /* Log Area Start Address to be filled by Guest linker */ build_append_int_noprefix(table_data, 0, 8); bios_linker_loader_add_pointer(linker, ACPI_BUILD_TABLE_FILE, - log_addr_offset, log_addr_size, + log_addr_offset, 8, ACPI_BUILD_TPMLOG_FILE, 0); build_header(linker, table_data, - (void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, NULL, NULL); + tpm2_ptr, "TPM2", table_data->len - tpm2_start, 4, NULL, NULL); } /* ACPI 5.0: 6.4.3.8.2 Serial Bus Connection Descriptors */ -- 2.20.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v6 1/3] acpi: Some build_tpm2() code reshape 2020-06-19 14:18 ` [PATCH v6 1/3] acpi: Some build_tpm2() code reshape Eric Auger @ 2020-06-19 15:07 ` Stefan Berger 2020-06-19 15:34 ` Auger Eric 2020-06-19 16:09 ` Stefan Berger 2020-06-22 12:51 ` Igor Mammedov 2 siblings, 1 reply; 13+ messages in thread From: Stefan Berger @ 2020-06-19 15:07 UTC (permalink / raw) To: Eric Auger, eric.auger.pro, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb On 6/19/20 10:18 AM, Eric Auger wrote: > Remove any reference to Acpi20TPM2 and adopt an implementation > similar to build_ghes_v2(). > > Signed-off-by: Eric Auger <eric.auger@redhat.com> > Suggested-by: Igor Mammedov <imammedo@redhat.com> > > --- > > v5 -> v6: > - add reference to the spec + comment about LAML and LASA fields > - also moved LASA intro comment above build_append_int_noprefix() > as requested by Igor > --- > hw/acpi/aml-build.c | 54 +++++++++++++++++++++++++++++---------------- > 1 file changed, 35 insertions(+), 19 deletions(-) > > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c > index 2cb7b991ef..1cc08a3eb9 100644 > --- a/hw/acpi/aml-build.c > +++ b/hw/acpi/aml-build.c > @@ -1878,48 +1878,64 @@ build_hdr: > "FACP", tbl->len - fadt_start, f->rev, oem_id, oem_table_id); > } > > +/* > + * build_tpm2 - Build the TPM2 table as specified in table 7 of > + * "TCG ACPI Specification; Family 1.2 and 2.0; > + * Level 00 Revision 00.37, December 19, 2014" > + * Note: the LASA and LAML fields are optional for TPM-2.0 (the above > + * table does not mention them) but are needed at least for SeaBIOS. > + * See the Acpi20TPM2 struct for the corresponding layout. > + */ > void build_tpm2(GArray *table_data, BIOSLinker *linker, GArray *tcpalog) > { > - Acpi20TPM2 *tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); > - unsigned log_addr_size = sizeof(tpm2_ptr->log_area_start_address); > - unsigned log_addr_offset = > - (char *)&tpm2_ptr->log_area_start_address - table_data->data; > uint8_t start_method_params[12] = {}; > + unsigned log_addr_offset, tpm2_start; > + uint64_t control_area_start_address; > TPMIf *tpmif = tpm_find(); > + uint32_t start_method; > + void *tpm2_ptr; > > - /* platform class */ > + tpm2_start = table_data->len; > + tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); > + > + /* Platform Class */ > build_append_int_noprefix(table_data, TPM2_ACPI_CLASS_CLIENT, 2); > - /* reserved */ > + /* Reserved */ > build_append_int_noprefix(table_data, 0, 2); > if (TPM_IS_TIS_ISA(tpmif) || TPM_IS_TIS_SYSBUS(tpmif)) { > - /* address of control area */ > - build_append_int_noprefix(table_data, 0, 8); > - /* start method */ > - build_append_int_noprefix(table_data, TPM2_START_METHOD_MMIO, 4); > + control_area_start_address = 0; > + start_method = TPM2_START_METHOD_MMIO; > } else if (TPM_IS_CRB(tpmif)) { > - build_append_int_noprefix(table_data, TPM_CRB_ADDR_CTRL, 8); > - build_append_int_noprefix(table_data, TPM2_START_METHOD_CRB, 4); > + control_area_start_address = TPM_CRB_ADDR_CTRL; > + start_method = TPM2_START_METHOD_CRB; > } else { > - g_warn_if_reached(); > + g_assert_not_reached(); > } > + /* Address of Control Area */ > + build_append_int_noprefix(table_data, control_area_start_address, 8); > + /* Start Method */ > + build_append_int_noprefix(table_data, start_method, 4); > > - /* platform specific parameters */ > - g_array_append_vals(table_data, &start_method_params, 12); > + /* Platform Specific Parameters */ > + g_array_append_vals(table_data, &start_method_params, > + ARRAY_SIZE(start_method_params)); > > - /* log area minimum length */ > + /* Log Area Minimum Length */ > build_append_int_noprefix(table_data, TPM_LOG_AREA_MINIMUM_SIZE, 4); > > acpi_data_push(tcpalog, TPM_LOG_AREA_MINIMUM_SIZE); > bios_linker_loader_alloc(linker, ACPI_BUILD_TPMLOG_FILE, tcpalog, 1, > false); > > - /* log area start address to be filled by Guest linker */ > + log_addr_offset = table_data->len; > + Don't have to subtract tpm2_start from it ? > + /* Log Area Start Address to be filled by Guest linker */ > build_append_int_noprefix(table_data, 0, 8); > bios_linker_loader_add_pointer(linker, ACPI_BUILD_TABLE_FILE, > - log_addr_offset, log_addr_size, > + log_addr_offset, 8, > ACPI_BUILD_TPMLOG_FILE, 0); > build_header(linker, table_data, > - (void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, NULL, NULL); > + tpm2_ptr, "TPM2", table_data->len - tpm2_start, 4, NULL, NULL); > } > > /* ACPI 5.0: 6.4.3.8.2 Serial Bus Connection Descriptors */ ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 1/3] acpi: Some build_tpm2() code reshape 2020-06-19 15:07 ` Stefan Berger @ 2020-06-19 15:34 ` Auger Eric 0 siblings, 0 replies; 13+ messages in thread From: Auger Eric @ 2020-06-19 15:34 UTC (permalink / raw) To: Stefan Berger, eric.auger.pro, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb Hi Stefan, On 6/19/20 5:07 PM, Stefan Berger wrote: > On 6/19/20 10:18 AM, Eric Auger wrote: >> Remove any reference to Acpi20TPM2 and adopt an implementation >> similar to build_ghes_v2(). >> >> Signed-off-by: Eric Auger <eric.auger@redhat.com> >> Suggested-by: Igor Mammedov <imammedo@redhat.com> >> >> --- >> >> v5 -> v6: >> - add reference to the spec + comment about LAML and LASA fields >> - also moved LASA intro comment above build_append_int_noprefix() >> as requested by Igor >> --- >> hw/acpi/aml-build.c | 54 +++++++++++++++++++++++++++++---------------- >> 1 file changed, 35 insertions(+), 19 deletions(-) >> >> diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c >> index 2cb7b991ef..1cc08a3eb9 100644 >> --- a/hw/acpi/aml-build.c >> +++ b/hw/acpi/aml-build.c >> @@ -1878,48 +1878,64 @@ build_hdr: >> "FACP", tbl->len - fadt_start, f->rev, oem_id, >> oem_table_id); >> } >> +/* >> + * build_tpm2 - Build the TPM2 table as specified in table 7 of >> + * "TCG ACPI Specification; Family 1.2 and 2.0; >> + * Level 00 Revision 00.37, December 19, 2014" >> + * Note: the LASA and LAML fields are optional for TPM-2.0 (the above >> + * table does not mention them) but are needed at least for SeaBIOS. >> + * See the Acpi20TPM2 struct for the corresponding layout. >> + */ >> void build_tpm2(GArray *table_data, BIOSLinker *linker, GArray >> *tcpalog) >> { >> - Acpi20TPM2 *tpm2_ptr = acpi_data_push(table_data, >> sizeof(AcpiTableHeader)); >> - unsigned log_addr_size = sizeof(tpm2_ptr->log_area_start_address); >> - unsigned log_addr_offset = >> - (char *)&tpm2_ptr->log_area_start_address - table_data->data; >> uint8_t start_method_params[12] = {}; >> + unsigned log_addr_offset, tpm2_start; >> + uint64_t control_area_start_address; >> TPMIf *tpmif = tpm_find(); >> + uint32_t start_method; >> + void *tpm2_ptr; >> - /* platform class */ >> + tpm2_start = table_data->len; >> + tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); >> + >> + /* Platform Class */ >> build_append_int_noprefix(table_data, TPM2_ACPI_CLASS_CLIENT, 2); >> - /* reserved */ >> + /* Reserved */ >> build_append_int_noprefix(table_data, 0, 2); >> if (TPM_IS_TIS_ISA(tpmif) || TPM_IS_TIS_SYSBUS(tpmif)) { >> - /* address of control area */ >> - build_append_int_noprefix(table_data, 0, 8); >> - /* start method */ >> - build_append_int_noprefix(table_data, TPM2_START_METHOD_MMIO, >> 4); >> + control_area_start_address = 0; >> + start_method = TPM2_START_METHOD_MMIO; >> } else if (TPM_IS_CRB(tpmif)) { >> - build_append_int_noprefix(table_data, TPM_CRB_ADDR_CTRL, 8); >> - build_append_int_noprefix(table_data, TPM2_START_METHOD_CRB, 4); >> + control_area_start_address = TPM_CRB_ADDR_CTRL; >> + start_method = TPM2_START_METHOD_CRB; >> } else { >> - g_warn_if_reached(); >> + g_assert_not_reached(); >> } >> + /* Address of Control Area */ >> + build_append_int_noprefix(table_data, control_area_start_address, >> 8); >> + /* Start Method */ >> + build_append_int_noprefix(table_data, start_method, 4); >> - /* platform specific parameters */ >> - g_array_append_vals(table_data, &start_method_params, 12); >> + /* Platform Specific Parameters */ >> + g_array_append_vals(table_data, &start_method_params, >> + ARRAY_SIZE(start_method_params)); >> - /* log area minimum length */ >> + /* Log Area Minimum Length */ >> build_append_int_noprefix(table_data, TPM_LOG_AREA_MINIMUM_SIZE, >> 4); >> acpi_data_push(tcpalog, TPM_LOG_AREA_MINIMUM_SIZE); >> bios_linker_loader_alloc(linker, ACPI_BUILD_TPMLOG_FILE, >> tcpalog, 1, >> false); >> - /* log area start address to be filled by Guest linker */ >> + log_addr_offset = table_data->len; >> + > > Don't have to subtract tpm2_start from it ? no that's the absolute offset. It was unsigned log_addr_offset = (char *)&tpm2_ptr->log_area_start_address - table_data->data; Thanks Eric > > >> + /* Log Area Start Address to be filled by Guest linker */ >> build_append_int_noprefix(table_data, 0, 8); >> bios_linker_loader_add_pointer(linker, ACPI_BUILD_TABLE_FILE, >> - log_addr_offset, log_addr_size, >> + log_addr_offset, 8, >> ACPI_BUILD_TPMLOG_FILE, 0); >> build_header(linker, table_data, >> - (void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, >> NULL, NULL); >> + tpm2_ptr, "TPM2", table_data->len - tpm2_start, 4, >> NULL, NULL); >> } >> /* ACPI 5.0: 6.4.3.8.2 Serial Bus Connection Descriptors */ > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 1/3] acpi: Some build_tpm2() code reshape 2020-06-19 14:18 ` [PATCH v6 1/3] acpi: Some build_tpm2() code reshape Eric Auger 2020-06-19 15:07 ` Stefan Berger @ 2020-06-19 16:09 ` Stefan Berger 2020-06-19 16:14 ` Auger Eric 2020-06-22 12:51 ` Igor Mammedov 2 siblings, 1 reply; 13+ messages in thread From: Stefan Berger @ 2020-06-19 16:09 UTC (permalink / raw) To: Eric Auger, eric.auger.pro, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb On 6/19/20 10:18 AM, Eric Auger wrote: > Remove any reference to Acpi20TPM2 and adopt an implementation > similar to build_ghes_v2(). > > Signed-off-by: Eric Auger <eric.auger@redhat.com> > Suggested-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> Tested-by: Stefan Berger <stefanb@linux.ibm.com> > > --- > > v5 -> v6: > - add reference to the spec + comment about LAML and LASA fields > - also moved LASA intro comment above build_append_int_noprefix() > as requested by Igor > --- > hw/acpi/aml-build.c | 54 +++++++++++++++++++++++++++++---------------- > 1 file changed, 35 insertions(+), 19 deletions(-) > > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c > index 2cb7b991ef..1cc08a3eb9 100644 > --- a/hw/acpi/aml-build.c > +++ b/hw/acpi/aml-build.c > @@ -1878,48 +1878,64 @@ build_hdr: > "FACP", tbl->len - fadt_start, f->rev, oem_id, oem_table_id); > } > > +/* > + * build_tpm2 - Build the TPM2 table as specified in table 7 of > + * "TCG ACPI Specification; Family 1.2 and 2.0; > + * Level 00 Revision 00.37, December 19, 2014" > + * Note: the LASA and LAML fields are optional for TPM-2.0 (the above > + * table does not mention them) but are needed at least for SeaBIOS. > + * See the Acpi20TPM2 struct for the corresponding layout. > + */ > void build_tpm2(GArray *table_data, BIOSLinker *linker, GArray *tcpalog) > { > - Acpi20TPM2 *tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); > - unsigned log_addr_size = sizeof(tpm2_ptr->log_area_start_address); > - unsigned log_addr_offset = > - (char *)&tpm2_ptr->log_area_start_address - table_data->data; > uint8_t start_method_params[12] = {}; > + unsigned log_addr_offset, tpm2_start; > + uint64_t control_area_start_address; > TPMIf *tpmif = tpm_find(); > + uint32_t start_method; > + void *tpm2_ptr; > > - /* platform class */ > + tpm2_start = table_data->len; > + tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); > + > + /* Platform Class */ > build_append_int_noprefix(table_data, TPM2_ACPI_CLASS_CLIENT, 2); > - /* reserved */ > + /* Reserved */ > build_append_int_noprefix(table_data, 0, 2); > if (TPM_IS_TIS_ISA(tpmif) || TPM_IS_TIS_SYSBUS(tpmif)) { > - /* address of control area */ > - build_append_int_noprefix(table_data, 0, 8); > - /* start method */ > - build_append_int_noprefix(table_data, TPM2_START_METHOD_MMIO, 4); > + control_area_start_address = 0; > + start_method = TPM2_START_METHOD_MMIO; > } else if (TPM_IS_CRB(tpmif)) { > - build_append_int_noprefix(table_data, TPM_CRB_ADDR_CTRL, 8); > - build_append_int_noprefix(table_data, TPM2_START_METHOD_CRB, 4); > + control_area_start_address = TPM_CRB_ADDR_CTRL; > + start_method = TPM2_START_METHOD_CRB; > } else { > - g_warn_if_reached(); > + g_assert_not_reached(); > } > + /* Address of Control Area */ > + build_append_int_noprefix(table_data, control_area_start_address, 8); > + /* Start Method */ > + build_append_int_noprefix(table_data, start_method, 4); > > - /* platform specific parameters */ > - g_array_append_vals(table_data, &start_method_params, 12); > + /* Platform Specific Parameters */ > + g_array_append_vals(table_data, &start_method_params, > + ARRAY_SIZE(start_method_params)); > > - /* log area minimum length */ > + /* Log Area Minimum Length */ > build_append_int_noprefix(table_data, TPM_LOG_AREA_MINIMUM_SIZE, 4); > > acpi_data_push(tcpalog, TPM_LOG_AREA_MINIMUM_SIZE); > bios_linker_loader_alloc(linker, ACPI_BUILD_TPMLOG_FILE, tcpalog, 1, > false); > > - /* log area start address to be filled by Guest linker */ > + log_addr_offset = table_data->len; > + > + /* Log Area Start Address to be filled by Guest linker */ > build_append_int_noprefix(table_data, 0, 8); > bios_linker_loader_add_pointer(linker, ACPI_BUILD_TABLE_FILE, > - log_addr_offset, log_addr_size, > + log_addr_offset, 8, > ACPI_BUILD_TPMLOG_FILE, 0); > build_header(linker, table_data, > - (void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, NULL, NULL); > + tpm2_ptr, "TPM2", table_data->len - tpm2_start, 4, NULL, NULL); > } > > /* ACPI 5.0: 6.4.3.8.2 Serial Bus Connection Descriptors */ ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 1/3] acpi: Some build_tpm2() code reshape 2020-06-19 16:09 ` Stefan Berger @ 2020-06-19 16:14 ` Auger Eric 0 siblings, 0 replies; 13+ messages in thread From: Auger Eric @ 2020-06-19 16:14 UTC (permalink / raw) To: Stefan Berger, eric.auger.pro, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb Hi Stefan, On 6/19/20 6:09 PM, Stefan Berger wrote: > On 6/19/20 10:18 AM, Eric Auger wrote: >> Remove any reference to Acpi20TPM2 and adopt an implementation >> similar to build_ghes_v2(). >> >> Signed-off-by: Eric Auger <eric.auger@redhat.com> >> Suggested-by: Igor Mammedov <imammedo@redhat.com> > > Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> > > Tested-by: Stefan Berger <stefanb@linux.ibm.com> Thanks! Eric > > >> >> --- >> >> v5 -> v6: >> - add reference to the spec + comment about LAML and LASA fields >> - also moved LASA intro comment above build_append_int_noprefix() >> as requested by Igor >> --- >> hw/acpi/aml-build.c | 54 +++++++++++++++++++++++++++++---------------- >> 1 file changed, 35 insertions(+), 19 deletions(-) >> >> diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c >> index 2cb7b991ef..1cc08a3eb9 100644 >> --- a/hw/acpi/aml-build.c >> +++ b/hw/acpi/aml-build.c >> @@ -1878,48 +1878,64 @@ build_hdr: >> "FACP", tbl->len - fadt_start, f->rev, oem_id, >> oem_table_id); >> } >> +/* >> + * build_tpm2 - Build the TPM2 table as specified in table 7 of >> + * "TCG ACPI Specification; Family 1.2 and 2.0; >> + * Level 00 Revision 00.37, December 19, 2014" >> + * Note: the LASA and LAML fields are optional for TPM-2.0 (the above >> + * table does not mention them) but are needed at least for SeaBIOS. >> + * See the Acpi20TPM2 struct for the corresponding layout. >> + */ >> void build_tpm2(GArray *table_data, BIOSLinker *linker, GArray >> *tcpalog) >> { >> - Acpi20TPM2 *tpm2_ptr = acpi_data_push(table_data, >> sizeof(AcpiTableHeader)); >> - unsigned log_addr_size = sizeof(tpm2_ptr->log_area_start_address); >> - unsigned log_addr_offset = >> - (char *)&tpm2_ptr->log_area_start_address - table_data->data; >> uint8_t start_method_params[12] = {}; >> + unsigned log_addr_offset, tpm2_start; >> + uint64_t control_area_start_address; >> TPMIf *tpmif = tpm_find(); >> + uint32_t start_method; >> + void *tpm2_ptr; >> - /* platform class */ >> + tpm2_start = table_data->len; >> + tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); >> + >> + /* Platform Class */ >> build_append_int_noprefix(table_data, TPM2_ACPI_CLASS_CLIENT, 2); >> - /* reserved */ >> + /* Reserved */ >> build_append_int_noprefix(table_data, 0, 2); >> if (TPM_IS_TIS_ISA(tpmif) || TPM_IS_TIS_SYSBUS(tpmif)) { >> - /* address of control area */ >> - build_append_int_noprefix(table_data, 0, 8); >> - /* start method */ >> - build_append_int_noprefix(table_data, TPM2_START_METHOD_MMIO, >> 4); >> + control_area_start_address = 0; >> + start_method = TPM2_START_METHOD_MMIO; >> } else if (TPM_IS_CRB(tpmif)) { >> - build_append_int_noprefix(table_data, TPM_CRB_ADDR_CTRL, 8); >> - build_append_int_noprefix(table_data, TPM2_START_METHOD_CRB, 4); >> + control_area_start_address = TPM_CRB_ADDR_CTRL; >> + start_method = TPM2_START_METHOD_CRB; >> } else { >> - g_warn_if_reached(); >> + g_assert_not_reached(); >> } >> + /* Address of Control Area */ >> + build_append_int_noprefix(table_data, control_area_start_address, >> 8); >> + /* Start Method */ >> + build_append_int_noprefix(table_data, start_method, 4); >> - /* platform specific parameters */ >> - g_array_append_vals(table_data, &start_method_params, 12); >> + /* Platform Specific Parameters */ >> + g_array_append_vals(table_data, &start_method_params, >> + ARRAY_SIZE(start_method_params)); >> - /* log area minimum length */ >> + /* Log Area Minimum Length */ >> build_append_int_noprefix(table_data, TPM_LOG_AREA_MINIMUM_SIZE, >> 4); >> acpi_data_push(tcpalog, TPM_LOG_AREA_MINIMUM_SIZE); >> bios_linker_loader_alloc(linker, ACPI_BUILD_TPMLOG_FILE, >> tcpalog, 1, >> false); >> - /* log area start address to be filled by Guest linker */ >> + log_addr_offset = table_data->len; >> + >> + /* Log Area Start Address to be filled by Guest linker */ >> build_append_int_noprefix(table_data, 0, 8); >> bios_linker_loader_add_pointer(linker, ACPI_BUILD_TABLE_FILE, >> - log_addr_offset, log_addr_size, >> + log_addr_offset, 8, >> ACPI_BUILD_TPMLOG_FILE, 0); >> build_header(linker, table_data, >> - (void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, >> NULL, NULL); >> + tpm2_ptr, "TPM2", table_data->len - tpm2_start, 4, >> NULL, NULL); >> } >> /* ACPI 5.0: 6.4.3.8.2 Serial Bus Connection Descriptors */ > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 1/3] acpi: Some build_tpm2() code reshape 2020-06-19 14:18 ` [PATCH v6 1/3] acpi: Some build_tpm2() code reshape Eric Auger 2020-06-19 15:07 ` Stefan Berger 2020-06-19 16:09 ` Stefan Berger @ 2020-06-22 12:51 ` Igor Mammedov 2 siblings, 0 replies; 13+ messages in thread From: Igor Mammedov @ 2020-06-22 12:51 UTC (permalink / raw) To: Eric Auger Cc: peter.maydell, thuth, drjones, mst, lersek, qemu-devel, shannon.zhaosl, qemu-arm, marcandre.lureau, eric.auger.pro, philmd, ardb, stefanb On Fri, 19 Jun 2020 16:18:49 +0200 Eric Auger <eric.auger@redhat.com> wrote: > Remove any reference to Acpi20TPM2 and adopt an implementation > similar to build_ghes_v2(). > > Signed-off-by: Eric Auger <eric.auger@redhat.com> > Suggested-by: Igor Mammedov <imammedo@redhat.com> with struct Acpi20TPM2 removed completely and pointer to the spec as we discussed ealier Reviewed-by: Igor Mammedov <imammedo@redhat.com> > > --- > > v5 -> v6: > - add reference to the spec + comment about LAML and LASA fields > - also moved LASA intro comment above build_append_int_noprefix() > as requested by Igor > --- > hw/acpi/aml-build.c | 54 +++++++++++++++++++++++++++++---------------- > 1 file changed, 35 insertions(+), 19 deletions(-) > > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c > index 2cb7b991ef..1cc08a3eb9 100644 > --- a/hw/acpi/aml-build.c > +++ b/hw/acpi/aml-build.c > @@ -1878,48 +1878,64 @@ build_hdr: > "FACP", tbl->len - fadt_start, f->rev, oem_id, oem_table_id); > } > > +/* > + * build_tpm2 - Build the TPM2 table as specified in table 7 of > + * "TCG ACPI Specification; Family 1.2 and 2.0; > + * Level 00 Revision 00.37, December 19, 2014" > + * Note: the LASA and LAML fields are optional for TPM-2.0 (the above > + * table does not mention them) but are needed at least for SeaBIOS. > + * See the Acpi20TPM2 struct for the corresponding layout. > + */ > void build_tpm2(GArray *table_data, BIOSLinker *linker, GArray *tcpalog) > { > - Acpi20TPM2 *tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); > - unsigned log_addr_size = sizeof(tpm2_ptr->log_area_start_address); > - unsigned log_addr_offset = > - (char *)&tpm2_ptr->log_area_start_address - table_data->data; > uint8_t start_method_params[12] = {}; > + unsigned log_addr_offset, tpm2_start; > + uint64_t control_area_start_address; > TPMIf *tpmif = tpm_find(); > + uint32_t start_method; > + void *tpm2_ptr; > > - /* platform class */ > + tpm2_start = table_data->len; > + tpm2_ptr = acpi_data_push(table_data, sizeof(AcpiTableHeader)); > + > + /* Platform Class */ > build_append_int_noprefix(table_data, TPM2_ACPI_CLASS_CLIENT, 2); > - /* reserved */ > + /* Reserved */ > build_append_int_noprefix(table_data, 0, 2); > if (TPM_IS_TIS_ISA(tpmif) || TPM_IS_TIS_SYSBUS(tpmif)) { > - /* address of control area */ > - build_append_int_noprefix(table_data, 0, 8); > - /* start method */ > - build_append_int_noprefix(table_data, TPM2_START_METHOD_MMIO, 4); > + control_area_start_address = 0; > + start_method = TPM2_START_METHOD_MMIO; > } else if (TPM_IS_CRB(tpmif)) { > - build_append_int_noprefix(table_data, TPM_CRB_ADDR_CTRL, 8); > - build_append_int_noprefix(table_data, TPM2_START_METHOD_CRB, 4); > + control_area_start_address = TPM_CRB_ADDR_CTRL; > + start_method = TPM2_START_METHOD_CRB; > } else { > - g_warn_if_reached(); > + g_assert_not_reached(); > } > + /* Address of Control Area */ > + build_append_int_noprefix(table_data, control_area_start_address, 8); > + /* Start Method */ > + build_append_int_noprefix(table_data, start_method, 4); > > - /* platform specific parameters */ > - g_array_append_vals(table_data, &start_method_params, 12); > + /* Platform Specific Parameters */ > + g_array_append_vals(table_data, &start_method_params, > + ARRAY_SIZE(start_method_params)); > > - /* log area minimum length */ > + /* Log Area Minimum Length */ > build_append_int_noprefix(table_data, TPM_LOG_AREA_MINIMUM_SIZE, 4); > > acpi_data_push(tcpalog, TPM_LOG_AREA_MINIMUM_SIZE); > bios_linker_loader_alloc(linker, ACPI_BUILD_TPMLOG_FILE, tcpalog, 1, > false); > > - /* log area start address to be filled by Guest linker */ > + log_addr_offset = table_data->len; > + > + /* Log Area Start Address to be filled by Guest linker */ > build_append_int_noprefix(table_data, 0, 8); > bios_linker_loader_add_pointer(linker, ACPI_BUILD_TABLE_FILE, > - log_addr_offset, log_addr_size, > + log_addr_offset, 8, > ACPI_BUILD_TPMLOG_FILE, 0); > build_header(linker, table_data, > - (void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, NULL, NULL); > + tpm2_ptr, "TPM2", table_data->len - tpm2_start, 4, NULL, NULL); > } > > /* ACPI 5.0: 6.4.3.8.2 Serial Bus Connection Descriptors */ ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 2/3] arm/acpi: Add the TPM2.0 device under the DSDT 2020-06-19 14:18 [PATCH v6 0/3] vTPM/aarch64 ACPI support Eric Auger 2020-06-19 14:18 ` [PATCH v6 1/3] acpi: Some build_tpm2() code reshape Eric Auger @ 2020-06-19 14:18 ` Eric Auger 2020-06-22 12:48 ` Igor Mammedov 2020-06-19 14:18 ` [PATCH v6 3/3] docs/specs/tpm: ACPI boot now supported for TPM/ARM Eric Auger 2020-06-19 15:13 ` [PATCH v6 0/3] vTPM/aarch64 ACPI support no-reply 3 siblings, 1 reply; 13+ messages in thread From: Eric Auger @ 2020-06-19 14:18 UTC (permalink / raw) To: eric.auger.pro, eric.auger, stefanb, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb In case it is dynamically instantiated, add the TPM 2.0 device object under the DSDT table in the ACPI namespace. Its HID is MSFT0101 while its current resource settings (CRS) property is initialized with the guest physical address and MMIO size of the device. Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> --- v3 -> v4: - check the presence of the tpm in acpi_dsdt_add_tpm as it was done in v2 v2 -> v3: - use SYS_BUS_DEVICE() instead of (SysBusDevice *)object_dynamic_cast(OBJECT()) v1 -> v2: - use memory_region_size - fix mingw compilation issue by casting to uint32_t - added Stefan's R-b --- hw/arm/virt-acpi-build.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index ca31f70f7f..1384a2cf2a 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -46,6 +46,7 @@ #include "hw/pci/pci.h" #include "hw/arm/virt.h" #include "hw/mem/nvdimm.h" +#include "hw/platform-bus.h" #include "sysemu/numa.h" #include "sysemu/reset.h" #include "sysemu/tpm.h" @@ -364,6 +365,38 @@ static void acpi_dsdt_add_power_button(Aml *scope) aml_append(scope, dev); } +static void acpi_dsdt_add_tpm(Aml *scope, VirtMachineState *vms) +{ + PlatformBusDevice *pbus = PLATFORM_BUS_DEVICE(vms->platform_bus_dev); + hwaddr pbus_base = vms->memmap[VIRT_PLATFORM_BUS].base; + SysBusDevice *sbdev = SYS_BUS_DEVICE(tpm_find()); + MemoryRegion *sbdev_mr; + hwaddr tpm_base; + + if (!sbdev) { + return; + } + + tpm_base = platform_bus_get_mmio_addr(pbus, sbdev, 0); + assert(tpm_base != -1); + + tpm_base += pbus_base; + + sbdev_mr = sysbus_mmio_get_region(sbdev, 0); + + Aml *dev = aml_device("TPM0"); + aml_append(dev, aml_name_decl("_HID", aml_string("MSFT0101"))); + aml_append(dev, aml_name_decl("_UID", aml_int(0))); + + Aml *crs = aml_resource_template(); + aml_append(crs, + aml_memory32_fixed(tpm_base, + (uint32_t)memory_region_size(sbdev_mr), + AML_READ_WRITE)); + aml_append(dev, aml_name_decl("_CRS", crs)); + aml_append(scope, dev); +} + static void build_iort(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) { @@ -762,6 +795,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) } acpi_dsdt_add_power_button(scope); + acpi_dsdt_add_tpm(scope, vms); aml_append(dsdt, scope); -- 2.20.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v6 2/3] arm/acpi: Add the TPM2.0 device under the DSDT 2020-06-19 14:18 ` [PATCH v6 2/3] arm/acpi: Add the TPM2.0 device under the DSDT Eric Auger @ 2020-06-22 12:48 ` Igor Mammedov 0 siblings, 0 replies; 13+ messages in thread From: Igor Mammedov @ 2020-06-22 12:48 UTC (permalink / raw) To: Eric Auger Cc: peter.maydell, thuth, drjones, mst, philmd, qemu-devel, shannon.zhaosl, qemu-arm, marcandre.lureau, eric.auger.pro, lersek, ardb, stefanb On Fri, 19 Jun 2020 16:18:50 +0200 Eric Auger <eric.auger@redhat.com> wrote: > In case it is dynamically instantiated, add the TPM 2.0 device object > under the DSDT table in the ACPI namespace. Its HID is MSFT0101 > while its current resource settings (CRS) property is initialized > with the guest physical address and MMIO size of the device. > > Signed-off-by: Eric Auger <eric.auger@redhat.com> > Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> > > --- > > v3 -> v4: > - check the presence of the tpm in acpi_dsdt_add_tpm > as it was done in v2 > > v2 -> v3: > - use SYS_BUS_DEVICE() instead of > (SysBusDevice *)object_dynamic_cast(OBJECT()) > > v1 -> v2: > - use memory_region_size > - fix mingw compilation issue by casting to uint32_t > - added Stefan's R-b > --- > hw/arm/virt-acpi-build.c | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index ca31f70f7f..1384a2cf2a 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -46,6 +46,7 @@ > #include "hw/pci/pci.h" > #include "hw/arm/virt.h" > #include "hw/mem/nvdimm.h" > +#include "hw/platform-bus.h" > #include "sysemu/numa.h" > #include "sysemu/reset.h" > #include "sysemu/tpm.h" > @@ -364,6 +365,38 @@ static void acpi_dsdt_add_power_button(Aml *scope) > aml_append(scope, dev); > } > > +static void acpi_dsdt_add_tpm(Aml *scope, VirtMachineState *vms) > +{ > + PlatformBusDevice *pbus = PLATFORM_BUS_DEVICE(vms->platform_bus_dev); > + hwaddr pbus_base = vms->memmap[VIRT_PLATFORM_BUS].base; > + SysBusDevice *sbdev = SYS_BUS_DEVICE(tpm_find()); > + MemoryRegion *sbdev_mr; > + hwaddr tpm_base; > + > + if (!sbdev) { > + return; > + } > + > + tpm_base = platform_bus_get_mmio_addr(pbus, sbdev, 0); > + assert(tpm_base != -1); > + > + tpm_base += pbus_base; > + > + sbdev_mr = sysbus_mmio_get_region(sbdev, 0); > + > + Aml *dev = aml_device("TPM0"); > + aml_append(dev, aml_name_decl("_HID", aml_string("MSFT0101"))); > + aml_append(dev, aml_name_decl("_UID", aml_int(0))); > + > + Aml *crs = aml_resource_template(); > + aml_append(crs, > + aml_memory32_fixed(tpm_base, > + (uint32_t)memory_region_size(sbdev_mr), > + AML_READ_WRITE)); > + aml_append(dev, aml_name_decl("_CRS", crs)); > + aml_append(scope, dev); > +} > + > static void > build_iort(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > { > @@ -762,6 +795,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > } > > acpi_dsdt_add_power_button(scope); > + acpi_dsdt_add_tpm(scope, vms); > > aml_append(dsdt, scope); > ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 3/3] docs/specs/tpm: ACPI boot now supported for TPM/ARM 2020-06-19 14:18 [PATCH v6 0/3] vTPM/aarch64 ACPI support Eric Auger 2020-06-19 14:18 ` [PATCH v6 1/3] acpi: Some build_tpm2() code reshape Eric Auger 2020-06-19 14:18 ` [PATCH v6 2/3] arm/acpi: Add the TPM2.0 device under the DSDT Eric Auger @ 2020-06-19 14:18 ` Eric Auger 2020-06-19 16:10 ` Stefan Berger 2020-06-22 12:47 ` Igor Mammedov 2020-06-19 15:13 ` [PATCH v6 0/3] vTPM/aarch64 ACPI support no-reply 3 siblings, 2 replies; 13+ messages in thread From: Eric Auger @ 2020-06-19 14:18 UTC (permalink / raw) To: eric.auger.pro, eric.auger, stefanb, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb ACPI boot now is supported. Let's remove the comment saying it is not. Signed-off-by: Eric Auger <eric.auger@redhat.com> --- docs/specs/tpm.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/specs/tpm.rst b/docs/specs/tpm.rst index 5e61238bc5..eeeb93730a 100644 --- a/docs/specs/tpm.rst +++ b/docs/specs/tpm.rst @@ -346,8 +346,6 @@ In case an Arm virt machine is emulated, use the following command line: -drive if=pflash,format=raw,file=flash0.img,readonly \ -drive if=pflash,format=raw,file=flash1.img - On Arm, ACPI boot with TPM is not yet supported. - In case SeaBIOS is used as firmware, it should show the TPM menu item after entering the menu with 'ESC'. -- 2.20.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v6 3/3] docs/specs/tpm: ACPI boot now supported for TPM/ARM 2020-06-19 14:18 ` [PATCH v6 3/3] docs/specs/tpm: ACPI boot now supported for TPM/ARM Eric Auger @ 2020-06-19 16:10 ` Stefan Berger 2020-06-22 12:47 ` Igor Mammedov 1 sibling, 0 replies; 13+ messages in thread From: Stefan Berger @ 2020-06-19 16:10 UTC (permalink / raw) To: Eric Auger, eric.auger.pro, qemu-devel, qemu-arm, peter.maydell, mst, imammedo Cc: thuth, lersek, drjones, shannon.zhaosl, marcandre.lureau, philmd, ardb On 6/19/20 10:18 AM, Eric Auger wrote: > ACPI boot now is supported. Let's remove the comment > saying it is not. > > Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> > --- > docs/specs/tpm.rst | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/docs/specs/tpm.rst b/docs/specs/tpm.rst > index 5e61238bc5..eeeb93730a 100644 > --- a/docs/specs/tpm.rst > +++ b/docs/specs/tpm.rst > @@ -346,8 +346,6 @@ In case an Arm virt machine is emulated, use the following command line: > -drive if=pflash,format=raw,file=flash0.img,readonly \ > -drive if=pflash,format=raw,file=flash1.img > > - On Arm, ACPI boot with TPM is not yet supported. > - > In case SeaBIOS is used as firmware, it should show the TPM menu item > after entering the menu with 'ESC'. > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 3/3] docs/specs/tpm: ACPI boot now supported for TPM/ARM 2020-06-19 14:18 ` [PATCH v6 3/3] docs/specs/tpm: ACPI boot now supported for TPM/ARM Eric Auger 2020-06-19 16:10 ` Stefan Berger @ 2020-06-22 12:47 ` Igor Mammedov 1 sibling, 0 replies; 13+ messages in thread From: Igor Mammedov @ 2020-06-22 12:47 UTC (permalink / raw) To: Eric Auger Cc: peter.maydell, thuth, drjones, mst, lersek, qemu-devel, shannon.zhaosl, qemu-arm, marcandre.lureau, eric.auger.pro, philmd, ardb, stefanb On Fri, 19 Jun 2020 16:18:51 +0200 Eric Auger <eric.auger@redhat.com> wrote: > ACPI boot now is supported. Let's remove the comment > saying it is not. > > Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> > --- > docs/specs/tpm.rst | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/docs/specs/tpm.rst b/docs/specs/tpm.rst > index 5e61238bc5..eeeb93730a 100644 > --- a/docs/specs/tpm.rst > +++ b/docs/specs/tpm.rst > @@ -346,8 +346,6 @@ In case an Arm virt machine is emulated, use the following command line: > -drive if=pflash,format=raw,file=flash0.img,readonly \ > -drive if=pflash,format=raw,file=flash1.img > > - On Arm, ACPI boot with TPM is not yet supported. > - > In case SeaBIOS is used as firmware, it should show the TPM menu item > after entering the menu with 'ESC'. > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 0/3] vTPM/aarch64 ACPI support 2020-06-19 14:18 [PATCH v6 0/3] vTPM/aarch64 ACPI support Eric Auger ` (2 preceding siblings ...) 2020-06-19 14:18 ` [PATCH v6 3/3] docs/specs/tpm: ACPI boot now supported for TPM/ARM Eric Auger @ 2020-06-19 15:13 ` no-reply 3 siblings, 0 replies; 13+ messages in thread From: no-reply @ 2020-06-19 15:13 UTC (permalink / raw) To: eric.auger Cc: peter.maydell, thuth, drjones, mst, philmd, shannon.zhaosl, qemu-devel, eric.auger, qemu-arm, marcandre.lureau, imammedo, eric.auger.pro, lersek, ardb, stefanb Patchew URL: https://patchew.org/QEMU/20200619141851.16272-1-eric.auger@redhat.com/ Hi, This series failed the asan build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash export ARCH=x86_64 make docker-image-fedora V=1 NETWORK=1 time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1 === TEST SCRIPT END === CC qga/commands-posix.o CC qga/channel-posix.o CC qga/qapi-generated/qga-qapi-types.o /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) CC qga/qapi-generated/qga-qapi-visit.o CC qga/qapi-generated/qga-qapi-commands.o CC qga/qapi-generated/qga-qapi-init-commands.o --- GEN docs/interop/qemu-ga-ref.html GEN docs/interop/qemu-ga-ref.txt GEN docs/interop/qemu-ga-ref.7 /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) AS pc-bios/optionrom/multiboot.o CC pc-bios/optionrom/linuxboot_dma.o AS pc-bios/optionrom/kvmvapic.o --- BUILD pc-bios/optionrom/pvh.img BUILD pc-bios/optionrom/pvh.raw SIGN pc-bios/optionrom/pvh.bin /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) LINK ivshmem-client /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) LINK ivshmem-server LINK qemu-nbd LINK qemu-storage-daemon /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) LINK qemu-img /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) LINK qemu-io /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) LINK qemu-edid LINK fsdev/virtfs-proxy-helper /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) LINK scsi/qemu-pr-helper /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) LINK qemu-bridge-helper /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) LINK virtiofsd LINK vhost-user-input /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) GEN x86_64-softmmu/hmp-commands.h GEN x86_64-softmmu/config-devices.h GEN x86_64-softmmu/hmp-commands-info.h --- CC x86_64-softmmu/gdbstub-xml.o CC x86_64-softmmu/trace/generated-helpers.o LINK x86_64-softmmu/qemu-system-x86_64 /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) common.rc: line 50: test: check: binary operator expected (printf '#define QEMU_PKGVERSION ""\n'; printf '#define QEMU_FULL_VERSION "5.0.50"\n'; ) > qemu-version.h.tmp make -C /tmp/qemu-test/src/slirp BUILD_DIR="/tmp/qemu-test/build/slirp" PKG_CONFIG="pkg-config" CC="clang" AR="ar" LD="ld" RANLIB="ranlib" CFLAGS="-I/usr/include/pixman-1 -Werror -fsanitize=undefined -fsanitize=address -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -fstack-protector-strong -I/usr/include/p11-kit-1 -DSTRUCT_IOVEC_DEFINED -I/usr/include/libpng16 -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pixman-1 -I/tmp/qemu-test/src/tests -I/tmp/qemu-test/src/tests/qtest -g " LDFLAGS="-Wl,--warn-common -fsanitize=undefined -fsanitize=address -Wl,-z,relro -Wl,-z,now -pie -m64 -fstack-protector-strong" --- clang -iquote /tmp/qemu-test/build/tests/qtest -iquote tests/qtest -iquote /tmp/qemu-test/src/tcg/i386 -isystem /tmp/qemu-test/src/linux-headers -isystem /tmp/qemu-test/build/linux-headers -iquote . -iquote /tmp/qemu-test/src -iquote /tmp/qemu-test/src/accel/tcg -iquote /tmp/qemu-test/src/include -iquote /tmp/qemu-test/src/disas/libvixl -I/usr/include/pixman-1 -Werror -fsanitize=undefined -fsanitize=address -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -fstack-protector-strong -I/usr/include/p11-kit-1 -DSTRUCT_IOVEC_DEFINED -I/usr/include/libpng16 -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pixman-1 -I/tmp/qemu-test/src/tests -I/tmp/qemu-test/src/tests/qtest -MMD -MP -MT tests/qtest/ide-test.o -MF tests/qtest/ide-test.d -g -c -o tests/qtest/ide-test.o /tmp/qemu-test/src/tests/qtest/ide-test.c clang -iquote /tmp/qemu-test/build/tests/qtest/libqos -iquote tests/qtest/libqos -iquote /tmp/qemu-test/src/tcg/i386 -isystem /tmp/qemu-test/src/linux-headers -isystem /tmp/qemu-test/build/linux-headers -iquote . -iquote /tmp/qemu-test/src -iquote /tmp/qemu-test/src/accel/tcg -iquote /tmp/qemu-test/src/include -iquote /tmp/qemu-test/src/disas/libvixl -I/usr/include/pixman-1 -Werror -fsanitize=undefined -fsanitize=address -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -fstack-protector-strong -I/usr/include/p11-kit-1 -DSTRUCT_IOVEC_DEFINED -I/usr/include/libpng16 -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pixman-1 -I/tmp/qemu-test/src/tests -I/tmp/qemu-test/src/tests/qtest -MMD -MP -MT tests/qtest/libqos/pci.o -MF tests/qtest/libqos/pci.d -g -c -o tests/qtest/libqos/pci.o /tmp/qemu-test/src/tests/qtest/libqos/pci.c clang -iquote /tmp/qemu-test/build/tests/qtest/libqos -iquote tests/qtest/libqos -iquote /tmp/qemu-test/src/tcg/i386 -isystem /tmp/qemu-test/src/linux-headers -isystem /tmp/qemu-test/build/linux-headers -iquote . -iquote /tmp/qemu-test/src -iquote /tmp/qemu-test/src/accel/tcg -iquote /tmp/qemu-test/src/include -iquote /tmp/qemu-test/src/disas/libvixl -I/usr/include/pixman-1 -Werror -fsanitize=undefined -fsanitize=address -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -fstack-protector-strong -I/usr/include/p11-kit-1 -DSTRUCT_IOVEC_DEFINED -I/usr/include/libpng16 -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pixman-1 -I/tmp/qemu-test/src/tests -I/tmp/qemu-test/src/tests/qtest -MMD -MP -MT tests/qtest/libqos/fw_cfg.o -MF tests/qtest/libqos/fw_cfg.d -g -c -o tests/qtest/libqos/fw_cfg.o /tmp/qemu-test/src/tests/qtest/libqos/fw_cfg.c /tmp/qemu-test/src/tests/qht-bench.c:287:29: error: implicit conversion from 'unsigned long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Werror,-Wimplicit-int-float-conversion] *threshold = rate * UINT64_MAX; ~ ^~~~~~~~~~ /usr/include/stdint.h:130:23: note: expanded from macro 'UINT64_MAX' --- 18446744073709551615UL ^~~~~~~~~~~~~~~~~~~~~~ 1 error generated. make: *** [/tmp/qemu-test/src/rules.mak:69: tests/qht-bench.o] Error 1 make: *** Waiting for unfinished jobs.... clang -iquote /tmp/qemu-test/build/. -iquote . -iquote /tmp/qemu-test/src/tcg/i386 -isystem /tmp/qemu-test/src/linux-headers -isystem /tmp/qemu-test/build/linux-headers -iquote . -iquote /tmp/qemu-test/src -iquote /tmp/qemu-test/src/accel/tcg -iquote /tmp/qemu-test/src/include -iquote /tmp/qemu-test/src/disas/libvixl -I/tmp/qemu-test/src/tests/fp -I/tmp/qemu-test/src/tests/fp/berkeley-softfloat-3/source/include -I/tmp/qemu-test/src/tests/fp/berkeley-softfloat-3/source/8086-SSE -I/tmp/qemu-test/src/tests/fp/berkeley-testfloat-3/source -I/usr/include/pixman-1 -Werror -fsanitize=undefined -fsanitize=address -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -fstack-protector-strong -I/usr/include/p11-kit-1 -DSTRUCT_IOVEC_DEFINED -I/usr/include/libpng16 -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pixman-1 -DHW_POISON_H -DTARGET_ARM -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32 -DSOFTFLOAT_FAST_INT64 -DFLOAT16 -DFLOAT64 -DEXTFLOAT80 -DFLOAT128 -DFLOAT_ROUND_ODD -DLONG_DOUBLE_IS_EXTFLOAT80 -MMD -MP -MT softfloat.o -MF ./softfloat.d -g -c -o softfloat.o /tmp/qemu-test/src/fpu/softfloat.c clang -iquote /tmp/qemu-test/build/. -iquote . -iquote /tmp/qemu-test/src/tcg/i386 -isystem /tmp/qemu-test/src/linux-headers -isystem /tmp/qemu-test/build/linux-headers -iquote . -iquote /tmp/qemu-test/src -iquote /tmp/qemu-test/src/accel/tcg -iquote /tmp/qemu-test/src/include -iquote /tmp/qemu-test/src/disas/libvixl -I/tmp/qemu-test/src/tests/fp -I/tmp/qemu-test/src/tests/fp/berkeley-softfloat-3/source/include -I/tmp/qemu-test/src/tests/fp/berkeley-softfloat-3/source/8086-SSE -I/tmp/qemu-test/src/tests/fp/berkeley-testfloat-3/source -I/usr/include/pixman-1 -Werror -fsanitize=undefined -fsanitize=address -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int -Wno-typedef-redefinition -Wno-tautological-type-limit-compare -fstack-protector-strong -I/usr/include/p11-kit-1 -DSTRUCT_IOVEC_DEFINED -I/usr/include/libpng16 -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pixman-1 -DHW_POISON_H -DTARGET_ARM -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32 -DSOFTFLOAT_FAST_INT64 -DFLOAT16 -DFLOAT64 -DEXTFLOAT80 -DFLOAT128 -DFLOAT_ROUND_ODD -DLONG_DOUBLE_IS_EXTFLOAT80 -Wno-strict-prototypes -Wno-unknown-pragmas -Wno-uninitialized -Wno-missing-prototypes -Wno-return-type -Wno-unused-function -Wno-error -MMD -MP -MT uint128_inline.o -MF ./uint128_inline.d -g -c -o uint128_inline.o /tmp/qemu-test/src/tests/fp/berkeley-testfloat-3/source/uint128_inline.c --- rm -f libtestfloat.a && ar rcs libtestfloat.a uint128_inline.o uint128.o fail.o functions_common.o functionInfos.o standardFunctionInfos.o random.o genCases_common.o genCases_ui32.o genCases_ui64.o genCases_i32.o genCases_i64.o genCases_f16.o genCases_f32.o genCases_f64.o genCases_extF80.o genCases_f128.o genCases_writeTestsTotal.o verCases_inline.o verCases_common.o verCases_writeFunctionName.o readHex.o writeHex.o writeCase_a_ui32.o writeCase_a_ui64.o writeCase_a_f16.o writeCase_ab_f16.o writeCase_abc_f16.o writeCase_a_f32.o writeCase_ab_f32.o writeCase_abc_f32.o writeCase_a_f64.o writeCase_ab_f64.o writeCase_abc_f64.o writeCase_a_extF80M.o writeCase_ab_extF80M.o writeCase_a_f128M.o writeCase_ab_f128M.o writeCase_abc_f128M.o writeCase_z_bool.o writeCase_z_ui32.o writeCase_z_ui64.o writeCase_z_f16.o writeCase_z_f32.o writeCase_z_f64.o writeCase_z_extF80M.o writeCase_z_f128M.o testLoops_common.o test_a_ui32_z_f16.o test_a_ui32_z_f32.o test_a_ui32_z_f64.o test_a_ui32_z_extF80.o test_a_ui32_z_f128.o test_a_ui64_z_f16.o test_a_ui64_z_f32.o test_a_ui64_z_f64.o test_a_ui64_z_extF80.o test_a_ui64_z_f128.o test_a_i32_z_f16.o test_a_i32_z_f32.o test_a_i32_z_f64.o test_a_i32_z_extF80.o test_a_i32_z_f128.o test_a_i64_z_f16.o test_a_i64_z_f32.o test_a_i64_z_f64.o test_a_i64_z_extF80.o test_a_i64_z_f128.o test_a_f16_z_ui32_rx.o test_a_f16_z_ui64_rx.o test_a_f16_z_i32_rx.o test_a_f16_z_i64_rx.o test_a_f16_z_ui32_x.o test_a_f16_z_ui64_x.o test_a_f16_z_i32_x.o test_a_f16_z_i64_x.o test_a_f16_z_f32.o test_a_f16_z_f64.o test_a_f16_z_extF80.o test_a_f16_z_f128.o test_az_f16.o test_az_f16_rx.o test_abz_f16.o test_abcz_f16.o test_ab_f16_z_bool.o test_a_f32_z_ui32_rx.o test_a_f32_z_ui64_rx.o test_a_f32_z_i32_rx.o test_a_f32_z_i64_rx.o test_a_f32_z_ui32_x.o test_a_f32_z_ui64_x.o test_a_f32_z_i32_x.o test_a_f32_z_i64_x.o test_a_f32_z_f16.o test_a_f32_z_f64.o test_a_f32_z_extF80.o test_a_f32_z_f128.o test_az_f32.o test_az_f32_rx.o test_abz_f32.o test_abcz_f32.o test_ab_f32_z_bool.o test_a_f64_z_ui32_rx.o test_a_f64_z_ui64_rx.o test_a_f64_z_i32_rx.o test_a_f64_z_i64_rx.o test_a_f64_z_ui32_x.o test_a_f64_z_ui64_x.o test_a_f64_z_i32_x.o test_a_f64_z_i64_x.o test_a_f64_z_f16.o test_a_f64_z_f32.o test_a_f64_z_extF80.o test_a_f64_z_f128.o test_az_f64.o test_az_f64_rx.o test_abz_f64.o test_abcz_f64.o test_ab_f64_z_bool.o test_a_extF80_z_ui32_rx.o test_a_extF80_z_ui64_rx.o test_a_extF80_z_i32_rx.o test_a_extF80_z_i64_rx.o test_a_extF80_z_ui32_x.o test_a_extF80_z_ui64_x.o test_a_extF80_z_i32_x.o test_a_extF80_z_i64_x.o test_a_extF80_z_f16.o test_a_extF80_z_f32.o test_a_extF80_z_f64.o test_a_extF80_z_f128.o test_az_extF80.o test_az_extF80_rx.o test_abz_extF80.o test_ab_extF80_z_bool.o test_a_f128_z_ui32_rx.o test_a_f128_z_ui64_rx.o test_a_f128_z_i32_rx.o test_a_f128_z_i64_rx.o test_a_f128_z_ui32_x.o test_a_f128_z_ui64_x.o test_a_f128_z_i32_x.o test_a_f128_z_i64_x.o test_a_f128_z_f16.o test_a_f128_z_f32.o test_a_f128_z_f64.o test_a_f128_z_extF80.o test_az_f128.o test_az_f128_rx.o test_abz_f128.o test_abcz_f128.o test_ab_f128_z_bool.o rm -f libsoftfloat.a && ar rcs libsoftfloat.a s_eq128.o s_le128.o s_lt128.o s_shortShiftLeft128.o s_shortShiftRight128.o s_shortShiftRightJam64.o s_shortShiftRightJam64Extra.o s_shortShiftRightJam128.o s_shortShiftRightJam128Extra.o s_shiftRightJam32.o s_shiftRightJam64.o s_shiftRightJam64Extra.o s_shiftRightJam128.o s_shiftRightJam128Extra.o s_shiftRightJam256M.o s_countLeadingZeros8.o s_countLeadingZeros16.o s_countLeadingZeros32.o s_countLeadingZeros64.o s_add128.o s_add256M.o s_sub128.o s_sub256M.o s_mul64ByShifted32To128.o s_mul64To128.o s_mul128By32.o s_mul128To256M.o s_approxRecip_1Ks.o s_approxRecip32_1.o s_approxRecipSqrt_1Ks.o s_approxRecipSqrt32_1.o s_roundToUI32.o s_roundToUI64.o s_roundToI32.o s_roundToI64.o s_normSubnormalF16Sig.o s_roundPackToF16.o s_normRoundPackToF16.o s_addMagsF16.o s_subMagsF16.o s_mulAddF16.o s_normSubnormalF32Sig.o s_roundPackToF32.o s_normRoundPackToF32.o s_addMagsF32.o s_subMagsF32.o s_mulAddF32.o s_normSubnormalF64Sig.o s_roundPackToF64.o s_normRoundPackToF64.o s_addMagsF64.o s_subMagsF64.o s_mulAddF64.o s_normSubnormalExtF80Sig.o s_roundPackToExtF80.o s_normRoundPackToExtF80.o s_addMagsExtF80.o s_subMagsExtF80.o s_normSubnormalF128Sig.o s_roundPackToF128.o s_normRoundPackToF128.o s_addMagsF128.o s_subMagsF128.o s_mulAddF128.o softfloat_state.o ui32_to_f16.o ui32_to_f32.o ui32_to_f64.o ui32_to_extF80.o ui32_to_extF80M.o ui32_to_f128.o ui32_to_f128M.o ui64_to_f16.o ui64_to_f32.o ui64_to_f64.o ui64_to_extF80.o ui64_to_extF80M.o ui64_to_f128.o ui64_to_f128M.o i32_to_f16.o i32_to_f32.o i32_to_f64.o i32_to_extF80.o i32_to_extF80M.o i32_to_f128.o i32_to_f128M.o i64_to_f16.o i64_to_f32.o i64_to_f64.o i64_to_extF80.o i64_to_extF80M.o i64_to_f128.o i64_to_f128M.o f16_to_ui32.o f16_to_ui64.o f16_to_i32.o f16_to_i64.o f16_to_ui32_r_minMag.o f16_to_ui64_r_minMag.o f16_to_i32_r_minMag.o f16_to_i64_r_minMag.o f16_to_f32.o f16_to_f64.o f16_to_extF80.o f16_to_extF80M.o f16_to_f128.o f16_to_f128M.o f16_roundToInt.o f16_add.o f16_sub.o f16_mul.o f16_mulAdd.o f16_div.o f16_rem.o f16_sqrt.o f16_eq.o f16_le.o f16_lt.o f16_eq_signaling.o f16_le_quiet.o f16_lt_quiet.o f16_isSignalingNaN.o f32_to_ui32.o f32_to_ui64.o f32_to_i32.o f32_to_i64.o f32_to_ui32_r_minMag.o f32_to_ui64_r_minMag.o f32_to_i32_r_minMag.o f32_to_i64_r_minMag.o f32_to_f16.o f32_to_f64.o f32_to_extF80.o f32_to_extF80M.o f32_to_f128.o f32_to_f128M.o f32_roundToInt.o f32_add.o f32_sub.o f32_mul.o f32_mulAdd.o f32_div.o f32_rem.o f32_sqrt.o f32_eq.o f32_le.o f32_lt.o f32_eq_signaling.o f32_le_quiet.o f32_lt_quiet.o f32_isSignalingNaN.o f64_to_ui32.o f64_to_ui64.o f64_to_i32.o f64_to_i64.o f64_to_ui32_r_minMag.o f64_to_ui64_r_minMag.o f64_to_i32_r_minMag.o f64_to_i64_r_minMag.o f64_to_f16.o f64_to_f32.o f64_to_extF80.o f64_to_extF80M.o f64_to_f128.o f64_to_f128M.o f64_roundToInt.o f64_add.o f64_sub.o f64_mul.o f64_mulAdd.o f64_div.o f64_rem.o f64_sqrt.o f64_eq.o f64_le.o f64_lt.o f64_eq_signaling.o f64_le_quiet.o f64_lt_quiet.o f64_isSignalingNaN.o extF80_to_ui32.o extF80_to_ui64.o extF80_to_i32.o extF80_to_i64.o extF80_to_ui32_r_minMag.o extF80_to_ui64_r_minMag.o extF80_to_i32_r_minMag.o extF80_to_i64_r_minMag.o extF80_to_f16.o extF80_to_f32.o extF80_to_f64.o extF80_to_f128.o extF80_roundToInt.o extF80_add.o extF80_sub.o extF80_mul.o extF80_div.o extF80_rem.o extF80_sqrt.o extF80_eq.o extF80_le.o extF80_lt.o extF80_eq_signaling.o extF80_le_quiet.o extF80_lt_quiet.o extF80_isSignalingNaN.o extF80M_to_ui32.o extF80M_to_ui64.o extF80M_to_i32.o extF80M_to_i64.o extF80M_to_ui32_r_minMag.o extF80M_to_ui64_r_minMag.o extF80M_to_i32_r_minMag.o extF80M_to_i64_r_minMag.o extF80M_to_f16.o extF80M_to_f32.o extF80M_to_f64.o extF80M_to_f128M.o extF80M_roundToInt.o extF80M_add.o extF80M_sub.o extF80M_mul.o extF80M_div.o extF80M_rem.o extF80M_sqrt.o extF80M_eq.o extF80M_le.o extF80M_lt.o extF80M_eq_signaling.o extF80M_le_quiet.o extF80M_lt_quiet.o f128_to_ui32.o f128_to_ui64.o f128_to_i32.o f128_to_i64.o f128_to_ui32_r_minMag.o f128_to_ui64_r_minMag.o f128_to_i32_r_minMag.o f128_to_i64_r_minMag.o f128_to_f16.o f128_to_f32.o f128_to_extF80.o f128_to_f64.o f128_roundToInt.o f128_add.o f128_sub.o f128_mul.o f128_mulAdd.o f128_div.o f128_rem.o f128_sqrt.o f128_eq.o f128_le.o f128_lt.o f128_eq_signaling.o f128_le_quiet.o f128_lt_quiet.o f128_isSignalingNaN.o f128M_to_ui32.o f128M_to_ui64.o f128M_to_i32.o f128M_to_i64.o f128M_to_ui32_r_minMag.o f128M_to_ui64_r_minMag.o f128M_to_i32_r_minMag.o f128M_to_i64_r_minMag.o f128M_to_f16.o f128M_to_f32.o f128M_to_extF80M.o f128M_to_f64.o f128M_roundToInt.o f128M_add.o f128M_sub.o f128M_mul.o f128M_mulAdd.o f128M_div.o f128M_rem.o f128M_sqrt.o f128M_eq.o f128M_le.o f128M_lt.o f128M_eq_signaling.o f128M_le_quiet.o f128M_lt_quiet.o softfloat_raiseFlags.o s_f16UIToCommonNaN.o s_commonNaNToF16UI.o s_propagateNaNF16UI.o s_f32UIToCommonNaN.o s_commonNaNToF32UI.o s_propagateNaNF32UI.o s_f64UIToCommonNaN.o s_commonNaNToF64UI.o s_propagateNaNF64UI.o extF80M_isSignalingNaN.o s_extF80UIToCommonNaN.o s_commonNaNToExtF80UI.o s_propagateNaNExtF80UI.o f128M_isSignalingNaN.o s_f128UIToCommonNaN.o s_commonNaNToF128UI.o s_propagateNaNF128UI.o clang++ -g -Wl,--warn-common -fsanitize=undefined -fsanitize=address -Wl,-z,relro -Wl,-z,now -pie -m64 -fstack-protector-strong -o fp-test fp-test.o slowfloat.o softfloat.o libtestfloat.a libsoftfloat.a /tmp/qemu-test/build/libqemuutil.a -lm -lz -lgthread-2.0 -pthread -lglib-2.0 -lnettle -lgnutls -lzstd -lrt /usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o) make[1]: Leaving directory '/tmp/qemu-test/build/tests/fp' Traceback (most recent call last): File "./tests/docker/docker.py", line 669, in <module> --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=845468490b4e4b8f9f17772bd75c35f6', '-u', '1001', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=x86_64-softmmu', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-cj69f6a0/src/docker-src.2020-06-19-11.08.53.5595:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-debug']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=845468490b4e4b8f9f17772bd75c35f6 make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-cj69f6a0/src' make: *** [docker-run-test-debug@fedora] Error 2 real 5m0.490s user 0m9.446s The full log is available at http://patchew.org/logs/20200619141851.16272-1-eric.auger@redhat.com/testing.asan/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2020-06-22 12:52 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-06-19 14:18 [PATCH v6 0/3] vTPM/aarch64 ACPI support Eric Auger 2020-06-19 14:18 ` [PATCH v6 1/3] acpi: Some build_tpm2() code reshape Eric Auger 2020-06-19 15:07 ` Stefan Berger 2020-06-19 15:34 ` Auger Eric 2020-06-19 16:09 ` Stefan Berger 2020-06-19 16:14 ` Auger Eric 2020-06-22 12:51 ` Igor Mammedov 2020-06-19 14:18 ` [PATCH v6 2/3] arm/acpi: Add the TPM2.0 device under the DSDT Eric Auger 2020-06-22 12:48 ` Igor Mammedov 2020-06-19 14:18 ` [PATCH v6 3/3] docs/specs/tpm: ACPI boot now supported for TPM/ARM Eric Auger 2020-06-19 16:10 ` Stefan Berger 2020-06-22 12:47 ` Igor Mammedov 2020-06-19 15:13 ` [PATCH v6 0/3] vTPM/aarch64 ACPI support no-reply
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).