1 /* 2 ********************************************************************************************************************** 3 * 4 * the Embedded Secure Bootloader System 5 * 6 * 7 * Copyright(C), 2006-2014, Allwinnertech Co., Ltd. 8 * All Rights Reserved 9 * 10 * File : 11 * 12 * By : 13 * 14 * Version : V2.00 15 * 16 * Date : 17 * 18 * Descript: 19 ********************************************************************************************************************** 20 */ 21 22 #ifndef __SUNXI_SID_H__ 23 #define __SUNXI_SID_H__ 24 25 typedef enum efuse_err 26 { 27 EFUSE_ERR_ARG = -1, 28 EFUSE_ERR_KEY_NAME_WRONG = -2, 29 EFUSE_ERR_KEY_SIZE_TOO_BIG = -3, 30 EFUSE_ERR_PRIVATE = -4, 31 EFUSE_ERR_ALREADY_BURNED = -5, 32 EFUSE_ERR_READ_FORBID = -6, 33 EFUSE_ERR_BURN_TIMING = -7, 34 EFUSE_ERR_NO_ACCESS = -8, 35 EFUSE_ERR_INVALID_ROTPK = -9, 36 }efuse_err_e; 37 38 /* internal struct */ 39 typedef struct efuse_key_map_new{ 40 #define SUNXI_KEY_NAME_LEN 64 41 char name[SUNXI_KEY_NAME_LEN]; /* key_name */ 42 int offset; /* key_addr offset */ 43 int size; /* unit: bit */ 44 int rd_fbd_offset; /* key can read or not */ 45 int burned_flg_offset; /* key has burned or not */ 46 int sw_rule; 47 }efuse_key_map_new_t; 48 49 50 int hal_efuse_write(char *key_name, unsigned char *key_data, size_t key_bit_len); 51 int hal_efuse_read(char *key_name, unsigned char *key_data, size_t key_bit_len); 52 int hal_efuse_set_security_mode(void); 53 int hal_efuse_get_security_mode(void); 54 int hal_efuse_get_chipid(unsigned char *buffer); 55 int hal_efuse_get_thermal_cdata(unsigned char *buffer); 56 57 #endif /* #ifndef __EFUSE_H__ */ 58