iccc_interface.h 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * =====================================================================================
  3. *
  4. * Filename: Iccc_Interface.h
  5. *
  6. * Description: This header file must be in sync with other platform, tz related files
  7. *
  8. * Version: 1.0
  9. * Created: 08/20/2015 12:13:42 PM
  10. * Revision: none
  11. * Compiler: gcc
  12. *
  13. * Author: Areef Basha (), areef.basha@samsung.com
  14. * Company: Samsung Electronics
  15. *
  16. * Copyright (c) 2015 by Samsung Electronics, All rights reserved.
  17. *
  18. * =====================================================================================
  19. */
  20. #ifndef Iccc_Interface_H_
  21. #define Iccc_Interface_H_
  22. #define MAX_IMAGES 6
  23. #define RESERVED_BYTES 96
  24. /* ICCC section types are defined */
  25. #define BL_ICCC_TYPE_START 0xFFF00000
  26. #define TA_ICCC_TYPE_START 0xFF000000
  27. #define KERN_ICCC_TYPE_START 0xFF100000
  28. #define SYS_ICCC_TYPE_START 0xFF200000
  29. #define ICCC_SECTION_MASK 0xfff00000
  30. #define ICCC_SECTION_TYPE(type) (ICCC_SECTION_MASK & (type))
  31. /* BL Secure Parameters */
  32. #define RP_VER (BL_ICCC_TYPE_START+0x00000)
  33. #define KERNEL_RP (BL_ICCC_TYPE_START+0x00001)
  34. #define SYSTEM_RP (BL_ICCC_TYPE_START+0x00002)
  35. #define TEST_BIT (BL_ICCC_TYPE_START+0x00003)
  36. #define SEC_BOOT (BL_ICCC_TYPE_START+0x00004)
  37. #define REACT_LOCK (BL_ICCC_TYPE_START+0x00005)
  38. #define KIWI_LOCK (BL_ICCC_TYPE_START+0x00006)
  39. #define FRP_LOCK (BL_ICCC_TYPE_START+0x00007)
  40. #define CC_MODE (BL_ICCC_TYPE_START+0x00008)
  41. #define MDM_MODE (BL_ICCC_TYPE_START+0x00009)
  42. #define CURR_BIN_STATUS (BL_ICCC_TYPE_START+0x0000A)
  43. #define AFW_VALUE (BL_ICCC_TYPE_START+0x0000B)
  44. #define WARRANTY_BIT (BL_ICCC_TYPE_START+0x0000C)
  45. #define KAP_STATUS (BL_ICCC_TYPE_START+0x0000D)
  46. #define IMAGE_STATUS1 (BL_ICCC_TYPE_START+0x0000E)
  47. #define IMAGE_STATUS2 (BL_ICCC_TYPE_START+0x0000F)
  48. #define IMAGE_STATUS3 (BL_ICCC_TYPE_START+0x00010)
  49. #define IMAGE_STATUS4 (BL_ICCC_TYPE_START+0x00011)
  50. #define IMAGE_STATUS5 (BL_ICCC_TYPE_START+0x00012)
  51. #define IMAGE_STATUS6 (BL_ICCC_TYPE_START+0x00013)
  52. #define BL_STRUCT (BL_ICCC_TYPE_START+0x000FF)
  53. /* Kernel Secure Parameters */
  54. #define PKM_TEXT (TA_ICCC_TYPE_START+0x00000)
  55. #define PKM_RO (TA_ICCC_TYPE_START+0x00001)
  56. #define SELINUX_STATUS (TA_ICCC_TYPE_START+0x00002)
  57. /* DMV Hash Parameter */
  58. #define DMV_HASH (KERN_ICCC_TYPE_START+0x00000)
  59. /* System secure parameters */
  60. #define SYSSCOPE_FLAG (SYS_ICCC_TYPE_START+0x00000)
  61. #define TRUSTBOOT_FLAG (SYS_ICCC_TYPE_START+0x00001)
  62. /* end Secure memory Parameters */
  63. typedef enum iccc_error_code {
  64. ICCC_FAILURE = -1,
  65. ICCC_SUCCESS,
  66. ICCC_PERMISSION_DENIED,
  67. } iccc_error_code_t;
  68. uint32_t Iccc_SaveData_Kernel(uint32_t type, uint32_t value);
  69. uint32_t Iccc_ReadData_Kernel(uint32_t type, uint32_t *value);
  70. #endif /* Iccc_Interface_H_ */