rt-thread/bsp/ti/c28x/libraries/tms320f28379d/headers/include/F2837xD_ipc.h

314 lines
18 KiB
C

//###########################################################################
//
// FILE: F2837xD_ipc.h
//
// TITLE: IPC Register Definitions.
//
//###########################################################################
// $TI Release: F2837xD Support Library v3.05.00.00 $
// $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
// $Copyright:
// Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the
// distribution.
//
// Neither the name of Texas Instruments Incorporated nor the names of
// its contributors may be used to endorse or promote products derived
// from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// $
//###########################################################################
#ifndef __F2837xD_IPC_H__
#define __F2837xD_IPC_H__
#ifdef __cplusplus
extern "C" {
#endif
//---------------------------------------------------------------------------
// IPC Individual Register Bit Definitions:
struct IPCACK_BITS { // bits description
Uint16 IPC0:1; // 0 Local IPC Flag 0 Acknowledgement
Uint16 IPC1:1; // 1 Local IPC Flag 1 Acknowledgement
Uint16 IPC2:1; // 2 Local IPC Flag 2 Acknowledgement
Uint16 IPC3:1; // 3 Local IPC Flag 3 Acknowledgement
Uint16 IPC4:1; // 4 Local IPC Flag 4 Acknowledgement
Uint16 IPC5:1; // 5 Local IPC Flag 5 Acknowledgement
Uint16 IPC6:1; // 6 Local IPC Flag 6 Acknowledgement
Uint16 IPC7:1; // 7 Local IPC Flag 7 Acknowledgement
Uint16 IPC8:1; // 8 Local IPC Flag 8 Acknowledgement
Uint16 IPC9:1; // 9 Local IPC Flag 9 Acknowledgement
Uint16 IPC10:1; // 10 Local IPC Flag 10 Acknowledgement
Uint16 IPC11:1; // 11 Local IPC Flag 11 Acknowledgement
Uint16 IPC12:1; // 12 Local IPC Flag 12 Acknowledgement
Uint16 IPC13:1; // 13 Local IPC Flag 13 Acknowledgement
Uint16 IPC14:1; // 14 Local IPC Flag 14 Acknowledgement
Uint16 IPC15:1; // 15 Local IPC Flag 15 Acknowledgement
Uint16 IPC16:1; // 16 Local IPC Flag 16 Acknowledgement
Uint16 IPC17:1; // 17 Local IPC Flag 17 Acknowledgement
Uint16 IPC18:1; // 18 Local IPC Flag 18 Acknowledgement
Uint16 IPC19:1; // 19 Local IPC Flag 19 Acknowledgement
Uint16 IPC20:1; // 20 Local IPC Flag 20 Acknowledgement
Uint16 IPC21:1; // 21 Local IPC Flag 21 Acknowledgement
Uint16 IPC22:1; // 22 Local IPC Flag 22 Acknowledgement
Uint16 IPC23:1; // 23 Local IPC Flag 23 Acknowledgement
Uint16 IPC24:1; // 24 Local IPC Flag 24 Acknowledgement
Uint16 IPC25:1; // 25 Local IPC Flag 25 Acknowledgement
Uint16 IPC26:1; // 26 Local IPC Flag 26 Acknowledgement
Uint16 IPC27:1; // 27 Local IPC Flag 27 Acknowledgement
Uint16 IPC28:1; // 28 Local IPC Flag 28 Acknowledgement
Uint16 IPC29:1; // 29 Local IPC Flag 29 Acknowledgement
Uint16 IPC30:1; // 30 Local IPC Flag 30 Acknowledgement
Uint16 IPC31:1; // 31 Local IPC Flag 31 Acknowledgement
};
union IPCACK_REG {
Uint32 all;
struct IPCACK_BITS bit;
};
struct IPCSTS_BITS { // bits description
Uint16 IPC0:1; // 0 Local IPC Flag 0 Status
Uint16 IPC1:1; // 1 Local IPC Flag 1 Status
Uint16 IPC2:1; // 2 Local IPC Flag 2 Status
Uint16 IPC3:1; // 3 Local IPC Flag 3 Status
Uint16 IPC4:1; // 4 Local IPC Flag 4 Status
Uint16 IPC5:1; // 5 Local IPC Flag 5 Status
Uint16 IPC6:1; // 6 Local IPC Flag 6 Status
Uint16 IPC7:1; // 7 Local IPC Flag 7 Status
Uint16 IPC8:1; // 8 Local IPC Flag 8 Status
Uint16 IPC9:1; // 9 Local IPC Flag 9 Status
Uint16 IPC10:1; // 10 Local IPC Flag 10 Status
Uint16 IPC11:1; // 11 Local IPC Flag 11 Status
Uint16 IPC12:1; // 12 Local IPC Flag 12 Status
Uint16 IPC13:1; // 13 Local IPC Flag 13 Status
Uint16 IPC14:1; // 14 Local IPC Flag 14 Status
Uint16 IPC15:1; // 15 Local IPC Flag 15 Status
Uint16 IPC16:1; // 16 Local IPC Flag 16 Status
Uint16 IPC17:1; // 17 Local IPC Flag 17 Status
Uint16 IPC18:1; // 18 Local IPC Flag 18 Status
Uint16 IPC19:1; // 19 Local IPC Flag 19 Status
Uint16 IPC20:1; // 20 Local IPC Flag 20 Status
Uint16 IPC21:1; // 21 Local IPC Flag 21 Status
Uint16 IPC22:1; // 22 Local IPC Flag 22 Status
Uint16 IPC23:1; // 23 Local IPC Flag 23 Status
Uint16 IPC24:1; // 24 Local IPC Flag 24 Status
Uint16 IPC25:1; // 25 Local IPC Flag 25 Status
Uint16 IPC26:1; // 26 Local IPC Flag 26 Status
Uint16 IPC27:1; // 27 Local IPC Flag 27 Status
Uint16 IPC28:1; // 28 Local IPC Flag 28 Status
Uint16 IPC29:1; // 29 Local IPC Flag 29 Status
Uint16 IPC30:1; // 30 Local IPC Flag 30 Status
Uint16 IPC31:1; // 31 Local IPC Flag 31 Status
};
union IPCSTS_REG {
Uint32 all;
struct IPCSTS_BITS bit;
};
struct IPCSET_BITS { // bits description
Uint16 IPC0:1; // 0 Set Remote IPC0 Flag
Uint16 IPC1:1; // 1 Set Remote IPC1 Flag
Uint16 IPC2:1; // 2 Set Remote IPC2 Flag
Uint16 IPC3:1; // 3 Set Remote IPC3 Flag
Uint16 IPC4:1; // 4 Set Remote IPC4 Flag
Uint16 IPC5:1; // 5 Set Remote IPC5 Flag
Uint16 IPC6:1; // 6 Set Remote IPC6 Flag
Uint16 IPC7:1; // 7 Set Remote IPC7 Flag
Uint16 IPC8:1; // 8 Set Remote IPC8 Flag
Uint16 IPC9:1; // 9 Set Remote IPC9 Flag
Uint16 IPC10:1; // 10 Set Remote IPC10 Flag
Uint16 IPC11:1; // 11 Set Remote IPC11 Flag
Uint16 IPC12:1; // 12 Set Remote IPC12 Flag
Uint16 IPC13:1; // 13 Set Remote IPC13 Flag
Uint16 IPC14:1; // 14 Set Remote IPC14 Flag
Uint16 IPC15:1; // 15 Set Remote IPC15 Flag
Uint16 IPC16:1; // 16 Set Remote IPC16 Flag
Uint16 IPC17:1; // 17 Set Remote IPC17 Flag
Uint16 IPC18:1; // 18 Set Remote IPC18 Flag
Uint16 IPC19:1; // 19 Set Remote IPC19 Flag
Uint16 IPC20:1; // 20 Set Remote IPC20 Flag
Uint16 IPC21:1; // 21 Set Remote IPC21 Flag
Uint16 IPC22:1; // 22 Set Remote IPC22 Flag
Uint16 IPC23:1; // 23 Set Remote IPC23 Flag
Uint16 IPC24:1; // 24 Set Remote IPC24 Flag
Uint16 IPC25:1; // 25 Set Remote IPC25 Flag
Uint16 IPC26:1; // 26 Set Remote IPC26 Flag
Uint16 IPC27:1; // 27 Set Remote IPC27 Flag
Uint16 IPC28:1; // 28 Set Remote IPC28 Flag
Uint16 IPC29:1; // 29 Set Remote IPC29 Flag
Uint16 IPC30:1; // 30 Set Remote IPC30 Flag
Uint16 IPC31:1; // 31 Set Remote IPC31 Flag
};
union IPCSET_REG {
Uint32 all;
struct IPCSET_BITS bit;
};
struct IPCCLR_BITS { // bits description
Uint16 IPC0:1; // 0 Clear Remote IPC0 Flag
Uint16 IPC1:1; // 1 Clear Remote IPC1 Flag
Uint16 IPC2:1; // 2 Clear Remote IPC2 Flag
Uint16 IPC3:1; // 3 Clear Remote IPC3 Flag
Uint16 IPC4:1; // 4 Clear Remote IPC4 Flag
Uint16 IPC5:1; // 5 Clear Remote IPC5 Flag
Uint16 IPC6:1; // 6 Clear Remote IPC6 Flag
Uint16 IPC7:1; // 7 Clear Remote IPC7 Flag
Uint16 IPC8:1; // 8 Clear Remote IPC8 Flag
Uint16 IPC9:1; // 9 Clear Remote IPC9 Flag
Uint16 IPC10:1; // 10 Clear Remote IPC10 Flag
Uint16 IPC11:1; // 11 Clear Remote IPC11 Flag
Uint16 IPC12:1; // 12 Clear Remote IPC12 Flag
Uint16 IPC13:1; // 13 Clear Remote IPC13 Flag
Uint16 IPC14:1; // 14 Clear Remote IPC14 Flag
Uint16 IPC15:1; // 15 Clear Remote IPC15 Flag
Uint16 IPC16:1; // 16 Clear Remote IPC16 Flag
Uint16 IPC17:1; // 17 Clear Remote IPC17 Flag
Uint16 IPC18:1; // 18 Clear Remote IPC18 Flag
Uint16 IPC19:1; // 19 Clear Remote IPC19 Flag
Uint16 IPC20:1; // 20 Clear Remote IPC20 Flag
Uint16 IPC21:1; // 21 Clear Remote IPC21 Flag
Uint16 IPC22:1; // 22 Clear Remote IPC22 Flag
Uint16 IPC23:1; // 23 Clear Remote IPC23 Flag
Uint16 IPC24:1; // 24 Clear Remote IPC24 Flag
Uint16 IPC25:1; // 25 Clear Remote IPC25 Flag
Uint16 IPC26:1; // 26 Clear Remote IPC26 Flag
Uint16 IPC27:1; // 27 Clear Remote IPC27 Flag
Uint16 IPC28:1; // 28 Clear Remote IPC28 Flag
Uint16 IPC29:1; // 29 Clear Remote IPC29 Flag
Uint16 IPC30:1; // 30 Clear Remote IPC30 Flag
Uint16 IPC31:1; // 31 Clear Remote IPC31 Flag
};
union IPCCLR_REG {
Uint32 all;
struct IPCCLR_BITS bit;
};
struct IPCFLG_BITS { // bits description
Uint16 IPC0:1; // 0 Remote IPC0 Flag Status
Uint16 IPC1:1; // 1 Remote IPC1 Flag Status
Uint16 IPC2:1; // 2 Remote IPC2 Flag Status
Uint16 IPC3:1; // 3 Remote IPC3 Flag Status
Uint16 IPC4:1; // 4 Remote IPC4 Flag Status
Uint16 IPC5:1; // 5 Remote IPC5 Flag Status
Uint16 IPC6:1; // 6 Remote IPC6 Flag Status
Uint16 IPC7:1; // 7 Remote IPC7 Flag Status
Uint16 IPC8:1; // 8 Remote IPC8 Flag Status
Uint16 IPC9:1; // 9 Remote IPC9 Flag Status
Uint16 IPC10:1; // 10 Remote IPC10 Flag Status
Uint16 IPC11:1; // 11 Remote IPC11 Flag Status
Uint16 IPC12:1; // 12 Remote IPC12 Flag Status
Uint16 IPC13:1; // 13 Remote IPC13 Flag Status
Uint16 IPC14:1; // 14 Remote IPC14 Flag Status
Uint16 IPC15:1; // 15 Remote IPC15 Flag Status
Uint16 IPC16:1; // 16 Remote IPC16 Flag Status
Uint16 IPC17:1; // 17 Remote IPC17 Flag Status
Uint16 IPC18:1; // 18 Remote IPC18 Flag Status
Uint16 IPC19:1; // 19 Remote IPC19 Flag Status
Uint16 IPC20:1; // 20 Remote IPC20 Flag Status
Uint16 IPC21:1; // 21 Remote IPC21 Flag Status
Uint16 IPC22:1; // 22 Remote IPC22 Flag Status
Uint16 IPC23:1; // 23 Remote IPC23 Flag Status
Uint16 IPC24:1; // 24 Remote IPC24 Flag Status
Uint16 IPC25:1; // 25 Remote IPC25 Flag Status
Uint16 IPC26:1; // 26 Remote IPC26 Flag Status
Uint16 IPC27:1; // 27 Remote IPC27 Flag Status
Uint16 IPC28:1; // 28 Remote IPC28 Flag Status
Uint16 IPC29:1; // 29 Remote IPC29 Flag Status
Uint16 IPC30:1; // 30 Remote IPC30 Flag Status
Uint16 IPC31:1; // 31 Remote IPC31 Flag Status
};
union IPCFLG_REG {
Uint32 all;
struct IPCFLG_BITS bit;
};
struct IPC_REGS_CPU1 {
union IPCACK_REG IPCACK; // IPC incoming flag clear (acknowledge) register
union IPCSTS_REG IPCSTS; // IPC incoming flag status register
union IPCSET_REG IPCSET; // IPC remote flag set register
union IPCCLR_REG IPCCLR; // IPC remote flag clear register
union IPCFLG_REG IPCFLG; // IPC remote flag status register
Uint16 rsvd1[2]; // Reserved
Uint32 IPCCOUNTERL; // IPC Counter Low Register
Uint32 IPCCOUNTERH; // IPC Counter High Register
Uint32 IPCSENDCOM; // Local to Remote IPC Command Register
Uint32 IPCSENDADDR; // Local to Remote IPC Address Register
Uint32 IPCSENDDATA; // Local to Remote IPC Data Register
Uint32 IPCREMOTEREPLY; // Remote to Local IPC Reply Data Register
Uint32 IPCRECVCOM; // Remote to Local IPC Command Register
Uint32 IPCRECVADDR; // Remote to Local IPC Address Register
Uint32 IPCRECVDATA; // Remote to Local IPC Data Register
Uint32 IPCLOCALREPLY; // Local to Remote IPC Reply Data Register
Uint32 IPCBOOTSTS; // CPU2 to CPU1 IPC Boot Status Register
Uint32 IPCBOOTMODE; // CPU1 to CPU2 IPC Boot Mode Register
};
struct IPC_REGS_CPU2 {
union IPCACK_REG IPCACK; // IPC incoming flag clear (acknowledge) register
union IPCSTS_REG IPCSTS; // IPC incoming flag status register
union IPCSET_REG IPCSET; // IPC remote flag set register
union IPCCLR_REG IPCCLR; // IPC remote flag clear register
union IPCFLG_REG IPCFLG; // IPC remote flag status register
Uint16 rsvd1[2]; // Reserved
Uint32 IPCCOUNTERL; // IPC Counter Low Register
Uint32 IPCCOUNTERH; // IPC Counter High Register
Uint32 IPCRECVCOM; // Remote to Local IPC Command Register
Uint32 IPCRECVADDR; // Remote to Local IPC Address Register
Uint32 IPCRECVDATA; // Remote to Local IPC Data Register
Uint32 IPCLOCALREPLY; // Local to Remote IPC Reply Data Register
Uint32 IPCSENDCOM; // Local to Remote IPC Command Register
Uint32 IPCSENDADDR; // Local to Remote IPC Address Register
Uint32 IPCSENDDATA; // Local to Remote IPC Data Register
Uint32 IPCREMOTEREPLY; // Remote to Local IPC Reply Data Register
Uint32 IPCBOOTSTS; // CPU2 to CPU1 IPC Boot Status Register
Uint32 IPCBOOTMODE; // CPU1 to CPU2 IPC Boot Mode Register
};
//---------------------------------------------------------------------------
// IPC External References & Function Declarations:
//
#ifdef CPU1
extern volatile struct IPC_REGS_CPU1 IpcRegs;
#endif
#ifdef CPU2
extern volatile struct IPC_REGS_CPU2 IpcRegs;
#endif
#ifdef __cplusplus
}
#endif /* extern "C" */
#endif
//===========================================================================
// End of file.
//===========================================================================