Lines Matching refs:dev
33 static uint32_t TlclStartupIfNeeded(struct udevice *dev) in TlclStartupIfNeeded() argument
35 uint32_t result = tpm_startup(dev, TPM_ST_CLEAR); in TlclStartupIfNeeded()
40 static int test_timer(struct udevice *dev) in test_timer() argument
46 static uint32_t tpm_get_flags(struct udevice *dev, uint8_t *disable, in tpm_get_flags() argument
52 result = tpm_get_permanent_flags(dev, &pflags); in tpm_get_flags()
67 static uint32_t tpm_nv_write_value_lock(struct udevice *dev, uint32_t index) in tpm_nv_write_value_lock() argument
71 return tpm_nv_write_value(dev, index, NULL, 0); in tpm_nv_write_value_lock()
74 static int tpm_is_owned(struct udevice *dev) in tpm_is_owned() argument
79 result = tpm_read_pubek(dev, response, sizeof(response)); in tpm_is_owned()
84 static int test_early_extend(struct udevice *dev) in test_early_extend() argument
90 tpm_init(dev); in test_early_extend()
91 TPM_CHECK(tpm_startup(dev, TPM_ST_CLEAR)); in test_early_extend()
92 TPM_CHECK(tpm_continue_self_test(dev)); in test_early_extend()
93 TPM_CHECK(tpm_extend(dev, 1, value_in, value_out)); in test_early_extend()
98 static int test_early_nvram(struct udevice *dev) in test_early_nvram() argument
103 tpm_init(dev); in test_early_nvram()
104 TPM_CHECK(tpm_startup(dev, TPM_ST_CLEAR)); in test_early_nvram()
105 TPM_CHECK(tpm_continue_self_test(dev)); in test_early_nvram()
106 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_early_nvram()
107 TPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_early_nvram()
112 static int test_early_nvram2(struct udevice *dev) in test_early_nvram2() argument
117 tpm_init(dev); in test_early_nvram2()
118 TPM_CHECK(tpm_startup(dev, TPM_ST_CLEAR)); in test_early_nvram2()
119 TPM_CHECK(tpm_continue_self_test(dev)); in test_early_nvram2()
120 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_early_nvram2()
121 TPM_CHECK(tpm_nv_write_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_early_nvram2()
126 static int test_enable(struct udevice *dev) in test_enable() argument
131 tpm_init(dev); in test_enable()
132 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_enable()
133 TPM_CHECK(tpm_self_test_full(dev)); in test_enable()
134 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_enable()
135 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_enable()
137 TPM_CHECK(tpm_physical_enable(dev)); in test_enable()
138 TPM_CHECK(tpm_physical_set_deactivated(dev, 0)); in test_enable()
139 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_enable()
152 static int test_fast_enable(struct udevice *dev) in test_fast_enable() argument
158 tpm_init(dev); in test_fast_enable()
159 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_fast_enable()
160 TPM_CHECK(tpm_self_test_full(dev)); in test_fast_enable()
161 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_fast_enable()
162 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_fast_enable()
165 TPM_CHECK(tpm_force_clear(dev)); in test_fast_enable()
166 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_fast_enable()
170 TPM_CHECK(tpm_physical_enable(dev)); in test_fast_enable()
171 TPM_CHECK(tpm_physical_set_deactivated(dev, 0)); in test_fast_enable()
172 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_fast_enable()
181 static int test_global_lock(struct udevice *dev) in test_global_lock() argument
188 tpm_init(dev); in test_global_lock()
189 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_global_lock()
190 TPM_CHECK(tpm_self_test_full(dev)); in test_global_lock()
191 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_global_lock()
192 TPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_global_lock()
193 TPM_CHECK(tpm_nv_write_value(dev, INDEX0, (uint8_t *)&zero, in test_global_lock()
195 TPM_CHECK(tpm_nv_read_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_global_lock()
196 TPM_CHECK(tpm_nv_write_value(dev, INDEX1, (uint8_t *)&zero, in test_global_lock()
198 TPM_CHECK(tpm_set_global_lock(dev)); in test_global_lock()
201 result = tpm_nv_write_value(dev, INDEX0, (uint8_t *)&x, sizeof(x)); in test_global_lock()
203 TPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_global_lock()
207 TPM_CHECK(tpm_nv_write_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_global_lock()
208 TPM_CHECK(tpm_nv_read_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_global_lock()
211 tpm_tsc_physical_presence(dev, PHYS_PRESENCE); in test_global_lock()
214 result = tpm_nv_write_value(dev, INDEX1, (uint8_t *)&x, sizeof(x)); in test_global_lock()
216 TPM_CHECK(tpm_nv_read_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_global_lock()
222 static int test_lock(struct udevice *dev) in test_lock() argument
225 tpm_init(dev); in test_lock()
226 tpm_startup(dev, TPM_ST_CLEAR); in test_lock()
227 tpm_self_test_full(dev); in test_lock()
228 tpm_tsc_physical_presence(dev, PRESENCE); in test_lock()
229 tpm_nv_write_value_lock(dev, INDEX0); in test_lock()
235 static void initialise_spaces(struct udevice *dev) in initialise_spaces() argument
241 tpm_nv_set_locked(dev); /* useful only the first time */ in initialise_spaces()
242 tpm_nv_define_space(dev, INDEX0, perm, 4); in initialise_spaces()
243 tpm_nv_write_value(dev, INDEX0, (uint8_t *)&zero, 4); in initialise_spaces()
244 tpm_nv_define_space(dev, INDEX1, perm, 4); in initialise_spaces()
245 tpm_nv_write_value(dev, INDEX1, (uint8_t *)&zero, 4); in initialise_spaces()
246 tpm_nv_define_space(dev, INDEX2, perm, 4); in initialise_spaces()
247 tpm_nv_write_value(dev, INDEX2, (uint8_t *)&zero, 4); in initialise_spaces()
248 tpm_nv_define_space(dev, INDEX3, perm, 4); in initialise_spaces()
249 tpm_nv_write_value(dev, INDEX3, (uint8_t *)&zero, 4); in initialise_spaces()
252 tpm_nv_define_space(dev, INDEX_INITIALISED, perm, 1); in initialise_spaces()
255 static int test_readonly(struct udevice *dev) in test_readonly() argument
262 tpm_init(dev); in test_readonly()
263 tpm_startup(dev, TPM_ST_CLEAR); in test_readonly()
264 tpm_self_test_full(dev); in test_readonly()
265 tpm_tsc_physical_presence(dev, PRESENCE); in test_readonly()
270 if (tpm_nv_read_value(dev, INDEX_INITIALISED, &c, 0) == TPM_BADINDEX) { in test_readonly()
272 initialise_spaces(dev); in test_readonly()
276 read0 = tpm_nv_read_value(dev, INDEX0, (uint8_t *)&index_0, in test_readonly()
278 read1 = tpm_nv_read_value(dev, INDEX1, (uint8_t *)&index_1, in test_readonly()
280 read2 = tpm_nv_read_value(dev, INDEX2, (uint8_t *)&index_2, in test_readonly()
282 read3 = tpm_nv_read_value(dev, INDEX3, (uint8_t *)&index_3, in test_readonly()
294 if (tpm_nv_write_value(dev, INDEX0, (uint8_t *)&index_0, in test_readonly()
299 tpm_nv_write_value_lock(dev, INDEX0); in test_readonly()
300 if (tpm_nv_write_value(dev, INDEX0, (uint8_t *)&index_0, in test_readonly()
309 static int test_redefine_unowned(struct udevice *dev) in test_redefine_unowned() argument
316 tpm_init(dev); in test_redefine_unowned()
317 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_redefine_unowned()
318 TPM_CHECK(tpm_self_test_full(dev)); in test_redefine_unowned()
319 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_redefine_unowned()
320 assert(!tpm_is_owned(dev)); in test_redefine_unowned()
323 TPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_redefine_unowned()
324 TPM_CHECK(tpm_nv_read_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_redefine_unowned()
328 TPM_CHECK(tpm_nv_define_space(dev, INDEX0, perm, 2 * sizeof(uint32_t))); in test_redefine_unowned()
329 TPM_CHECK(tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t))); in test_redefine_unowned()
331 TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, 2 * sizeof(uint32_t))); in test_redefine_unowned()
332 TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t))); in test_redefine_unowned()
335 tpm_set_global_lock(dev); in test_redefine_unowned()
338 result = tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t)); in test_redefine_unowned()
342 TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, 2 * sizeof(uint32_t))); in test_redefine_unowned()
343 TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t))); in test_redefine_unowned()
346 tpm_tsc_physical_presence(dev, PHYS_PRESENCE); in test_redefine_unowned()
349 result = tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t)); in test_redefine_unowned()
351 result = tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t)); in test_redefine_unowned()
361 static int test_space_perm(struct udevice *dev) in test_space_perm() argument
366 tpm_init(dev); in test_space_perm()
367 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_space_perm()
368 TPM_CHECK(tpm_continue_self_test(dev)); in test_space_perm()
369 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_space_perm()
370 TPM_CHECK(tpm_get_permissions(dev, INDEX0, &perm)); in test_space_perm()
372 TPM_CHECK(tpm_get_permissions(dev, INDEX1, &perm)); in test_space_perm()
378 static int test_startup(struct udevice *dev) in test_startup() argument
384 tpm_init(dev); in test_startup()
385 result = tpm_startup(dev, TPM_ST_CLEAR); in test_startup()
388 result = tpm_get_flags(dev, NULL, NULL, NULL); in test_startup()
392 tpm_self_test_full(dev); in test_startup()
393 result = tpm_get_flags(dev, NULL, NULL, NULL); in test_startup()
422 static int test_timing(struct udevice *dev) in test_timing() argument
428 tpm_init(dev); in test_timing()
429 TTPM_CHECK(TlclStartupIfNeeded(dev), 50); in test_timing()
430 TTPM_CHECK(tpm_continue_self_test(dev), 100); in test_timing()
431 TTPM_CHECK(tpm_self_test_full(dev), 1000); in test_timing()
432 TTPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE), 100); in test_timing()
433 TTPM_CHECK(tpm_nv_write_value(dev, INDEX0, (uint8_t *)&x, sizeof(x)), in test_timing()
435 TTPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x)), in test_timing()
437 TTPM_CHECK(tpm_extend(dev, 0, in, out), 200); in test_timing()
438 TTPM_CHECK(tpm_set_global_lock(dev), 50); in test_timing()
439 TTPM_CHECK(tpm_tsc_physical_presence(dev, PHYS_PRESENCE), 100); in test_timing()
446 static int test_write_limit(struct udevice *dev) in test_write_limit() argument
452 tpm_init(dev); in test_write_limit()
453 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_write_limit()
454 TPM_CHECK(tpm_self_test_full(dev)); in test_write_limit()
455 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_write_limit()
456 TPM_CHECK(tpm_force_clear(dev)); in test_write_limit()
457 TPM_CHECK(tpm_physical_enable(dev)); in test_write_limit()
458 TPM_CHECK(tpm_physical_set_deactivated(dev, 0)); in test_write_limit()
462 result = tpm_nv_write_value(dev, INDEX0, (uint8_t *)&i, in test_write_limit()
476 TPM_CHECK(tpm_force_clear(dev)); in test_write_limit()
477 TPM_CHECK(tpm_physical_enable(dev)); in test_write_limit()
478 TPM_CHECK(tpm_physical_set_deactivated(dev, 0)); in test_write_limit()
481 TPM_CHECK(tpm_nv_write_value(dev, INDEX0, (uint8_t *)&i, sizeof(i))); in test_write_limit()
490 struct udevice *dev; \
493 ret = get_tpm(&dev); \
496 return test_##XFUNC(dev); \