F2837xD_ipc.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. //###########################################################################
  2. //
  3. // FILE: F2837xD_ipc.h
  4. //
  5. // TITLE: IPC Register Definitions.
  6. //
  7. //###########################################################################
  8. // $TI Release: F2837xD Support Library v3.05.00.00 $
  9. // $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
  10. // $Copyright:
  11. // Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
  12. //
  13. // Redistribution and use in source and binary forms, with or without
  14. // modification, are permitted provided that the following conditions
  15. // are met:
  16. //
  17. // Redistributions of source code must retain the above copyright
  18. // notice, this list of conditions and the following disclaimer.
  19. //
  20. // Redistributions in binary form must reproduce the above copyright
  21. // notice, this list of conditions and the following disclaimer in the
  22. // documentation and/or other materials provided with the
  23. // distribution.
  24. //
  25. // Neither the name of Texas Instruments Incorporated nor the names of
  26. // its contributors may be used to endorse or promote products derived
  27. // from this software without specific prior written permission.
  28. //
  29. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  30. // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  31. // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  32. // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  33. // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  34. // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  35. // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  36. // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  37. // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  38. // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  39. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  40. // $
  41. //###########################################################################
  42. #ifndef __F2837xD_IPC_H__
  43. #define __F2837xD_IPC_H__
  44. #ifdef __cplusplus
  45. extern "C" {
  46. #endif
  47. //---------------------------------------------------------------------------
  48. // IPC Individual Register Bit Definitions:
  49. struct IPCACK_BITS { // bits description
  50. Uint16 IPC0:1; // 0 Local IPC Flag 0 Acknowledgement
  51. Uint16 IPC1:1; // 1 Local IPC Flag 1 Acknowledgement
  52. Uint16 IPC2:1; // 2 Local IPC Flag 2 Acknowledgement
  53. Uint16 IPC3:1; // 3 Local IPC Flag 3 Acknowledgement
  54. Uint16 IPC4:1; // 4 Local IPC Flag 4 Acknowledgement
  55. Uint16 IPC5:1; // 5 Local IPC Flag 5 Acknowledgement
  56. Uint16 IPC6:1; // 6 Local IPC Flag 6 Acknowledgement
  57. Uint16 IPC7:1; // 7 Local IPC Flag 7 Acknowledgement
  58. Uint16 IPC8:1; // 8 Local IPC Flag 8 Acknowledgement
  59. Uint16 IPC9:1; // 9 Local IPC Flag 9 Acknowledgement
  60. Uint16 IPC10:1; // 10 Local IPC Flag 10 Acknowledgement
  61. Uint16 IPC11:1; // 11 Local IPC Flag 11 Acknowledgement
  62. Uint16 IPC12:1; // 12 Local IPC Flag 12 Acknowledgement
  63. Uint16 IPC13:1; // 13 Local IPC Flag 13 Acknowledgement
  64. Uint16 IPC14:1; // 14 Local IPC Flag 14 Acknowledgement
  65. Uint16 IPC15:1; // 15 Local IPC Flag 15 Acknowledgement
  66. Uint16 IPC16:1; // 16 Local IPC Flag 16 Acknowledgement
  67. Uint16 IPC17:1; // 17 Local IPC Flag 17 Acknowledgement
  68. Uint16 IPC18:1; // 18 Local IPC Flag 18 Acknowledgement
  69. Uint16 IPC19:1; // 19 Local IPC Flag 19 Acknowledgement
  70. Uint16 IPC20:1; // 20 Local IPC Flag 20 Acknowledgement
  71. Uint16 IPC21:1; // 21 Local IPC Flag 21 Acknowledgement
  72. Uint16 IPC22:1; // 22 Local IPC Flag 22 Acknowledgement
  73. Uint16 IPC23:1; // 23 Local IPC Flag 23 Acknowledgement
  74. Uint16 IPC24:1; // 24 Local IPC Flag 24 Acknowledgement
  75. Uint16 IPC25:1; // 25 Local IPC Flag 25 Acknowledgement
  76. Uint16 IPC26:1; // 26 Local IPC Flag 26 Acknowledgement
  77. Uint16 IPC27:1; // 27 Local IPC Flag 27 Acknowledgement
  78. Uint16 IPC28:1; // 28 Local IPC Flag 28 Acknowledgement
  79. Uint16 IPC29:1; // 29 Local IPC Flag 29 Acknowledgement
  80. Uint16 IPC30:1; // 30 Local IPC Flag 30 Acknowledgement
  81. Uint16 IPC31:1; // 31 Local IPC Flag 31 Acknowledgement
  82. };
  83. union IPCACK_REG {
  84. Uint32 all;
  85. struct IPCACK_BITS bit;
  86. };
  87. struct IPCSTS_BITS { // bits description
  88. Uint16 IPC0:1; // 0 Local IPC Flag 0 Status
  89. Uint16 IPC1:1; // 1 Local IPC Flag 1 Status
  90. Uint16 IPC2:1; // 2 Local IPC Flag 2 Status
  91. Uint16 IPC3:1; // 3 Local IPC Flag 3 Status
  92. Uint16 IPC4:1; // 4 Local IPC Flag 4 Status
  93. Uint16 IPC5:1; // 5 Local IPC Flag 5 Status
  94. Uint16 IPC6:1; // 6 Local IPC Flag 6 Status
  95. Uint16 IPC7:1; // 7 Local IPC Flag 7 Status
  96. Uint16 IPC8:1; // 8 Local IPC Flag 8 Status
  97. Uint16 IPC9:1; // 9 Local IPC Flag 9 Status
  98. Uint16 IPC10:1; // 10 Local IPC Flag 10 Status
  99. Uint16 IPC11:1; // 11 Local IPC Flag 11 Status
  100. Uint16 IPC12:1; // 12 Local IPC Flag 12 Status
  101. Uint16 IPC13:1; // 13 Local IPC Flag 13 Status
  102. Uint16 IPC14:1; // 14 Local IPC Flag 14 Status
  103. Uint16 IPC15:1; // 15 Local IPC Flag 15 Status
  104. Uint16 IPC16:1; // 16 Local IPC Flag 16 Status
  105. Uint16 IPC17:1; // 17 Local IPC Flag 17 Status
  106. Uint16 IPC18:1; // 18 Local IPC Flag 18 Status
  107. Uint16 IPC19:1; // 19 Local IPC Flag 19 Status
  108. Uint16 IPC20:1; // 20 Local IPC Flag 20 Status
  109. Uint16 IPC21:1; // 21 Local IPC Flag 21 Status
  110. Uint16 IPC22:1; // 22 Local IPC Flag 22 Status
  111. Uint16 IPC23:1; // 23 Local IPC Flag 23 Status
  112. Uint16 IPC24:1; // 24 Local IPC Flag 24 Status
  113. Uint16 IPC25:1; // 25 Local IPC Flag 25 Status
  114. Uint16 IPC26:1; // 26 Local IPC Flag 26 Status
  115. Uint16 IPC27:1; // 27 Local IPC Flag 27 Status
  116. Uint16 IPC28:1; // 28 Local IPC Flag 28 Status
  117. Uint16 IPC29:1; // 29 Local IPC Flag 29 Status
  118. Uint16 IPC30:1; // 30 Local IPC Flag 30 Status
  119. Uint16 IPC31:1; // 31 Local IPC Flag 31 Status
  120. };
  121. union IPCSTS_REG {
  122. Uint32 all;
  123. struct IPCSTS_BITS bit;
  124. };
  125. struct IPCSET_BITS { // bits description
  126. Uint16 IPC0:1; // 0 Set Remote IPC0 Flag
  127. Uint16 IPC1:1; // 1 Set Remote IPC1 Flag
  128. Uint16 IPC2:1; // 2 Set Remote IPC2 Flag
  129. Uint16 IPC3:1; // 3 Set Remote IPC3 Flag
  130. Uint16 IPC4:1; // 4 Set Remote IPC4 Flag
  131. Uint16 IPC5:1; // 5 Set Remote IPC5 Flag
  132. Uint16 IPC6:1; // 6 Set Remote IPC6 Flag
  133. Uint16 IPC7:1; // 7 Set Remote IPC7 Flag
  134. Uint16 IPC8:1; // 8 Set Remote IPC8 Flag
  135. Uint16 IPC9:1; // 9 Set Remote IPC9 Flag
  136. Uint16 IPC10:1; // 10 Set Remote IPC10 Flag
  137. Uint16 IPC11:1; // 11 Set Remote IPC11 Flag
  138. Uint16 IPC12:1; // 12 Set Remote IPC12 Flag
  139. Uint16 IPC13:1; // 13 Set Remote IPC13 Flag
  140. Uint16 IPC14:1; // 14 Set Remote IPC14 Flag
  141. Uint16 IPC15:1; // 15 Set Remote IPC15 Flag
  142. Uint16 IPC16:1; // 16 Set Remote IPC16 Flag
  143. Uint16 IPC17:1; // 17 Set Remote IPC17 Flag
  144. Uint16 IPC18:1; // 18 Set Remote IPC18 Flag
  145. Uint16 IPC19:1; // 19 Set Remote IPC19 Flag
  146. Uint16 IPC20:1; // 20 Set Remote IPC20 Flag
  147. Uint16 IPC21:1; // 21 Set Remote IPC21 Flag
  148. Uint16 IPC22:1; // 22 Set Remote IPC22 Flag
  149. Uint16 IPC23:1; // 23 Set Remote IPC23 Flag
  150. Uint16 IPC24:1; // 24 Set Remote IPC24 Flag
  151. Uint16 IPC25:1; // 25 Set Remote IPC25 Flag
  152. Uint16 IPC26:1; // 26 Set Remote IPC26 Flag
  153. Uint16 IPC27:1; // 27 Set Remote IPC27 Flag
  154. Uint16 IPC28:1; // 28 Set Remote IPC28 Flag
  155. Uint16 IPC29:1; // 29 Set Remote IPC29 Flag
  156. Uint16 IPC30:1; // 30 Set Remote IPC30 Flag
  157. Uint16 IPC31:1; // 31 Set Remote IPC31 Flag
  158. };
  159. union IPCSET_REG {
  160. Uint32 all;
  161. struct IPCSET_BITS bit;
  162. };
  163. struct IPCCLR_BITS { // bits description
  164. Uint16 IPC0:1; // 0 Clear Remote IPC0 Flag
  165. Uint16 IPC1:1; // 1 Clear Remote IPC1 Flag
  166. Uint16 IPC2:1; // 2 Clear Remote IPC2 Flag
  167. Uint16 IPC3:1; // 3 Clear Remote IPC3 Flag
  168. Uint16 IPC4:1; // 4 Clear Remote IPC4 Flag
  169. Uint16 IPC5:1; // 5 Clear Remote IPC5 Flag
  170. Uint16 IPC6:1; // 6 Clear Remote IPC6 Flag
  171. Uint16 IPC7:1; // 7 Clear Remote IPC7 Flag
  172. Uint16 IPC8:1; // 8 Clear Remote IPC8 Flag
  173. Uint16 IPC9:1; // 9 Clear Remote IPC9 Flag
  174. Uint16 IPC10:1; // 10 Clear Remote IPC10 Flag
  175. Uint16 IPC11:1; // 11 Clear Remote IPC11 Flag
  176. Uint16 IPC12:1; // 12 Clear Remote IPC12 Flag
  177. Uint16 IPC13:1; // 13 Clear Remote IPC13 Flag
  178. Uint16 IPC14:1; // 14 Clear Remote IPC14 Flag
  179. Uint16 IPC15:1; // 15 Clear Remote IPC15 Flag
  180. Uint16 IPC16:1; // 16 Clear Remote IPC16 Flag
  181. Uint16 IPC17:1; // 17 Clear Remote IPC17 Flag
  182. Uint16 IPC18:1; // 18 Clear Remote IPC18 Flag
  183. Uint16 IPC19:1; // 19 Clear Remote IPC19 Flag
  184. Uint16 IPC20:1; // 20 Clear Remote IPC20 Flag
  185. Uint16 IPC21:1; // 21 Clear Remote IPC21 Flag
  186. Uint16 IPC22:1; // 22 Clear Remote IPC22 Flag
  187. Uint16 IPC23:1; // 23 Clear Remote IPC23 Flag
  188. Uint16 IPC24:1; // 24 Clear Remote IPC24 Flag
  189. Uint16 IPC25:1; // 25 Clear Remote IPC25 Flag
  190. Uint16 IPC26:1; // 26 Clear Remote IPC26 Flag
  191. Uint16 IPC27:1; // 27 Clear Remote IPC27 Flag
  192. Uint16 IPC28:1; // 28 Clear Remote IPC28 Flag
  193. Uint16 IPC29:1; // 29 Clear Remote IPC29 Flag
  194. Uint16 IPC30:1; // 30 Clear Remote IPC30 Flag
  195. Uint16 IPC31:1; // 31 Clear Remote IPC31 Flag
  196. };
  197. union IPCCLR_REG {
  198. Uint32 all;
  199. struct IPCCLR_BITS bit;
  200. };
  201. struct IPCFLG_BITS { // bits description
  202. Uint16 IPC0:1; // 0 Remote IPC0 Flag Status
  203. Uint16 IPC1:1; // 1 Remote IPC1 Flag Status
  204. Uint16 IPC2:1; // 2 Remote IPC2 Flag Status
  205. Uint16 IPC3:1; // 3 Remote IPC3 Flag Status
  206. Uint16 IPC4:1; // 4 Remote IPC4 Flag Status
  207. Uint16 IPC5:1; // 5 Remote IPC5 Flag Status
  208. Uint16 IPC6:1; // 6 Remote IPC6 Flag Status
  209. Uint16 IPC7:1; // 7 Remote IPC7 Flag Status
  210. Uint16 IPC8:1; // 8 Remote IPC8 Flag Status
  211. Uint16 IPC9:1; // 9 Remote IPC9 Flag Status
  212. Uint16 IPC10:1; // 10 Remote IPC10 Flag Status
  213. Uint16 IPC11:1; // 11 Remote IPC11 Flag Status
  214. Uint16 IPC12:1; // 12 Remote IPC12 Flag Status
  215. Uint16 IPC13:1; // 13 Remote IPC13 Flag Status
  216. Uint16 IPC14:1; // 14 Remote IPC14 Flag Status
  217. Uint16 IPC15:1; // 15 Remote IPC15 Flag Status
  218. Uint16 IPC16:1; // 16 Remote IPC16 Flag Status
  219. Uint16 IPC17:1; // 17 Remote IPC17 Flag Status
  220. Uint16 IPC18:1; // 18 Remote IPC18 Flag Status
  221. Uint16 IPC19:1; // 19 Remote IPC19 Flag Status
  222. Uint16 IPC20:1; // 20 Remote IPC20 Flag Status
  223. Uint16 IPC21:1; // 21 Remote IPC21 Flag Status
  224. Uint16 IPC22:1; // 22 Remote IPC22 Flag Status
  225. Uint16 IPC23:1; // 23 Remote IPC23 Flag Status
  226. Uint16 IPC24:1; // 24 Remote IPC24 Flag Status
  227. Uint16 IPC25:1; // 25 Remote IPC25 Flag Status
  228. Uint16 IPC26:1; // 26 Remote IPC26 Flag Status
  229. Uint16 IPC27:1; // 27 Remote IPC27 Flag Status
  230. Uint16 IPC28:1; // 28 Remote IPC28 Flag Status
  231. Uint16 IPC29:1; // 29 Remote IPC29 Flag Status
  232. Uint16 IPC30:1; // 30 Remote IPC30 Flag Status
  233. Uint16 IPC31:1; // 31 Remote IPC31 Flag Status
  234. };
  235. union IPCFLG_REG {
  236. Uint32 all;
  237. struct IPCFLG_BITS bit;
  238. };
  239. struct IPC_REGS_CPU1 {
  240. union IPCACK_REG IPCACK; // IPC incoming flag clear (acknowledge) register
  241. union IPCSTS_REG IPCSTS; // IPC incoming flag status register
  242. union IPCSET_REG IPCSET; // IPC remote flag set register
  243. union IPCCLR_REG IPCCLR; // IPC remote flag clear register
  244. union IPCFLG_REG IPCFLG; // IPC remote flag status register
  245. Uint16 rsvd1[2]; // Reserved
  246. Uint32 IPCCOUNTERL; // IPC Counter Low Register
  247. Uint32 IPCCOUNTERH; // IPC Counter High Register
  248. Uint32 IPCSENDCOM; // Local to Remote IPC Command Register
  249. Uint32 IPCSENDADDR; // Local to Remote IPC Address Register
  250. Uint32 IPCSENDDATA; // Local to Remote IPC Data Register
  251. Uint32 IPCREMOTEREPLY; // Remote to Local IPC Reply Data Register
  252. Uint32 IPCRECVCOM; // Remote to Local IPC Command Register
  253. Uint32 IPCRECVADDR; // Remote to Local IPC Address Register
  254. Uint32 IPCRECVDATA; // Remote to Local IPC Data Register
  255. Uint32 IPCLOCALREPLY; // Local to Remote IPC Reply Data Register
  256. Uint32 IPCBOOTSTS; // CPU2 to CPU1 IPC Boot Status Register
  257. Uint32 IPCBOOTMODE; // CPU1 to CPU2 IPC Boot Mode Register
  258. };
  259. struct IPC_REGS_CPU2 {
  260. union IPCACK_REG IPCACK; // IPC incoming flag clear (acknowledge) register
  261. union IPCSTS_REG IPCSTS; // IPC incoming flag status register
  262. union IPCSET_REG IPCSET; // IPC remote flag set register
  263. union IPCCLR_REG IPCCLR; // IPC remote flag clear register
  264. union IPCFLG_REG IPCFLG; // IPC remote flag status register
  265. Uint16 rsvd1[2]; // Reserved
  266. Uint32 IPCCOUNTERL; // IPC Counter Low Register
  267. Uint32 IPCCOUNTERH; // IPC Counter High Register
  268. Uint32 IPCRECVCOM; // Remote to Local IPC Command Register
  269. Uint32 IPCRECVADDR; // Remote to Local IPC Address Register
  270. Uint32 IPCRECVDATA; // Remote to Local IPC Data Register
  271. Uint32 IPCLOCALREPLY; // Local to Remote IPC Reply Data Register
  272. Uint32 IPCSENDCOM; // Local to Remote IPC Command Register
  273. Uint32 IPCSENDADDR; // Local to Remote IPC Address Register
  274. Uint32 IPCSENDDATA; // Local to Remote IPC Data Register
  275. Uint32 IPCREMOTEREPLY; // Remote to Local IPC Reply Data Register
  276. Uint32 IPCBOOTSTS; // CPU2 to CPU1 IPC Boot Status Register
  277. Uint32 IPCBOOTMODE; // CPU1 to CPU2 IPC Boot Mode Register
  278. };
  279. //---------------------------------------------------------------------------
  280. // IPC External References & Function Declarations:
  281. //
  282. #ifdef CPU1
  283. extern volatile struct IPC_REGS_CPU1 IpcRegs;
  284. #endif
  285. #ifdef CPU2
  286. extern volatile struct IPC_REGS_CPU2 IpcRegs;
  287. #endif
  288. #ifdef __cplusplus
  289. }
  290. #endif /* extern "C" */
  291. #endif
  292. //===========================================================================
  293. // End of file.
  294. //===========================================================================