sunxi_hal_efuse.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. #ifndef __SUNXI_SID_H__
  22. #define __SUNXI_SID_H__
  23. typedef enum efuse_err
  24. {
  25. EFUSE_ERR_ARG = -1,
  26. EFUSE_ERR_KEY_NAME_WRONG = -2,
  27. EFUSE_ERR_KEY_SIZE_TOO_BIG = -3,
  28. EFUSE_ERR_PRIVATE = -4,
  29. EFUSE_ERR_ALREADY_BURNED = -5,
  30. EFUSE_ERR_READ_FORBID = -6,
  31. EFUSE_ERR_BURN_TIMING = -7,
  32. EFUSE_ERR_NO_ACCESS = -8,
  33. EFUSE_ERR_INVALID_ROTPK = -9,
  34. }efuse_err_e;
  35. /* internal struct */
  36. typedef struct efuse_key_map_new{
  37. #define SUNXI_KEY_NAME_LEN 64
  38. char name[SUNXI_KEY_NAME_LEN]; /* key_name */
  39. int offset; /* key_addr offset */
  40. int size; /* unit: bit */
  41. int rd_fbd_offset; /* key can read or not */
  42. int burned_flg_offset; /* key has burned or not */
  43. int sw_rule;
  44. }efuse_key_map_new_t;
  45. int hal_efuse_write(char *key_name, unsigned char *key_data, size_t key_bit_len);
  46. int hal_efuse_read(char *key_name, unsigned char *key_data, size_t key_bit_len);
  47. int hal_efuse_set_security_mode(void);
  48. int hal_efuse_get_security_mode(void);
  49. int hal_efuse_get_chipid(unsigned char *buffer);
  50. int hal_efuse_get_thermal_cdata(unsigned char *buffer);
  51. #endif /* #ifndef __EFUSE_H__ */