light-iopmp.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright (C) 2021 Alibaba Group Holding Limited.
  4. *
  5. */
  6. #ifndef _LIGHT_IOPMP_API_H
  7. #define _LIGHT_IOPMP_API_H
  8. #define IOPMP_EMMC 0
  9. #define IOPMP_SDIO0 1
  10. #define IOPMP_SDIO1 2
  11. #define IOPMP_USB0 3
  12. #define IOPMP_AO 4
  13. #define IOPMP_AUD 5
  14. #define IOPMP_CHIP_DBG 6
  15. #define IOPMP_EIP120I 7
  16. #define IOPMP_EIP120II 8
  17. #define IOPMP_EIP120III 9
  18. #define IOPMP_ISP0 10
  19. #define IOPMP_ISP1 11
  20. #define IOPMP_DW200 12
  21. #define IOPMP_VIPRE 13
  22. #define IOPMP_VENC 14
  23. #define IOPMP_VDEC 15
  24. #define IOPMP_G2D 16
  25. #define IOPMP_FCE 17
  26. #define IOPMP_NPU 18
  27. #define IOPMP0_DPU 19
  28. #define IOPMP1_DPU 20
  29. #define IOPMP_GPU 21
  30. #define IOPMP_GMAC1 22
  31. #define IOPMP_GMAC2 23
  32. #define IOPMP_DMAC 24
  33. #define IOPMP_TEE_DMAC 25
  34. #define IOPMP_DSP0 26
  35. #define IOPMP_DSP1 27
  36. typedef enum {
  37. CSI_ATTR_R = 1,
  38. CSI_ATTR_W = 2,
  39. } csi_iopmp_attr_t;
  40. /**
  41. * @brief Light iopmp region permission setting.
  42. *
  43. * @param type
  44. * @param attr
  45. * @return csi_err_t
  46. */
  47. int csi_iopmp_set_attr(int type, u_int8_t *start_addr, u_int8_t *end_addr, csi_iopmp_attr_t attr);
  48. /** iopmp lock
  49. * @brief Lock secure iopmp setting.
  50. *
  51. * @return csi_err_t
  52. */
  53. int csi_iopmp_lock(void);
  54. #endif