1 /***************************************************************************//**
2 * \file cyip_mxcm33.h
3 *
4 * \brief
5 * MXCM33 IP definitions
6 *
7 ********************************************************************************
8 * \copyright
9 * (c) (2016-2023), Cypress Semiconductor Corporation (an Infineon company) or
10 * an affiliate of Cypress Semiconductor Corporation.
11 *
12 * SPDX-License-Identifier: Apache-2.0
13 *
14 * Licensed under the Apache License, Version 2.0 (the "License");
15 * you may not use this file except in compliance with the License.
16 * You may obtain a copy of the License at
17 *
18 *     http://www.apache.org/licenses/LICENSE-2.0
19 *
20 * Unless required by applicable law or agreed to in writing, software
21 * distributed under the License is distributed on an "AS IS" BASIS,
22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 * See the License for the specific language governing permissions and
24 * limitations under the License.
25 *******************************************************************************/
26 
27 #ifndef _CYIP_MXCM33_H_
28 #define _CYIP_MXCM33_H_
29 
30 #include "cyip_headers.h"
31 
32 /*******************************************************************************
33 *                                    MXCM33
34 *******************************************************************************/
35 
36 #define MXCM33_SECTION_SIZE                     0x00010000UL
37 
38 /**
39   * \brief MXCM33-0/1 (MXCM33)
40   */
41 typedef struct {
42   __IOM uint32_t CM33_CTL;                      /*!< 0x00000000 Control */
43   __IOM uint32_t CM33_CMD;                      /*!< 0x00000004 Command */
44    __IM uint32_t CM33_STATUS;                   /*!< 0x00000008 Status */
45    __IM uint32_t RESERVED[13];
46    __IM uint32_t CM33_INT_STATUS[16];           /*!< 0x00000040 CM33 interrupt status */
47   __IOM uint32_t CM33_NMI_CTL[4];               /*!< 0x00000080 CM33 NMI control */
48    __IM uint32_t RESERVED1[988];
49   __IOM uint32_t CM33_S_VECTOR_TABLE_BASE;      /*!< 0x00001000 CM33 secure vector table base */
50   __IOM uint32_t CM33_NS_VECTOR_TABLE_BASE;     /*!< 0x00001004 CM33 non-secure vector table base */
51    __IM uint32_t RESERVED2[1022];
52   __IOM uint32_t CM33_PC_CTL;                   /*!< 0x00002000 CM33 protection context control */
53    __IM uint32_t RESERVED3[15];
54   __IOM uint32_t CM33_PC0_HANDLER;              /*!< 0x00002040 CM33 protection context 0 handler */
55   __IOM uint32_t CM33_PC1_HANDLER;              /*!< 0x00002044 CM33 protection context 1 handler */
56   __IOM uint32_t CM33_PC2_HANDLER;              /*!< 0x00002048 CM33 protection context 2 handler */
57   __IOM uint32_t CM33_PC3_HANDLER;              /*!< 0x0000204C CM33 protection context 3 handler */
58    __IM uint32_t RESERVED4[6124];
59   __IOM uint32_t CM33_SYSTEM_INT_CTL[1023];     /*!< 0x00008000 CM33 system interrupt control */
60 } MXCM33_Type;                                  /*!< Size = 36860 (0x8FFC) */
61 
62 
63 /* MXCM33.CM33_CTL */
64 #define MXCM33_CM33_CTL_CPU_WAIT_Pos            4UL
65 #define MXCM33_CM33_CTL_CPU_WAIT_Msk            0x10UL
66 #define MXCM33_CM33_CTL_LOCKNSVTOR_Pos          8UL
67 #define MXCM33_CM33_CTL_LOCKNSVTOR_Msk          0x100UL
68 #define MXCM33_CM33_CTL_LOCKSVTAIRCR_Pos        9UL
69 #define MXCM33_CM33_CTL_LOCKSVTAIRCR_Msk        0x200UL
70 #define MXCM33_CM33_CTL_LOCKSMPU_Pos            10UL
71 #define MXCM33_CM33_CTL_LOCKSMPU_Msk            0x400UL
72 #define MXCM33_CM33_CTL_LOCKNSMPU_Pos           11UL
73 #define MXCM33_CM33_CTL_LOCKNSMPU_Msk           0x800UL
74 #define MXCM33_CM33_CTL_LOCKSAU_Pos             12UL
75 #define MXCM33_CM33_CTL_LOCKSAU_Msk             0x1000UL
76 #define MXCM33_CM33_CTL_IOC_MASK_Pos            24UL
77 #define MXCM33_CM33_CTL_IOC_MASK_Msk            0x1000000UL
78 #define MXCM33_CM33_CTL_DZC_MASK_Pos            25UL
79 #define MXCM33_CM33_CTL_DZC_MASK_Msk            0x2000000UL
80 #define MXCM33_CM33_CTL_OFC_MASK_Pos            26UL
81 #define MXCM33_CM33_CTL_OFC_MASK_Msk            0x4000000UL
82 #define MXCM33_CM33_CTL_UFC_MASK_Pos            27UL
83 #define MXCM33_CM33_CTL_UFC_MASK_Msk            0x8000000UL
84 #define MXCM33_CM33_CTL_IXC_MASK_Pos            28UL
85 #define MXCM33_CM33_CTL_IXC_MASK_Msk            0x10000000UL
86 #define MXCM33_CM33_CTL_IDC_MASK_Pos            31UL
87 #define MXCM33_CM33_CTL_IDC_MASK_Msk            0x80000000UL
88 /* MXCM33.CM33_CMD */
89 #define MXCM33_CM33_CMD_ENABLED_Pos             1UL
90 #define MXCM33_CM33_CMD_ENABLED_Msk             0x2UL
91 #define MXCM33_CM33_CMD_VECTKEYSTAT_Pos         16UL
92 #define MXCM33_CM33_CMD_VECTKEYSTAT_Msk         0xFFFF0000UL
93 /* MXCM33.CM33_STATUS */
94 #define MXCM33_CM33_STATUS_SLEEPING_Pos         0UL
95 #define MXCM33_CM33_STATUS_SLEEPING_Msk         0x1UL
96 #define MXCM33_CM33_STATUS_SLEEPDEEP_Pos        1UL
97 #define MXCM33_CM33_STATUS_SLEEPDEEP_Msk        0x2UL
98 /* MXCM33.CM33_INT_STATUS */
99 #define MXCM33_CM33_INT_STATUS_SYSTEM_INT_IDX_Pos 0UL
100 #define MXCM33_CM33_INT_STATUS_SYSTEM_INT_IDX_Msk 0x3FFUL
101 #define MXCM33_CM33_INT_STATUS_SYSTEM_INT_VALID_Pos 31UL
102 #define MXCM33_CM33_INT_STATUS_SYSTEM_INT_VALID_Msk 0x80000000UL
103 /* MXCM33.CM33_NMI_CTL */
104 #define MXCM33_CM33_NMI_CTL_SYSTEM_INT_IDX_Pos  0UL
105 #define MXCM33_CM33_NMI_CTL_SYSTEM_INT_IDX_Msk  0x3FFUL
106 /* MXCM33.CM33_S_VECTOR_TABLE_BASE */
107 #define MXCM33_CM33_S_VECTOR_TABLE_BASE_ADDR25_Pos 7UL
108 #define MXCM33_CM33_S_VECTOR_TABLE_BASE_ADDR25_Msk 0xFFFFFF80UL
109 /* MXCM33.CM33_NS_VECTOR_TABLE_BASE */
110 #define MXCM33_CM33_NS_VECTOR_TABLE_BASE_ADDR25_Pos 7UL
111 #define MXCM33_CM33_NS_VECTOR_TABLE_BASE_ADDR25_Msk 0xFFFFFF80UL
112 /* MXCM33.CM33_PC_CTL */
113 #define MXCM33_CM33_PC_CTL_VALID_Pos            0UL
114 #define MXCM33_CM33_PC_CTL_VALID_Msk            0xFUL
115 /* MXCM33.CM33_PC0_HANDLER */
116 #define MXCM33_CM33_PC0_HANDLER_ADDR_Pos        0UL
117 #define MXCM33_CM33_PC0_HANDLER_ADDR_Msk        0xFFFFFFFFUL
118 /* MXCM33.CM33_PC1_HANDLER */
119 #define MXCM33_CM33_PC1_HANDLER_ADDR_Pos        0UL
120 #define MXCM33_CM33_PC1_HANDLER_ADDR_Msk        0xFFFFFFFFUL
121 /* MXCM33.CM33_PC2_HANDLER */
122 #define MXCM33_CM33_PC2_HANDLER_ADDR_Pos        0UL
123 #define MXCM33_CM33_PC2_HANDLER_ADDR_Msk        0xFFFFFFFFUL
124 /* MXCM33.CM33_PC3_HANDLER */
125 #define MXCM33_CM33_PC3_HANDLER_ADDR_Pos        0UL
126 #define MXCM33_CM33_PC3_HANDLER_ADDR_Msk        0xFFFFFFFFUL
127 /* MXCM33.CM33_SYSTEM_INT_CTL */
128 #define MXCM33_CM33_SYSTEM_INT_CTL_CPU_INT_IDX_Pos 0UL
129 #define MXCM33_CM33_SYSTEM_INT_CTL_CPU_INT_IDX_Msk 0xFUL
130 #define MXCM33_CM33_SYSTEM_INT_CTL_CPU_INT_VALID_Pos 31UL
131 #define MXCM33_CM33_SYSTEM_INT_CTL_CPU_INT_VALID_Msk 0x80000000UL
132 
133 
134 #endif /* _CYIP_MXCM33_H_ */
135 
136 
137 /* [] END OF FILE */
138