1 /*
2  * Copyright 2022-2024 NXP
3  * All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 #ifndef FSL_TRDC_CORE_H_
8 #define FSL_TRDC_CORE_H_
9 
10 #include "fsl_trdc_soc.h"
11 
12 /*!
13  * @addtogroup trdc_core
14  * @{
15  */
16 
17 /*******************************************************************************
18  * Definitions
19  ******************************************************************************/
20 /*!@brief TRDC general configuration register definition. */
21 typedef struct _TRDC_General_Type
22 {
23     __IO uint32_t TRDC_CR; /**< TRDC Register, offset: 0x0 */
24     uint8_t RESERVED_0[236];
25     __I uint32_t TRDC_HWCFG0; /**< TRDC Hardware Configuration Register 0, offset: 0xF0 */
26     __I uint32_t TRDC_HWCFG1; /**< TRDC Hardware Configuration Register 1, offset: 0xF4 */
27     __I uint32_t TRDC_HWCFG2; /**< TRDC Hardware Configuration Register 2, offset: 0xF8 */
28     __I uint32_t TRDC_HWCFG3; /**< TRDC Hardware Configuration Register 3, offset: 0xFC */
29     __I uint8_t DACFG[8];     /**< Domain Assignment Configuration Register, array offset: 0x100, array step: 0x1 */
30     uint8_t RESERVED_1[184];
31     __IO uint32_t TRDC_IDAU_CR; /**< TRDC IDAU Control Register, offset: 0x1C0 */
32 } TRDC_General_Type;
33 
34 /*!@brief TRDC flash logical control register definition. */
35 typedef struct _TRDC_FLW_Type
36 {
37     __IO uint32_t TRDC_FLW_CTL;   /**< TRDC FLW Control, offset: 0x1E0 */
38     __I uint32_t TRDC_FLW_PBASE;  /**< TRDC FLW Physical Base, offset: 0x1E4 */
39     __IO uint32_t TRDC_FLW_ABASE; /**< TRDC FLW Array Base, offset: 0x1E8 */
40     __IO uint32_t TRDC_FLW_BCNT;  /**< TRDC FLW Block Count, offset: 0x1EC */
41 } TRDC_FLW_Type;
42 
43 /*!@brief TRDC domain error register definition. */
44 typedef struct _TRDC_DomainError_Type
45 {
46     __IO uint32_t TRDC_FDID;       /**< TRDC Fault Domain ID, offset: 0x1FC */
47     __I uint32_t TRDC_DERRLOC[16]; /**< TRDC Domain Error Location Register, array offset: 0x200, array step: 0x4 */
48     uint8_t RESERVED_4[448];
49     struct
50     {                    /* offset: 0x400, array step: 0x10 */
51         __I uint32_t W0; /**< MBC Domain Error Word0 Register, array offset: 0x400, array step: 0x10 */
52         __I uint32_t W1; /**< MBC Domain Error Word1 Register, array offset: 0x404, array step: 0x10 */
53         uint8_t RESERVED_0[4];
54         __O uint32_t W3; /**< MBC Domain Error Word3 Register, array offset: 0x40C, array step: 0x10 */
55     } MBC_DERR[8];
56     struct
57     {                    /* offset: 0x480, array step: 0x10 */
58         __I uint32_t W0; /**< MRC Domain Error Word0 Register, array offset: 0x480, array step: 0x10 */
59         __I uint32_t W1; /**< MRC Domain Error Word1 Register, array offset: 0x484, array step: 0x10 */
60         uint8_t RESERVED_0[4];
61         __O uint32_t W3; /**< MRC Domain Error Word3 Register, array offset: 0x48C, array step: 0x10 */
62     } MRC_DERR[8];
63 } TRDC_DomainError_Type;
64 
65 /*!@brief TRDC master domain assignment register definition. */
66 typedef struct _TRDC_DomainAssignment_Type
67 {
68     __IO uint32_t PID[8]; /**< Process Identifier, array offset: 0x700, array step: 0x4 */
69     uint8_t RESERVED_7[224];
70     union
71     {
72         struct
73         {                                 /* offset: 0x800, array step: 0x20 */
74             __IO uint32_t MDA_W_DFMT0[8]; /**< DAC Master Domain Assignment Register, array offset: 0x800, array step:
75                                              index*0x20, index2*0x4 */
76         } MDA_DFMT0[8];
77         struct
78         {                                 /* offset: 0x800, array step: 0x20 */
79             __IO uint32_t MDA_W_DFMT1[1]; /**< DAC Master Domain Assignment Register, array offset: 0x800, array step:
80                                              index*0x20, index2*0x4 */
81             uint8_t RESERVED_0[28];
82         } MDA_DFMT1[8];
83     };
84 } TRDC_DomainAssignment_Type;
85 
86 /*!@brief TRDC MBC control register definition. */
87 typedef struct _TRDC_MBC_Type
88 {
89     __I uint32_t MBC_MEM_GLBCFG[4];  /**< MBC Global Configuration Register, array offset: 0x10000, array step:
90                                         index*0x2000, index2*0x4 */
91     __IO uint32_t MBC_NSE_BLK_INDEX; /**< MBC NonSecure Enable Block Index, array offset: 0x10010, array step: 0x2000 */
92     __O uint32_t MBC_NSE_BLK_SET;    /**< MBC NonSecure Enable Block Set, array offset: 0x10014, array step: 0x2000 */
93     __O uint32_t MBC_NSE_BLK_CLR;    /**< MBC NonSecure Enable Block Clear, array offset: 0x10018, array step: 0x2000 */
94     __O uint32_t
95         MBC_NSE_BLK_CLR_ALL; /**< MBC NonSecure Enable Block Clear All, array offset: 0x1001C, array step: 0x2000 */
96     __IO uint32_t MBC_MEMN_GLBAC[8]; /**< MBC Global Access Control, array offset: 0x10020, array step: index*0x2000,
97                                         index2*0x4 */
98     __IO uint32_t MBC_DOM0_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x10040, array
99                                                   step: index*0x2000, index2*0x4 */
100     __IO uint32_t MBC_DOM0_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10140, array
101                                                   step: index*0x2000, index2*0x4 */
102     __IO uint32_t MBC_DOM0_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10180, array
103                                                   step: index*0x2000, index2*0x4 */
104     __IO uint32_t MBC_DOM0_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x101A0, array
105                                                   step: index*0x2000, index2*0x4 */
106     __IO uint32_t MBC_DOM0_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x101A8, array
107                                                   step: index*0x2000, index2*0x4 */
108     __IO uint32_t MBC_DOM0_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x101C8, array
109                                                   step: index*0x2000, index2*0x4 */
110     __IO uint32_t MBC_DOM0_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x101D0, array
111                                                   step: index*0x2000, index2*0x4 */
112     __IO uint32_t MBC_DOM0_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x101F0, array
113                                                   step: index*0x2000, index2*0x4 */
114     uint8_t RESERVED_0[72];
115     __IO uint32_t MBC_DOM1_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x10240, array
116                                                   step: index*0x2000, index2*0x4 */
117     __IO uint32_t MBC_DOM1_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10340, array
118                                                   step: index*0x2000, index2*0x4 */
119     __IO uint32_t MBC_DOM1_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10380, array
120                                                   step: index*0x2000, index2*0x4 */
121     __IO uint32_t MBC_DOM1_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x103A0, array
122                                                   step: index*0x2000, index2*0x4 */
123     __IO uint32_t MBC_DOM1_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x103A8, array
124                                                   step: index*0x2000, index2*0x4 */
125     __IO uint32_t MBC_DOM1_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x103C8, array
126                                                   step: index*0x2000, index2*0x4 */
127     __IO uint32_t MBC_DOM1_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x103D0, array
128                                                   step: index*0x2000, index2*0x4 */
129     __IO uint32_t MBC_DOM1_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x103F0, array
130                                                   step: index*0x2000, index2*0x4 */
131     uint8_t RESERVED_1[72];
132     __IO uint32_t MBC_DOM2_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x10440, array
133                                                   step: index*0x2000, index2*0x4 */
134     __IO uint32_t MBC_DOM2_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10540, array
135                                                   step: index*0x2000, index2*0x4 */
136     __IO uint32_t MBC_DOM2_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10580, array
137                                                   step: index*0x2000, index2*0x4 */
138     __IO uint32_t MBC_DOM2_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x105A0, array
139                                                   step: index*0x2000, index2*0x4 */
140     __IO uint32_t MBC_DOM2_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x105A8, array
141                                                   step: index*0x2000, index2*0x4 */
142     __IO uint32_t MBC_DOM2_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x105C8, array
143                                                   step: index*0x2000, index2*0x4 */
144     __IO uint32_t MBC_DOM2_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x105D0, array
145                                                   step: index*0x2000, index2*0x4 */
146     __IO uint32_t MBC_DOM2_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x105F0, array
147                                                   step: index*0x2000, index2*0x4 */
148     uint8_t RESERVED_2[72];
149     __IO uint32_t MBC_DOM3_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x10640, array
150                                                   step: index*0x2000, index2*0x4 */
151     __IO uint32_t MBC_DOM3_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10740, array
152                                                   step: index*0x2000, index2*0x4 */
153     __IO uint32_t MBC_DOM3_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10780, array
154                                                   step: index*0x2000, index2*0x4 */
155     __IO uint32_t MBC_DOM3_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x107A0, array
156                                                   step: index*0x2000, index2*0x4 */
157     __IO uint32_t MBC_DOM3_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x107A8, array
158                                                   step: index*0x2000, index2*0x4 */
159     __IO uint32_t MBC_DOM3_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x107C8, array
160                                                   step: index*0x2000, index2*0x4 */
161     __IO uint32_t MBC_DOM3_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x107D0, array
162                                                   step: index*0x2000, index2*0x4 */
163     __IO uint32_t MBC_DOM3_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x107F0, array
164                                                   step: index*0x2000, index2*0x4 */
165     uint8_t RESERVED_3[72];
166     __IO uint32_t MBC_DOM4_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x10840, array
167                                                   step: index*0x2000, index2*0x4 */
168     __IO uint32_t MBC_DOM4_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10940, array
169                                                   step: index*0x2000, index2*0x4 */
170     __IO uint32_t MBC_DOM4_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10980, array
171                                                   step: index*0x2000, index2*0x4 */
172     __IO uint32_t MBC_DOM4_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x109A0, array
173                                                   step: index*0x2000, index2*0x4 */
174     __IO uint32_t MBC_DOM4_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x109A8, array
175                                                   step: index*0x2000, index2*0x4 */
176     __IO uint32_t MBC_DOM4_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x109C8, array
177                                                   step: index*0x2000, index2*0x4 */
178     __IO uint32_t MBC_DOM4_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x109D0, array
179                                                   step: index*0x2000, index2*0x4 */
180     __IO uint32_t MBC_DOM4_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x109F0, array
181                                                   step: index*0x2000, index2*0x4 */
182     uint8_t RESERVED_4[72];
183     __IO uint32_t MBC_DOM5_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x10A40, array
184                                                   step: index*0x2000, index2*0x4 */
185     __IO uint32_t MBC_DOM5_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10B40, array
186                                                   step: index*0x2000, index2*0x4 */
187     __IO uint32_t MBC_DOM5_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10B80, array
188                                                   step: index*0x2000, index2*0x4 */
189     __IO uint32_t MBC_DOM5_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10BA0, array
190                                                   step: index*0x2000, index2*0x4 */
191     __IO uint32_t MBC_DOM5_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10BA8, array
192                                                   step: index*0x2000, index2*0x4 */
193     __IO uint32_t MBC_DOM5_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10BC8, array
194                                                   step: index*0x2000, index2*0x4 */
195     __IO uint32_t MBC_DOM5_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10BD0, array
196                                                   step: index*0x2000, index2*0x4 */
197     __IO uint32_t MBC_DOM5_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10BF0, array
198                                                   step: index*0x2000, index2*0x4 */
199     uint8_t RESERVED_5[72];
200     __IO uint32_t MBC_DOM6_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x10C40, array
201                                                   step: index*0x2000, index2*0x4 */
202     __IO uint32_t MBC_DOM6_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10D40, array
203                                                   step: index*0x2000, index2*0x4 */
204     __IO uint32_t MBC_DOM6_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10D80, array
205                                                   step: index*0x2000, index2*0x4 */
206     __IO uint32_t MBC_DOM6_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10DA0, array
207                                                   step: index*0x2000, index2*0x4 */
208     __IO uint32_t MBC_DOM6_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10DA8, array
209                                                   step: index*0x2000, index2*0x4 */
210     __IO uint32_t MBC_DOM6_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10DC8, array
211                                                   step: index*0x2000, index2*0x4 */
212     __IO uint32_t MBC_DOM6_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10DD0, array
213                                                   step: index*0x2000, index2*0x4 */
214     __IO uint32_t MBC_DOM6_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10DF0, array
215                                                   step: index*0x2000, index2*0x4 */
216     uint8_t RESERVED_7[72];
217     __IO uint32_t MBC_DOM7_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x10E40, array
218                                                   step: index*0x2000, index2*0x4 */
219     __IO uint32_t MBC_DOM7_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10F40, array
220                                                   step: index*0x2000, index2*0x4 */
221     __IO uint32_t MBC_DOM7_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10F80, array
222                                                   step: index*0x2000, index2*0x4 */
223     __IO uint32_t MBC_DOM7_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10FA0, array
224                                                   step: index*0x2000, index2*0x4 */
225     __IO uint32_t MBC_DOM7_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10FA8, array
226                                                   step: index*0x2000, index2*0x4 */
227     __IO uint32_t MBC_DOM7_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10FC8, array
228                                                   step: index*0x2000, index2*0x4 */
229     __IO uint32_t MBC_DOM7_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x10FD0, array
230                                                   step: index*0x2000, index2*0x4 */
231     __IO uint32_t MBC_DOM7_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x10FF0, array
232                                                   step: index*0x2000, index2*0x4 */
233     uint8_t RESERVED_8[72];
234     __IO uint32_t MBC_DOM8_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x11040, array
235                                                   step: index*0x2000, index2*0x4 */
236     __IO uint32_t MBC_DOM8_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11140, array
237                                                   step: index*0x2000, index2*0x4 */
238     __IO uint32_t MBC_DOM8_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x11180, array
239                                                   step: index*0x2000, index2*0x4 */
240     __IO uint32_t MBC_DOM8_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x111A0, array
241                                                   step: index*0x2000, index2*0x4 */
242     __IO uint32_t MBC_DOM8_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x111A8, array
243                                                   step: index*0x2000, index2*0x4 */
244     __IO uint32_t MBC_DOM8_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x111C8, array
245                                                   step: index*0x2000, index2*0x4 */
246     __IO uint32_t MBC_DOM8_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x111D0, array
247                                                   step: index*0x2000, index2*0x4 */
248     __IO uint32_t MBC_DOM8_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x111F0, array
249                                                   step: index*0x2000, index2*0x4 */
250 
251     __IO uint32_t MBC_DOM9_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x11240, array
252                                                   step: index*0x2000, index2*0x4 */
253     __IO uint32_t MBC_DOM9_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11340, array
254                                                   step: index*0x2000, index2*0x4 */
255     __IO uint32_t MBC_DOM9_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x11380, array
256                                                   step: index*0x2000, index2*0x4 */
257     __IO uint32_t MBC_DOM9_MEM1_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x113A0, array
258                                                   step: index*0x2000, index2*0x4 */
259     __IO uint32_t MBC_DOM9_MEM2_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x113A8, array
260                                                   step: index*0x2000, index2*0x4 */
261     __IO uint32_t MBC_DOM9_MEM2_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x113C8, array
262                                                   step: index*0x2000, index2*0x4 */
263     __IO uint32_t MBC_DOM9_MEM3_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x113D0, array
264                                                   step: index*0x2000, index2*0x4 */
265     __IO uint32_t MBC_DOM9_MEM3_BLK_NSE_W[2];  /**< MBC Memory Block NonSecure Enable Word, array offset: 0x113F0, array
266                                                   step: index*0x2000, index2*0x4 */
267     uint8_t RESERVED_9[72];
268     __IO uint32_t MBC_DOM10_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x11440, array
269                                                    step: index*0x2000, index2*0x4 */
270     __IO uint32_t MBC_DOM10_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11540,
271                                                    array step: index*0x2000, index2*0x4 */
272     __IO uint32_t MBC_DOM10_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x11580, array
273                                                    step: index*0x2000, index2*0x4 */
274     __IO uint32_t MBC_DOM10_MEM1_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x115A0, array
275                                                   step: index*0x2000, index2*0x4 */
276     __IO uint32_t MBC_DOM10_MEM2_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x115A8, array
277                                                   step: index*0x2000, index2*0x4 */
278     __IO uint32_t MBC_DOM10_MEM2_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x115C8, array
279                                                   step: index*0x2000, index2*0x4 */
280     __IO uint32_t MBC_DOM10_MEM3_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x115D0, array
281                                                   step: index*0x2000, index2*0x4 */
282     __IO uint32_t MBC_DOM10_MEM3_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x115F0, array
283                                                   step: index*0x2000, index2*0x4 */
284     uint8_t RESERVED_10[72];
285     __IO uint32_t MBC_DOM11_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x11640, array
286                                                    step: index*0x2000, index2*0x4 */
287     __IO uint32_t MBC_DOM11_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11740,
288                                                    array step: index*0x2000, index2*0x4 */
289     __IO uint32_t MBC_DOM11_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x11780, array
290                                                    step: index*0x2000, index2*0x4 */
291     __IO uint32_t MBC_DOM11_MEM1_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x117A0, array
292                                                   step: index*0x2000, index2*0x4 */
293     __IO uint32_t MBC_DOM11_MEM2_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x117A8, array
294                                                   step: index*0x2000, index2*0x4 */
295     __IO uint32_t MBC_DOM11_MEM2_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x117C8, array
296                                                   step: index*0x2000, index2*0x4 */
297     __IO uint32_t MBC_DOM11_MEM3_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x117D0, array
298                                                   step: index*0x2000, index2*0x4 */
299     __IO uint32_t MBC_DOM11_MEM3_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x117F0, array
300                                                   step: index*0x2000, index2*0x4 */
301     uint8_t RESERVED_11[72];
302     __IO uint32_t MBC_DOM12_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x11840, array
303                                                    step: index*0x2000, index2*0x4 */
304     __IO uint32_t MBC_DOM12_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11940,
305                                                    array step: index*0x2000, index2*0x4 */
306     __IO uint32_t MBC_DOM12_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x11980, array
307                                                    step: index*0x2000, index2*0x4 */
308     __IO uint32_t MBC_DOM12_MEM1_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x119A0, array
309                                                   step: index*0x2000, index2*0x4 */
310     __IO uint32_t MBC_DOM12_MEM2_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x119A8, array
311                                                   step: index*0x2000, index2*0x4 */
312     __IO uint32_t MBC_DOM12_MEM2_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x119C8, array
313                                                   step: index*0x2000, index2*0x4 */
314     __IO uint32_t MBC_DOM12_MEM3_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x119D0, array
315                                                   step: index*0x2000, index2*0x4 */
316     __IO uint32_t MBC_DOM12_MEM3_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x119F0, array
317                                                   step: index*0x2000, index2*0x4 */
318     uint8_t RESERVED_12[72];
319     __IO uint32_t MBC_DOM13_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x11A40, array
320                                                    step: index*0x2000, index2*0x4 */
321     __IO uint32_t MBC_DOM13_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11B40,
322                                                    array step: index*0x2000, index2*0x4 */
323     __IO uint32_t MBC_DOM13_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x11B80, array
324                                                    step: index*0x2000, index2*0x4 */
325     __IO uint32_t MBC_DOM13_MEM1_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11BA0, array
326                                                   step: index*0x2000, index2*0x4 */
327     __IO uint32_t MBC_DOM13_MEM2_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x11BA8, array
328                                                   step: index*0x2000, index2*0x4 */
329     __IO uint32_t MBC_DOM13_MEM2_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11BC8, array
330                                                   step: index*0x2000, index2*0x4 */
331     __IO uint32_t MBC_DOM13_MEM3_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x11BD0, array
332                                                   step: index*0x2000, index2*0x4 */
333     __IO uint32_t MBC_DOM13_MEM3_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11BF0, array
334                                                   step: index*0x2000, index2*0x4 */
335     uint8_t RESERVED_13[72];
336     __IO uint32_t MBC_DOM14_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x11C40, array
337                                                    step: index*0x2000, index2*0x4 */
338     __IO uint32_t MBC_DOM14_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11D40,
339                                                    array step: index*0x2000, index2*0x4 */
340     __IO uint32_t MBC_DOM14_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x11D80, array
341                                                    step: index*0x2000, index2*0x4 */
342     __IO uint32_t MBC_DOM14_MEM1_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11DA0, array
343                                                   step: index*0x2000, index2*0x4 */
344     __IO uint32_t MBC_DOM14_MEM2_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x11DA8, array
345                                                   step: index*0x2000, index2*0x4 */
346     __IO uint32_t MBC_DOM14_MEM2_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11DC8, array
347                                                   step: index*0x2000, index2*0x4 */
348     __IO uint32_t MBC_DOM14_MEM3_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x11DD0, array
349                                                   step: index*0x2000, index2*0x4 */
350     __IO uint32_t MBC_DOM14_MEM3_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11DF0, array
351                                                   step: index*0x2000, index2*0x4 */
352     uint8_t RESERVED_14[72];
353     __IO uint32_t MBC_DOM15_MEM0_BLK_CFG_W[64]; /**< MBC Memory Block Configuration Word, array offset: 0x11E40, array
354                                                    step: index*0x2000, index2*0x4 */
355     __IO uint32_t MBC_DOM15_MEM0_BLK_NSE_W[16]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11F40,
356                                                    array step: index*0x2000, index2*0x4 */
357     __IO uint32_t MBC_DOM15_MEM1_BLK_CFG_W[8];  /**< MBC Memory Block Configuration Word, array offset: 0x11F80, array
358                                                    step: index*0x2000, index2*0x4 */
359     __IO uint32_t MBC_DOM15_MEM1_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11FA0, array
360                                                   step: index*0x2000, index2*0x4 */
361     __IO uint32_t MBC_DOM15_MEM2_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x11FA8, array
362                                                   step: index*0x2000, index2*0x4 */
363     __IO uint32_t MBC_DOM15_MEM2_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11FC8, array
364                                                   step: index*0x2000, index2*0x4 */
365     __IO uint32_t MBC_DOM15_MEM3_BLK_CFG_W[8]; /**< MBC Memory Block Configuration Word, array offset: 0x11FD0, array
366                                                   step: index*0x2000, index2*0x4 */
367     __IO uint32_t MBC_DOM15_MEM3_BLK_NSE_W[2]; /**< MBC Memory Block NonSecure Enable Word, array offset: 0x11FF0, array
368                                                   step: index*0x2000, index2*0x4 */
369     uint8_t RESERVED_15[8];
370 } TRDC_MBC_Type;
371 
372 /*!@brief TRDC MRC control register definition. MRC_DOM0_RGD_W[region][word] */
373 typedef struct _TRDC_MRC_Type
374 {
375     __I uint32_t MRC_GLBCFG; /**< MRC Global Configuration Register, array offset: 0x14000, array step: 0x1000 */
376     uint8_t RESERVED_0[12];
377     __IO uint32_t
378         MRC_NSE_RGN_INDIRECT; /**< MRC NonSecure Enable Region Indirect, array offset: 0x14010, array step: 0x1000 */
379     __O uint32_t MRC_NSE_RGN_SET; /**< MRC NonSecure Enable Region Set, array offset: 0x14014, array step: 0x1000 */
380     __O uint32_t MRC_NSE_RGN_CLR; /**< MRC NonSecure Enable Region Clear, array offset: 0x14018, array step: 0x1000 */
381     __O uint32_t
382         MRC_NSE_RGN_CLR_ALL; /**< MRC NonSecure Enable Region Clear All, array offset: 0x1401C, array step: 0x1000 */
383     __IO uint32_t
384         MRC_GLBAC[8]; /**< MRC Global Access Control, array offset: 0x14020, array step: index*0x1000, index2*0x4 */
385     __IO uint32_t MRC_DOM0_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
386                                             0x14040, array step: index*0x1000, index2*0x8, index3*0x4 */
387     __IO uint32_t
388         MRC_DOM0_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x140C0, array step: 0x1000 */
389     uint8_t RESERVED_1[124];
390     __IO uint32_t MRC_DOM1_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
391                                             0x14140, array step: index*0x1000, index2*0x8, index3*0x4 */
392     __IO uint32_t
393         MRC_DOM1_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x141C0, array step: 0x1000 */
394     uint8_t RESERVED_2[124];
395     __IO uint32_t MRC_DOM2_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
396                                             0x14240, array step: index*0x1000, index2*0x8, index3*0x4 */
397     __IO uint32_t
398         MRC_DOM2_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x142C0, array step: 0x1000 */
399     uint8_t RESERVED_3[124];
400     __IO uint32_t MRC_DOM3_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
401                                             0x14340, array step: index*0x1000, index2*0x8, index3*0x4 */
402     __IO uint32_t
403         MRC_DOM3_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x143C0, array step: 0x1000 */
404     uint8_t RESERVED_4[124];
405     __IO uint32_t MRC_DOM4_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
406                                             0x14440, array step: index*0x1000, index2*0x8, index3*0x4 */
407     __IO uint32_t
408         MRC_DOM4_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x144C0, array step: 0x1000 */
409     uint8_t RESERVED_5[124];
410     __IO uint32_t MRC_DOM5_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
411                                             0x14540, array step: index*0x1000, index2*0x8, index3*0x4 */
412     __IO uint32_t
413         MRC_DOM5_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x145C0, array step: 0x1000 */
414     uint8_t RESERVED_6[124];
415     __IO uint32_t MRC_DOM6_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
416                                             0x14640, array step: index*0x1000, index2*0x8, index3*0x4 */
417     __IO uint32_t
418         MRC_DOM6_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x146C0, array step: 0x1000 */
419     uint8_t RESERVED_7[124];
420     __IO uint32_t MRC_DOM7_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
421                                             0x14740, array step: index*0x1000, index2*0x8, index3*0x4 */
422     __IO uint32_t
423         MRC_DOM7_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x147C0, array step: 0x1000 */
424     uint8_t RESERVED_8[124];
425     __IO uint32_t MRC_DOM8_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
426                                             0x14840, array step: index*0x1000, index2*0x8, index3*0x4 */
427     __IO uint32_t
428         MRC_DOM8_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x148C0, array step: 0x1000 */
429     uint8_t RESERVED_9[124];
430     __IO uint32_t MRC_DOM9_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
431                                             0x14940, array step: index*0x1000, index2*0x8, index3*0x4 */
432     __IO uint32_t
433         MRC_DOM9_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x149C0, array step: 0x1000 */
434     uint8_t RESERVED_10[124];
435     __IO uint32_t MRC_DOM10_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
436                                              0x14A40, array step: index*0x1000, index2*0x8, index3*0x4 */
437     __IO uint32_t
438         MRC_DOM10_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x14AC0, array step: 0x1000 */
439     uint8_t RESERVED_11[124];
440     __IO uint32_t MRC_DOM11_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
441                                              0x14B40, array step: index*0x1000, index2*0x8, index3*0x4 */
442     __IO uint32_t
443         MRC_DOM11_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x14BC0, array step: 0x1000 */
444     uint8_t RESERVED_12[124];
445     __IO uint32_t MRC_DOM12_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
446                                              0x14C40, array step: index*0x1000, index2*0x8, index3*0x4 */
447     __IO uint32_t
448         MRC_DOM12_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x14CC0, array step: 0x1000 */
449     uint8_t RESERVED_13[124];
450     __IO uint32_t MRC_DOM13_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
451                                              0x14D40, array step: index*0x1000, index2*0x8, index3*0x4 */
452     __IO uint32_t
453         MRC_DOM13_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x14DC0, array step: 0x1000 */
454     uint8_t RESERVED_14[124];
455     __IO uint32_t MRC_DOM14_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
456                                              0x14E40, array step: index*0x1000, index2*0x8, index3*0x4 */
457     __IO uint32_t
458         MRC_DOM14_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x14EC0, array step: 0x1000 */
459     uint8_t RESERVED_15[124];
460     __IO uint32_t MRC_DOM15_RGD_W[16][2]; /**< MRC Region Descriptor Word 0..MRC Region Descriptor Word 1, array offset:
461                                              0x14F40, array step: index*0x1000, index2*0x8, index3*0x4 */
462     __IO uint32_t
463         MRC_DOM15_RGD_NSE; /**< MRC Region Descriptor NonSecure Enable, array offset: 0x14FC0, array step: 0x1000 */
464 } TRDC_MRC_Type;
465 
466 /*!@brief TRDC base address convert macro */
467 #define TRDC_GENERAL_BASE(base)      ((TRDC_General_Type *)((base)))
468 #define TRDC_FLW_BASE(base)          ((TRDC_FLW_Type *)(((uint32_t)(uintptr_t)(base) + (uint32_t)TRDC_FLW_OFFSET)))
469 #define TRDC_DOMAIN_ERROR_BASE(base) ((TRDC_DomainError_Type *)(((uint32_t)(uintptr_t)(base) + (uint32_t)TRDC_DOMAIN_ERROR_OFFSET)))
470 #define TRDC_DOMAIN_ASSIGNMENT_BASE(base) \
471     ((TRDC_DomainAssignment_Type *)(((uint32_t)(uintptr_t)(base) + (uint32_t)TRDC_DOMAIN_ASSIGNMENT_OFFSET)))
472 #define TRDC_MBC_BASE(base, instance) \
473     ((TRDC_MBC_Type *)((uint32_t)(uintptr_t)(base) + (uint32_t)TRDC_MBC_OFFSET(base) + (instance) * (uint32_t)TRDC_MBC_ARRAY_STEP))
474 #define TRDC_MRC_BASE(base, instance) \
475     ((TRDC_MRC_Type *)((uint32_t)(uintptr_t)(base) + (uint32_t)TRDC_MRC_OFFSET(base) + (instance) * (uint32_t)TRDC_MRC_ARRAY_STEP))
476 
477 #ifdef __cplusplus
478 extern "C" {
479 #endif
480 
481 #ifdef __cplusplus
482 }
483 #endif
484 
485 /*!
486  * @}
487  */
488 
489 #endif /* FSL_TRDC_CORE_H_ */
490