// SPDX-License-Identifier: GPL-2.0+ /* * Copyright 2022 Google LLC * Written by Simon Glass */ #include #include #include #include #include #include /* Basic test of the TPM uclass */ static int dm_test_tpm(struct unit_test_state *uts) { struct udevice *dev; char buf[50]; /* check probe success */ ut_assertok(uclass_first_device_err(UCLASS_TPM, &dev)); ut_assert(tpm_is_v2(dev)); ut_assert(tpm_report_state(dev, buf, sizeof(buf))); ut_asserteq_str("init_done=0", buf); ut_assertok(tpm_init(dev)); /* * tpm auto start will rerun tpm_init, but handles the * -EBUSY return code internally. */ ut_assertok(tpm_auto_start(dev)); ut_assert(tpm_report_state(dev, buf, sizeof(buf))); ut_asserteq_str("init_done=1", buf); return 0; } DM_TEST(dm_test_tpm, UT_TESTF_SCAN_FDT);