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 43 #ifndef __F2837xD_IPC_H__ 44 #define __F2837xD_IPC_H__ 45 46 #ifdef __cplusplus 47 extern "C" { 48 #endif 49 50 51 //--------------------------------------------------------------------------- 52 // IPC Individual Register Bit Definitions: 53 54 struct IPCACK_BITS { // bits description 55 Uint16 IPC0:1; // 0 Local IPC Flag 0 Acknowledgement 56 Uint16 IPC1:1; // 1 Local IPC Flag 1 Acknowledgement 57 Uint16 IPC2:1; // 2 Local IPC Flag 2 Acknowledgement 58 Uint16 IPC3:1; // 3 Local IPC Flag 3 Acknowledgement 59 Uint16 IPC4:1; // 4 Local IPC Flag 4 Acknowledgement 60 Uint16 IPC5:1; // 5 Local IPC Flag 5 Acknowledgement 61 Uint16 IPC6:1; // 6 Local IPC Flag 6 Acknowledgement 62 Uint16 IPC7:1; // 7 Local IPC Flag 7 Acknowledgement 63 Uint16 IPC8:1; // 8 Local IPC Flag 8 Acknowledgement 64 Uint16 IPC9:1; // 9 Local IPC Flag 9 Acknowledgement 65 Uint16 IPC10:1; // 10 Local IPC Flag 10 Acknowledgement 66 Uint16 IPC11:1; // 11 Local IPC Flag 11 Acknowledgement 67 Uint16 IPC12:1; // 12 Local IPC Flag 12 Acknowledgement 68 Uint16 IPC13:1; // 13 Local IPC Flag 13 Acknowledgement 69 Uint16 IPC14:1; // 14 Local IPC Flag 14 Acknowledgement 70 Uint16 IPC15:1; // 15 Local IPC Flag 15 Acknowledgement 71 Uint16 IPC16:1; // 16 Local IPC Flag 16 Acknowledgement 72 Uint16 IPC17:1; // 17 Local IPC Flag 17 Acknowledgement 73 Uint16 IPC18:1; // 18 Local IPC Flag 18 Acknowledgement 74 Uint16 IPC19:1; // 19 Local IPC Flag 19 Acknowledgement 75 Uint16 IPC20:1; // 20 Local IPC Flag 20 Acknowledgement 76 Uint16 IPC21:1; // 21 Local IPC Flag 21 Acknowledgement 77 Uint16 IPC22:1; // 22 Local IPC Flag 22 Acknowledgement 78 Uint16 IPC23:1; // 23 Local IPC Flag 23 Acknowledgement 79 Uint16 IPC24:1; // 24 Local IPC Flag 24 Acknowledgement 80 Uint16 IPC25:1; // 25 Local IPC Flag 25 Acknowledgement 81 Uint16 IPC26:1; // 26 Local IPC Flag 26 Acknowledgement 82 Uint16 IPC27:1; // 27 Local IPC Flag 27 Acknowledgement 83 Uint16 IPC28:1; // 28 Local IPC Flag 28 Acknowledgement 84 Uint16 IPC29:1; // 29 Local IPC Flag 29 Acknowledgement 85 Uint16 IPC30:1; // 30 Local IPC Flag 30 Acknowledgement 86 Uint16 IPC31:1; // 31 Local IPC Flag 31 Acknowledgement 87 }; 88 89 union IPCACK_REG { 90 Uint32 all; 91 struct IPCACK_BITS bit; 92 }; 93 94 struct IPCSTS_BITS { // bits description 95 Uint16 IPC0:1; // 0 Local IPC Flag 0 Status 96 Uint16 IPC1:1; // 1 Local IPC Flag 1 Status 97 Uint16 IPC2:1; // 2 Local IPC Flag 2 Status 98 Uint16 IPC3:1; // 3 Local IPC Flag 3 Status 99 Uint16 IPC4:1; // 4 Local IPC Flag 4 Status 100 Uint16 IPC5:1; // 5 Local IPC Flag 5 Status 101 Uint16 IPC6:1; // 6 Local IPC Flag 6 Status 102 Uint16 IPC7:1; // 7 Local IPC Flag 7 Status 103 Uint16 IPC8:1; // 8 Local IPC Flag 8 Status 104 Uint16 IPC9:1; // 9 Local IPC Flag 9 Status 105 Uint16 IPC10:1; // 10 Local IPC Flag 10 Status 106 Uint16 IPC11:1; // 11 Local IPC Flag 11 Status 107 Uint16 IPC12:1; // 12 Local IPC Flag 12 Status 108 Uint16 IPC13:1; // 13 Local IPC Flag 13 Status 109 Uint16 IPC14:1; // 14 Local IPC Flag 14 Status 110 Uint16 IPC15:1; // 15 Local IPC Flag 15 Status 111 Uint16 IPC16:1; // 16 Local IPC Flag 16 Status 112 Uint16 IPC17:1; // 17 Local IPC Flag 17 Status 113 Uint16 IPC18:1; // 18 Local IPC Flag 18 Status 114 Uint16 IPC19:1; // 19 Local IPC Flag 19 Status 115 Uint16 IPC20:1; // 20 Local IPC Flag 20 Status 116 Uint16 IPC21:1; // 21 Local IPC Flag 21 Status 117 Uint16 IPC22:1; // 22 Local IPC Flag 22 Status 118 Uint16 IPC23:1; // 23 Local IPC Flag 23 Status 119 Uint16 IPC24:1; // 24 Local IPC Flag 24 Status 120 Uint16 IPC25:1; // 25 Local IPC Flag 25 Status 121 Uint16 IPC26:1; // 26 Local IPC Flag 26 Status 122 Uint16 IPC27:1; // 27 Local IPC Flag 27 Status 123 Uint16 IPC28:1; // 28 Local IPC Flag 28 Status 124 Uint16 IPC29:1; // 29 Local IPC Flag 29 Status 125 Uint16 IPC30:1; // 30 Local IPC Flag 30 Status 126 Uint16 IPC31:1; // 31 Local IPC Flag 31 Status 127 }; 128 129 union IPCSTS_REG { 130 Uint32 all; 131 struct IPCSTS_BITS bit; 132 }; 133 134 struct IPCSET_BITS { // bits description 135 Uint16 IPC0:1; // 0 Set Remote IPC0 Flag 136 Uint16 IPC1:1; // 1 Set Remote IPC1 Flag 137 Uint16 IPC2:1; // 2 Set Remote IPC2 Flag 138 Uint16 IPC3:1; // 3 Set Remote IPC3 Flag 139 Uint16 IPC4:1; // 4 Set Remote IPC4 Flag 140 Uint16 IPC5:1; // 5 Set Remote IPC5 Flag 141 Uint16 IPC6:1; // 6 Set Remote IPC6 Flag 142 Uint16 IPC7:1; // 7 Set Remote IPC7 Flag 143 Uint16 IPC8:1; // 8 Set Remote IPC8 Flag 144 Uint16 IPC9:1; // 9 Set Remote IPC9 Flag 145 Uint16 IPC10:1; // 10 Set Remote IPC10 Flag 146 Uint16 IPC11:1; // 11 Set Remote IPC11 Flag 147 Uint16 IPC12:1; // 12 Set Remote IPC12 Flag 148 Uint16 IPC13:1; // 13 Set Remote IPC13 Flag 149 Uint16 IPC14:1; // 14 Set Remote IPC14 Flag 150 Uint16 IPC15:1; // 15 Set Remote IPC15 Flag 151 Uint16 IPC16:1; // 16 Set Remote IPC16 Flag 152 Uint16 IPC17:1; // 17 Set Remote IPC17 Flag 153 Uint16 IPC18:1; // 18 Set Remote IPC18 Flag 154 Uint16 IPC19:1; // 19 Set Remote IPC19 Flag 155 Uint16 IPC20:1; // 20 Set Remote IPC20 Flag 156 Uint16 IPC21:1; // 21 Set Remote IPC21 Flag 157 Uint16 IPC22:1; // 22 Set Remote IPC22 Flag 158 Uint16 IPC23:1; // 23 Set Remote IPC23 Flag 159 Uint16 IPC24:1; // 24 Set Remote IPC24 Flag 160 Uint16 IPC25:1; // 25 Set Remote IPC25 Flag 161 Uint16 IPC26:1; // 26 Set Remote IPC26 Flag 162 Uint16 IPC27:1; // 27 Set Remote IPC27 Flag 163 Uint16 IPC28:1; // 28 Set Remote IPC28 Flag 164 Uint16 IPC29:1; // 29 Set Remote IPC29 Flag 165 Uint16 IPC30:1; // 30 Set Remote IPC30 Flag 166 Uint16 IPC31:1; // 31 Set Remote IPC31 Flag 167 }; 168 169 union IPCSET_REG { 170 Uint32 all; 171 struct IPCSET_BITS bit; 172 }; 173 174 struct IPCCLR_BITS { // bits description 175 Uint16 IPC0:1; // 0 Clear Remote IPC0 Flag 176 Uint16 IPC1:1; // 1 Clear Remote IPC1 Flag 177 Uint16 IPC2:1; // 2 Clear Remote IPC2 Flag 178 Uint16 IPC3:1; // 3 Clear Remote IPC3 Flag 179 Uint16 IPC4:1; // 4 Clear Remote IPC4 Flag 180 Uint16 IPC5:1; // 5 Clear Remote IPC5 Flag 181 Uint16 IPC6:1; // 6 Clear Remote IPC6 Flag 182 Uint16 IPC7:1; // 7 Clear Remote IPC7 Flag 183 Uint16 IPC8:1; // 8 Clear Remote IPC8 Flag 184 Uint16 IPC9:1; // 9 Clear Remote IPC9 Flag 185 Uint16 IPC10:1; // 10 Clear Remote IPC10 Flag 186 Uint16 IPC11:1; // 11 Clear Remote IPC11 Flag 187 Uint16 IPC12:1; // 12 Clear Remote IPC12 Flag 188 Uint16 IPC13:1; // 13 Clear Remote IPC13 Flag 189 Uint16 IPC14:1; // 14 Clear Remote IPC14 Flag 190 Uint16 IPC15:1; // 15 Clear Remote IPC15 Flag 191 Uint16 IPC16:1; // 16 Clear Remote IPC16 Flag 192 Uint16 IPC17:1; // 17 Clear Remote IPC17 Flag 193 Uint16 IPC18:1; // 18 Clear Remote IPC18 Flag 194 Uint16 IPC19:1; // 19 Clear Remote IPC19 Flag 195 Uint16 IPC20:1; // 20 Clear Remote IPC20 Flag 196 Uint16 IPC21:1; // 21 Clear Remote IPC21 Flag 197 Uint16 IPC22:1; // 22 Clear Remote IPC22 Flag 198 Uint16 IPC23:1; // 23 Clear Remote IPC23 Flag 199 Uint16 IPC24:1; // 24 Clear Remote IPC24 Flag 200 Uint16 IPC25:1; // 25 Clear Remote IPC25 Flag 201 Uint16 IPC26:1; // 26 Clear Remote IPC26 Flag 202 Uint16 IPC27:1; // 27 Clear Remote IPC27 Flag 203 Uint16 IPC28:1; // 28 Clear Remote IPC28 Flag 204 Uint16 IPC29:1; // 29 Clear Remote IPC29 Flag 205 Uint16 IPC30:1; // 30 Clear Remote IPC30 Flag 206 Uint16 IPC31:1; // 31 Clear Remote IPC31 Flag 207 }; 208 209 union IPCCLR_REG { 210 Uint32 all; 211 struct IPCCLR_BITS bit; 212 }; 213 214 struct IPCFLG_BITS { // bits description 215 Uint16 IPC0:1; // 0 Remote IPC0 Flag Status 216 Uint16 IPC1:1; // 1 Remote IPC1 Flag Status 217 Uint16 IPC2:1; // 2 Remote IPC2 Flag Status 218 Uint16 IPC3:1; // 3 Remote IPC3 Flag Status 219 Uint16 IPC4:1; // 4 Remote IPC4 Flag Status 220 Uint16 IPC5:1; // 5 Remote IPC5 Flag Status 221 Uint16 IPC6:1; // 6 Remote IPC6 Flag Status 222 Uint16 IPC7:1; // 7 Remote IPC7 Flag Status 223 Uint16 IPC8:1; // 8 Remote IPC8 Flag Status 224 Uint16 IPC9:1; // 9 Remote IPC9 Flag Status 225 Uint16 IPC10:1; // 10 Remote IPC10 Flag Status 226 Uint16 IPC11:1; // 11 Remote IPC11 Flag Status 227 Uint16 IPC12:1; // 12 Remote IPC12 Flag Status 228 Uint16 IPC13:1; // 13 Remote IPC13 Flag Status 229 Uint16 IPC14:1; // 14 Remote IPC14 Flag Status 230 Uint16 IPC15:1; // 15 Remote IPC15 Flag Status 231 Uint16 IPC16:1; // 16 Remote IPC16 Flag Status 232 Uint16 IPC17:1; // 17 Remote IPC17 Flag Status 233 Uint16 IPC18:1; // 18 Remote IPC18 Flag Status 234 Uint16 IPC19:1; // 19 Remote IPC19 Flag Status 235 Uint16 IPC20:1; // 20 Remote IPC20 Flag Status 236 Uint16 IPC21:1; // 21 Remote IPC21 Flag Status 237 Uint16 IPC22:1; // 22 Remote IPC22 Flag Status 238 Uint16 IPC23:1; // 23 Remote IPC23 Flag Status 239 Uint16 IPC24:1; // 24 Remote IPC24 Flag Status 240 Uint16 IPC25:1; // 25 Remote IPC25 Flag Status 241 Uint16 IPC26:1; // 26 Remote IPC26 Flag Status 242 Uint16 IPC27:1; // 27 Remote IPC27 Flag Status 243 Uint16 IPC28:1; // 28 Remote IPC28 Flag Status 244 Uint16 IPC29:1; // 29 Remote IPC29 Flag Status 245 Uint16 IPC30:1; // 30 Remote IPC30 Flag Status 246 Uint16 IPC31:1; // 31 Remote IPC31 Flag Status 247 }; 248 249 union IPCFLG_REG { 250 Uint32 all; 251 struct IPCFLG_BITS bit; 252 }; 253 254 struct IPC_REGS_CPU1 { 255 union IPCACK_REG IPCACK; // IPC incoming flag clear (acknowledge) register 256 union IPCSTS_REG IPCSTS; // IPC incoming flag status register 257 union IPCSET_REG IPCSET; // IPC remote flag set register 258 union IPCCLR_REG IPCCLR; // IPC remote flag clear register 259 union IPCFLG_REG IPCFLG; // IPC remote flag status register 260 Uint16 rsvd1[2]; // Reserved 261 Uint32 IPCCOUNTERL; // IPC Counter Low Register 262 Uint32 IPCCOUNTERH; // IPC Counter High Register 263 Uint32 IPCSENDCOM; // Local to Remote IPC Command Register 264 Uint32 IPCSENDADDR; // Local to Remote IPC Address Register 265 Uint32 IPCSENDDATA; // Local to Remote IPC Data Register 266 Uint32 IPCREMOTEREPLY; // Remote to Local IPC Reply Data Register 267 Uint32 IPCRECVCOM; // Remote to Local IPC Command Register 268 Uint32 IPCRECVADDR; // Remote to Local IPC Address Register 269 Uint32 IPCRECVDATA; // Remote to Local IPC Data Register 270 Uint32 IPCLOCALREPLY; // Local to Remote IPC Reply Data Register 271 Uint32 IPCBOOTSTS; // CPU2 to CPU1 IPC Boot Status Register 272 Uint32 IPCBOOTMODE; // CPU1 to CPU2 IPC Boot Mode Register 273 }; 274 275 struct IPC_REGS_CPU2 { 276 union IPCACK_REG IPCACK; // IPC incoming flag clear (acknowledge) register 277 union IPCSTS_REG IPCSTS; // IPC incoming flag status register 278 union IPCSET_REG IPCSET; // IPC remote flag set register 279 union IPCCLR_REG IPCCLR; // IPC remote flag clear register 280 union IPCFLG_REG IPCFLG; // IPC remote flag status register 281 Uint16 rsvd1[2]; // Reserved 282 Uint32 IPCCOUNTERL; // IPC Counter Low Register 283 Uint32 IPCCOUNTERH; // IPC Counter High Register 284 Uint32 IPCRECVCOM; // Remote to Local IPC Command Register 285 Uint32 IPCRECVADDR; // Remote to Local IPC Address Register 286 Uint32 IPCRECVDATA; // Remote to Local IPC Data Register 287 Uint32 IPCLOCALREPLY; // Local to Remote IPC Reply Data Register 288 Uint32 IPCSENDCOM; // Local to Remote IPC Command Register 289 Uint32 IPCSENDADDR; // Local to Remote IPC Address Register 290 Uint32 IPCSENDDATA; // Local to Remote IPC Data Register 291 Uint32 IPCREMOTEREPLY; // Remote to Local IPC Reply Data Register 292 Uint32 IPCBOOTSTS; // CPU2 to CPU1 IPC Boot Status Register 293 Uint32 IPCBOOTMODE; // CPU1 to CPU2 IPC Boot Mode Register 294 }; 295 296 //--------------------------------------------------------------------------- 297 // IPC External References & Function Declarations: 298 // 299 #ifdef CPU1 300 extern volatile struct IPC_REGS_CPU1 IpcRegs; 301 #endif 302 #ifdef CPU2 303 extern volatile struct IPC_REGS_CPU2 IpcRegs; 304 #endif 305 #ifdef __cplusplus 306 } 307 #endif /* extern "C" */ 308 309 #endif 310 311 //=========================================================================== 312 // End of file. 313 //=========================================================================== 314