keyram.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * Copyright (C) 2017-2020 Alibaba Group Holding Limited
  3. */
  4. /******************************************************************************
  5. * @file keyram.h
  6. * @brief CSI Source File for kdf Driver
  7. * @version V1.0
  8. * @date 12. MAR 2021
  9. ******************************************************************************/
  10. #include "kdf.h"
  11. #include <stdio.h>
  12. #include <string.h>
  13. #define KDF_CON 0x000
  14. #define KDF_KEYTRANSFER 0x004
  15. #define KDF_KEYINDEX 0x008
  16. #define KDF_INTCON 0x00C
  17. #define KDF_ZONE1SADDR 0x020
  18. #define KDF_ZONE2SADDR 0x030
  19. #define KDF_ZONE3SADDR 0x040
  20. #define KDF_RAMENC_KEY0H 0x058
  21. #define KDF_RAMENC_KEY0L 0x05c
  22. #define KDF_RAMENC_KEY1H 0x060
  23. #define KDF_RAMENC_KEY1L 0x064
  24. #define KDF_RAMENC_KEY2H 0x068
  25. #define KDF_RAMENC_KEY2L 0x06c
  26. #define KDF_RAMENC_KEY3H 0x070
  27. #define KDF_RAMENC_KEY3L 0x074
  28. #define KDF_MASK_RNG0 0x080
  29. #define KDF_MASK_RNG1 0x084
  30. #define KDF_MASK_RNG2 0x088
  31. #define KDF_MASK_RNG3 0x08c
  32. #define KDF_MASK_RNG4 0x090
  33. #define KDF_MASK_RNG5 0x094
  34. #define KDF_MASK_RNG6 0x098
  35. #define KDF_MASK_RNG7 0x09c
  36. #define KDF_STA 0x0a0
  37. #define KDF_IPID 0x0fc
  38. #define KDF_RAM 0x8000
  39. /**
  40. * @brief keyram init.
  41. *
  42. * @return uint32_t
  43. */
  44. uint32_t keyram_init(void);
  45. /**
  46. * @brief keyram set key.
  47. *
  48. * @param key
  49. * @param len
  50. * @return uint32_t
  51. */
  52. uint32_t keyram_set_key(csi_kdf_derived_key_t key, uint32_t len);
  53. /**
  54. * @brief get key addr in keyram.
  55. *
  56. * @param key
  57. * @param addr
  58. * @return uint32_t
  59. */
  60. uint32_t keyram_get_key_addr(csi_kdf_derived_key_t key, uint64_t *addr);
  61. /**
  62. * @brief Clear key in keyram.
  63. *
  64. * @return uint32_t
  65. */
  66. uint32_t keyram_clear(void);
  67. /**
  68. * @brief Uninit. This function will lock KDF.
  69. */
  70. void keyram_uninit(void);