xref: /rk3399_rockchip-uboot/include/optee_include/OpteeClientInterface.h (revision bb1ba6ac462e714ea2e30271e49073c93771d25f)
1ae8ec5e1SHisping Lin /*
2ae8ec5e1SHisping Lin  * Copyright 2017, Rockchip Electronics Co., Ltd
3ae8ec5e1SHisping Lin  * hisping lin, <hisping.lin@rock-chips.com>
4ae8ec5e1SHisping Lin  *
5ae8ec5e1SHisping Lin  * SPDX-License-Identifier:	GPL-2.0+
6ae8ec5e1SHisping Lin  */
7ae8ec5e1SHisping Lin #ifndef _OPTEECLIENTTEST_H_
8ae8ec5e1SHisping Lin #define _OPTEECLIENTTEST_H_
9ae8ec5e1SHisping Lin 
1078ef5fbdSqiujian #include <optee_include/tee_client_api.h>
1178ef5fbdSqiujian 
12*bb1ba6acSHisping Lin enum RK_OEM_HR_OTP_KEYID {
13*bb1ba6acSHisping Lin 	RK_OEM_HR_OTP_KEY0 = 0,		/* keyladder key0 */
14*bb1ba6acSHisping Lin 	RK_OEM_HR_OTP_KEY1 = 1,		/* keyladder key1 */
15*bb1ba6acSHisping Lin 	RK_OEM_HR_OTP_KEY2 = 2,		/* keyladder key2 */
16*bb1ba6acSHisping Lin 	RK_OEM_HR_OTP_KEY3 = 3,		/* keyladder key3 */
17*bb1ba6acSHisping Lin 	RK_OEM_HR_OTP_KEYMAX
18*bb1ba6acSHisping Lin };
19*bb1ba6acSHisping Lin 
202e40c2c1SJason Zhu #define ATAP_HEX_UUID_LEN 32
212e40c2c1SJason Zhu #define ATTEST_DH_SIZE     8
222e40c2c1SJason Zhu #define ATTEST_UUID_SIZE     (ATAP_HEX_UUID_LEN+1)
232e40c2c1SJason Zhu #define ATTEST_CA_OUT_SIZE     256
242e40c2c1SJason Zhu 
25ae8ec5e1SHisping Lin uint32_t trusty_read_rollback_index(uint32_t slot, uint64_t *value);
26ae8ec5e1SHisping Lin uint32_t trusty_write_rollback_index(uint32_t slot, uint64_t value);
27ae8ec5e1SHisping Lin uint32_t trusty_read_permanent_attributes(uint8_t *attributes, uint32_t size);
28ae8ec5e1SHisping Lin uint32_t trusty_write_permanent_attributes(uint8_t *attributes, uint32_t size);
29564654ebSJason Zhu uint32_t trusty_read_permanent_attributes_cer(uint8_t *attributes,
30564654ebSJason Zhu 					      uint32_t size);
31564654ebSJason Zhu uint32_t trusty_write_permanent_attributes_cer(uint8_t *attributes,
32564654ebSJason Zhu 					       uint32_t size);
33ae8ec5e1SHisping Lin uint32_t trusty_read_lock_state(uint8_t *lock_state);
34ae8ec5e1SHisping Lin uint32_t trusty_write_lock_state(uint8_t lock_state);
35ae8ec5e1SHisping Lin uint32_t trusty_read_flash_lock_state(uint8_t *flash_lock_state);
36ae8ec5e1SHisping Lin uint32_t trusty_write_flash_lock_state(uint8_t flash_lock_state);
3778ef5fbdSqiujian 
386ef445a4SHisping Lin uint32_t trusty_read_attribute_hash(uint32_t *buf, uint32_t length);
396ef445a4SHisping Lin uint32_t trusty_write_attribute_hash(uint32_t *buf, uint32_t length);
4016539616SHisping Lin uint32_t trusty_notify_optee_uboot_end(void);
412cd27853SHisping Lin uint32_t trusty_read_vbootkey_hash(uint32_t *buf, uint32_t length);
422cd27853SHisping Lin uint32_t trusty_write_vbootkey_hash(uint32_t *buf, uint32_t length);
43468df3b2SHisping Lin uint32_t trusty_read_vbootkey_enable_flag(uint8_t *flag);
441ef63c75SHisping Lin uint32_t trusty_write_ta_encryption_key(uint32_t *buf, uint32_t length);
45fbf29bfbSHisping Lin uint32_t trusty_check_security_level_flag(uint8_t flag);
46f39d4289SHisping Lin uint32_t trusty_write_oem_huk(uint32_t *buf, uint32_t length);
477504da74SHisping Lin void trusty_select_security_level(void);
48095e2a82SHisping Lin uint32_t trusty_read_permanent_attributes_flag(uint8_t *attributes);
49095e2a82SHisping Lin uint32_t trusty_write_permanent_attributes_flag(uint8_t attributes);
50d5913350SHisping Lin uint32_t trusty_write_oem_ns_otp(uint32_t byte_off, uint8_t *byte_buf, uint32_t byte_len);
51d5913350SHisping Lin uint32_t trusty_read_oem_ns_otp(uint32_t byte_off, uint8_t *byte_buf, uint32_t byte_len);
52*bb1ba6acSHisping Lin uint32_t trusty_write_oem_hr_otp(enum RK_OEM_HR_OTP_KEYID key_id,
53*bb1ba6acSHisping Lin 				 uint8_t *byte_buf, uint32_t byte_len);
544aa61755SAndy Ye uint32_t trusty_attest_dh(uint8_t *dh, uint32_t *dh_size);
554aa61755SAndy Ye uint32_t trusty_attest_uuid(uint8_t *uuid, uint32_t *uuid_size);
564aa61755SAndy Ye uint32_t trusty_attest_get_ca
574aa61755SAndy Ye 	(uint8_t *operation_start, uint32_t *operation_size,
584aa61755SAndy Ye 	 uint8_t *out, uint32_t *out_len);
594aa61755SAndy Ye uint32_t trusty_attest_set_ca(uint8_t *ca_response, uint32_t *ca_response_size);
6078ef5fbdSqiujian 
61ae8ec5e1SHisping Lin #endif
62