322 lines
20 KiB
C
322 lines
20 KiB
C
|
//###########################################################################
|
||
|
//
|
||
|
// FILE: hw_ipc.h
|
||
|
//
|
||
|
// TITLE: Definitions for the IPC registers.
|
||
|
//
|
||
|
//###########################################################################
|
||
|
// $Copyright:
|
||
|
// Copyright (C) 2022 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 HW_IPC_H
|
||
|
#define HW_IPC_H
|
||
|
|
||
|
//*****************************************************************************
|
||
|
//
|
||
|
// The following are defines for the IPC register offsets
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
#define IPC_O_ACK 0x0U // IPC incoming flag clear
|
||
|
// (acknowledge) register
|
||
|
#define IPC_O_STS 0x2U // IPC incoming flag status
|
||
|
// register
|
||
|
#define IPC_O_SET 0x4U // IPC remote flag set register
|
||
|
#define IPC_O_CLR 0x6U // IPC remote flag clear
|
||
|
// register
|
||
|
#define IPC_O_FLG 0x8U // IPC remote flag status
|
||
|
// register
|
||
|
#define IPC_O_COUNTERL 0xCU // IPC Counter Low Register
|
||
|
#define IPC_O_COUNTERH 0xEU // IPC Counter High Register
|
||
|
#ifndef CPU2
|
||
|
#define IPC_O_SENDCOM 0x10U // Local to Remote IPC Command
|
||
|
// Register
|
||
|
#define IPC_O_SENDADDR 0x12U // Local to Remote IPC Address
|
||
|
// Register
|
||
|
#define IPC_O_SENDDATA 0x14U // Local to Remote IPC Data
|
||
|
// Register
|
||
|
#define IPC_O_REMOTEREPLY 0x16U // Remote to Local IPC Reply
|
||
|
// Data Register
|
||
|
#define IPC_O_RECVCOM 0x18U // Remote to Local IPC Command
|
||
|
// Register
|
||
|
#define IPC_O_RECVADDR 0x1AU // Remote to Local IPC Address
|
||
|
// Register
|
||
|
#define IPC_O_RECVDATA 0x1CU // Remote to Local IPC Data
|
||
|
// Register
|
||
|
#define IPC_O_LOCALREPLY 0x1EU // Local to Remote IPC Reply
|
||
|
// Data Register
|
||
|
#else
|
||
|
#define IPC_O_RECVCOM 0x10U // Remote to Local IPC Command
|
||
|
// Register
|
||
|
#define IPC_O_RECVADDR 0x12U // Remote to Local IPC Address
|
||
|
// Register
|
||
|
#define IPC_O_RECVDATA 0x14U // Remote to Local IPC Data
|
||
|
// Register
|
||
|
#define IPC_O_LOCALREPLY 0x16U // Local to Remote IPC Reply
|
||
|
// Data Register
|
||
|
#define IPC_O_SENDCOM 0x18U // Local to Remote IPC Command
|
||
|
// Register
|
||
|
#define IPC_O_SENDADDR 0x1AU // Local to Remote IPC Address
|
||
|
// Register
|
||
|
#define IPC_O_SENDDATA 0x1CU // Local to Remote IPC Data
|
||
|
// Register
|
||
|
#define IPC_O_REMOTEREPLY 0x1EU // Remote to Local IPC Reply
|
||
|
// Data Register
|
||
|
#endif
|
||
|
#define IPC_O_BOOTSTS 0x20U // CPU2 to CPU1 IPC Boot Status
|
||
|
// Register
|
||
|
#define IPC_O_BOOTMODE 0x22U // CPU1 to CPU2 IPC Boot Mode
|
||
|
// Register
|
||
|
|
||
|
//*****************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the IPCACK register
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
#define IPC_ACK_IPC0 0x1U // Local IPC Flag 0
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC1 0x2U // Local IPC Flag 1
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC2 0x4U // Local IPC Flag 2
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC3 0x8U // Local IPC Flag 3
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC4 0x10U // Local IPC Flag 4
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC5 0x20U // Local IPC Flag 5
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC6 0x40U // Local IPC Flag 6
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC7 0x80U // Local IPC Flag 7
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC8 0x100U // Local IPC Flag 8
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC9 0x200U // Local IPC Flag 9
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC10 0x400U // Local IPC Flag 10
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC11 0x800U // Local IPC Flag 11
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC12 0x1000U // Local IPC Flag 12
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC13 0x2000U // Local IPC Flag 13
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC14 0x4000U // Local IPC Flag 14
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC15 0x8000U // Local IPC Flag 15
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC16 0x10000U // Local IPC Flag 16
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC17 0x20000U // Local IPC Flag 17
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC18 0x40000U // Local IPC Flag 18
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC19 0x80000U // Local IPC Flag 19
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC20 0x100000U // Local IPC Flag 20
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC21 0x200000U // Local IPC Flag 21
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC22 0x400000U // Local IPC Flag 22
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC23 0x800000U // Local IPC Flag 23
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC24 0x1000000U // Local IPC Flag 24
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC25 0x2000000U // Local IPC Flag 25
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC26 0x4000000U // Local IPC Flag 26
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC27 0x8000000U // Local IPC Flag 27
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC28 0x10000000U // Local IPC Flag 28
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC29 0x20000000U // Local IPC Flag 29
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC30 0x40000000U // Local IPC Flag 30
|
||
|
// Acknowledgement
|
||
|
#define IPC_ACK_IPC31 0x80000000U // Local IPC Flag 31
|
||
|
// Acknowledgement
|
||
|
|
||
|
//*****************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the IPCSTS register
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
#define IPC_STS_IPC0 0x1U // Local IPC Flag 0 Status
|
||
|
#define IPC_STS_IPC1 0x2U // Local IPC Flag 1 Status
|
||
|
#define IPC_STS_IPC2 0x4U // Local IPC Flag 2 Status
|
||
|
#define IPC_STS_IPC3 0x8U // Local IPC Flag 3 Status
|
||
|
#define IPC_STS_IPC4 0x10U // Local IPC Flag 4 Status
|
||
|
#define IPC_STS_IPC5 0x20U // Local IPC Flag 5 Status
|
||
|
#define IPC_STS_IPC6 0x40U // Local IPC Flag 6 Status
|
||
|
#define IPC_STS_IPC7 0x80U // Local IPC Flag 7 Status
|
||
|
#define IPC_STS_IPC8 0x100U // Local IPC Flag 8 Status
|
||
|
#define IPC_STS_IPC9 0x200U // Local IPC Flag 9 Status
|
||
|
#define IPC_STS_IPC10 0x400U // Local IPC Flag 10 Status
|
||
|
#define IPC_STS_IPC11 0x800U // Local IPC Flag 11 Status
|
||
|
#define IPC_STS_IPC12 0x1000U // Local IPC Flag 12 Status
|
||
|
#define IPC_STS_IPC13 0x2000U // Local IPC Flag 13 Status
|
||
|
#define IPC_STS_IPC14 0x4000U // Local IPC Flag 14 Status
|
||
|
#define IPC_STS_IPC15 0x8000U // Local IPC Flag 15 Status
|
||
|
#define IPC_STS_IPC16 0x10000U // Local IPC Flag 16 Status
|
||
|
#define IPC_STS_IPC17 0x20000U // Local IPC Flag 17 Status
|
||
|
#define IPC_STS_IPC18 0x40000U // Local IPC Flag 18 Status
|
||
|
#define IPC_STS_IPC19 0x80000U // Local IPC Flag 19 Status
|
||
|
#define IPC_STS_IPC20 0x100000U // Local IPC Flag 20 Status
|
||
|
#define IPC_STS_IPC21 0x200000U // Local IPC Flag 21 Status
|
||
|
#define IPC_STS_IPC22 0x400000U // Local IPC Flag 22 Status
|
||
|
#define IPC_STS_IPC23 0x800000U // Local IPC Flag 23 Status
|
||
|
#define IPC_STS_IPC24 0x1000000U // Local IPC Flag 24 Status
|
||
|
#define IPC_STS_IPC25 0x2000000U // Local IPC Flag 25 Status
|
||
|
#define IPC_STS_IPC26 0x4000000U // Local IPC Flag 26 Status
|
||
|
#define IPC_STS_IPC27 0x8000000U // Local IPC Flag 27 Status
|
||
|
#define IPC_STS_IPC28 0x10000000U // Local IPC Flag 28 Status
|
||
|
#define IPC_STS_IPC29 0x20000000U // Local IPC Flag 29 Status
|
||
|
#define IPC_STS_IPC30 0x40000000U // Local IPC Flag 30 Status
|
||
|
#define IPC_STS_IPC31 0x80000000U // Local IPC Flag 31 Status
|
||
|
|
||
|
//*****************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the IPCSET register
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
#define IPC_SET_IPC0 0x1U // Set Remote IPC0 Flag
|
||
|
#define IPC_SET_IPC1 0x2U // Set Remote IPC1 Flag
|
||
|
#define IPC_SET_IPC2 0x4U // Set Remote IPC2 Flag
|
||
|
#define IPC_SET_IPC3 0x8U // Set Remote IPC3 Flag
|
||
|
#define IPC_SET_IPC4 0x10U // Set Remote IPC4 Flag
|
||
|
#define IPC_SET_IPC5 0x20U // Set Remote IPC5 Flag
|
||
|
#define IPC_SET_IPC6 0x40U // Set Remote IPC6 Flag
|
||
|
#define IPC_SET_IPC7 0x80U // Set Remote IPC7 Flag
|
||
|
#define IPC_SET_IPC8 0x100U // Set Remote IPC8 Flag
|
||
|
#define IPC_SET_IPC9 0x200U // Set Remote IPC9 Flag
|
||
|
#define IPC_SET_IPC10 0x400U // Set Remote IPC10 Flag
|
||
|
#define IPC_SET_IPC11 0x800U // Set Remote IPC11 Flag
|
||
|
#define IPC_SET_IPC12 0x1000U // Set Remote IPC12 Flag
|
||
|
#define IPC_SET_IPC13 0x2000U // Set Remote IPC13 Flag
|
||
|
#define IPC_SET_IPC14 0x4000U // Set Remote IPC14 Flag
|
||
|
#define IPC_SET_IPC15 0x8000U // Set Remote IPC15 Flag
|
||
|
#define IPC_SET_IPC16 0x10000U // Set Remote IPC16 Flag
|
||
|
#define IPC_SET_IPC17 0x20000U // Set Remote IPC17 Flag
|
||
|
#define IPC_SET_IPC18 0x40000U // Set Remote IPC18 Flag
|
||
|
#define IPC_SET_IPC19 0x80000U // Set Remote IPC19 Flag
|
||
|
#define IPC_SET_IPC20 0x100000U // Set Remote IPC20 Flag
|
||
|
#define IPC_SET_IPC21 0x200000U // Set Remote IPC21 Flag
|
||
|
#define IPC_SET_IPC22 0x400000U // Set Remote IPC22 Flag
|
||
|
#define IPC_SET_IPC23 0x800000U // Set Remote IPC23 Flag
|
||
|
#define IPC_SET_IPC24 0x1000000U // Set Remote IPC24 Flag
|
||
|
#define IPC_SET_IPC25 0x2000000U // Set Remote IPC25 Flag
|
||
|
#define IPC_SET_IPC26 0x4000000U // Set Remote IPC26 Flag
|
||
|
#define IPC_SET_IPC27 0x8000000U // Set Remote IPC27 Flag
|
||
|
#define IPC_SET_IPC28 0x10000000U // Set Remote IPC28 Flag
|
||
|
#define IPC_SET_IPC29 0x20000000U // Set Remote IPC29 Flag
|
||
|
#define IPC_SET_IPC30 0x40000000U // Set Remote IPC30 Flag
|
||
|
#define IPC_SET_IPC31 0x80000000U // Set Remote IPC31 Flag
|
||
|
|
||
|
//*****************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the IPCCLR register
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
#define IPC_CLR_IPC0 0x1U // Clear Remote IPC0 Flag
|
||
|
#define IPC_CLR_IPC1 0x2U // Clear Remote IPC1 Flag
|
||
|
#define IPC_CLR_IPC2 0x4U // Clear Remote IPC2 Flag
|
||
|
#define IPC_CLR_IPC3 0x8U // Clear Remote IPC3 Flag
|
||
|
#define IPC_CLR_IPC4 0x10U // Clear Remote IPC4 Flag
|
||
|
#define IPC_CLR_IPC5 0x20U // Clear Remote IPC5 Flag
|
||
|
#define IPC_CLR_IPC6 0x40U // Clear Remote IPC6 Flag
|
||
|
#define IPC_CLR_IPC7 0x80U // Clear Remote IPC7 Flag
|
||
|
#define IPC_CLR_IPC8 0x100U // Clear Remote IPC8 Flag
|
||
|
#define IPC_CLR_IPC9 0x200U // Clear Remote IPC9 Flag
|
||
|
#define IPC_CLR_IPC10 0x400U // Clear Remote IPC10 Flag
|
||
|
#define IPC_CLR_IPC11 0x800U // Clear Remote IPC11 Flag
|
||
|
#define IPC_CLR_IPC12 0x1000U // Clear Remote IPC12 Flag
|
||
|
#define IPC_CLR_IPC13 0x2000U // Clear Remote IPC13 Flag
|
||
|
#define IPC_CLR_IPC14 0x4000U // Clear Remote IPC14 Flag
|
||
|
#define IPC_CLR_IPC15 0x8000U // Clear Remote IPC15 Flag
|
||
|
#define IPC_CLR_IPC16 0x10000U // Clear Remote IPC16 Flag
|
||
|
#define IPC_CLR_IPC17 0x20000U // Clear Remote IPC17 Flag
|
||
|
#define IPC_CLR_IPC18 0x40000U // Clear Remote IPC18 Flag
|
||
|
#define IPC_CLR_IPC19 0x80000U // Clear Remote IPC19 Flag
|
||
|
#define IPC_CLR_IPC20 0x100000U // Clear Remote IPC20 Flag
|
||
|
#define IPC_CLR_IPC21 0x200000U // Clear Remote IPC21 Flag
|
||
|
#define IPC_CLR_IPC22 0x400000U // Clear Remote IPC22 Flag
|
||
|
#define IPC_CLR_IPC23 0x800000U // Clear Remote IPC23 Flag
|
||
|
#define IPC_CLR_IPC24 0x1000000U // Clear Remote IPC24 Flag
|
||
|
#define IPC_CLR_IPC25 0x2000000U // Clear Remote IPC25 Flag
|
||
|
#define IPC_CLR_IPC26 0x4000000U // Clear Remote IPC26 Flag
|
||
|
#define IPC_CLR_IPC27 0x8000000U // Clear Remote IPC27 Flag
|
||
|
#define IPC_CLR_IPC28 0x10000000U // Clear Remote IPC28 Flag
|
||
|
#define IPC_CLR_IPC29 0x20000000U // Clear Remote IPC29 Flag
|
||
|
#define IPC_CLR_IPC30 0x40000000U // Clear Remote IPC30 Flag
|
||
|
#define IPC_CLR_IPC31 0x80000000U // Clear Remote IPC31 Flag
|
||
|
|
||
|
//*****************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the IPCFLG register
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
#define IPC_FLG_IPC0 0x1U // Remote IPC0 Flag Status
|
||
|
#define IPC_FLG_IPC1 0x2U // Remote IPC1 Flag Status
|
||
|
#define IPC_FLG_IPC2 0x4U // Remote IPC2 Flag Status
|
||
|
#define IPC_FLG_IPC3 0x8U // Remote IPC3 Flag Status
|
||
|
#define IPC_FLG_IPC4 0x10U // Remote IPC4 Flag Status
|
||
|
#define IPC_FLG_IPC5 0x20U // Remote IPC5 Flag Status
|
||
|
#define IPC_FLG_IPC6 0x40U // Remote IPC6 Flag Status
|
||
|
#define IPC_FLG_IPC7 0x80U // Remote IPC7 Flag Status
|
||
|
#define IPC_FLG_IPC8 0x100U // Remote IPC8 Flag Status
|
||
|
#define IPC_FLG_IPC9 0x200U // Remote IPC9 Flag Status
|
||
|
#define IPC_FLG_IPC10 0x400U // Remote IPC10 Flag Status
|
||
|
#define IPC_FLG_IPC11 0x800U // Remote IPC11 Flag Status
|
||
|
#define IPC_FLG_IPC12 0x1000U // Remote IPC12 Flag Status
|
||
|
#define IPC_FLG_IPC13 0x2000U // Remote IPC13 Flag Status
|
||
|
#define IPC_FLG_IPC14 0x4000U // Remote IPC14 Flag Status
|
||
|
#define IPC_FLG_IPC15 0x8000U // Remote IPC15 Flag Status
|
||
|
#define IPC_FLG_IPC16 0x10000U // Remote IPC16 Flag Status
|
||
|
#define IPC_FLG_IPC17 0x20000U // Remote IPC17 Flag Status
|
||
|
#define IPC_FLG_IPC18 0x40000U // Remote IPC18 Flag Status
|
||
|
#define IPC_FLG_IPC19 0x80000U // Remote IPC19 Flag Status
|
||
|
#define IPC_FLG_IPC20 0x100000U // Remote IPC20 Flag Status
|
||
|
#define IPC_FLG_IPC21 0x200000U // Remote IPC21 Flag Status
|
||
|
#define IPC_FLG_IPC22 0x400000U // Remote IPC22 Flag Status
|
||
|
#define IPC_FLG_IPC23 0x800000U // Remote IPC23 Flag Status
|
||
|
#define IPC_FLG_IPC24 0x1000000U // Remote IPC24 Flag Status
|
||
|
#define IPC_FLG_IPC25 0x2000000U // Remote IPC25 Flag Status
|
||
|
#define IPC_FLG_IPC26 0x4000000U // Remote IPC26 Flag Status
|
||
|
#define IPC_FLG_IPC27 0x8000000U // Remote IPC27 Flag Status
|
||
|
#define IPC_FLG_IPC28 0x10000000U // Remote IPC28 Flag Status
|
||
|
#define IPC_FLG_IPC29 0x20000000U // Remote IPC29 Flag Status
|
||
|
#define IPC_FLG_IPC30 0x40000000U // Remote IPC30 Flag Status
|
||
|
#define IPC_FLG_IPC31 0x80000000U // Remote IPC31 Flag Status
|
||
|
#endif
|