devapc.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. /*
  2. * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #ifndef DEVAPC_H
  7. #define DEVAPC_H
  8. #include <stdint.h>
  9. #define DEVAPC_AO_INFRA_BASE 0x1000E000
  10. #define DEVAPC_AO_MM_BASE 0x1001C000
  11. #define DEVAPC_AO_MD_BASE 0x10019000
  12. #define DEVAPC_INFRA_D0_APC_0 (DEVAPC_AO_INFRA_BASE + 0x0000)
  13. #define DEVAPC_INFRA_MAS_DOM_0 (DEVAPC_AO_INFRA_BASE + 0x0A00)
  14. #define DEVAPC_INFRA_MAS_SEC_0 (DEVAPC_AO_INFRA_BASE + 0x0B00)
  15. #define DEVAPC_INFRA_DOM_RMP_0 (DEVAPC_AO_INFRA_BASE + 0x0D00)
  16. #define DEVAPC_INFRA_DOM_RMP_1 (DEVAPC_AO_INFRA_BASE + 0x0D04)
  17. #define DEVAPC_INFRA_APC_CON (DEVAPC_AO_INFRA_BASE + 0x0F00)
  18. #define DEVAPC_MD_APC_CON (DEVAPC_AO_MD_BASE + 0x0F00)
  19. #define DEVAPC_MM_D0_APC_0 (DEVAPC_AO_MM_BASE + 0x0000)
  20. #define DEVAPC_MM_DOM_RMP_0 (DEVAPC_AO_MM_BASE + 0x0D00)
  21. #define DEVAPC_MM_APC_CON (DEVAPC_AO_MM_BASE + 0x0F00)
  22. #define MOD_NO_IN_1_DEVAPC 16
  23. #define MASTER_MOD_NO_IN_1_DEVAPC 8
  24. #define SLAVE_INFRA_MAX_INDEX 195
  25. #define SLAVE_MM_MAX_INDEX 140
  26. enum {
  27. MASTER_SCP = 0,
  28. MASTER_SPM = 10,
  29. MASTER_SSPM = 27
  30. };
  31. enum MASK_DOM {
  32. DOMAIN_0 = 0,
  33. DOMAIN_1,
  34. DOMAIN_2,
  35. DOMAIN_3,
  36. DOMAIN_4,
  37. DOMAIN_5,
  38. DOMAIN_6,
  39. DOMAIN_7,
  40. DOMAIN_8,
  41. DOMAIN_9,
  42. DOMAIN_10,
  43. DOMAIN_11
  44. };
  45. enum TRANSACTION {
  46. NON_SECURE_TRANSACTION = 0,
  47. SECURE_TRANSACTION
  48. };
  49. enum DAPC_SLAVE_TYPE {
  50. DAPC_INFRA_SLAVE = 0,
  51. DAPC_MM_SLAVE
  52. };
  53. enum APC_ATTR {
  54. NO_SEC = 0,
  55. S_RW_ONLY,
  56. S_RW_NS_R,
  57. FORBID,
  58. };
  59. struct DEVICE_INFO {
  60. uint8_t d0_permission;
  61. uint8_t d1_permission;
  62. uint8_t d2_permission;
  63. };
  64. #define PERMISSION(DEV_NAME, ATTR1, ATTR2, ATTR3) \
  65. {(uint8_t)ATTR1, (uint8_t)ATTR2, (uint8_t)ATTR3}
  66. static const struct DEVICE_INFO D_APC_INFRA_Devices[] = {
  67. /* module, domain0, domain1, domain2 */
  68. /* 0 */
  69. PERMISSION("INFRA_AO_TOPCKGEN", NO_SEC, NO_SEC, NO_SEC),
  70. PERMISSION("INFRA_AO_INFRASYS_CONFIG_REGS", NO_SEC, FORBID, NO_SEC),
  71. PERMISSION("IO_CFG", NO_SEC, FORBID, NO_SEC),
  72. PERMISSION("INFRA_AO_PERICFG", NO_SEC, FORBID, NO_SEC),
  73. PERMISSION("INFRA_AO_EFUSE_AO_DEBUG", NO_SEC, FORBID, NO_SEC),
  74. PERMISSION("INFRA_AO_GPIO", NO_SEC, FORBID, NO_SEC),
  75. PERMISSION("INFRA_AO_SLEEP_CONTROLLER", NO_SEC, FORBID, NO_SEC),
  76. PERMISSION("INFRA_AO_TOPRGU", NO_SEC, FORBID, NO_SEC),
  77. PERMISSION("INFRA_AO_APXGPT", NO_SEC, FORBID, NO_SEC),
  78. PERMISSION("INFRA_AO_RESERVE", NO_SEC, FORBID, NO_SEC),
  79. /* 10 */
  80. PERMISSION("INFRA_AO_SEJ", NO_SEC, FORBID, NO_SEC),
  81. PERMISSION("INFRA_AO_AP_CIRQ_EINT", NO_SEC, FORBID, NO_SEC),
  82. PERMISSION("INFRA_AO_APMIXEDSYS", NO_SEC, NO_SEC, NO_SEC),
  83. PERMISSION("INFRA_AO_PMIC_WRAP", NO_SEC, FORBID, NO_SEC),
  84. PERMISSION("INFRA_AO_DEVICE_APC_AO_INFRA_PERI", NO_SEC, FORBID, NO_SEC),
  85. PERMISSION("INFRA_AO_SLEEP_CONTROLLER_MD", NO_SEC, FORBID, NO_SEC),
  86. PERMISSION("INFRA_AO_KEYPAD", NO_SEC, FORBID, NO_SEC),
  87. PERMISSION("INFRA_AO_TOP_MISC", NO_SEC, FORBID, NO_SEC),
  88. PERMISSION("INFRA_AO_DVFS_CTRL_PROC", NO_SEC, FORBID, NO_SEC),
  89. PERMISSION("INFRA_AO_MBIST_AO_REG", NO_SEC, FORBID, NO_SEC),
  90. /* 20 */
  91. PERMISSION("INFRA_AO_CLDMA_AO_AP", NO_SEC, FORBID, NO_SEC),
  92. PERMISSION("INFRA_AO_DEVICE_MPU", NO_SEC, FORBID, NO_SEC),
  93. PERMISSION("INFRA_AO_AES_TOP_0", NO_SEC, FORBID, NO_SEC),
  94. PERMISSION("INFRA_AO_SYS_TIMER", NO_SEC, FORBID, NO_SEC),
  95. PERMISSION("INFRA_AO_MDEM_TEMP_SHARE", NO_SEC, FORBID, NO_SEC),
  96. PERMISSION("INFRA_AO_DEVICE_APC_AO_MD", NO_SEC, FORBID, NO_SEC),
  97. PERMISSION("INFRA_AO_SECURITY_AO", NO_SEC, FORBID, NO_SEC),
  98. PERMISSION("INFRA_AO_TOPCKGEN_REG", NO_SEC, FORBID, NO_SEC),
  99. PERMISSION("INFRA_AO_DEVICE_APC_AO_MM", NO_SEC, FORBID, NO_SEC),
  100. PERMISSION("INFRASYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  101. /* 30 */
  102. PERMISSION("INFRASYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  103. PERMISSION("INFRASYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  104. PERMISSION("INFRASYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  105. PERMISSION("INFRASYS_SYS_CIRQ", NO_SEC, FORBID, NO_SEC),
  106. PERMISSION("INFRASYS_MM_IOMMU", NO_SEC, FORBID, NO_SEC),
  107. PERMISSION("INFRASYS_EFUSE_PDN_DEBUG", NO_SEC, FORBID, NO_SEC),
  108. PERMISSION("INFRASYS_DEVICE_APC", NO_SEC, FORBID, NO_SEC),
  109. PERMISSION("INFRASYS_DBG_TRACKER", NO_SEC, FORBID, NO_SEC),
  110. PERMISSION("INFRASYS_CCIF0_AP", NO_SEC, FORBID, NO_SEC),
  111. PERMISSION("INFRASYS_CCIF0_MD", NO_SEC, FORBID, NO_SEC),
  112. /* 40 */
  113. PERMISSION("INFRASYS_CCIF1_AP", NO_SEC, FORBID, NO_SEC),
  114. PERMISSION("INFRASYS_CCIF1_MD", NO_SEC, FORBID, NO_SEC),
  115. PERMISSION("INFRASYS_MBIST", NO_SEC, FORBID, NO_SEC),
  116. PERMISSION("INFRASYS_INFRA_PDN_REGISTER", NO_SEC, FORBID, NO_SEC),
  117. PERMISSION("INFRASYS_TRNG", NO_SEC, FORBID, NO_SEC),
  118. PERMISSION("INFRASYS_DX_CC", NO_SEC, FORBID, NO_SEC),
  119. PERMISSION("MD_CCIF_MD1", NO_SEC, FORBID, NO_SEC),
  120. PERMISSION("INFRASYS_CQ_DMA", NO_SEC, FORBID, NO_SEC),
  121. PERMISSION("MD_CCIF_MD2", NO_SEC, FORBID, NO_SEC),
  122. PERMISSION("INFRASYS_SRAMROM", NO_SEC, FORBID, NO_SEC),
  123. /* 50 */
  124. PERMISSION("ANA_MIPI_DSI0", NO_SEC, FORBID, NO_SEC),
  125. PERMISSION("INFRASYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  126. PERMISSION("ANA_MIPI_CSI0", NO_SEC, FORBID, NO_SEC),
  127. PERMISSION("ANA_MIPI_CSI1", NO_SEC, FORBID, NO_SEC),
  128. PERMISSION("INFRASYS_EMI", NO_SEC, FORBID, NO_SEC),
  129. PERMISSION("INFRASYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  130. PERMISSION("INFRASYS_CLDMA_PDN", NO_SEC, FORBID, NO_SEC),
  131. PERMISSION("CLDMA_PDN_MD_MISC", NO_SEC, FORBID, NO_SEC),
  132. PERMISSION("INFRA_MD", NO_SEC, FORBID, NO_SEC),
  133. PERMISSION("BPI_BSI_SLV0", NO_SEC, FORBID, NO_SEC),
  134. /* 60 */
  135. PERMISSION("BPI_BSI_SLV1", NO_SEC, FORBID, NO_SEC),
  136. PERMISSION("BPI_BSI_SLV2", NO_SEC, FORBID, NO_SEC),
  137. PERMISSION("INFRASYS_EMI_MPU", NO_SEC, FORBID, NO_SEC),
  138. PERMISSION("INFRASYS_DVFS_PROC", NO_SEC, FORBID, NO_SEC),
  139. PERMISSION("INFRASYS_DRAMC_CH0_TOP0", NO_SEC, FORBID, NO_SEC),
  140. PERMISSION("INFRASYS_DRAMC_CH0_TOP1", NO_SEC, FORBID, NO_SEC),
  141. PERMISSION("INFRASYS_DRAMC_CH0_TOP2", NO_SEC, FORBID, NO_SEC),
  142. PERMISSION("INFRASYS_DRAMC_CH0_TOP3", NO_SEC, FORBID, NO_SEC),
  143. PERMISSION("INFRASYS_DRAMC_CH0_TOP4", NO_SEC, FORBID, NO_SEC),
  144. PERMISSION("INFRASYS_DRAMC_CH1_TOP0", NO_SEC, FORBID, NO_SEC),
  145. /* 70 */
  146. PERMISSION("INFRASYS_DRAMC_CH1_TOP1", NO_SEC, FORBID, NO_SEC),
  147. PERMISSION("INFRASYS_DRAMC_CH1_TOP2", NO_SEC, FORBID, NO_SEC),
  148. PERMISSION("INFRASYS_DRAMC_CH1_TOP3", NO_SEC, FORBID, NO_SEC),
  149. PERMISSION("INFRASYS_DRAMC_CH1_TOP4", NO_SEC, FORBID, NO_SEC),
  150. PERMISSION("INFRASYS_GCE", NO_SEC, FORBID, NO_SEC),
  151. PERMISSION("INFRASYS_CCIF2_AP", NO_SEC, FORBID, NO_SEC),
  152. PERMISSION("INFRASYS_CCIF2_MD", NO_SEC, FORBID, NO_SEC),
  153. PERMISSION("INFRASYS_CCIF3_AP", NO_SEC, FORBID, NO_SEC),
  154. PERMISSION("INFRASYS_CCIF3_MD", NO_SEC, FORBID, NO_SEC),
  155. PERMISSION("INFRA_AO_PWRMCU Partition 1", S_RW_NS_R, FORBID, NO_SEC),
  156. /* 80 */
  157. PERMISSION("INFRA_AO_PWRMCU Partition 2", S_RW_NS_R, FORBID, NO_SEC),
  158. PERMISSION("INFRA_AO_PWRMCU Partition 3", S_RW_NS_R, FORBID, NO_SEC),
  159. PERMISSION("INFRA_AO_PWRMCU Partition 4", S_RW_NS_R, FORBID, NO_SEC),
  160. PERMISSION("INFRA_AO_PWRMCU Partition 5", S_RW_NS_R, FORBID, NO_SEC),
  161. PERMISSION("INFRA_AO_PWRMCU Partition 6", S_RW_NS_R, FORBID, NO_SEC),
  162. PERMISSION("INFRA_AO_PWRMCU Partition 7", S_RW_NS_R, FORBID, NO_SEC),
  163. PERMISSION("INFRA_AO_PWRMCU Partition 8", S_RW_NS_R, FORBID, NO_SEC),
  164. PERMISSION("INFRA_AO_SCP", NO_SEC, NO_SEC, NO_SEC),
  165. PERMISSION("INFRA_AO_MCUCFG", NO_SEC, FORBID, NO_SEC),
  166. PERMISSION("INFRASYS_DBUGSYS", NO_SEC, FORBID, NO_SEC),
  167. /* 90 */
  168. PERMISSION("PERISYS_APDMA", NO_SEC, FORBID, NO_SEC),
  169. PERMISSION("PERISYS_AUXADC", NO_SEC, FORBID, NO_SEC),
  170. PERMISSION("PERISYS_UART0", NO_SEC, NO_SEC, NO_SEC),
  171. PERMISSION("PERISYS_UART1", NO_SEC, FORBID, NO_SEC),
  172. PERMISSION("PERISYS_UART2", NO_SEC, FORBID, NO_SEC),
  173. PERMISSION("PERISYS_I2C6", NO_SEC, FORBID, NO_SEC),
  174. PERMISSION("PERISYS_PWM", NO_SEC, FORBID, NO_SEC),
  175. PERMISSION("PERISYS_I2C0", NO_SEC, FORBID, NO_SEC),
  176. PERMISSION("PERISYS_I2C1", NO_SEC, FORBID, NO_SEC),
  177. PERMISSION("PERISYS_I2C2", NO_SEC, FORBID, NO_SEC),
  178. /* 100 */
  179. PERMISSION("PERISYS_SPI0", NO_SEC, FORBID, NO_SEC),
  180. PERMISSION("PERISYS_PTP", NO_SEC, FORBID, NO_SEC),
  181. PERMISSION("PERISYS_BTIF", NO_SEC, FORBID, NO_SEC),
  182. PERMISSION("RESERVE", NO_SEC, FORBID, NO_SEC),
  183. PERMISSION("PERISYS_DISP_PWM", NO_SEC, FORBID, NO_SEC),
  184. PERMISSION("PERISYS_I2C3", NO_SEC, FORBID, NO_SEC),
  185. PERMISSION("PERISYS_SPI1", NO_SEC, FORBID, NO_SEC),
  186. PERMISSION("PERISYS_I2C4", NO_SEC, FORBID, NO_SEC),
  187. PERMISSION("PERISYS_SPI2", NO_SEC, FORBID, NO_SEC),
  188. PERMISSION("PERISYS_SPI3", NO_SEC, FORBID, NO_SEC),
  189. /* 110 */
  190. PERMISSION("PERISYS_I2C1_IMM", NO_SEC, FORBID, NO_SEC),
  191. PERMISSION("PERISYS_I2C2_IMM", NO_SEC, FORBID, NO_SEC),
  192. PERMISSION("PERISYS_I2C5", NO_SEC, FORBID, NO_SEC),
  193. PERMISSION("PERISYS_I2C5_IMM", NO_SEC, FORBID, NO_SEC),
  194. PERMISSION("PERISYS_SPI4", NO_SEC, FORBID, NO_SEC),
  195. PERMISSION("PERISYS_SPI5", NO_SEC, FORBID, NO_SEC),
  196. PERMISSION("PERISYS_I2C7", NO_SEC, FORBID, NO_SEC),
  197. PERMISSION("PERISYS_I2C8", NO_SEC, FORBID, NO_SEC),
  198. PERMISSION("PERISYS_USB", NO_SEC, FORBID, NO_SEC),
  199. PERMISSION("PERISYS_USB_2_0_SUB", NO_SEC, FORBID, NO_SEC),
  200. /* 120 */
  201. PERMISSION("PERISYS_AUDIO", NO_SEC, FORBID, NO_SEC),
  202. PERMISSION("PERISYS_MSDC0", NO_SEC, FORBID, NO_SEC),
  203. PERMISSION("PERISYS_MSDC1", NO_SEC, FORBID, NO_SEC),
  204. PERMISSION("PERISYS_MSDC2", NO_SEC, FORBID, NO_SEC),
  205. PERMISSION("RESERVE", NO_SEC, FORBID, NO_SEC),
  206. PERMISSION("PERISYS_UFS", NO_SEC, FORBID, NO_SEC),
  207. PERMISSION("RESERVE", NO_SEC, FORBID, NO_SEC),
  208. PERMISSION("RESERVE", NO_SEC, FORBID, NO_SEC),
  209. PERMISSION("PERISYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  210. PERMISSION("EAST_RESERVE_0", NO_SEC, FORBID, NO_SEC),
  211. /* 130 */
  212. PERMISSION("EAST_RESERVE_1", NO_SEC, FORBID, NO_SEC),
  213. PERMISSION("EAST_RESERVE_2", NO_SEC, FORBID, NO_SEC),
  214. PERMISSION("EAST_RESERVE_3", NO_SEC, FORBID, NO_SEC),
  215. PERMISSION("EAST_RESERVE_4", NO_SEC, FORBID, NO_SEC),
  216. PERMISSION("EAST_IO_CFG_RT", NO_SEC, FORBID, NO_SEC),
  217. PERMISSION("EAST_RESERVE_6", NO_SEC, FORBID, NO_SEC),
  218. PERMISSION("EAST_RESERVE_7", NO_SEC, FORBID, NO_SEC),
  219. PERMISSION("EAST_CSI0_TOP_AO", NO_SEC, FORBID, NO_SEC),
  220. PERMISSION("RESERVE", NO_SEC, FORBID, NO_SEC),
  221. PERMISSION("EAST_RESERVE_A", NO_SEC, FORBID, NO_SEC),
  222. /* 140 */
  223. PERMISSION("EAST_RESERVE_B", NO_SEC, FORBID, NO_SEC),
  224. PERMISSION("EAST_RESERVE_C", NO_SEC, FORBID, NO_SEC),
  225. PERMISSION("EAST_RESERVE_D", NO_SEC, FORBID, NO_SEC),
  226. PERMISSION("EAST_RESERVE_E", NO_SEC, FORBID, NO_SEC),
  227. PERMISSION("EAST_RESERVE_F", NO_SEC, FORBID, NO_SEC),
  228. PERMISSION("SOUTH_RESERVE_0", NO_SEC, FORBID, NO_SEC),
  229. PERMISSION("SOUTH_RESERVE_1", NO_SEC, FORBID, NO_SEC),
  230. PERMISSION("SOUTH_IO_CFG_RM", NO_SEC, FORBID, NO_SEC),
  231. PERMISSION("SOUTH_IO_CFG_RB", NO_SEC, FORBID, NO_SEC),
  232. PERMISSION("SOUTH_EFUSE", NO_SEC, FORBID, NO_SEC),
  233. /* 150 */
  234. PERMISSION("SOUTH_RESERVE_5", NO_SEC, FORBID, NO_SEC),
  235. PERMISSION("SOUTH_RESERVE_6", NO_SEC, FORBID, NO_SEC),
  236. PERMISSION("SOUTH_RESERVE_7", NO_SEC, FORBID, NO_SEC),
  237. PERMISSION("SOUTH_RESERVE_8", NO_SEC, FORBID, NO_SEC),
  238. PERMISSION("SOUTH_RESERVE_9", NO_SEC, FORBID, NO_SEC),
  239. PERMISSION("SOUTH_RESERVE_A", NO_SEC, FORBID, NO_SEC),
  240. PERMISSION("SOUTH_RESERVE_B", NO_SEC, FORBID, NO_SEC),
  241. PERMISSION("SOUTH_RESERVE_C", NO_SEC, FORBID, NO_SEC),
  242. PERMISSION("SOUTH_RESERVE_D", NO_SEC, FORBID, NO_SEC),
  243. PERMISSION("SOUTH_RESERVE_E", NO_SEC, FORBID, NO_SEC),
  244. /* 160 */
  245. PERMISSION("SOUTH_RESERVE_F", NO_SEC, FORBID, NO_SEC),
  246. PERMISSION("WEST_RESERVE_0", NO_SEC, FORBID, NO_SEC),
  247. PERMISSION("WEST_MSDC1_PAD_MACRO", NO_SEC, FORBID, NO_SEC),
  248. PERMISSION("WEST_RESERVE_2", NO_SEC, FORBID, NO_SEC),
  249. PERMISSION("WEST_RESERVE_3", NO_SEC, FORBID, NO_SEC),
  250. PERMISSION("WEST_RESERVE_4", NO_SEC, FORBID, NO_SEC),
  251. PERMISSION("WEST_MIPI_TX_CONFIG", NO_SEC, FORBID, NO_SEC),
  252. PERMISSION("WEST_RESERVE_6", NO_SEC, FORBID, NO_SEC),
  253. PERMISSION("WEST_IO_CFG_LB", NO_SEC, FORBID, NO_SEC),
  254. PERMISSION("WEST_IO_CFG_LM", NO_SEC, FORBID, NO_SEC),
  255. /* 170 */
  256. PERMISSION("WEST_IO_CFG_BL", NO_SEC, FORBID, NO_SEC),
  257. PERMISSION("WEST_RESERVE_A", NO_SEC, FORBID, NO_SEC),
  258. PERMISSION("WEST_RESERVE_B", NO_SEC, FORBID, NO_SEC),
  259. PERMISSION("WEST_RESERVE_C", NO_SEC, FORBID, NO_SEC),
  260. PERMISSION("WEST_RESERVE_D", NO_SEC, FORBID, NO_SEC),
  261. PERMISSION("WEST_RESERVE_E", NO_SEC, FORBID, NO_SEC),
  262. PERMISSION("WEST_RESERVE_F", NO_SEC, FORBID, NO_SEC),
  263. PERMISSION("NORTH_RESERVE_0", NO_SEC, FORBID, NO_SEC),
  264. PERMISSION("EFUSE_TOP", NO_SEC, FORBID, NO_SEC),
  265. PERMISSION("NORTH_IO_CFG_LT", NO_SEC, FORBID, NO_SEC),
  266. /* 180 */
  267. PERMISSION("NORTH_IO_CFG_TL", NO_SEC, FORBID, NO_SEC),
  268. PERMISSION("NORTH_USB20 PHY", NO_SEC, FORBID, NO_SEC),
  269. PERMISSION("NORTH_MSDC0 PAD MACRO", NO_SEC, FORBID, NO_SEC),
  270. PERMISSION("NORTH_RESERVE_6", NO_SEC, FORBID, NO_SEC),
  271. PERMISSION("NORTH_RESERVE_7", NO_SEC, FORBID, NO_SEC),
  272. PERMISSION("NORTH_RESERVE_8", NO_SEC, FORBID, NO_SEC),
  273. PERMISSION("NORTH_RESERVE_9", NO_SEC, FORBID, NO_SEC),
  274. PERMISSION("NORTH_UFS_MPHY", NO_SEC, FORBID, NO_SEC),
  275. PERMISSION("NORTH_RESERVE_B", NO_SEC, FORBID, NO_SEC),
  276. PERMISSION("NORTH_RESERVE_C", NO_SEC, FORBID, NO_SEC),
  277. /* 190 */
  278. PERMISSION("NORTH_RESERVE_D", NO_SEC, FORBID, NO_SEC),
  279. PERMISSION("NORTH_RESERVE_E", NO_SEC, FORBID, NO_SEC),
  280. PERMISSION("NORTH_RESERVE_F", NO_SEC, FORBID, NO_SEC),
  281. PERMISSION("PERISYS_CONN", NO_SEC, FORBID, NO_SEC),
  282. PERMISSION("PERISYS_MD_VIOLATION", NO_SEC, FORBID, NO_SEC),
  283. PERMISSION("PERISYS_RESERVE", NO_SEC, FORBID, NO_SEC)
  284. };
  285. static const struct DEVICE_INFO D_APC_MM_Devices[] = {
  286. /* module, domain0, domain1, domain2 */
  287. /* 0 */
  288. PERMISSION("G3D_CONFIG", NO_SEC, FORBID, NO_SEC),
  289. PERMISSION("MFG VAD", NO_SEC, FORBID, NO_SEC),
  290. PERMISSION("SC0 VAD", NO_SEC, FORBID, NO_SEC),
  291. PERMISSION("MFG_OTHERS", NO_SEC, FORBID, NO_SEC),
  292. PERMISSION("MMSYS_CONFIG", NO_SEC, NO_SEC, NO_SEC),
  293. PERMISSION("MDP_RDMA0", NO_SEC, NO_SEC, NO_SEC),
  294. PERMISSION("MDP_RDMA1", NO_SEC, NO_SEC, NO_SEC),
  295. PERMISSION("MDP_RSZ0", NO_SEC, NO_SEC, NO_SEC),
  296. PERMISSION("MDP_RSZ1", NO_SEC, NO_SEC, NO_SEC),
  297. PERMISSION("MDP_WROT0", NO_SEC, NO_SEC, NO_SEC),
  298. /* 10 */
  299. PERMISSION("MDP_WDMA", NO_SEC, NO_SEC, NO_SEC),
  300. PERMISSION("MDP_TDSHP", NO_SEC, FORBID, NO_SEC),
  301. PERMISSION("DISP_OVL0", NO_SEC, FORBID, NO_SEC),
  302. PERMISSION("DISP_OVL0_2L", NO_SEC, FORBID, NO_SEC),
  303. PERMISSION("DISP_OVL1_2L", NO_SEC, FORBID, NO_SEC),
  304. PERMISSION("DISP_RDMA0", NO_SEC, FORBID, NO_SEC),
  305. PERMISSION("DISP_RDMA1", NO_SEC, FORBID, NO_SEC),
  306. PERMISSION("DISP_WDMA0", NO_SEC, FORBID, NO_SEC),
  307. PERMISSION("DISP_COLOR0", NO_SEC, FORBID, NO_SEC),
  308. PERMISSION("DISP_CCORR0", NO_SEC, FORBID, NO_SEC),
  309. /* 20 */
  310. PERMISSION("DISP_AAL0", NO_SEC, FORBID, NO_SEC),
  311. PERMISSION("DISP_GAMMA0", NO_SEC, FORBID, NO_SEC),
  312. PERMISSION("DISP_DITHER0", NO_SEC, FORBID, NO_SEC),
  313. PERMISSION("DSI_SPLIT", NO_SEC, FORBID, NO_SEC),
  314. PERMISSION("DSI0", NO_SEC, FORBID, NO_SEC),
  315. PERMISSION("DPI", NO_SEC, FORBID, NO_SEC),
  316. PERMISSION("MM_MUTEX", NO_SEC, FORBID, NO_SEC),
  317. PERMISSION("SMI_LARB0", NO_SEC, FORBID, NO_SEC),
  318. PERMISSION("SMI_LARB1", NO_SEC, FORBID, NO_SEC),
  319. PERMISSION("SMI_COMMON", NO_SEC, FORBID, NO_SEC),
  320. /* 30 */
  321. PERMISSION("DISP_RSZ", NO_SEC, FORBID, NO_SEC),
  322. PERMISSION("MDP_AAL", NO_SEC, NO_SEC, NO_SEC),
  323. PERMISSION("MDP_CCORR", NO_SEC, NO_SEC, NO_SEC),
  324. PERMISSION("DBI", NO_SEC, FORBID, NO_SEC),
  325. PERMISSION("MMSYS_OTHERS", NO_SEC, FORBID, NO_SEC),
  326. PERMISSION("IMGSYS_CONFIG", NO_SEC, NO_SEC, NO_SEC),
  327. PERMISSION("IMGSYS_SMI_LARB1", NO_SEC, FORBID, NO_SEC),
  328. PERMISSION("IMGSYS_DISP_A0", NO_SEC, NO_SEC, NO_SEC),
  329. PERMISSION("IMGSYS_DISP_A1", NO_SEC, FORBID, NO_SEC),
  330. PERMISSION("IMGSYS_DISP_A2", NO_SEC, FORBID, NO_SEC),
  331. /* 40 */
  332. PERMISSION("IMGSYS_DISP_A3", NO_SEC, FORBID, NO_SEC),
  333. PERMISSION("IMGSYS_DISP_A4", NO_SEC, FORBID, NO_SEC),
  334. PERMISSION("IMGSYS_DISP_A5", NO_SEC, FORBID, NO_SEC),
  335. PERMISSION("IMGSYS_DPE", NO_SEC, FORBID, NO_SEC),
  336. PERMISSION("IMGSYS_RSC", NO_SEC, FORBID, NO_SEC),
  337. PERMISSION("IMGSYS_WPEA", NO_SEC, FORBID, NO_SEC),
  338. PERMISSION("IMGSYS_FDVT", NO_SEC, NO_SEC, NO_SEC),
  339. PERMISSION("IMGSYS_OWE", NO_SEC, FORBID, NO_SEC),
  340. PERMISSION("IMGSYS_WPEB", NO_SEC, FORBID, NO_SEC),
  341. PERMISSION("IMGSYS_MFB", NO_SEC, FORBID, NO_SEC),
  342. /* 50 */
  343. PERMISSION("IMGSYS_SMI_LARB2", NO_SEC, FORBID, NO_SEC),
  344. PERMISSION("IMGSYS_OTHERS", NO_SEC, FORBID, NO_SEC),
  345. PERMISSION("VENCSYS_GLOBAL_CON", NO_SEC, NO_SEC, NO_SEC),
  346. PERMISSION("VENCSYSSYS_SMI_LARB4", NO_SEC, NO_SEC, NO_SEC),
  347. PERMISSION("VENCSYS_VENC", NO_SEC, NO_SEC, NO_SEC),
  348. PERMISSION("VENCSYS_JPGENC", NO_SEC, FORBID, NO_SEC),
  349. PERMISSION("VENCSYS_MBIST_CTRL", NO_SEC, FORBID, NO_SEC),
  350. PERMISSION("VENCSYS_OTHERS", NO_SEC, FORBID, NO_SEC),
  351. PERMISSION("VDECSYS_GLOBAL_CON", NO_SEC, NO_SEC, NO_SEC),
  352. PERMISSION("VDECSYS_SMI_LARB1", NO_SEC, FORBID, NO_SEC),
  353. /* 60 */
  354. PERMISSION("VDECSYS_FULL_TOP", NO_SEC, NO_SEC, NO_SEC),
  355. PERMISSION("VDECSYS_OTHERS", NO_SEC, FORBID, NO_SEC),
  356. PERMISSION("CAMSYS_CAMSYS_TOP", NO_SEC, FORBID, NO_SEC),
  357. PERMISSION("CAMSYS_LARB6", NO_SEC, NO_SEC, NO_SEC),
  358. PERMISSION("CAMSYS_LARB3", NO_SEC, NO_SEC, NO_SEC),
  359. PERMISSION("CAMSYS_CAM_TOP", NO_SEC, NO_SEC, NO_SEC),
  360. PERMISSION("CAMSYS_CAM_A", NO_SEC, NO_SEC, NO_SEC),
  361. PERMISSION("CAMSYS_CAM_A", NO_SEC, NO_SEC, NO_SEC),
  362. PERMISSION("CAMSYS_CAM_B", NO_SEC, NO_SEC, NO_SEC),
  363. PERMISSION("CAMSYS_CAM_B", NO_SEC, NO_SEC, NO_SEC),
  364. /* 70 */
  365. PERMISSION("CAMSYS_CAM_C", NO_SEC, NO_SEC, NO_SEC),
  366. PERMISSION("CAMSYS_CAM_C", NO_SEC, NO_SEC, NO_SEC),
  367. PERMISSION("CAMSYS_CAM_TOP_SET", NO_SEC, FORBID, NO_SEC),
  368. PERMISSION("CAMSYS_CAM_A_SET", NO_SEC, FORBID, NO_SEC),
  369. PERMISSION("CAMSYS_CAM_A_SET", NO_SEC, FORBID, NO_SEC),
  370. PERMISSION("CAMSYS_CAM_B_SET", NO_SEC, FORBID, NO_SEC),
  371. PERMISSION("CAMSYS_CAM_B_SET", NO_SEC, FORBID, NO_SEC),
  372. PERMISSION("CAMSYS_CAM_C_SET", NO_SEC, FORBID, NO_SEC),
  373. PERMISSION("CAMSYS_CAM_C_SET", NO_SEC, FORBID, NO_SEC),
  374. PERMISSION("CAMSYS_CAM_TOP_INNER", NO_SEC, FORBID, NO_SEC),
  375. /* 80 */
  376. PERMISSION("CAMSYS_CAM_A_INNER", NO_SEC, FORBID, NO_SEC),
  377. PERMISSION("CAMSYS_CAM_A_INNER", NO_SEC, FORBID, NO_SEC),
  378. PERMISSION("CAMSYS_CAM_B_INNER", NO_SEC, FORBID, NO_SEC),
  379. PERMISSION("CAMSYS_CAM_B_INNER", NO_SEC, FORBID, NO_SEC),
  380. PERMISSION("CAMSYS_CAM_C_INNER", NO_SEC, FORBID, NO_SEC),
  381. PERMISSION("CAMSYS_CAM_C_INNER", NO_SEC, FORBID, NO_SEC),
  382. PERMISSION("CAMSYS_CAM_A_EXT", NO_SEC, FORBID, NO_SEC),
  383. PERMISSION("CAMSYS_CAM_B_EXT", NO_SEC, FORBID, NO_SEC),
  384. PERMISSION("CAMSYS_CAM_C_EXT", NO_SEC, FORBID, NO_SEC),
  385. PERMISSION("CAMSYS_CAM_TOP_CLR", NO_SEC, FORBID, NO_SEC),
  386. /* 90 */
  387. PERMISSION("CAMSYS_CAM_A_CLR", NO_SEC, FORBID, NO_SEC),
  388. PERMISSION("CAMSYS_CAM_A_CLR", NO_SEC, FORBID, NO_SEC),
  389. PERMISSION("CAMSYS_CAM_B_CLR", NO_SEC, FORBID, NO_SEC),
  390. PERMISSION("CAMSYS_CAM_B_CLR", NO_SEC, FORBID, NO_SEC),
  391. PERMISSION("CAMSYS_CAM_C_CLR", NO_SEC, FORBID, NO_SEC),
  392. PERMISSION("CAMSYS_CAM_C_CLR", NO_SEC, FORBID, NO_SEC),
  393. PERMISSION("CAMSYS_CAM_A_EXT", NO_SEC, FORBID, NO_SEC),
  394. PERMISSION("CAMSYS_CAM_B_EXT", NO_SEC, FORBID, NO_SEC),
  395. PERMISSION("CAMSYS_CAM_C_EXT", NO_SEC, FORBID, NO_SEC),
  396. PERMISSION("CAMSYS_CAM_RESERVE", NO_SEC, FORBID, NO_SEC),
  397. /* 100 */
  398. PERMISSION("CAMSYS_SENINF_A", NO_SEC, FORBID, NO_SEC),
  399. PERMISSION("CAMSYS_SENINF_B", NO_SEC, FORBID, NO_SEC),
  400. PERMISSION("CAMSYS_SENINF_C", NO_SEC, FORBID, NO_SEC),
  401. PERMISSION("CAMSYS_SENINF_D", NO_SEC, FORBID, NO_SEC),
  402. PERMISSION("CAMSYS_SENINF_E", NO_SEC, FORBID, NO_SEC),
  403. PERMISSION("CAMSYS_SENINF_F", NO_SEC, FORBID, NO_SEC),
  404. PERMISSION("CAMSYS_SENINF_G", NO_SEC, FORBID, NO_SEC),
  405. PERMISSION("CAMSYS_SENINF_H", NO_SEC, FORBID, NO_SEC),
  406. PERMISSION("CAMSYS_CAMSV_A", NO_SEC, FORBID, NO_SEC),
  407. PERMISSION("CAMSYS_CAMSV_B", NO_SEC, FORBID, NO_SEC),
  408. /* 110 */
  409. PERMISSION("CAMSYS_CAMSV_C", NO_SEC, FORBID, NO_SEC),
  410. PERMISSION("CAMSYS_CAMSV_D", NO_SEC, FORBID, NO_SEC),
  411. PERMISSION("CAMSYS_MD32 DMEM_12", NO_SEC, FORBID, NO_SEC),
  412. PERMISSION("CAMSYS_RESEVE", NO_SEC, FORBID, NO_SEC),
  413. PERMISSION("CAMSYS_CCU_CTL", NO_SEC, FORBID, NO_SEC),
  414. PERMISSION("CAMSYS_CCU_H2T_A", NO_SEC, FORBID, NO_SEC),
  415. PERMISSION("CAMSYS_CCU_T2H_A", NO_SEC, FORBID, NO_SEC),
  416. PERMISSION("CAMSYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  417. PERMISSION("CAMSYS_RESERVE", NO_SEC, FORBID, NO_SEC),
  418. PERMISSION("CAMSYS_CCU_DMA", NO_SEC, FORBID, NO_SEC),
  419. /* 120 */
  420. PERMISSION("CAMSYS_TSF", NO_SEC, FORBID, NO_SEC),
  421. PERMISSION("CAMSYS_MD32_PMEM_24", NO_SEC, FORBID, NO_SEC),
  422. PERMISSION("CAMSYS_OTHERS", NO_SEC, FORBID, NO_SEC),
  423. PERMISSION("VPUSYS_CFG", NO_SEC, FORBID, NO_SEC),
  424. PERMISSION("VPUSYS_ADL_CTRL", NO_SEC, FORBID, NO_SEC),
  425. PERMISSION("VPUSYS_COREA_DMEM_0_128KB", NO_SEC, FORBID, NO_SEC),
  426. PERMISSION("VPUSYS_COREA_DMEM_128_256KB", NO_SEC, FORBID, NO_SEC),
  427. PERMISSION("VPUSYS_COREA_IMEM_256KB", NO_SEC, FORBID, NO_SEC),
  428. PERMISSION("VPUSYS_COREA_CONTROL", NO_SEC, FORBID, NO_SEC),
  429. PERMISSION("VPUSYS_COREA_DEBUG", NO_SEC, FORBID, NO_SEC),
  430. /* 130 */
  431. PERMISSION("VPUSYS_COREB_DMEM_0_128KB", NO_SEC, FORBID, NO_SEC),
  432. PERMISSION("VPUSYS_COREB_DMEM_128_256KB", NO_SEC, FORBID, NO_SEC),
  433. PERMISSION("VPUSYS_COREB_IMEM_256KB", NO_SEC, FORBID, NO_SEC),
  434. PERMISSION("VPUSYS_COREB_CONTROL", NO_SEC, FORBID, NO_SEC),
  435. PERMISSION("VPUSYS_COREB_DEBUG", NO_SEC, FORBID, NO_SEC),
  436. PERMISSION("VPUSYS_COREC_DMEM_0_128KB", NO_SEC, FORBID, NO_SEC),
  437. PERMISSION("VPUSYS_COREC_DMEM_128_256KB", NO_SEC, FORBID, NO_SEC),
  438. PERMISSION("VPUSYS_COREC_IMEM_256KB", NO_SEC, FORBID, NO_SEC),
  439. PERMISSION("VPUSYS_COREC_CONTROL", NO_SEC, FORBID, NO_SEC),
  440. PERMISSION("VPUSYS_COREC_DEBUG", NO_SEC, FORBID, NO_SEC),
  441. /* 140 */
  442. PERMISSION("VPUSYS_OTHERS", NO_SEC, FORBID, NO_SEC)
  443. };
  444. void devapc_init(void);
  445. #endif /* DEVAPC_H */