From 9bd0e32a194826facff4e12d2cc8ba027dc107cb Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:37 -0400 Subject: [PATCH 01/10] tests: Rename TestState to TPMTestState Signed-off-by: Stefan Berger Reviewed-by: Igor Mammedov Message-id: 20210802215246.1433175-2-stefanb@linux.ibm.com --- tests/qtest/bios-tables-test.c | 2 +- tests/qtest/tpm-crb-test.c | 4 ++-- tests/qtest/tpm-emu.c | 6 +++--- tests/qtest/tpm-emu.h | 6 +++--- tests/qtest/tpm-tis-device-test.c | 2 +- tests/qtest/tpm-tis-test.c | 2 +- tests/qtest/tpm-tis-util.c | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 51d3a4e239..a622f91a37 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1098,7 +1098,7 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, gchar *tmp_dir_name = g_strdup_printf("qemu-test_acpi_%s_tcg_%s.XXXXXX", machine, tpm_if); char *tmp_path = g_dir_make_tmp(tmp_dir_name, NULL); - TestState test; + TPMTestState test; test_data data; GThread *thread; char *args, *variant = g_strdup_printf(".%s", tpm_if); diff --git a/tests/qtest/tpm-crb-test.c b/tests/qtest/tpm-crb-test.c index ed533900d1..50936f1482 100644 --- a/tests/qtest/tpm-crb-test.c +++ b/tests/qtest/tpm-crb-test.c @@ -26,7 +26,7 @@ uint64_t tpm_tis_base_addr = TPM_TIS_ADDR_BASE; static void tpm_crb_test(const void *data) { - const TestState *s = data; + const TPMTestState *s = data; uint32_t intfid = readl(TPM_CRB_ADDR_BASE + A_CRB_INTF_ID); uint32_t csize = readl(TPM_CRB_ADDR_BASE + A_CRB_CTRL_CMD_SIZE); uint64_t caddr = readq(TPM_CRB_ADDR_BASE + A_CRB_CTRL_CMD_LADDR); @@ -145,7 +145,7 @@ int main(int argc, char **argv) int ret; char *args, *tmp_path = g_dir_make_tmp("qemu-tpm-crb-test.XXXXXX", NULL); GThread *thread; - TestState test; + TPMTestState test; module_call_init(MODULE_INIT_QOM); g_test_init(&argc, &argv, NULL); diff --git a/tests/qtest/tpm-emu.c b/tests/qtest/tpm-emu.c index 2e8eb7b94f..b9cddcc240 100644 --- a/tests/qtest/tpm-emu.c +++ b/tests/qtest/tpm-emu.c @@ -18,7 +18,7 @@ #include "qapi/error.h" #include "tpm-emu.h" -void tpm_emu_test_wait_cond(TestState *s) +void tpm_emu_test_wait_cond(TPMTestState *s) { gint64 end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND; @@ -36,7 +36,7 @@ void tpm_emu_test_wait_cond(TestState *s) static void *tpm_emu_tpm_thread(void *data) { - TestState *s = data; + TPMTestState *s = data; QIOChannel *ioc = s->tpm_ioc; s->tpm_msg = g_new(struct tpm_hdr, 1); @@ -71,7 +71,7 @@ static void *tpm_emu_tpm_thread(void *data) void *tpm_emu_ctrl_thread(void *data) { - TestState *s = data; + TPMTestState *s = data; QIOChannelSocket *lioc = qio_channel_socket_new(); QIOChannel *ioc; diff --git a/tests/qtest/tpm-emu.h b/tests/qtest/tpm-emu.h index 73f3bed0c4..b066ad63fb 100644 --- a/tests/qtest/tpm-emu.h +++ b/tests/qtest/tpm-emu.h @@ -26,7 +26,7 @@ struct tpm_hdr { char buffer[]; } QEMU_PACKED; -typedef struct TestState { +typedef struct TPMTestState { GMutex data_mutex; GCond data_cond; bool data_cond_signal; @@ -34,9 +34,9 @@ typedef struct TestState { QIOChannel *tpm_ioc; GThread *emu_tpm_thread; struct tpm_hdr *tpm_msg; -} TestState; +} TPMTestState; -void tpm_emu_test_wait_cond(TestState *s); +void tpm_emu_test_wait_cond(TPMTestState *s); void *tpm_emu_ctrl_thread(void *data); #endif /* TESTS_TPM_EMU_H */ diff --git a/tests/qtest/tpm-tis-device-test.c b/tests/qtest/tpm-tis-device-test.c index 63ed36440f..d36ae20243 100644 --- a/tests/qtest/tpm-tis-device-test.c +++ b/tests/qtest/tpm-tis-device-test.c @@ -33,7 +33,7 @@ int main(int argc, char **argv) { char *tmp_path = g_dir_make_tmp("qemu-tpm-tis-device-test.XXXXXX", NULL); GThread *thread; - TestState test; + TPMTestState test; char *args; int ret; diff --git a/tests/qtest/tpm-tis-test.c b/tests/qtest/tpm-tis-test.c index 79ffbc943e..6fee4779ea 100644 --- a/tests/qtest/tpm-tis-test.c +++ b/tests/qtest/tpm-tis-test.c @@ -29,7 +29,7 @@ int main(int argc, char **argv) int ret; char *args, *tmp_path = g_dir_make_tmp("qemu-tpm-tis-test.XXXXXX", NULL); GThread *thread; - TestState test; + TPMTestState test; module_call_init(MODULE_INIT_QOM); g_test_init(&argc, &argv, NULL); diff --git a/tests/qtest/tpm-tis-util.c b/tests/qtest/tpm-tis-util.c index 9aff503fd8..939893bf01 100644 --- a/tests/qtest/tpm-tis-util.c +++ b/tests/qtest/tpm-tis-util.c @@ -373,7 +373,7 @@ void tpm_tis_test_check_access_reg_release(const void *data) */ void tpm_tis_test_check_transmit(const void *data) { - const TestState *s = data; + const TPMTestState *s = data; uint8_t access; uint32_t sts; uint16_t bcount; From 09b20a148afeebe2084c92672d3acaa26a371296 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:38 -0400 Subject: [PATCH 02/10] tests: Add tpm_version field to TPMTestState and fill it Signed-off-by: Stefan Berger Reviewed-by: Igor Mammedov Message-id: 20210802215246.1433175-3-stefanb@linux.ibm.com --- tests/qtest/bios-tables-test.c | 5 +++-- tests/qtest/tpm-crb-test.c | 1 + tests/qtest/tpm-emu.c | 13 ++++++++++--- tests/qtest/tpm-emu.h | 8 ++++++++ tests/qtest/tpm-tis-device-test.c | 1 + tests/qtest/tpm-tis-test.c | 1 + 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index a622f91a37..93c9d306b5 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1092,7 +1092,7 @@ static void test_acpi_piix4_tcg_numamem(void) uint64_t tpm_tis_base_addr; static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, - uint64_t base) + uint64_t base, enum TPMVersion tpm_version) { #ifdef CONFIG_TPM gchar *tmp_dir_name = g_strdup_printf("qemu-test_acpi_%s_tcg_%s.XXXXXX", @@ -1113,6 +1113,7 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, g_mutex_init(&test.data_mutex); g_cond_init(&test.data_cond); test.data_cond_signal = false; + test.tpm_version = tpm_version; thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test); tpm_emu_test_wait_cond(&test); @@ -1145,7 +1146,7 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, static void test_acpi_q35_tcg_tpm_tis(void) { - test_acpi_tcg_tpm("q35", "tis", 0xFED40000); + test_acpi_tcg_tpm("q35", "tis", 0xFED40000, TPM_VERSION_2_0); } static void test_acpi_tcg_dimm_pxm(const char *machine) diff --git a/tests/qtest/tpm-crb-test.c b/tests/qtest/tpm-crb-test.c index 50936f1482..7b94453390 100644 --- a/tests/qtest/tpm-crb-test.c +++ b/tests/qtest/tpm-crb-test.c @@ -156,6 +156,7 @@ int main(int argc, char **argv) g_mutex_init(&test.data_mutex); g_cond_init(&test.data_cond); test.data_cond_signal = false; + test.tpm_version = TPM_VERSION_2_0; thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test); tpm_emu_test_wait_cond(&test); diff --git a/tests/qtest/tpm-emu.c b/tests/qtest/tpm-emu.c index b9cddcc240..8baf49eafd 100644 --- a/tests/qtest/tpm-emu.c +++ b/tests/qtest/tpm-emu.c @@ -56,9 +56,16 @@ static void *tpm_emu_tpm_thread(void *data) s->tpm_msg->code = be32_to_cpu(s->tpm_msg->code); /* reply error */ - s->tpm_msg->tag = cpu_to_be16(TPM2_ST_NO_SESSIONS); - s->tpm_msg->len = cpu_to_be32(sizeof(struct tpm_hdr)); - s->tpm_msg->code = cpu_to_be32(TPM_RC_FAILURE); + switch (s->tpm_version) { + case TPM_VERSION_2_0: + s->tpm_msg->tag = cpu_to_be16(TPM2_ST_NO_SESSIONS); + s->tpm_msg->len = cpu_to_be32(sizeof(struct tpm_hdr)); + s->tpm_msg->code = cpu_to_be32(TPM_RC_FAILURE); + break; + default: + g_debug("unsupport TPM version %u", s->tpm_version); + g_assert_not_reached(); + } qio_channel_write(ioc, (char *)s->tpm_msg, be32_to_cpu(s->tpm_msg->len), &error_abort); } diff --git a/tests/qtest/tpm-emu.h b/tests/qtest/tpm-emu.h index b066ad63fb..610519883a 100644 --- a/tests/qtest/tpm-emu.h +++ b/tests/qtest/tpm-emu.h @@ -18,6 +18,7 @@ #include "qemu/sockets.h" #include "io/channel.h" +#include "sysemu/tpm.h" struct tpm_hdr { uint16_t tag; @@ -26,6 +27,12 @@ struct tpm_hdr { char buffer[]; } QEMU_PACKED; +#ifndef CONFIG_TPM +enum TPMVersion { + TPM_VERSION_2_0 = 2, +}; +#endif + typedef struct TPMTestState { GMutex data_mutex; GCond data_cond; @@ -34,6 +41,7 @@ typedef struct TPMTestState { QIOChannel *tpm_ioc; GThread *emu_tpm_thread; struct tpm_hdr *tpm_msg; + enum TPMVersion tpm_version; } TPMTestState; void tpm_emu_test_wait_cond(TPMTestState *s); diff --git a/tests/qtest/tpm-tis-device-test.c b/tests/qtest/tpm-tis-device-test.c index d36ae20243..3ddefb51ec 100644 --- a/tests/qtest/tpm-tis-device-test.c +++ b/tests/qtest/tpm-tis-device-test.c @@ -46,6 +46,7 @@ int main(int argc, char **argv) g_mutex_init(&test.data_mutex); g_cond_init(&test.data_cond); test.data_cond_signal = false; + test.tpm_version = TPM_VERSION_2_0; thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test); tpm_emu_test_wait_cond(&test); diff --git a/tests/qtest/tpm-tis-test.c b/tests/qtest/tpm-tis-test.c index 6fee4779ea..a4a25ba745 100644 --- a/tests/qtest/tpm-tis-test.c +++ b/tests/qtest/tpm-tis-test.c @@ -40,6 +40,7 @@ int main(int argc, char **argv) g_mutex_init(&test.data_mutex); g_cond_init(&test.data_cond); test.data_cond_signal = false; + test.tpm_version = TPM_VERSION_2_0; thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test); tpm_emu_test_wait_cond(&test); From a003dbc69e92b416dafa2b0d988c6ca8cff85ae4 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:39 -0400 Subject: [PATCH 03/10] tests: acpi: Prepare for renaming of TPM2 related ACPI files Cc: Michael S. Tsirkin Cc: Igor Mammedov Signed-off-by: Stefan Berger Reviewed-by: Igor Mammedov Message-id: 20210802215246.1433175-4-stefanb@linux.ibm.com --- tests/data/acpi/q35/DSDT.tis.tpm2 | 0 tests/data/acpi/q35/TPM2.tis.tpm2 | 0 tests/qtest/bios-tables-test-allowed-diff.h | 2 ++ 3 files changed, 2 insertions(+) create mode 100644 tests/data/acpi/q35/DSDT.tis.tpm2 create mode 100644 tests/data/acpi/q35/TPM2.tis.tpm2 diff --git a/tests/data/acpi/q35/DSDT.tis.tpm2 b/tests/data/acpi/q35/DSDT.tis.tpm2 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/data/acpi/q35/TPM2.tis.tpm2 b/tests/data/acpi/q35/TPM2.tis.tpm2 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index dfb8523c8b..b301b8fa06 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,3 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/q35/DSDT.tis.tpm2", +"tests/data/acpi/q35/TPM2.tis.tpm2", From bf8443ef99125e3c0f2511572af6de552287a734 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:40 -0400 Subject: [PATCH 04/10] tests: Add suffix 'tpm2' or 'tpm12' to ACPI table files Cc: Michael S. Tsirkin Cc: Igor Mammedov Signed-off-by: Stefan Berger Reviewed-by: Igor Mammedov Message-id: 20210802215246.1433175-5-stefanb@linux.ibm.com --- tests/qtest/bios-tables-test.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 93c9d306b5..4ccbe56158 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1101,7 +1101,8 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, TPMTestState test; test_data data; GThread *thread; - char *args, *variant = g_strdup_printf(".%s", tpm_if); + const char *suffix = tpm_version == TPM_VERSION_2_0 ? "tpm2" : "tpm12"; + char *args, *variant = g_strdup_printf(".%s.%s", tpm_if, suffix); tpm_tis_base_addr = base; From 4a42dda7c13498dfdc3e34575606e35109f22300 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:41 -0400 Subject: [PATCH 05/10] tests: acpi: tpm2: Add the renamed ACPI files and drop old ones Cc: Michael S. Tsirkin Cc: Igor Mammedov Signed-off-by: Stefan Berger Acked-by: Igor Mammedov Message-id: 20210802215246.1433175-6-stefanb@linux.ibm.com --- tests/data/acpi/q35/DSDT.tis | Bin 8894 -> 0 bytes tests/data/acpi/q35/DSDT.tis.tpm2 | Bin 0 -> 8894 bytes tests/data/acpi/q35/TPM2.tis | Bin 76 -> 0 bytes tests/data/acpi/q35/TPM2.tis.tpm2 | Bin 0 -> 76 bytes tests/qtest/bios-tables-test-allowed-diff.h | 2 -- 5 files changed, 2 deletions(-) delete mode 100644 tests/data/acpi/q35/DSDT.tis delete mode 100644 tests/data/acpi/q35/TPM2.tis diff --git a/tests/data/acpi/q35/DSDT.tis b/tests/data/acpi/q35/DSDT.tis deleted file mode 100644 index d1433e3c14570bbd17b029a9aec6bc53134c3b7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8894 zcmb7KO>7&-8J*>iv|28uB}GgAOH4RU+cZH!N%?Dwq$PLxXN%N|r0pbh!IkB-lAR)p zBm$Bc0b~V8TmvnVunu}DKnG0GTYKoa4cc4^q<{|w5}@dzhh75o(xQmbgVp!VaO4@1 z0%9JP`^~;L-@MtKebjvNnqKP<#~CyJT3B%_&1~U0-_7DuJ8 zL}Et!N`jx`P%tx(c!kqtIkQu#dUpP%WttsVoJGw}-fJ+kbGquW%<^PsrRm15U1F|xcA-~~cQ;bA zmea2NZRx9HM}P3)+1K))JoEXFu3fTX04(C$#P?E2hv0Hx9SeHS2i;BMEu!;l3%%J7 zy8N%{b~5GtA@6 zz!cR}cjsu^cbhFE@u_W@xHS~Gn7h+i9K39MyIDMmRq&Z@;l?E>a0|KONn9w@YYiiD zOVB8A3-!~rtY7t>%eIZevU`eU9`xPf$w>PFigtIy4MK!(7@LgxXn&KM`z-Tt9-MI~ z>MNu}Fu(>GZ^HMQwdvmSU}@ZZ>M#FnKJjMl{rN9zhyLu=Lh9?Kp9H-Jx))jRPrEO}rA_&Sdh$5)4bTWo9n$Co#GokB5sOrSK zP`RJBrqkASB2;xIHJwRKXHwURP}MoD>73SdPU|`msyb&hoim!w8C@qrRi~rrbTplg zt`niEGo|TFX*yH7PK2t?w5Bty=}hZ75vn?8HJ!7X&RJb2LRDu*)0xq9W^|nhRh|B z^Mg0xAO7;2enu28sY_MG!?Glfpm+j$4w!h$Y8oAgO@v87M+24F)Q((m)j`8K{8n87M-G zMjEKV4kF5_8mNHo87M-Gh+|=(0y~HX8ab2V$!cZaEVMszAv=5lUAi14Srx z!axO=^N}VuJf#pmXr~)Me6;RG314Srx!axOM_lrzad5lWpfP=V!47^ngz z0~JutBm+e#b;3XemNQ|X3X}{~Ksl2P6rt1!0~J`#gn=qhGEf2KOfpb}QYQ>lU^x>8 zszAv=1(Y+%KoLrvFi?TzOcu&LjgxD0RX>1(q{mpbC@>R6seC3>2Z%2?G^a z&V+#~P%=;f=3{*fllMEE0)CmI>Sk8ojDo`>|0p(0GP=rz^3>1-KpomlhMW`AmLd8H8 zCJa8#wU{u6d`Vd42db{76yt)&MgcSk(^sHP=s=B$v_cetLShC7Rq{d zm;bTar$0z zui9j9(YdwFTV`lKiUHv^cs$=}Hk!t@jlmcwJ+%+A7lyK9^W#vLt?NN|!^_x8>D}SC#z=RfZESZV>oTo(haVs#-HEob-Hog>Yys0clfv+; zWTZRMHnzKwb(7J%!%vlw?nK+z?nc(Z0lho?ei`Xbw2kd<HyTgx~k?us>*zQK2 z(|Nr+{L&fePPFOWIY;j9XYb53YXy{AP*$;{*zDQGve;{`)~ja7 zs1Z;7(mAdN0}_Kw=3T#<%Pr(+7@}|#&!pT|>G?>{>Ta-i+*~fVnW;=*_dY+>e&F0= zF{&8=ryJqbo&Bx)m>%9{rGe`G5T)#?VTw_~n7}brZdQXhN_>+O#w{Atlk%_@Y z@V3^euvmSp-`I`0UaF6~o*1ZQC%>Zs47S&sVs7+un^It#Pf(Y=Bd&b%?6rqcvK{m$+Gw_@28M~#J`|&f zip#g|FrQwzs947^QKDkatHF6plz2^2yYhY%Ma+b7bN+tJPGlzxUiCZ~^DBNsOgEL3 z?{4>&chY9eidfjtL-Yh)Ayv-z?%tC2 z&ZDKXuJFL*YO!`2kJKWeQP@>S?8Kcoz0sYOhtBabU-==rqwSqUGnW(fV@%1no4Kb& zfV*cf7;|&MV<=$aWKo_h@skO9TtHbl(ei7e9-FK+OD(*@si;o*wfeO>_1i7qUqrcl z_0}Ehh4vNnfYA4=brT0a>-!CUSf#UCb{R)hV*y%X_6y+9zbjB=)K<=%F*A!Tzf_;< zO?_~E13O%Om=-QBuvcv6-@3EG2IvI?ttGS1j~Mb|I!4oqv!!&Lo}o445O+oqM(af?q2hf!RWk3 zkR?0NCM9B~6 IX7<_t0lx)lc>n+a diff --git a/tests/data/acpi/q35/DSDT.tis.tpm2 b/tests/data/acpi/q35/DSDT.tis.tpm2 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d1433e3c14570bbd17b029a9aec6bc53134c3b7d 100644 GIT binary patch literal 8894 zcmb7KO>7&-8J*>iv|28uB}GgAOH4RU+cZH!N%?Dwq$PLxXN%N|r0pbh!IkB-lAR)p zBm$Bc0b~V8TmvnVunu}DKnG0GTYKoa4cc4^q<{|w5}@dzhh75o(xQmbgVp!VaO4@1 z0%9JP`^~;L-@MtKebjvNnqKP<#~CyJT3B%_&1~U0-_7DuJ8 zL}Et!N`jx`P%tx(c!kqtIkQu#dUpP%WttsVoJGw}-fJ+kbGquW%<^PsrRm15U1F|xcA-~~cQ;bA zmea2NZRx9HM}P3)+1K))JoEXFu3fTX04(C$#P?E2hv0Hx9SeHS2i;BMEu!;l3%%J7 zy8N%{b~5GtA@6 zz!cR}cjsu^cbhFE@u_W@xHS~Gn7h+i9K39MyIDMmRq&Z@;l?E>a0|KONn9w@YYiiD zOVB8A3-!~rtY7t>%eIZevU`eU9`xPf$w>PFigtIy4MK!(7@LgxXn&KM`z-Tt9-MI~ z>MNu}Fu(>GZ^HMQwdvmSU}@ZZ>M#FnKJjMl{rN9zhyLu=Lh9?Kp9H-Jx))jRPrEO}rA_&Sdh$5)4bTWo9n$Co#GokB5sOrSK zP`RJBrqkASB2;xIHJwRKXHwURP}MoD>73SdPU|`msyb&hoim!w8C@qrRi~rrbTplg zt`niEGo|TFX*yH7PK2t?w5Bty=}hZ75vn?8HJ!7X&RJb2LRDu*)0xq9W^|nhRh|B z^Mg0xAO7;2enu28sY_MG!?Glfpm+j$4w!h$Y8oAgO@v87M+24F)Q((m)j`8K{8n87M-G zMjEKV4kF5_8mNHo87M-Gh+|=(0y~HX8ab2V$!cZaEVMszAv=5lUAi14Srx z!axO=^N}VuJf#pmXr~)Me6;RG314Srx!axOM_lrzad5lWpfP=V!47^ngz z0~JutBm+e#b;3XemNQ|X3X}{~Ksl2P6rt1!0~J`#gn=qhGEf2KOfpb}QYQ>lU^x>8 zszAv=1(Y+%KoLrvFi?TzOcu&LjgxD0RX>1(q{mpbC@>R6seC3>2Z%2?G^a z&V+#~P%=;f=3{*fllMEE0)CmI>Sk8ojDo`>|0p(0GP=rz^3>1-KpomlhMW`AmLd8H8 zCJa8#wU{u6d`Vd42db{76yt)&MgcSk(^sHP=s=B$v_cetLShC7Rq{d zm;bTar$0z zui9j9(YdwFTV`lKiUHv^cs$=}Hk!t@jlmcwJ+%+A7lyK9^W#vLt?NN|!^_x8>D}SC#z=RfZESZV>oTo(haVs#-HEob-Hog>Yys0clfv+; zWTZRMHnzKwb(7J%!%vlw?nK+z?nc(Z0lho?ei`Xbw2kd<HyTgx~k?us>*zQK2 z(|Nr+{L&fePPFOWIY;j9XYb53YXy{AP*$;{*zDQGve;{`)~ja7 zs1Z;7(mAdN0}_Kw=3T#<%Pr(+7@}|#&!pT|>G?>{>Ta-i+*~fVnW;=*_dY+>e&F0= zF{&8=ryJqbo&Bx)m>%9{rGe`G5T)#?VTw_~n7}brZdQXhN_>+O#w{Atlk%_@Y z@V3^euvmSp-`I`0UaF6~o*1ZQC%>Zs47S&sVs7+un^It#Pf(Y=Bd&b%?6rqcvK{m$+Gw_@28M~#J`|&f zip#g|FrQwzs947^QKDkatHF6plz2^2yYhY%Ma+b7bN+tJPGlzxUiCZ~^DBNsOgEL3 z?{4>&chY9eidfjtL-Yh)Ayv-z?%tC2 z&ZDKXuJFL*YO!`2kJKWeQP@>S?8Kcoz0sYOhtBabU-==rqwSqUGnW(fV@%1no4Kb& zfV*cf7;|&MV<=$aWKo_h@skO9TtHbl(ei7e9-FK+OD(*@si;o*wfeO>_1i7qUqrcl z_0}Ehh4vNnfYA4=brT0a>-!CUSf#UCb{R)hV*y%X_6y+9zbjB=)K<=%F*A!Tzf_;< zO?_~E13O%Om=-QBuvcv6-@3EG2IvI?ttGS1j~Mb|I!4oqv!!&Lo}o445O+oqM(af?q2hf!RWk3 zkR?0NCM9B~6 IX7<_t0lx)lc>n+a literal 0 HcmV?d00001 diff --git a/tests/data/acpi/q35/TPM2.tis b/tests/data/acpi/q35/TPM2.tis deleted file mode 100644 index fe0f05987be40f1c1742ae189df7821adc522fc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 wcmWFu@HO&bU|?Vob@F%i2v%^42yj*a0!E-1hz+8V0UI(0%m%6W&kkY&0CHRh0RR91 diff --git a/tests/data/acpi/q35/TPM2.tis.tpm2 b/tests/data/acpi/q35/TPM2.tis.tpm2 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fe0f05987be40f1c1742ae189df7821adc522fc0 100644 GIT binary patch literal 76 wcmWFu@HO&bU|?Vob@F%i2v%^42yj*a0!E-1hz+8V0UI(0%m%6W&kkY&0CHRh0RR91 literal 0 HcmV?d00001 diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index b301b8fa06..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,3 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/q35/DSDT.tis.tpm2", -"tests/data/acpi/q35/TPM2.tis.tpm2", From 044d55dcd47cbb9f03db255cdad1586f17c8a2da Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:42 -0400 Subject: [PATCH 06/10] tests: tpm: Create TPM 1.2 response in TPM emulator Signed-off-by: Stefan Berger Acked-by: Igor Mammedov Message-id: 20210802215246.1433175-7-stefanb@linux.ibm.com --- tests/qtest/tpm-emu.c | 5 +++++ tests/qtest/tpm-emu.h | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/tests/qtest/tpm-emu.c b/tests/qtest/tpm-emu.c index 8baf49eafd..32c704194b 100644 --- a/tests/qtest/tpm-emu.c +++ b/tests/qtest/tpm-emu.c @@ -62,6 +62,11 @@ static void *tpm_emu_tpm_thread(void *data) s->tpm_msg->len = cpu_to_be32(sizeof(struct tpm_hdr)); s->tpm_msg->code = cpu_to_be32(TPM_RC_FAILURE); break; + case TPM_VERSION_1_2: + s->tpm_msg->tag = cpu_to_be16(TPM_TAG_RSP_COMMAND); + s->tpm_msg->len = cpu_to_be32(sizeof(struct tpm_hdr)); + s->tpm_msg->code = cpu_to_be32(TPM_FAIL); + break; default: g_debug("unsupport TPM version %u", s->tpm_version); g_assert_not_reached(); diff --git a/tests/qtest/tpm-emu.h b/tests/qtest/tpm-emu.h index 610519883a..fcb5d7a1d6 100644 --- a/tests/qtest/tpm-emu.h +++ b/tests/qtest/tpm-emu.h @@ -16,6 +16,9 @@ #define TPM_RC_FAILURE 0x101 #define TPM2_ST_NO_SESSIONS 0x8001 +#define TPM_FAIL 9 +#define TPM_TAG_RSP_COMMAND 0xc4 + #include "qemu/sockets.h" #include "io/channel.h" #include "sysemu/tpm.h" @@ -29,6 +32,7 @@ struct tpm_hdr { #ifndef CONFIG_TPM enum TPMVersion { + TPM_VERSION_1_2 = 1, TPM_VERSION_2_0 = 2, }; #endif From 343776a68528a132ff9068bb0731f584b38ff2ea Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:43 -0400 Subject: [PATCH 07/10] tests: acpi: prepare for new TPM 1.2 related tables Cc: Michael S. Tsirkin Cc: Igor Mammedov Signed-off-by: Stefan Berger Acked-by: Igor Mammedov Message-id: 20210802215246.1433175-8-stefanb@linux.ibm.com --- tests/data/acpi/q35/DSDT.tis.tpm12 | 0 tests/data/acpi/q35/TCPA.tis.tpm12 | 0 tests/qtest/bios-tables-test-allowed-diff.h | 2 ++ 3 files changed, 2 insertions(+) create mode 100644 tests/data/acpi/q35/DSDT.tis.tpm12 create mode 100644 tests/data/acpi/q35/TCPA.tis.tpm12 diff --git a/tests/data/acpi/q35/DSDT.tis.tpm12 b/tests/data/acpi/q35/DSDT.tis.tpm12 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/data/acpi/q35/TCPA.tis.tpm12 b/tests/data/acpi/q35/TCPA.tis.tpm12 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index dfb8523c8b..fb093b32b9 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,3 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/q35/DSDT.tis.tpm12", +"tests/data/acpi/q35/TCPA.tis.tpm12", From 58edc32cfc796d56336a283aace5bdb5de25dc80 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:44 -0400 Subject: [PATCH 08/10] tests: Use QMP to check whether a TPM device model is available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use QMP to check whether a given TPM device model is available and if it is not the case then do not register the tests that require it. Signed-off-by: Stefan Berger Reviewed-by: Marc-André Lureau Message-id: 20210802215246.1433175-9-stefanb@linux.ibm.com --- tests/qtest/bios-tables-test.c | 8 +++---- tests/qtest/tpm-emu.c | 38 ++++++++++++++++++++++++++++++++++ tests/qtest/tpm-emu.h | 2 ++ 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 4ccbe56158..89bf55c838 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1094,7 +1094,6 @@ uint64_t tpm_tis_base_addr; static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, uint64_t base, enum TPMVersion tpm_version) { -#ifdef CONFIG_TPM gchar *tmp_dir_name = g_strdup_printf("qemu-test_acpi_%s_tcg_%s.XXXXXX", machine, tpm_if); char *tmp_path = g_dir_make_tmp(tmp_dir_name, NULL); @@ -1140,9 +1139,6 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, g_free(tmp_dir_name); g_free(args); free_test_data(&data); -#else - g_test_skip("TPM disabled"); -#endif } static void test_acpi_q35_tcg_tpm_tis(void) @@ -1518,7 +1514,9 @@ int main(int argc, char *argv[]) return ret; } qtest_add_func("acpi/q35/oem-fields", test_acpi_oem_fields_q35); - qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis); + if (tpm_model_is_available("-machine q35", "tpm-tis")) { + qtest_add_func("acpi/q35/tpm2-tis", test_acpi_q35_tcg_tpm_tis); + } qtest_add_func("acpi/piix4", test_acpi_piix4_tcg); qtest_add_func("acpi/oem-fields", test_acpi_oem_fields_pc); qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge); diff --git a/tests/qtest/tpm-emu.c b/tests/qtest/tpm-emu.c index 32c704194b..2994d1cf42 100644 --- a/tests/qtest/tpm-emu.c +++ b/tests/qtest/tpm-emu.c @@ -16,6 +16,8 @@ #include "backends/tpm/tpm_ioctl.h" #include "io/channel-socket.h" #include "qapi/error.h" +#include "qapi/qmp/qlist.h" +#include "qapi/qmp/qstring.h" #include "tpm-emu.h" void tpm_emu_test_wait_cond(TPMTestState *s) @@ -192,3 +194,39 @@ void *tpm_emu_ctrl_thread(void *data) object_unref(OBJECT(lioc)); return NULL; } + +bool tpm_model_is_available(const char *args, const char *tpm_if) +{ + QTestState *qts; + QDict *rsp_tpm; + bool ret = false; + + qts = qtest_init(args); + if (!qts) { + return false; + } + + rsp_tpm = qtest_qmp(qts, "{ 'execute': 'query-tpm'}"); + if (!qdict_haskey(rsp_tpm, "error")) { + QDict *rsp_models = qtest_qmp(qts, + "{ 'execute': 'query-tpm-models'}"); + if (qdict_haskey(rsp_models, "return")) { + QList *models = qdict_get_qlist(rsp_models, "return"); + QListEntry *e; + + QLIST_FOREACH_ENTRY(models, e) { + QString *s = qobject_to(QString, qlist_entry_obj(e)); + const char *ename = qstring_get_str(s); + if (!strcmp(ename, tpm_if)) { + ret = true; + break; + } + } + } + qobject_unref(rsp_models); + } + qobject_unref(rsp_tpm); + qtest_quit(qts); + + return ret; +} diff --git a/tests/qtest/tpm-emu.h b/tests/qtest/tpm-emu.h index fcb5d7a1d6..c33d99af37 100644 --- a/tests/qtest/tpm-emu.h +++ b/tests/qtest/tpm-emu.h @@ -22,6 +22,7 @@ #include "qemu/sockets.h" #include "io/channel.h" #include "sysemu/tpm.h" +#include "libqos/libqtest.h" struct tpm_hdr { uint16_t tag; @@ -50,5 +51,6 @@ typedef struct TPMTestState { void tpm_emu_test_wait_cond(TPMTestState *s); void *tpm_emu_ctrl_thread(void *data); +bool tpm_model_is_available(const char *args, const char *tpm_if); #endif /* TESTS_TPM_EMU_H */ From 33660128d41722ea599afcfa85f1ab6496650c70 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:45 -0400 Subject: [PATCH 09/10] tests: acpi: Add test cases for TPM 1.2 with TCPA table Cc: Michael S. Tsirkin Cc: Igor Mammedov Signed-off-by: Stefan Berger Reviewed-by: Igor Mammedov Message-id: 20210802215246.1433175-10-stefanb@linux.ibm.com --- tests/qtest/bios-tables-test.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 89bf55c838..4f11d03055 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1141,11 +1141,16 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, free_test_data(&data); } -static void test_acpi_q35_tcg_tpm_tis(void) +static void test_acpi_q35_tcg_tpm2_tis(void) { test_acpi_tcg_tpm("q35", "tis", 0xFED40000, TPM_VERSION_2_0); } +static void test_acpi_q35_tcg_tpm12_tis(void) +{ + test_acpi_tcg_tpm("q35", "tis", 0xFED40000, TPM_VERSION_1_2); +} + static void test_acpi_tcg_dimm_pxm(const char *machine) { test_data data; @@ -1515,7 +1520,8 @@ int main(int argc, char *argv[]) } qtest_add_func("acpi/q35/oem-fields", test_acpi_oem_fields_q35); if (tpm_model_is_available("-machine q35", "tpm-tis")) { - qtest_add_func("acpi/q35/tpm2-tis", test_acpi_q35_tcg_tpm_tis); + qtest_add_func("acpi/q35/tpm2-tis", test_acpi_q35_tcg_tpm2_tis); + qtest_add_func("acpi/q35/tpm12-tis", test_acpi_q35_tcg_tpm12_tis); } qtest_add_func("acpi/piix4", test_acpi_piix4_tcg); qtest_add_func("acpi/oem-fields", test_acpi_oem_fields_pc); From 75539b886ade79a30365badf95831bd5b3068342 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 2 Aug 2021 17:52:46 -0400 Subject: [PATCH 10/10] tests: acpi: tpm1.2: Add expected TPM 1.2 ACPI blobs The TCPA.tis.tpm12 file contains the following: [000h 0000 4] Signature : "TCPA" [Trusted Computing Platform Alliance table] [004h 0004 4] Table Length : 00000032 [008h 0008 1] Revision : 02 [009h 0009 1] Checksum : 32 [00Ah 0010 6] Oem ID : "BOCHS " [010h 0016 8] Oem Table ID : "BXPC " [018h 0024 4] Oem Revision : 00000001 [01Ch 0028 4] Asl Compiler ID : "BXPC" [020h 0032 4] Asl Compiler Revision : 00000001 [024h 0036 2] Platform Class : 0000 [026h 0038 4] Min Event Log Length : 00010000 [02Ah 0042 8] Event Log Address : 0000000007FF0000 Cc: Michael S. Tsirkin Cc: Igor Mammedov Signed-off-by: Stefan Berger Acked-by: Igor Mammedov Message-id: 20210802215246.1433175-11-stefanb@linux.ibm.com --- tests/data/acpi/q35/DSDT.tis.tpm12 | Bin 0 -> 8894 bytes tests/data/acpi/q35/TCPA.tis.tpm12 | Bin 0 -> 50 bytes tests/qtest/bios-tables-test-allowed-diff.h | 2 -- 3 files changed, 2 deletions(-) diff --git a/tests/data/acpi/q35/DSDT.tis.tpm12 b/tests/data/acpi/q35/DSDT.tis.tpm12 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6735e73971c6be95deceb23051a78af6a4573bd8 100644 GIT binary patch literal 8894 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 E0|senc>n+a literal 0 HcmV?d00001 diff --git a/tests/data/acpi/q35/TCPA.tis.tpm12 b/tests/data/acpi/q35/TCPA.tis.tpm12 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a56961b413e7715b3d60f9836d1c8f2f4c7347cb 100644 GIT binary patch literal 50 qcmWG>4sbMLU|?V}a`Jcf2v%^42yj*a0!E-1hz+7a07U<12eAOxRtEt9 literal 0 HcmV?d00001 diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index fb093b32b9..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,3 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/q35/DSDT.tis.tpm12", -"tests/data/acpi/q35/TCPA.tis.tpm12",