intpri_struct.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. /**
  2. * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #pragma once
  7. #include <stdint.h>
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. /** Group: Configuration Registers */
  12. /** Type of core0_cpu_int_enable register
  13. * register description
  14. */
  15. typedef union {
  16. struct {
  17. /** core0_cpu_int_enable : R/W; bitpos: [31:0]; default: 0;
  18. * Need add description
  19. */
  20. uint32_t core0_cpu_int_enable:32;
  21. };
  22. uint32_t val;
  23. } intpri_core0_cpu_int_enable_reg_t;
  24. /** Type of core0_cpu_int_type register
  25. * register description
  26. */
  27. typedef union {
  28. struct {
  29. /** core0_cpu_int_type : R/W; bitpos: [31:0]; default: 0;
  30. * Need add description
  31. */
  32. uint32_t core0_cpu_int_type:32;
  33. };
  34. uint32_t val;
  35. } intpri_core0_cpu_int_type_reg_t;
  36. /** Type of core0_cpu_int_eip_status register
  37. * register description
  38. */
  39. typedef union {
  40. struct {
  41. /** core0_cpu_int_eip_status : RO; bitpos: [31:0]; default: 0;
  42. * Need add description
  43. */
  44. uint32_t core0_cpu_int_eip_status:32;
  45. };
  46. uint32_t val;
  47. } intpri_core0_cpu_int_eip_status_reg_t;
  48. /** Type of core0_cpu_int_pri_n register
  49. * register description
  50. */
  51. typedef union {
  52. struct {
  53. /** map : R/W; bitpos: [3:0]; default: 0;
  54. * Need add description
  55. */
  56. uint32_t map:4;
  57. uint32_t reserved_4:28;
  58. };
  59. uint32_t val;
  60. } intpri_core0_cpu_int_pri_n_reg_t;
  61. /** Type of core0_cpu_int_thresh register
  62. * register description
  63. */
  64. typedef union {
  65. struct {
  66. /** core0_cpu_int_thresh : R/W; bitpos: [7:0]; default: 0;
  67. * Need add description
  68. */
  69. uint32_t core0_cpu_int_thresh:8;
  70. uint32_t reserved_8:24;
  71. };
  72. uint32_t val;
  73. } intpri_core0_cpu_int_thresh_reg_t;
  74. /** Type of clock_gate register
  75. * register description
  76. */
  77. typedef union {
  78. struct {
  79. /** clk_en : R/W; bitpos: [0]; default: 1;
  80. * Need add description
  81. */
  82. uint32_t clk_en:1;
  83. uint32_t reserved_1:31;
  84. };
  85. uint32_t val;
  86. } intpri_clock_gate_reg_t;
  87. /** Type of core0_cpu_int_clear register
  88. * register description
  89. */
  90. typedef union {
  91. struct {
  92. /** core0_cpu_int_clear : R/W; bitpos: [31:0]; default: 0;
  93. * Need add description
  94. */
  95. uint32_t core0_cpu_int_clear:32;
  96. };
  97. uint32_t val;
  98. } intpri_core0_cpu_int_clear_reg_t;
  99. /** Group: Interrupt Registers */
  100. /** Type of cpu_intr_from_cpu_0 register
  101. * register description
  102. */
  103. typedef union {
  104. struct {
  105. /** cpu_intr_from_cpu_0 : R/W; bitpos: [0]; default: 0;
  106. * Need add description
  107. */
  108. uint32_t cpu_intr_from_cpu_0:1;
  109. uint32_t reserved_1:31;
  110. };
  111. uint32_t val;
  112. } intpri_cpu_intr_from_cpu_0_reg_t;
  113. /** Type of cpu_intr_from_cpu_1 register
  114. * register description
  115. */
  116. typedef union {
  117. struct {
  118. /** cpu_intr_from_cpu_1 : R/W; bitpos: [0]; default: 0;
  119. * Need add description
  120. */
  121. uint32_t cpu_intr_from_cpu_1:1;
  122. uint32_t reserved_1:31;
  123. };
  124. uint32_t val;
  125. } intpri_cpu_intr_from_cpu_1_reg_t;
  126. /** Type of cpu_intr_from_cpu_2 register
  127. * register description
  128. */
  129. typedef union {
  130. struct {
  131. /** cpu_intr_from_cpu_2 : R/W; bitpos: [0]; default: 0;
  132. * Need add description
  133. */
  134. uint32_t cpu_intr_from_cpu_2:1;
  135. uint32_t reserved_1:31;
  136. };
  137. uint32_t val;
  138. } intpri_cpu_intr_from_cpu_2_reg_t;
  139. /** Type of cpu_intr_from_cpu_3 register
  140. * register description
  141. */
  142. typedef union {
  143. struct {
  144. /** cpu_intr_from_cpu_3 : R/W; bitpos: [0]; default: 0;
  145. * Need add description
  146. */
  147. uint32_t cpu_intr_from_cpu_3:1;
  148. uint32_t reserved_1:31;
  149. };
  150. uint32_t val;
  151. } intpri_cpu_intr_from_cpu_3_reg_t;
  152. /** Group: Version Registers */
  153. /** Type of date register
  154. * register description
  155. */
  156. typedef union {
  157. struct {
  158. /** date : R/W; bitpos: [27:0]; default: 35655824;
  159. * Need add description
  160. */
  161. uint32_t date:28;
  162. uint32_t reserved_28:4;
  163. };
  164. uint32_t val;
  165. } intpri_date_reg_t;
  166. /** Group: Redcy ECO Registers */
  167. /** Type of rnd_eco register
  168. * redcy eco register.
  169. */
  170. typedef union {
  171. struct {
  172. /** redcy_ena : W/R; bitpos: [0]; default: 0;
  173. * Only reserved for ECO.
  174. */
  175. uint32_t redcy_ena:1;
  176. /** redcy_result : RO; bitpos: [1]; default: 0;
  177. * Only reserved for ECO.
  178. */
  179. uint32_t redcy_result:1;
  180. uint32_t reserved_2:30;
  181. };
  182. uint32_t val;
  183. } intpri_rnd_eco_reg_t;
  184. /** Type of rnd_eco_low register
  185. * redcy eco low register.
  186. */
  187. typedef union {
  188. struct {
  189. /** redcy_low : W/R; bitpos: [31:0]; default: 0;
  190. * Only reserved for ECO.
  191. */
  192. uint32_t redcy_low:32;
  193. };
  194. uint32_t val;
  195. } intpri_rnd_eco_low_reg_t;
  196. /** Type of rnd_eco_high register
  197. * redcy eco high register.
  198. */
  199. typedef union {
  200. struct {
  201. /** redcy_high : W/R; bitpos: [31:0]; default: 4294967295;
  202. * Only reserved for ECO.
  203. */
  204. uint32_t redcy_high:32;
  205. };
  206. uint32_t val;
  207. } intpri_rnd_eco_high_reg_t;
  208. typedef struct intpri_dev_t {
  209. volatile intpri_core0_cpu_int_enable_reg_t core0_cpu_int_enable;
  210. volatile intpri_core0_cpu_int_type_reg_t core0_cpu_int_type;
  211. volatile intpri_core0_cpu_int_eip_status_reg_t core0_cpu_int_eip_status;
  212. volatile intpri_core0_cpu_int_pri_n_reg_t core0_cpu_int_pri[32];
  213. volatile intpri_core0_cpu_int_thresh_reg_t core0_cpu_int_thresh;
  214. volatile intpri_cpu_intr_from_cpu_0_reg_t cpu_intr_from_cpu_0;
  215. volatile intpri_cpu_intr_from_cpu_1_reg_t cpu_intr_from_cpu_1;
  216. volatile intpri_cpu_intr_from_cpu_2_reg_t cpu_intr_from_cpu_2;
  217. volatile intpri_cpu_intr_from_cpu_3_reg_t cpu_intr_from_cpu_3;
  218. volatile intpri_date_reg_t date;
  219. volatile intpri_clock_gate_reg_t clock_gate;
  220. volatile intpri_core0_cpu_int_clear_reg_t core0_cpu_int_clear;
  221. volatile intpri_rnd_eco_reg_t rnd_eco;
  222. volatile intpri_rnd_eco_low_reg_t rnd_eco_low;
  223. uint32_t reserved_0b4[210];
  224. volatile intpri_rnd_eco_high_reg_t rnd_eco_high;
  225. } intpri_dev_t;
  226. extern intpri_dev_t INTPRI;
  227. #ifndef __cplusplus
  228. _Static_assert(sizeof(intpri_dev_t) == 0x400, "Invalid size of intpri_dev_t structure");
  229. #endif
  230. #ifdef __cplusplus
  231. }
  232. #endif