1 /*
2  * Copyright 1997-2016 Freescale Semiconductor, Inc.
3  * Copyright 2016-2024 NXP
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 /*!
9  * @file S32Z2_OMU.h
10  * @version 2.3
11  * @date 2024-05-03
12  * @brief Peripheral Access Layer for S32Z2_OMU
13  *
14  * This file contains register definitions and macros for easy access to their
15  * bit fields.
16  *
17  * This file assumes LITTLE endian system.
18  */
19 
20 /**
21 * @page misra_violations MISRA-C:2012 violations
22 *
23 * @section [global]
24 * Violates MISRA 2012 Advisory Rule 2.3, local typedef not referenced
25 * The SoC header defines typedef for all modules.
26 *
27 * @section [global]
28 * Violates MISRA 2012 Advisory Rule 2.5, local macro not referenced
29 * The SoC header defines macros for all modules and registers.
30 *
31 * @section [global]
32 * Violates MISRA 2012 Advisory Directive 4.9, Function-like macro
33 * These are generated macros used for accessing the bit-fields from registers.
34 *
35 * @section [global]
36 * Violates MISRA 2012 Required Rule 5.1, identifier clash
37 * The supported compilers use more than 31 significant characters for identifiers.
38 *
39 * @section [global]
40 * Violates MISRA 2012 Required Rule 5.2, identifier clash
41 * The supported compilers use more than 31 significant characters for identifiers.
42 *
43 * @section [global]
44 * Violates MISRA 2012 Required Rule 5.4, identifier clash
45 * The supported compilers use more than 31 significant characters for identifiers.
46 *
47 * @section [global]
48 * Violates MISRA 2012 Required Rule 5.5, identifier clash
49 * The supported compilers use more than 31 significant characters for identifiers.
50 *
51 * @section [global]
52 * Violates MISRA 2012 Required Rule 21.1, defined macro '__I' is reserved to the compiler
53 * This type qualifier is needed to ensure correct I/O access and addressing.
54 */
55 
56 /* Prevention from multiple including the same memory map */
57 #if !defined(S32Z2_OMU_H_)  /* Check if memory map has not been already included */
58 #define S32Z2_OMU_H_
59 
60 #include "S32Z2_COMMON.h"
61 
62 /* ----------------------------------------------------------------------------
63    -- OMU Peripheral Access Layer
64    ---------------------------------------------------------------------------- */
65 
66 /*!
67  * @addtogroup OMU_Peripheral_Access_Layer OMU Peripheral Access Layer
68  * @{
69  */
70 
71 /** OMU - Size of Registers Arrays */
72 #define OMU_ZONE_REGS_COUNT                       4u
73 #define OMU_OVERLAY_REGION_DESCRIPTOR_COUNT       64u
74 
75 /** OMU - Register Layout Typedef */
76 typedef struct {
77   struct OMU_ZONE_REGS {                           /* offset: 0x0, array step: 0x1000 */
78     __I  uint32_t ZZRSR;                             /**< Zone Request Status 0..Zone Request Status 3, array offset: 0x0, array step: 0x1000 */
79     __IO uint32_t ZER;                               /**< Zone Enable 0..Zone Enable 3, array offset: 0x4, array step: 0x1000 */
80     uint8_t RESERVED_0[4088];
81   } ZONE_REGS[OMU_ZONE_REGS_COUNT];
82   __IO uint32_t OER;                               /**< OMU Enable, offset: 0x4000 */
83   __IO uint32_t ZRR;                               /**< Zone Request, offset: 0x4004 */
84   __I  uint32_t ZESR;                              /**< Zone Enable Status, offset: 0x4008 */
85   uint8_t RESERVED_0[1012];
86   struct OMU_OVERLAY_REGION_DESCRIPTOR {           /* offset: 0x4400, array step: 0x10 */
87     __IO uint32_t ORDLSA;                            /**< ORD0 Logical Start Address..ORD63 Logical Start Address, array offset: 0x4400, array step: 0x10 */
88     __IO uint32_t ORDPSA;                            /**< ORD0 Physical Start Address..ORD63 Physical Start Address, array offset: 0x4404, array step: 0x10 */
89     __IO uint32_t ORDRS;                             /**< ORD0 Region Size..ORD63 Region Size, array offset: 0x4408, array step: 0x10 */
90     __IO uint32_t ORDRZA;                            /**< ORD0 Region Zone Assignment..ORD63 Region Zone Assignment, array offset: 0x440C, array step: 0x10 */
91   } OVERLAY_REGION_DESCRIPTOR[OMU_OVERLAY_REGION_DESCRIPTOR_COUNT];
92 } OMU_Type, *OMU_MemMapPtr;
93 
94 /** Number of instances of the OMU module. */
95 #define OMU_INSTANCE_COUNT                       (2u)
96 
97 /* OMU - Peripheral instance base addresses */
98 /** Peripheral RTU0__OMU base address */
99 #define IP_RTU0__OMU_BASE                        (0x761A0000u)
100 /** Peripheral RTU0__OMU base pointer */
101 #define IP_RTU0__OMU                             ((OMU_Type *)IP_RTU0__OMU_BASE)
102 /** Peripheral RTU1__OMU base address */
103 #define IP_RTU1__OMU_BASE                        (0x769A0000u)
104 /** Peripheral RTU1__OMU base pointer */
105 #define IP_RTU1__OMU                             ((OMU_Type *)IP_RTU1__OMU_BASE)
106 /** Array initializer of OMU peripheral base addresses */
107 #define IP_OMU_BASE_ADDRS                        { IP_RTU0__OMU_BASE, IP_RTU1__OMU_BASE }
108 /** Array initializer of OMU peripheral base pointers */
109 #define IP_OMU_BASE_PTRS                         { IP_RTU0__OMU, IP_RTU1__OMU }
110 
111 /* ----------------------------------------------------------------------------
112    -- OMU Register Masks
113    ---------------------------------------------------------------------------- */
114 
115 /*!
116  * @addtogroup OMU_Register_Masks OMU Register Masks
117  * @{
118  */
119 
120 /*! @name ZZRSR - Zone Request Status 0..Zone Request Status 3 */
121 /*! @{ */
122 
123 #define OMU_ZZRSR_Z0RS_MASK                      (0x1U)
124 #define OMU_ZZRSR_Z0RS_SHIFT                     (0U)
125 #define OMU_ZZRSR_Z0RS_WIDTH                     (1U)
126 #define OMU_ZZRSR_Z0RS(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ZZRSR_Z0RS_SHIFT)) & OMU_ZZRSR_Z0RS_MASK)
127 
128 #define OMU_ZZRSR_Z2RS_MASK                      (0x1U)
129 #define OMU_ZZRSR_Z2RS_SHIFT                     (0U)
130 #define OMU_ZZRSR_Z2RS_WIDTH                     (1U)
131 #define OMU_ZZRSR_Z2RS(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ZZRSR_Z2RS_SHIFT)) & OMU_ZZRSR_Z2RS_MASK)
132 
133 #define OMU_ZZRSR_Z4RS_MASK                      (0x1U)
134 #define OMU_ZZRSR_Z4RS_SHIFT                     (0U)
135 #define OMU_ZZRSR_Z4RS_WIDTH                     (1U)
136 #define OMU_ZZRSR_Z4RS(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ZZRSR_Z4RS_SHIFT)) & OMU_ZZRSR_Z4RS_MASK)
137 
138 #define OMU_ZZRSR_Z6RS_MASK                      (0x1U)
139 #define OMU_ZZRSR_Z6RS_SHIFT                     (0U)
140 #define OMU_ZZRSR_Z6RS_WIDTH                     (1U)
141 #define OMU_ZZRSR_Z6RS(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ZZRSR_Z6RS_SHIFT)) & OMU_ZZRSR_Z6RS_MASK)
142 
143 #define OMU_ZZRSR_Z1RS_MASK                      (0x2U)
144 #define OMU_ZZRSR_Z1RS_SHIFT                     (1U)
145 #define OMU_ZZRSR_Z1RS_WIDTH                     (1U)
146 #define OMU_ZZRSR_Z1RS(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ZZRSR_Z1RS_SHIFT)) & OMU_ZZRSR_Z1RS_MASK)
147 
148 #define OMU_ZZRSR_Z3RS_MASK                      (0x2U)
149 #define OMU_ZZRSR_Z3RS_SHIFT                     (1U)
150 #define OMU_ZZRSR_Z3RS_WIDTH                     (1U)
151 #define OMU_ZZRSR_Z3RS(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ZZRSR_Z3RS_SHIFT)) & OMU_ZZRSR_Z3RS_MASK)
152 
153 #define OMU_ZZRSR_Z5RS_MASK                      (0x2U)
154 #define OMU_ZZRSR_Z5RS_SHIFT                     (1U)
155 #define OMU_ZZRSR_Z5RS_WIDTH                     (1U)
156 #define OMU_ZZRSR_Z5RS(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ZZRSR_Z5RS_SHIFT)) & OMU_ZZRSR_Z5RS_MASK)
157 
158 #define OMU_ZZRSR_Z7RS_MASK                      (0x2U)
159 #define OMU_ZZRSR_Z7RS_SHIFT                     (1U)
160 #define OMU_ZZRSR_Z7RS_WIDTH                     (1U)
161 #define OMU_ZZRSR_Z7RS(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ZZRSR_Z7RS_SHIFT)) & OMU_ZZRSR_Z7RS_MASK)
162 /*! @} */
163 
164 /*! @name ZER - Zone Enable 0..Zone Enable 3 */
165 /*! @{ */
166 
167 #define OMU_ZER_Z0E_MASK                         (0x1U)
168 #define OMU_ZER_Z0E_SHIFT                        (0U)
169 #define OMU_ZER_Z0E_WIDTH                        (1U)
170 #define OMU_ZER_Z0E(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZER_Z0E_SHIFT)) & OMU_ZER_Z0E_MASK)
171 
172 #define OMU_ZER_Z2E_MASK                         (0x1U)
173 #define OMU_ZER_Z2E_SHIFT                        (0U)
174 #define OMU_ZER_Z2E_WIDTH                        (1U)
175 #define OMU_ZER_Z2E(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZER_Z2E_SHIFT)) & OMU_ZER_Z2E_MASK)
176 
177 #define OMU_ZER_Z4E_MASK                         (0x1U)
178 #define OMU_ZER_Z4E_SHIFT                        (0U)
179 #define OMU_ZER_Z4E_WIDTH                        (1U)
180 #define OMU_ZER_Z4E(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZER_Z4E_SHIFT)) & OMU_ZER_Z4E_MASK)
181 
182 #define OMU_ZER_Z6E_MASK                         (0x1U)
183 #define OMU_ZER_Z6E_SHIFT                        (0U)
184 #define OMU_ZER_Z6E_WIDTH                        (1U)
185 #define OMU_ZER_Z6E(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZER_Z6E_SHIFT)) & OMU_ZER_Z6E_MASK)
186 
187 #define OMU_ZER_Z1E_MASK                         (0x2U)
188 #define OMU_ZER_Z1E_SHIFT                        (1U)
189 #define OMU_ZER_Z1E_WIDTH                        (1U)
190 #define OMU_ZER_Z1E(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZER_Z1E_SHIFT)) & OMU_ZER_Z1E_MASK)
191 
192 #define OMU_ZER_Z3E_MASK                         (0x2U)
193 #define OMU_ZER_Z3E_SHIFT                        (1U)
194 #define OMU_ZER_Z3E_WIDTH                        (1U)
195 #define OMU_ZER_Z3E(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZER_Z3E_SHIFT)) & OMU_ZER_Z3E_MASK)
196 
197 #define OMU_ZER_Z5E_MASK                         (0x2U)
198 #define OMU_ZER_Z5E_SHIFT                        (1U)
199 #define OMU_ZER_Z5E_WIDTH                        (1U)
200 #define OMU_ZER_Z5E(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZER_Z5E_SHIFT)) & OMU_ZER_Z5E_MASK)
201 
202 #define OMU_ZER_Z7E_MASK                         (0x2U)
203 #define OMU_ZER_Z7E_SHIFT                        (1U)
204 #define OMU_ZER_Z7E_WIDTH                        (1U)
205 #define OMU_ZER_Z7E(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZER_Z7E_SHIFT)) & OMU_ZER_Z7E_MASK)
206 /*! @} */
207 
208 /*! @name OER - OMU Enable */
209 /*! @{ */
210 
211 #define OMU_OER_OE_MASK                          (0x1U)
212 #define OMU_OER_OE_SHIFT                         (0U)
213 #define OMU_OER_OE_WIDTH                         (1U)
214 #define OMU_OER_OE(x)                            (((uint32_t)(((uint32_t)(x)) << OMU_OER_OE_SHIFT)) & OMU_OER_OE_MASK)
215 /*! @} */
216 
217 /*! @name ZRR - Zone Request */
218 /*! @{ */
219 
220 #define OMU_ZRR_Z0R_MASK                         (0x1U)
221 #define OMU_ZRR_Z0R_SHIFT                        (0U)
222 #define OMU_ZRR_Z0R_WIDTH                        (1U)
223 #define OMU_ZRR_Z0R(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZRR_Z0R_SHIFT)) & OMU_ZRR_Z0R_MASK)
224 
225 #define OMU_ZRR_Z1R_MASK                         (0x2U)
226 #define OMU_ZRR_Z1R_SHIFT                        (1U)
227 #define OMU_ZRR_Z1R_WIDTH                        (1U)
228 #define OMU_ZRR_Z1R(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZRR_Z1R_SHIFT)) & OMU_ZRR_Z1R_MASK)
229 
230 #define OMU_ZRR_Z2R_MASK                         (0x4U)
231 #define OMU_ZRR_Z2R_SHIFT                        (2U)
232 #define OMU_ZRR_Z2R_WIDTH                        (1U)
233 #define OMU_ZRR_Z2R(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZRR_Z2R_SHIFT)) & OMU_ZRR_Z2R_MASK)
234 
235 #define OMU_ZRR_Z3R_MASK                         (0x8U)
236 #define OMU_ZRR_Z3R_SHIFT                        (3U)
237 #define OMU_ZRR_Z3R_WIDTH                        (1U)
238 #define OMU_ZRR_Z3R(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZRR_Z3R_SHIFT)) & OMU_ZRR_Z3R_MASK)
239 
240 #define OMU_ZRR_Z4R_MASK                         (0x10U)
241 #define OMU_ZRR_Z4R_SHIFT                        (4U)
242 #define OMU_ZRR_Z4R_WIDTH                        (1U)
243 #define OMU_ZRR_Z4R(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZRR_Z4R_SHIFT)) & OMU_ZRR_Z4R_MASK)
244 
245 #define OMU_ZRR_Z5R_MASK                         (0x20U)
246 #define OMU_ZRR_Z5R_SHIFT                        (5U)
247 #define OMU_ZRR_Z5R_WIDTH                        (1U)
248 #define OMU_ZRR_Z5R(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZRR_Z5R_SHIFT)) & OMU_ZRR_Z5R_MASK)
249 
250 #define OMU_ZRR_Z6R_MASK                         (0x40U)
251 #define OMU_ZRR_Z6R_SHIFT                        (6U)
252 #define OMU_ZRR_Z6R_WIDTH                        (1U)
253 #define OMU_ZRR_Z6R(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZRR_Z6R_SHIFT)) & OMU_ZRR_Z6R_MASK)
254 
255 #define OMU_ZRR_Z7R_MASK                         (0x80U)
256 #define OMU_ZRR_Z7R_SHIFT                        (7U)
257 #define OMU_ZRR_Z7R_WIDTH                        (1U)
258 #define OMU_ZRR_Z7R(x)                           (((uint32_t)(((uint32_t)(x)) << OMU_ZRR_Z7R_SHIFT)) & OMU_ZRR_Z7R_MASK)
259 /*! @} */
260 
261 /*! @name ZESR - Zone Enable Status */
262 /*! @{ */
263 
264 #define OMU_ZESR_Z0ES_MASK                       (0x1U)
265 #define OMU_ZESR_Z0ES_SHIFT                      (0U)
266 #define OMU_ZESR_Z0ES_WIDTH                      (1U)
267 #define OMU_ZESR_Z0ES(x)                         (((uint32_t)(((uint32_t)(x)) << OMU_ZESR_Z0ES_SHIFT)) & OMU_ZESR_Z0ES_MASK)
268 
269 #define OMU_ZESR_Z1ES_MASK                       (0x2U)
270 #define OMU_ZESR_Z1ES_SHIFT                      (1U)
271 #define OMU_ZESR_Z1ES_WIDTH                      (1U)
272 #define OMU_ZESR_Z1ES(x)                         (((uint32_t)(((uint32_t)(x)) << OMU_ZESR_Z1ES_SHIFT)) & OMU_ZESR_Z1ES_MASK)
273 
274 #define OMU_ZESR_Z2ES_MASK                       (0x4U)
275 #define OMU_ZESR_Z2ES_SHIFT                      (2U)
276 #define OMU_ZESR_Z2ES_WIDTH                      (1U)
277 #define OMU_ZESR_Z2ES(x)                         (((uint32_t)(((uint32_t)(x)) << OMU_ZESR_Z2ES_SHIFT)) & OMU_ZESR_Z2ES_MASK)
278 
279 #define OMU_ZESR_Z3ES_MASK                       (0x8U)
280 #define OMU_ZESR_Z3ES_SHIFT                      (3U)
281 #define OMU_ZESR_Z3ES_WIDTH                      (1U)
282 #define OMU_ZESR_Z3ES(x)                         (((uint32_t)(((uint32_t)(x)) << OMU_ZESR_Z3ES_SHIFT)) & OMU_ZESR_Z3ES_MASK)
283 
284 #define OMU_ZESR_Z4ES_MASK                       (0x10U)
285 #define OMU_ZESR_Z4ES_SHIFT                      (4U)
286 #define OMU_ZESR_Z4ES_WIDTH                      (1U)
287 #define OMU_ZESR_Z4ES(x)                         (((uint32_t)(((uint32_t)(x)) << OMU_ZESR_Z4ES_SHIFT)) & OMU_ZESR_Z4ES_MASK)
288 
289 #define OMU_ZESR_Z5ES_MASK                       (0x20U)
290 #define OMU_ZESR_Z5ES_SHIFT                      (5U)
291 #define OMU_ZESR_Z5ES_WIDTH                      (1U)
292 #define OMU_ZESR_Z5ES(x)                         (((uint32_t)(((uint32_t)(x)) << OMU_ZESR_Z5ES_SHIFT)) & OMU_ZESR_Z5ES_MASK)
293 
294 #define OMU_ZESR_Z6ES_MASK                       (0x40U)
295 #define OMU_ZESR_Z6ES_SHIFT                      (6U)
296 #define OMU_ZESR_Z6ES_WIDTH                      (1U)
297 #define OMU_ZESR_Z6ES(x)                         (((uint32_t)(((uint32_t)(x)) << OMU_ZESR_Z6ES_SHIFT)) & OMU_ZESR_Z6ES_MASK)
298 
299 #define OMU_ZESR_Z7ES_MASK                       (0x80U)
300 #define OMU_ZESR_Z7ES_SHIFT                      (7U)
301 #define OMU_ZESR_Z7ES_WIDTH                      (1U)
302 #define OMU_ZESR_Z7ES(x)                         (((uint32_t)(((uint32_t)(x)) << OMU_ZESR_Z7ES_SHIFT)) & OMU_ZESR_Z7ES_MASK)
303 /*! @} */
304 
305 /*! @name ORDLSA - ORD0 Logical Start Address..ORD63 Logical Start Address */
306 /*! @{ */
307 
308 #define OMU_ORDLSA_LSA_MASK                      (0xFFFFFC00U)
309 #define OMU_ORDLSA_LSA_SHIFT                     (10U)
310 #define OMU_ORDLSA_LSA_WIDTH                     (22U)
311 #define OMU_ORDLSA_LSA(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ORDLSA_LSA_SHIFT)) & OMU_ORDLSA_LSA_MASK)
312 /*! @} */
313 
314 /*! @name ORDPSA - ORD0 Physical Start Address..ORD63 Physical Start Address */
315 /*! @{ */
316 
317 #define OMU_ORDPSA_PSA_MASK                      (0xFFFFFC00U)
318 #define OMU_ORDPSA_PSA_SHIFT                     (10U)
319 #define OMU_ORDPSA_PSA_WIDTH                     (22U)
320 #define OMU_ORDPSA_PSA(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ORDPSA_PSA_SHIFT)) & OMU_ORDPSA_PSA_MASK)
321 /*! @} */
322 
323 /*! @name ORDRS - ORD0 Region Size..ORD63 Region Size */
324 /*! @{ */
325 
326 #define OMU_ORDRS_RS_MASK                        (0xFU)
327 #define OMU_ORDRS_RS_SHIFT                       (0U)
328 #define OMU_ORDRS_RS_WIDTH                       (4U)
329 #define OMU_ORDRS_RS(x)                          (((uint32_t)(((uint32_t)(x)) << OMU_ORDRS_RS_SHIFT)) & OMU_ORDRS_RS_MASK)
330 /*! @} */
331 
332 /*! @name ORDRZA - ORD0 Region Zone Assignment..ORD63 Region Zone Assignment */
333 /*! @{ */
334 
335 #define OMU_ORDRZA_RZA_MASK                      (0xFU)
336 #define OMU_ORDRZA_RZA_SHIFT                     (0U)
337 #define OMU_ORDRZA_RZA_WIDTH                     (4U)
338 #define OMU_ORDRZA_RZA(x)                        (((uint32_t)(((uint32_t)(x)) << OMU_ORDRZA_RZA_SHIFT)) & OMU_ORDRZA_RZA_MASK)
339 /*! @} */
340 
341 /*!
342  * @}
343  */ /* end of group OMU_Register_Masks */
344 
345 /*!
346  * @}
347  */ /* end of group OMU_Peripheral_Access_Layer */
348 
349 #endif  /* #if !defined(S32Z2_OMU_H_) */
350