Lines Matching refs:dev

32 static uint32_t TlclStartupIfNeeded(struct udevice *dev)  in TlclStartupIfNeeded()  argument
34 uint32_t result = tpm_startup(dev, TPM_ST_CLEAR); in TlclStartupIfNeeded()
39 static int test_timer(struct udevice *dev) in test_timer() argument
45 static uint32_t tpm_get_flags(struct udevice *dev, uint8_t *disable, in tpm_get_flags() argument
51 result = tpm_get_permanent_flags(dev, &pflags); in tpm_get_flags()
66 static uint32_t tpm_nv_write_value_lock(struct udevice *dev, uint32_t index) in tpm_nv_write_value_lock() argument
70 return tpm_nv_write_value(dev, index, NULL, 0); in tpm_nv_write_value_lock()
73 static int tpm_is_owned(struct udevice *dev) in tpm_is_owned() argument
78 result = tpm_read_pubek(dev, response, sizeof(response)); in tpm_is_owned()
83 static int test_early_extend(struct udevice *dev) in test_early_extend() argument
89 tpm_init(dev); in test_early_extend()
90 TPM_CHECK(tpm_startup(dev, TPM_ST_CLEAR)); in test_early_extend()
91 TPM_CHECK(tpm_continue_self_test(dev)); in test_early_extend()
92 TPM_CHECK(tpm_extend(dev, 1, value_in, value_out)); in test_early_extend()
97 static int test_early_nvram(struct udevice *dev) in test_early_nvram() argument
102 tpm_init(dev); in test_early_nvram()
103 TPM_CHECK(tpm_startup(dev, TPM_ST_CLEAR)); in test_early_nvram()
104 TPM_CHECK(tpm_continue_self_test(dev)); in test_early_nvram()
105 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_early_nvram()
106 TPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_early_nvram()
111 static int test_early_nvram2(struct udevice *dev) in test_early_nvram2() argument
116 tpm_init(dev); in test_early_nvram2()
117 TPM_CHECK(tpm_startup(dev, TPM_ST_CLEAR)); in test_early_nvram2()
118 TPM_CHECK(tpm_continue_self_test(dev)); in test_early_nvram2()
119 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_early_nvram2()
120 TPM_CHECK(tpm_nv_write_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_early_nvram2()
125 static int test_enable(struct udevice *dev) in test_enable() argument
130 tpm_init(dev); in test_enable()
131 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_enable()
132 TPM_CHECK(tpm_self_test_full(dev)); in test_enable()
133 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_enable()
134 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_enable()
136 TPM_CHECK(tpm_physical_enable(dev)); in test_enable()
137 TPM_CHECK(tpm_physical_set_deactivated(dev, 0)); in test_enable()
138 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_enable()
151 static int test_fast_enable(struct udevice *dev) in test_fast_enable() argument
157 tpm_init(dev); in test_fast_enable()
158 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_fast_enable()
159 TPM_CHECK(tpm_self_test_full(dev)); in test_fast_enable()
160 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_fast_enable()
161 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_fast_enable()
164 TPM_CHECK(tpm_force_clear(dev)); in test_fast_enable()
165 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_fast_enable()
169 TPM_CHECK(tpm_physical_enable(dev)); in test_fast_enable()
170 TPM_CHECK(tpm_physical_set_deactivated(dev, 0)); in test_fast_enable()
171 TPM_CHECK(tpm_get_flags(dev, &disable, &deactivated, NULL)); in test_fast_enable()
180 static int test_global_lock(struct udevice *dev) in test_global_lock() argument
187 tpm_init(dev); in test_global_lock()
188 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_global_lock()
189 TPM_CHECK(tpm_self_test_full(dev)); in test_global_lock()
190 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_global_lock()
191 TPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_global_lock()
192 TPM_CHECK(tpm_nv_write_value(dev, INDEX0, (uint8_t *)&zero, in test_global_lock()
194 TPM_CHECK(tpm_nv_read_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_global_lock()
195 TPM_CHECK(tpm_nv_write_value(dev, INDEX1, (uint8_t *)&zero, in test_global_lock()
197 TPM_CHECK(tpm_set_global_lock(dev)); in test_global_lock()
200 result = tpm_nv_write_value(dev, INDEX0, (uint8_t *)&x, sizeof(x)); in test_global_lock()
202 TPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_global_lock()
206 TPM_CHECK(tpm_nv_write_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_global_lock()
207 TPM_CHECK(tpm_nv_read_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_global_lock()
210 tpm_tsc_physical_presence(dev, PHYS_PRESENCE); in test_global_lock()
213 result = tpm_nv_write_value(dev, INDEX1, (uint8_t *)&x, sizeof(x)); in test_global_lock()
215 TPM_CHECK(tpm_nv_read_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_global_lock()
221 static int test_lock(struct udevice *dev) in test_lock() argument
224 tpm_init(dev); in test_lock()
225 tpm_startup(dev, TPM_ST_CLEAR); in test_lock()
226 tpm_self_test_full(dev); in test_lock()
227 tpm_tsc_physical_presence(dev, PRESENCE); in test_lock()
228 tpm_nv_write_value_lock(dev, INDEX0); in test_lock()
234 static void initialise_spaces(struct udevice *dev) in initialise_spaces() argument
240 tpm_nv_set_locked(dev); /* useful only the first time */ in initialise_spaces()
241 tpm_nv_define_space(dev, INDEX0, perm, 4); in initialise_spaces()
242 tpm_nv_write_value(dev, INDEX0, (uint8_t *)&zero, 4); in initialise_spaces()
243 tpm_nv_define_space(dev, INDEX1, perm, 4); in initialise_spaces()
244 tpm_nv_write_value(dev, INDEX1, (uint8_t *)&zero, 4); in initialise_spaces()
245 tpm_nv_define_space(dev, INDEX2, perm, 4); in initialise_spaces()
246 tpm_nv_write_value(dev, INDEX2, (uint8_t *)&zero, 4); in initialise_spaces()
247 tpm_nv_define_space(dev, INDEX3, perm, 4); in initialise_spaces()
248 tpm_nv_write_value(dev, INDEX3, (uint8_t *)&zero, 4); in initialise_spaces()
251 tpm_nv_define_space(dev, INDEX_INITIALISED, perm, 1); in initialise_spaces()
254 static int test_readonly(struct udevice *dev) in test_readonly() argument
261 tpm_init(dev); in test_readonly()
262 tpm_startup(dev, TPM_ST_CLEAR); in test_readonly()
263 tpm_self_test_full(dev); in test_readonly()
264 tpm_tsc_physical_presence(dev, PRESENCE); in test_readonly()
269 if (tpm_nv_read_value(dev, INDEX_INITIALISED, &c, 0) == TPM_BADINDEX) { in test_readonly()
271 initialise_spaces(dev); in test_readonly()
275 read0 = tpm_nv_read_value(dev, INDEX0, (uint8_t *)&index_0, in test_readonly()
277 read1 = tpm_nv_read_value(dev, INDEX1, (uint8_t *)&index_1, in test_readonly()
279 read2 = tpm_nv_read_value(dev, INDEX2, (uint8_t *)&index_2, in test_readonly()
281 read3 = tpm_nv_read_value(dev, INDEX3, (uint8_t *)&index_3, in test_readonly()
293 if (tpm_nv_write_value(dev, INDEX0, (uint8_t *)&index_0, in test_readonly()
298 tpm_nv_write_value_lock(dev, INDEX0); in test_readonly()
299 if (tpm_nv_write_value(dev, INDEX0, (uint8_t *)&index_0, in test_readonly()
308 static int test_redefine_unowned(struct udevice *dev) in test_redefine_unowned() argument
315 tpm_init(dev); in test_redefine_unowned()
316 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_redefine_unowned()
317 TPM_CHECK(tpm_self_test_full(dev)); in test_redefine_unowned()
318 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_redefine_unowned()
319 assert(!tpm_is_owned(dev)); in test_redefine_unowned()
322 TPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x))); in test_redefine_unowned()
323 TPM_CHECK(tpm_nv_read_value(dev, INDEX1, (uint8_t *)&x, sizeof(x))); in test_redefine_unowned()
327 TPM_CHECK(tpm_nv_define_space(dev, INDEX0, perm, 2 * sizeof(uint32_t))); in test_redefine_unowned()
328 TPM_CHECK(tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t))); in test_redefine_unowned()
330 TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, 2 * sizeof(uint32_t))); in test_redefine_unowned()
331 TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t))); in test_redefine_unowned()
334 tpm_set_global_lock(dev); in test_redefine_unowned()
337 result = tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t)); in test_redefine_unowned()
341 TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, 2 * sizeof(uint32_t))); in test_redefine_unowned()
342 TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t))); in test_redefine_unowned()
345 tpm_tsc_physical_presence(dev, PHYS_PRESENCE); in test_redefine_unowned()
348 result = tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t)); in test_redefine_unowned()
350 result = tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t)); in test_redefine_unowned()
360 static int test_space_perm(struct udevice *dev) in test_space_perm() argument
365 tpm_init(dev); in test_space_perm()
366 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_space_perm()
367 TPM_CHECK(tpm_continue_self_test(dev)); in test_space_perm()
368 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_space_perm()
369 TPM_CHECK(tpm_get_permissions(dev, INDEX0, &perm)); in test_space_perm()
371 TPM_CHECK(tpm_get_permissions(dev, INDEX1, &perm)); in test_space_perm()
377 static int test_startup(struct udevice *dev) in test_startup() argument
383 tpm_init(dev); in test_startup()
384 result = tpm_startup(dev, TPM_ST_CLEAR); in test_startup()
387 result = tpm_get_flags(dev, NULL, NULL, NULL); in test_startup()
391 tpm_self_test_full(dev); in test_startup()
392 result = tpm_get_flags(dev, NULL, NULL, NULL); in test_startup()
421 static int test_timing(struct udevice *dev) in test_timing() argument
427 tpm_init(dev); in test_timing()
428 TTPM_CHECK(TlclStartupIfNeeded(dev), 50); in test_timing()
429 TTPM_CHECK(tpm_continue_self_test(dev), 100); in test_timing()
430 TTPM_CHECK(tpm_self_test_full(dev), 1000); in test_timing()
431 TTPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE), 100); in test_timing()
432 TTPM_CHECK(tpm_nv_write_value(dev, INDEX0, (uint8_t *)&x, sizeof(x)), in test_timing()
434 TTPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x)), in test_timing()
436 TTPM_CHECK(tpm_extend(dev, 0, in, out), 200); in test_timing()
437 TTPM_CHECK(tpm_set_global_lock(dev), 50); in test_timing()
438 TTPM_CHECK(tpm_tsc_physical_presence(dev, PHYS_PRESENCE), 100); in test_timing()
445 static int test_write_limit(struct udevice *dev) in test_write_limit() argument
451 tpm_init(dev); in test_write_limit()
452 TPM_CHECK(TlclStartupIfNeeded(dev)); in test_write_limit()
453 TPM_CHECK(tpm_self_test_full(dev)); in test_write_limit()
454 TPM_CHECK(tpm_tsc_physical_presence(dev, PRESENCE)); in test_write_limit()
455 TPM_CHECK(tpm_force_clear(dev)); in test_write_limit()
456 TPM_CHECK(tpm_physical_enable(dev)); in test_write_limit()
457 TPM_CHECK(tpm_physical_set_deactivated(dev, 0)); in test_write_limit()
461 result = tpm_nv_write_value(dev, INDEX0, (uint8_t *)&i, in test_write_limit()
475 TPM_CHECK(tpm_force_clear(dev)); in test_write_limit()
476 TPM_CHECK(tpm_physical_enable(dev)); in test_write_limit()
477 TPM_CHECK(tpm_physical_set_deactivated(dev, 0)); in test_write_limit()
480 TPM_CHECK(tpm_nv_write_value(dev, INDEX0, (uint8_t *)&i, sizeof(i))); in test_write_limit()
489 struct udevice *dev; \
492 ret = get_tpm(&dev); \
495 return test_##XFUNC(dev); \