]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K22F/device/MK22F51212/MK22F51212_ftfa.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / hal / TARGET_Freescale / TARGET_KPSDK_MCUS / TARGET_K22F / device / MK22F51212 / MK22F51212_ftfa.h
1 /*
2 ** ###################################################################
3 **     Compilers:           Keil ARM C/C++ Compiler
4 **                          Freescale C/C++ for Embedded ARM
5 **                          GNU C Compiler
6 **                          IAR ANSI C/C++ Compiler for ARM
7 **
8 **     Reference manual:    K22P121M120SF7RM, Rev. 1, March 24, 2014
9 **     Version:             rev. 2.5, 2014-05-06
10 **     Build:               b140604
11 **
12 **     Abstract:
13 **         Extension to the CMSIS register access layer header.
14 **
15 **     Copyright (c) 2014 Freescale Semiconductor, Inc.
16 **     All rights reserved.
17 **
18 **     Redistribution and use in source and binary forms, with or without modification,
19 **     are permitted provided that the following conditions are met:
20 **
21 **     o Redistributions of source code must retain the above copyright notice, this list
22 **       of conditions and the following disclaimer.
23 **
24 **     o Redistributions in binary form must reproduce the above copyright notice, this
25 **       list of conditions and the following disclaimer in the documentation and/or
26 **       other materials provided with the distribution.
27 **
28 **     o Neither the name of Freescale Semiconductor, Inc. nor the names of its
29 **       contributors may be used to endorse or promote products derived from this
30 **       software without specific prior written permission.
31 **
32 **     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
33 **     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
34 **     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35 **     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
36 **     ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
37 **     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
38 **     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
39 **     ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
40 **     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
41 **     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42 **
43 **     http:                 www.freescale.com
44 **     mail:                 support@freescale.com
45 **
46 **     Revisions:
47 **     - rev. 1.0 (2013-07-23)
48 **         Initial version.
49 **     - rev. 1.1 (2013-09-17)
50 **         RM rev. 0.4 update.
51 **     - rev. 2.0 (2013-10-29)
52 **         Register accessor macros added to the memory map.
53 **         Symbols for Processor Expert memory map compatibility added to the memory map.
54 **         Startup file for gcc has been updated according to CMSIS 3.2.
55 **         System initialization updated.
56 **     - rev. 2.1 (2013-10-30)
57 **         Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled.
58 **     - rev. 2.2 (2013-12-20)
59 **         Update according to reference manual rev. 0.6,
60 **     - rev. 2.3 (2014-01-13)
61 **         Update according to reference manual rev. 0.61,
62 **     - rev. 2.4 (2014-02-10)
63 **         The declaration of clock configurations has been moved to separate header file system_MK22F51212.h
64 **     - rev. 2.5 (2014-05-06)
65 **         Update according to reference manual rev. 1.0,
66 **         Update of system and startup files.
67 **         Module access macro module_BASES replaced by module_BASE_PTRS.
68 **
69 ** ###################################################################
70 */
71
72 /*
73  * WARNING! DO NOT EDIT THIS FILE DIRECTLY!
74  *
75  * This file was generated automatically and any changes may be lost.
76  */
77 #ifndef __HW_FTFA_REGISTERS_H__
78 #define __HW_FTFA_REGISTERS_H__
79
80 #include "MK22F51212.h"
81 #include "fsl_bitaccess.h"
82
83 /*
84  * MK22F51212 FTFA
85  *
86  * Flash Memory Interface
87  *
88  * Registers defined in this header file:
89  * - HW_FTFA_FSTAT - Flash Status Register
90  * - HW_FTFA_FCNFG - Flash Configuration Register
91  * - HW_FTFA_FSEC - Flash Security Register
92  * - HW_FTFA_FOPT - Flash Option Register
93  * - HW_FTFA_FCCOB3 - Flash Common Command Object Registers
94  * - HW_FTFA_FCCOB2 - Flash Common Command Object Registers
95  * - HW_FTFA_FCCOB1 - Flash Common Command Object Registers
96  * - HW_FTFA_FCCOB0 - Flash Common Command Object Registers
97  * - HW_FTFA_FCCOB7 - Flash Common Command Object Registers
98  * - HW_FTFA_FCCOB6 - Flash Common Command Object Registers
99  * - HW_FTFA_FCCOB5 - Flash Common Command Object Registers
100  * - HW_FTFA_FCCOB4 - Flash Common Command Object Registers
101  * - HW_FTFA_FCCOBB - Flash Common Command Object Registers
102  * - HW_FTFA_FCCOBA - Flash Common Command Object Registers
103  * - HW_FTFA_FCCOB9 - Flash Common Command Object Registers
104  * - HW_FTFA_FCCOB8 - Flash Common Command Object Registers
105  * - HW_FTFA_FPROT3 - Program Flash Protection Registers
106  * - HW_FTFA_FPROT2 - Program Flash Protection Registers
107  * - HW_FTFA_FPROT1 - Program Flash Protection Registers
108  * - HW_FTFA_FPROT0 - Program Flash Protection Registers
109  * - HW_FTFA_XACCH3 - Execute-only Access Registers
110  * - HW_FTFA_XACCH2 - Execute-only Access Registers
111  * - HW_FTFA_XACCH1 - Execute-only Access Registers
112  * - HW_FTFA_XACCH0 - Execute-only Access Registers
113  * - HW_FTFA_XACCL3 - Execute-only Access Registers
114  * - HW_FTFA_XACCL2 - Execute-only Access Registers
115  * - HW_FTFA_XACCL1 - Execute-only Access Registers
116  * - HW_FTFA_XACCL0 - Execute-only Access Registers
117  * - HW_FTFA_SACCH3 - Supervisor-only Access Registers
118  * - HW_FTFA_SACCH2 - Supervisor-only Access Registers
119  * - HW_FTFA_SACCH1 - Supervisor-only Access Registers
120  * - HW_FTFA_SACCH0 - Supervisor-only Access Registers
121  * - HW_FTFA_SACCL3 - Supervisor-only Access Registers
122  * - HW_FTFA_SACCL2 - Supervisor-only Access Registers
123  * - HW_FTFA_SACCL1 - Supervisor-only Access Registers
124  * - HW_FTFA_SACCL0 - Supervisor-only Access Registers
125  * - HW_FTFA_FACSS - Flash Access Segment Size Register
126  * - HW_FTFA_FACSN - Flash Access Segment Number Register
127  *
128  * - hw_ftfa_t - Struct containing all module registers.
129  */
130
131 #define HW_FTFA_INSTANCE_COUNT (1U) /*!< Number of instances of the FTFA module. */
132
133 /*******************************************************************************
134  * HW_FTFA_FSTAT - Flash Status Register
135  ******************************************************************************/
136
137 /*!
138  * @brief HW_FTFA_FSTAT - Flash Status Register (RW)
139  *
140  * Reset value: 0x00U
141  *
142  * The FSTAT register reports the operational status of the flash memory module.
143  * The CCIF, RDCOLERR, ACCERR, and FPVIOL bits are readable and writable. The
144  * MGSTAT0 bit is read only. The unassigned bits read 0 and are not writable. When
145  * set, the Access Error (ACCERR) and Flash Protection Violation (FPVIOL) bits in
146  * this register prevent the launch of any more commands until the flag is
147  * cleared (by writing a one to it).
148  */
149 typedef union _hw_ftfa_fstat
150 {
151     uint8_t U;
152     struct _hw_ftfa_fstat_bitfields
153     {
154         uint8_t MGSTAT0 : 1;           /*!< [0] Memory Controller Command Completion
155                                         * Status Flag */
156         uint8_t RESERVED0 : 3;         /*!< [3:1]  */
157         uint8_t FPVIOL : 1;            /*!< [4] Flash Protection Violation Flag */
158         uint8_t ACCERR : 1;            /*!< [5] Flash Access Error Flag */
159         uint8_t RDCOLERR : 1;          /*!< [6] Flash Read Collision Error Flag */
160         uint8_t CCIF : 1;              /*!< [7] Command Complete Interrupt Flag */
161     } B;
162 } hw_ftfa_fstat_t;
163
164 /*!
165  * @name Constants and macros for entire FTFA_FSTAT register
166  */
167 /*@{*/
168 #define HW_FTFA_FSTAT_ADDR(x)    ((x) + 0x0U)
169
170 #define HW_FTFA_FSTAT(x)         (*(__IO hw_ftfa_fstat_t *) HW_FTFA_FSTAT_ADDR(x))
171 #define HW_FTFA_FSTAT_RD(x)      (HW_FTFA_FSTAT(x).U)
172 #define HW_FTFA_FSTAT_WR(x, v)   (HW_FTFA_FSTAT(x).U = (v))
173 #define HW_FTFA_FSTAT_SET(x, v)  (HW_FTFA_FSTAT_WR(x, HW_FTFA_FSTAT_RD(x) |  (v)))
174 #define HW_FTFA_FSTAT_CLR(x, v)  (HW_FTFA_FSTAT_WR(x, HW_FTFA_FSTAT_RD(x) & ~(v)))
175 #define HW_FTFA_FSTAT_TOG(x, v)  (HW_FTFA_FSTAT_WR(x, HW_FTFA_FSTAT_RD(x) ^  (v)))
176 /*@}*/
177
178 /*
179  * Constants & macros for individual FTFA_FSTAT bitfields
180  */
181
182 /*!
183  * @name Register FTFA_FSTAT, field MGSTAT0[0] (RO)
184  *
185  * The MGSTAT0 status flag is set if an error is detected during execution of a
186  * flash command or during the flash reset sequence. As a status flag, this field
187  * cannot (and need not) be cleared by the user like the other error flags in
188  * this register. The value of the MGSTAT0 bit for "command-N" is valid only at the
189  * end of the "command-N" execution when CCIF=1 and before the next command has
190  * been launched. At some point during the execution of "command-N+1," the
191  * previous result is discarded and any previous error is cleared.
192  */
193 /*@{*/
194 #define BP_FTFA_FSTAT_MGSTAT0 (0U)         /*!< Bit position for FTFA_FSTAT_MGSTAT0. */
195 #define BM_FTFA_FSTAT_MGSTAT0 (0x01U)      /*!< Bit mask for FTFA_FSTAT_MGSTAT0. */
196 #define BS_FTFA_FSTAT_MGSTAT0 (1U)         /*!< Bit field size in bits for FTFA_FSTAT_MGSTAT0. */
197
198 /*! @brief Read current value of the FTFA_FSTAT_MGSTAT0 field. */
199 #define BR_FTFA_FSTAT_MGSTAT0(x) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_MGSTAT0))
200 /*@}*/
201
202 /*!
203  * @name Register FTFA_FSTAT, field FPVIOL[4] (W1C)
204  *
205  * Indicates an attempt was made to program or erase an address in a protected
206  * area of program flash memory during a command write sequence . While FPVIOL is
207  * set, the CCIF flag cannot be cleared to launch a command. The FPVIOL bit is
208  * cleared by writing a 1 to it. Writing a 0 to the FPVIOL bit has no effect.
209  *
210  * Values:
211  * - 0 - No protection violation detected
212  * - 1 - Protection violation detected
213  */
214 /*@{*/
215 #define BP_FTFA_FSTAT_FPVIOL (4U)          /*!< Bit position for FTFA_FSTAT_FPVIOL. */
216 #define BM_FTFA_FSTAT_FPVIOL (0x10U)       /*!< Bit mask for FTFA_FSTAT_FPVIOL. */
217 #define BS_FTFA_FSTAT_FPVIOL (1U)          /*!< Bit field size in bits for FTFA_FSTAT_FPVIOL. */
218
219 /*! @brief Read current value of the FTFA_FSTAT_FPVIOL field. */
220 #define BR_FTFA_FSTAT_FPVIOL(x) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_FPVIOL))
221
222 /*! @brief Format value for bitfield FTFA_FSTAT_FPVIOL. */
223 #define BF_FTFA_FSTAT_FPVIOL(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FSTAT_FPVIOL) & BM_FTFA_FSTAT_FPVIOL)
224
225 /*! @brief Set the FPVIOL field to a new value. */
226 #define BW_FTFA_FSTAT_FPVIOL(x, v) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_FPVIOL) = (v))
227 /*@}*/
228
229 /*!
230  * @name Register FTFA_FSTAT, field ACCERR[5] (W1C)
231  *
232  * Indicates an illegal access has occurred to a flash memory resource caused by
233  * a violation of the command write sequence or issuing an illegal flash
234  * command. While ACCERR is set, the CCIF flag cannot be cleared to launch a command.
235  * The ACCERR bit is cleared by writing a 1 to it. Writing a 0 to the ACCERR bit
236  * has no effect.
237  *
238  * Values:
239  * - 0 - No access error detected
240  * - 1 - Access error detected
241  */
242 /*@{*/
243 #define BP_FTFA_FSTAT_ACCERR (5U)          /*!< Bit position for FTFA_FSTAT_ACCERR. */
244 #define BM_FTFA_FSTAT_ACCERR (0x20U)       /*!< Bit mask for FTFA_FSTAT_ACCERR. */
245 #define BS_FTFA_FSTAT_ACCERR (1U)          /*!< Bit field size in bits for FTFA_FSTAT_ACCERR. */
246
247 /*! @brief Read current value of the FTFA_FSTAT_ACCERR field. */
248 #define BR_FTFA_FSTAT_ACCERR(x) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_ACCERR))
249
250 /*! @brief Format value for bitfield FTFA_FSTAT_ACCERR. */
251 #define BF_FTFA_FSTAT_ACCERR(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FSTAT_ACCERR) & BM_FTFA_FSTAT_ACCERR)
252
253 /*! @brief Set the ACCERR field to a new value. */
254 #define BW_FTFA_FSTAT_ACCERR(x, v) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_ACCERR) = (v))
255 /*@}*/
256
257 /*!
258  * @name Register FTFA_FSTAT, field RDCOLERR[6] (W1C)
259  *
260  * Indicates that the MCU attempted a read from a flash memory resource that was
261  * being manipulated by a flash command (CCIF=0). Any simultaneous access is
262  * detected as a collision error by the block arbitration logic. The read data in
263  * this case cannot be guaranteed. The RDCOLERR bit is cleared by writing a 1 to
264  * it. Writing a 0 to RDCOLERR has no effect.
265  *
266  * Values:
267  * - 0 - No collision error detected
268  * - 1 - Collision error detected
269  */
270 /*@{*/
271 #define BP_FTFA_FSTAT_RDCOLERR (6U)        /*!< Bit position for FTFA_FSTAT_RDCOLERR. */
272 #define BM_FTFA_FSTAT_RDCOLERR (0x40U)     /*!< Bit mask for FTFA_FSTAT_RDCOLERR. */
273 #define BS_FTFA_FSTAT_RDCOLERR (1U)        /*!< Bit field size in bits for FTFA_FSTAT_RDCOLERR. */
274
275 /*! @brief Read current value of the FTFA_FSTAT_RDCOLERR field. */
276 #define BR_FTFA_FSTAT_RDCOLERR(x) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_RDCOLERR))
277
278 /*! @brief Format value for bitfield FTFA_FSTAT_RDCOLERR. */
279 #define BF_FTFA_FSTAT_RDCOLERR(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FSTAT_RDCOLERR) & BM_FTFA_FSTAT_RDCOLERR)
280
281 /*! @brief Set the RDCOLERR field to a new value. */
282 #define BW_FTFA_FSTAT_RDCOLERR(x, v) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_RDCOLERR) = (v))
283 /*@}*/
284
285 /*!
286  * @name Register FTFA_FSTAT, field CCIF[7] (W1C)
287  *
288  * Indicates that a flash command has completed. The CCIF flag is cleared by
289  * writing a 1 to CCIF to launch a command, and CCIF stays low until command
290  * completion or command violation. CCIF is reset to 0 but is set to 1 by the memory
291  * controller at the end of the reset initialization sequence. Depending on how
292  * quickly the read occurs after reset release, the user may or may not see the 0
293  * hardware reset value.
294  *
295  * Values:
296  * - 0 - Flash command in progress
297  * - 1 - Flash command has completed
298  */
299 /*@{*/
300 #define BP_FTFA_FSTAT_CCIF   (7U)          /*!< Bit position for FTFA_FSTAT_CCIF. */
301 #define BM_FTFA_FSTAT_CCIF   (0x80U)       /*!< Bit mask for FTFA_FSTAT_CCIF. */
302 #define BS_FTFA_FSTAT_CCIF   (1U)          /*!< Bit field size in bits for FTFA_FSTAT_CCIF. */
303
304 /*! @brief Read current value of the FTFA_FSTAT_CCIF field. */
305 #define BR_FTFA_FSTAT_CCIF(x) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_CCIF))
306
307 /*! @brief Format value for bitfield FTFA_FSTAT_CCIF. */
308 #define BF_FTFA_FSTAT_CCIF(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FSTAT_CCIF) & BM_FTFA_FSTAT_CCIF)
309
310 /*! @brief Set the CCIF field to a new value. */
311 #define BW_FTFA_FSTAT_CCIF(x, v) (BITBAND_ACCESS8(HW_FTFA_FSTAT_ADDR(x), BP_FTFA_FSTAT_CCIF) = (v))
312 /*@}*/
313
314 /*******************************************************************************
315  * HW_FTFA_FCNFG - Flash Configuration Register
316  ******************************************************************************/
317
318 /*!
319  * @brief HW_FTFA_FCNFG - Flash Configuration Register (RW)
320  *
321  * Reset value: 0x00U
322  *
323  * This register provides information on the current functional state of the
324  * flash memory module. The erase control bits (ERSAREQ and ERSSUSP) have write
325  * restrictions. The unassigned bits read as noted and are not writable.
326  */
327 typedef union _hw_ftfa_fcnfg
328 {
329     uint8_t U;
330     struct _hw_ftfa_fcnfg_bitfields
331     {
332         uint8_t RESERVED0 : 4;         /*!< [3:0]  */
333         uint8_t ERSSUSP : 1;           /*!< [4] Erase Suspend */
334         uint8_t ERSAREQ : 1;           /*!< [5] Erase All Request */
335         uint8_t RDCOLLIE : 1;          /*!< [6] Read Collision Error Interrupt Enable
336                                         * */
337         uint8_t CCIE : 1;              /*!< [7] Command Complete Interrupt Enable */
338     } B;
339 } hw_ftfa_fcnfg_t;
340
341 /*!
342  * @name Constants and macros for entire FTFA_FCNFG register
343  */
344 /*@{*/
345 #define HW_FTFA_FCNFG_ADDR(x)    ((x) + 0x1U)
346
347 #define HW_FTFA_FCNFG(x)         (*(__IO hw_ftfa_fcnfg_t *) HW_FTFA_FCNFG_ADDR(x))
348 #define HW_FTFA_FCNFG_RD(x)      (HW_FTFA_FCNFG(x).U)
349 #define HW_FTFA_FCNFG_WR(x, v)   (HW_FTFA_FCNFG(x).U = (v))
350 #define HW_FTFA_FCNFG_SET(x, v)  (HW_FTFA_FCNFG_WR(x, HW_FTFA_FCNFG_RD(x) |  (v)))
351 #define HW_FTFA_FCNFG_CLR(x, v)  (HW_FTFA_FCNFG_WR(x, HW_FTFA_FCNFG_RD(x) & ~(v)))
352 #define HW_FTFA_FCNFG_TOG(x, v)  (HW_FTFA_FCNFG_WR(x, HW_FTFA_FCNFG_RD(x) ^  (v)))
353 /*@}*/
354
355 /*
356  * Constants & macros for individual FTFA_FCNFG bitfields
357  */
358
359 /*!
360  * @name Register FTFA_FCNFG, field ERSSUSP[4] (RW)
361  *
362  * Allows the user to suspend (interrupt) the Erase Flash Sector command while
363  * it is executing.
364  *
365  * Values:
366  * - 0 - No suspend requested
367  * - 1 - Suspend the current Erase Flash Sector command execution.
368  */
369 /*@{*/
370 #define BP_FTFA_FCNFG_ERSSUSP (4U)         /*!< Bit position for FTFA_FCNFG_ERSSUSP. */
371 #define BM_FTFA_FCNFG_ERSSUSP (0x10U)      /*!< Bit mask for FTFA_FCNFG_ERSSUSP. */
372 #define BS_FTFA_FCNFG_ERSSUSP (1U)         /*!< Bit field size in bits for FTFA_FCNFG_ERSSUSP. */
373
374 /*! @brief Read current value of the FTFA_FCNFG_ERSSUSP field. */
375 #define BR_FTFA_FCNFG_ERSSUSP(x) (BITBAND_ACCESS8(HW_FTFA_FCNFG_ADDR(x), BP_FTFA_FCNFG_ERSSUSP))
376
377 /*! @brief Format value for bitfield FTFA_FCNFG_ERSSUSP. */
378 #define BF_FTFA_FCNFG_ERSSUSP(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCNFG_ERSSUSP) & BM_FTFA_FCNFG_ERSSUSP)
379
380 /*! @brief Set the ERSSUSP field to a new value. */
381 #define BW_FTFA_FCNFG_ERSSUSP(x, v) (BITBAND_ACCESS8(HW_FTFA_FCNFG_ADDR(x), BP_FTFA_FCNFG_ERSSUSP) = (v))
382 /*@}*/
383
384 /*!
385  * @name Register FTFA_FCNFG, field ERSAREQ[5] (RO)
386  *
387  * Issues a request to the memory controller to execute the Erase All Blocks
388  * command and release security. ERSAREQ is not directly writable but is under
389  * indirect user control. Refer to the device's Chip Configuration details on how to
390  * request this command. ERSAREQ sets when an erase all request is triggered
391  * external to the flash memory module and CCIF is set (no command is currently being
392  * executed). ERSAREQ is cleared by the flash memory module when the operation
393  * completes.
394  *
395  * Values:
396  * - 0 - No request or request complete
397  * - 1 - Request to: run the Erase All Blocks command, verify the erased state,
398  *     program the security byte in the Flash Configuration Field to the unsecure
399  *     state, and release MCU security by setting the FSEC[SEC] field to the
400  *     unsecure state.
401  */
402 /*@{*/
403 #define BP_FTFA_FCNFG_ERSAREQ (5U)         /*!< Bit position for FTFA_FCNFG_ERSAREQ. */
404 #define BM_FTFA_FCNFG_ERSAREQ (0x20U)      /*!< Bit mask for FTFA_FCNFG_ERSAREQ. */
405 #define BS_FTFA_FCNFG_ERSAREQ (1U)         /*!< Bit field size in bits for FTFA_FCNFG_ERSAREQ. */
406
407 /*! @brief Read current value of the FTFA_FCNFG_ERSAREQ field. */
408 #define BR_FTFA_FCNFG_ERSAREQ(x) (BITBAND_ACCESS8(HW_FTFA_FCNFG_ADDR(x), BP_FTFA_FCNFG_ERSAREQ))
409 /*@}*/
410
411 /*!
412  * @name Register FTFA_FCNFG, field RDCOLLIE[6] (RW)
413  *
414  * Controls interrupt generation when a flash memory read collision error occurs.
415  *
416  * Values:
417  * - 0 - Read collision error interrupt disabled
418  * - 1 - Read collision error interrupt enabled. An interrupt request is
419  *     generated whenever a flash memory read collision error is detected (see the
420  *     description of FSTAT[RDCOLERR]).
421  */
422 /*@{*/
423 #define BP_FTFA_FCNFG_RDCOLLIE (6U)        /*!< Bit position for FTFA_FCNFG_RDCOLLIE. */
424 #define BM_FTFA_FCNFG_RDCOLLIE (0x40U)     /*!< Bit mask for FTFA_FCNFG_RDCOLLIE. */
425 #define BS_FTFA_FCNFG_RDCOLLIE (1U)        /*!< Bit field size in bits for FTFA_FCNFG_RDCOLLIE. */
426
427 /*! @brief Read current value of the FTFA_FCNFG_RDCOLLIE field. */
428 #define BR_FTFA_FCNFG_RDCOLLIE(x) (BITBAND_ACCESS8(HW_FTFA_FCNFG_ADDR(x), BP_FTFA_FCNFG_RDCOLLIE))
429
430 /*! @brief Format value for bitfield FTFA_FCNFG_RDCOLLIE. */
431 #define BF_FTFA_FCNFG_RDCOLLIE(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCNFG_RDCOLLIE) & BM_FTFA_FCNFG_RDCOLLIE)
432
433 /*! @brief Set the RDCOLLIE field to a new value. */
434 #define BW_FTFA_FCNFG_RDCOLLIE(x, v) (BITBAND_ACCESS8(HW_FTFA_FCNFG_ADDR(x), BP_FTFA_FCNFG_RDCOLLIE) = (v))
435 /*@}*/
436
437 /*!
438  * @name Register FTFA_FCNFG, field CCIE[7] (RW)
439  *
440  * Controls interrupt generation when a flash command completes.
441  *
442  * Values:
443  * - 0 - Command complete interrupt disabled
444  * - 1 - Command complete interrupt enabled. An interrupt request is generated
445  *     whenever the FSTAT[CCIF] flag is set.
446  */
447 /*@{*/
448 #define BP_FTFA_FCNFG_CCIE   (7U)          /*!< Bit position for FTFA_FCNFG_CCIE. */
449 #define BM_FTFA_FCNFG_CCIE   (0x80U)       /*!< Bit mask for FTFA_FCNFG_CCIE. */
450 #define BS_FTFA_FCNFG_CCIE   (1U)          /*!< Bit field size in bits for FTFA_FCNFG_CCIE. */
451
452 /*! @brief Read current value of the FTFA_FCNFG_CCIE field. */
453 #define BR_FTFA_FCNFG_CCIE(x) (BITBAND_ACCESS8(HW_FTFA_FCNFG_ADDR(x), BP_FTFA_FCNFG_CCIE))
454
455 /*! @brief Format value for bitfield FTFA_FCNFG_CCIE. */
456 #define BF_FTFA_FCNFG_CCIE(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCNFG_CCIE) & BM_FTFA_FCNFG_CCIE)
457
458 /*! @brief Set the CCIE field to a new value. */
459 #define BW_FTFA_FCNFG_CCIE(x, v) (BITBAND_ACCESS8(HW_FTFA_FCNFG_ADDR(x), BP_FTFA_FCNFG_CCIE) = (v))
460 /*@}*/
461
462 /*******************************************************************************
463  * HW_FTFA_FSEC - Flash Security Register
464  ******************************************************************************/
465
466 /*!
467  * @brief HW_FTFA_FSEC - Flash Security Register (RO)
468  *
469  * Reset value: 0x00U
470  *
471  * This read-only register holds all bits associated with the security of the
472  * MCU and flash memory module. During the reset sequence, the register is loaded
473  * with the contents of the flash security byte in the Flash Configuration Field
474  * located in program flash memory. The flash basis for the values is signified by
475  * X in the reset value.
476  */
477 typedef union _hw_ftfa_fsec
478 {
479     uint8_t U;
480     struct _hw_ftfa_fsec_bitfields
481     {
482         uint8_t SEC : 2;               /*!< [1:0] Flash Security */
483         uint8_t FSLACC : 2;            /*!< [3:2] Freescale Failure Analysis Access Code
484                                         * */
485         uint8_t MEEN : 2;              /*!< [5:4] Mass Erase Enable Bits */
486         uint8_t KEYEN : 2;             /*!< [7:6] Backdoor Key Security Enable */
487     } B;
488 } hw_ftfa_fsec_t;
489
490 /*!
491  * @name Constants and macros for entire FTFA_FSEC register
492  */
493 /*@{*/
494 #define HW_FTFA_FSEC_ADDR(x)     ((x) + 0x2U)
495
496 #define HW_FTFA_FSEC(x)          (*(__I hw_ftfa_fsec_t *) HW_FTFA_FSEC_ADDR(x))
497 #define HW_FTFA_FSEC_RD(x)       (HW_FTFA_FSEC(x).U)
498 /*@}*/
499
500 /*
501  * Constants & macros for individual FTFA_FSEC bitfields
502  */
503
504 /*!
505  * @name Register FTFA_FSEC, field SEC[1:0] (RO)
506  *
507  * Defines the security state of the MCU. In the secure state, the MCU limits
508  * access to flash memory module resources. The limitations are defined per device
509  * and are detailed in the Chip Configuration details. If the flash memory module
510  * is unsecured using backdoor key access, SEC is forced to 10b.
511  *
512  * Values:
513  * - 00 - MCU security status is secure.
514  * - 01 - MCU security status is secure.
515  * - 10 - MCU security status is unsecure. (The standard shipping condition of
516  *     the flash memory module is unsecure.)
517  * - 11 - MCU security status is secure.
518  */
519 /*@{*/
520 #define BP_FTFA_FSEC_SEC     (0U)          /*!< Bit position for FTFA_FSEC_SEC. */
521 #define BM_FTFA_FSEC_SEC     (0x03U)       /*!< Bit mask for FTFA_FSEC_SEC. */
522 #define BS_FTFA_FSEC_SEC     (2U)          /*!< Bit field size in bits for FTFA_FSEC_SEC. */
523
524 /*! @brief Read current value of the FTFA_FSEC_SEC field. */
525 #define BR_FTFA_FSEC_SEC(x)  (HW_FTFA_FSEC(x).B.SEC)
526 /*@}*/
527
528 /*!
529  * @name Register FTFA_FSEC, field FSLACC[3:2] (RO)
530  *
531  * Enables or disables access to the flash memory contents during returned part
532  * failure analysis at Freescale. When SEC is secure and FSLACC is denied, access
533  * to the program flash contents is denied and any failure analysis performed by
534  * Freescale factory test must begin with a full erase to unsecure the part.
535  * When access is granted (SEC is unsecure, or SEC is secure and FSLACC is granted),
536  * Freescale factory testing has visibility of the current flash contents. The
537  * state of the FSLACC bits is only relevant when SEC is set to secure. When SEC
538  * is set to unsecure, the FSLACC setting does not matter.
539  *
540  * Values:
541  * - 00 - Freescale factory access granted
542  * - 01 - Freescale factory access denied
543  * - 10 - Freescale factory access denied
544  * - 11 - Freescale factory access granted
545  */
546 /*@{*/
547 #define BP_FTFA_FSEC_FSLACC  (2U)          /*!< Bit position for FTFA_FSEC_FSLACC. */
548 #define BM_FTFA_FSEC_FSLACC  (0x0CU)       /*!< Bit mask for FTFA_FSEC_FSLACC. */
549 #define BS_FTFA_FSEC_FSLACC  (2U)          /*!< Bit field size in bits for FTFA_FSEC_FSLACC. */
550
551 /*! @brief Read current value of the FTFA_FSEC_FSLACC field. */
552 #define BR_FTFA_FSEC_FSLACC(x) (HW_FTFA_FSEC(x).B.FSLACC)
553 /*@}*/
554
555 /*!
556  * @name Register FTFA_FSEC, field MEEN[5:4] (RO)
557  *
558  * Enables and disables mass erase capability of the flash memory module. The
559  * state of this field is relevant only when SEC is set to secure outside of NVM
560  * Normal Mode. When SEC is set to unsecure, the MEEN setting does not matter.
561  *
562  * Values:
563  * - 00 - Mass erase is enabled
564  * - 01 - Mass erase is enabled
565  * - 10 - Mass erase is disabled
566  * - 11 - Mass erase is enabled
567  */
568 /*@{*/
569 #define BP_FTFA_FSEC_MEEN    (4U)          /*!< Bit position for FTFA_FSEC_MEEN. */
570 #define BM_FTFA_FSEC_MEEN    (0x30U)       /*!< Bit mask for FTFA_FSEC_MEEN. */
571 #define BS_FTFA_FSEC_MEEN    (2U)          /*!< Bit field size in bits for FTFA_FSEC_MEEN. */
572
573 /*! @brief Read current value of the FTFA_FSEC_MEEN field. */
574 #define BR_FTFA_FSEC_MEEN(x) (HW_FTFA_FSEC(x).B.MEEN)
575 /*@}*/
576
577 /*!
578  * @name Register FTFA_FSEC, field KEYEN[7:6] (RO)
579  *
580  * Enables or disables backdoor key access to the flash memory module.
581  *
582  * Values:
583  * - 00 - Backdoor key access disabled
584  * - 01 - Backdoor key access disabled (preferred KEYEN state to disable
585  *     backdoor key access)
586  * - 10 - Backdoor key access enabled
587  * - 11 - Backdoor key access disabled
588  */
589 /*@{*/
590 #define BP_FTFA_FSEC_KEYEN   (6U)          /*!< Bit position for FTFA_FSEC_KEYEN. */
591 #define BM_FTFA_FSEC_KEYEN   (0xC0U)       /*!< Bit mask for FTFA_FSEC_KEYEN. */
592 #define BS_FTFA_FSEC_KEYEN   (2U)          /*!< Bit field size in bits for FTFA_FSEC_KEYEN. */
593
594 /*! @brief Read current value of the FTFA_FSEC_KEYEN field. */
595 #define BR_FTFA_FSEC_KEYEN(x) (HW_FTFA_FSEC(x).B.KEYEN)
596 /*@}*/
597
598 /*******************************************************************************
599  * HW_FTFA_FOPT - Flash Option Register
600  ******************************************************************************/
601
602 /*!
603  * @brief HW_FTFA_FOPT - Flash Option Register (RO)
604  *
605  * Reset value: 0x00U
606  *
607  * The flash option register allows the MCU to customize its operations by
608  * examining the state of these read-only bits, which are loaded from NVM at reset.
609  * The function of the bits is defined in the device's Chip Configuration details.
610  * All bits in the register are read-only . During the reset sequence, the
611  * register is loaded from the flash nonvolatile option byte in the Flash Configuration
612  * Field located in program flash memory. The flash basis for the values is
613  * signified by X in the reset value. However, the register is written to 0xFF if the
614  * contents of the flash nonvolatile option byte are 0x00.
615  */
616 typedef union _hw_ftfa_fopt
617 {
618     uint8_t U;
619     struct _hw_ftfa_fopt_bitfields
620     {
621         uint8_t OPT : 8;               /*!< [7:0] Nonvolatile Option */
622     } B;
623 } hw_ftfa_fopt_t;
624
625 /*!
626  * @name Constants and macros for entire FTFA_FOPT register
627  */
628 /*@{*/
629 #define HW_FTFA_FOPT_ADDR(x)     ((x) + 0x3U)
630
631 #define HW_FTFA_FOPT(x)          (*(__I hw_ftfa_fopt_t *) HW_FTFA_FOPT_ADDR(x))
632 #define HW_FTFA_FOPT_RD(x)       (HW_FTFA_FOPT(x).U)
633 /*@}*/
634
635 /*
636  * Constants & macros for individual FTFA_FOPT bitfields
637  */
638
639 /*!
640  * @name Register FTFA_FOPT, field OPT[7:0] (RO)
641  *
642  * These bits are loaded from flash to this register at reset. Refer to the
643  * device's Chip Configuration details for the definition and use of these bits.
644  */
645 /*@{*/
646 #define BP_FTFA_FOPT_OPT     (0U)          /*!< Bit position for FTFA_FOPT_OPT. */
647 #define BM_FTFA_FOPT_OPT     (0xFFU)       /*!< Bit mask for FTFA_FOPT_OPT. */
648 #define BS_FTFA_FOPT_OPT     (8U)          /*!< Bit field size in bits for FTFA_FOPT_OPT. */
649
650 /*! @brief Read current value of the FTFA_FOPT_OPT field. */
651 #define BR_FTFA_FOPT_OPT(x)  (HW_FTFA_FOPT(x).U)
652 /*@}*/
653
654 /*******************************************************************************
655  * HW_FTFA_FCCOB3 - Flash Common Command Object Registers
656  ******************************************************************************/
657
658 /*!
659  * @brief HW_FTFA_FCCOB3 - Flash Common Command Object Registers (RW)
660  *
661  * Reset value: 0x00U
662  *
663  * The FCCOB register group provides 12 bytes for command codes and parameters.
664  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
665  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
666  */
667 typedef union _hw_ftfa_fccob3
668 {
669     uint8_t U;
670     struct _hw_ftfa_fccob3_bitfields
671     {
672         uint8_t CCOBn : 8;             /*!< [7:0]  */
673     } B;
674 } hw_ftfa_fccob3_t;
675
676 /*!
677  * @name Constants and macros for entire FTFA_FCCOB3 register
678  */
679 /*@{*/
680 #define HW_FTFA_FCCOB3_ADDR(x)   ((x) + 0x4U)
681
682 #define HW_FTFA_FCCOB3(x)        (*(__IO hw_ftfa_fccob3_t *) HW_FTFA_FCCOB3_ADDR(x))
683 #define HW_FTFA_FCCOB3_RD(x)     (HW_FTFA_FCCOB3(x).U)
684 #define HW_FTFA_FCCOB3_WR(x, v)  (HW_FTFA_FCCOB3(x).U = (v))
685 #define HW_FTFA_FCCOB3_SET(x, v) (HW_FTFA_FCCOB3_WR(x, HW_FTFA_FCCOB3_RD(x) |  (v)))
686 #define HW_FTFA_FCCOB3_CLR(x, v) (HW_FTFA_FCCOB3_WR(x, HW_FTFA_FCCOB3_RD(x) & ~(v)))
687 #define HW_FTFA_FCCOB3_TOG(x, v) (HW_FTFA_FCCOB3_WR(x, HW_FTFA_FCCOB3_RD(x) ^  (v)))
688 /*@}*/
689
690 /*
691  * Constants & macros for individual FTFA_FCCOB3 bitfields
692  */
693
694 /*!
695  * @name Register FTFA_FCCOB3, field CCOBn[7:0] (RW)
696  *
697  * The FCCOB register provides a command code and relevant parameters to the
698  * memory controller. The individual registers that compose the FCCOB data set can
699  * be written in any order, but you must provide all needed values, which vary
700  * from command to command. First, set up all required FCCOB fields and then
701  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
702  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
703  * by the user until the command completes (CCIF returns to 1). No command
704  * buffering or queueing is provided; the next command can be loaded only after the
705  * current command completes. Some commands return information to the FCCOB
706  * registers. Any values returned to FCCOB are available for reading after the
707  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
708  * generic flash command format. The first FCCOB register, FCCOB0, always contains
709  * the command code. This 8-bit value defines the command to be executed. The
710  * command code is followed by the parameters required for this specific flash
711  * command, typically an address and/or data values. The command parameter table is
712  * written in terms of FCCOB Number (which is equivalent to the byte number). This
713  * number is a reference to the FCCOB register name and is not the register
714  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
715  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
716  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
717  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
718  * FCCOB register group uses a big endian addressing convention. For all command
719  * parameter fields larger than 1 byte, the most significant data resides in the
720  * lowest FCCOB register number.
721  */
722 /*@{*/
723 #define BP_FTFA_FCCOB3_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB3_CCOBn. */
724 #define BM_FTFA_FCCOB3_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB3_CCOBn. */
725 #define BS_FTFA_FCCOB3_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB3_CCOBn. */
726
727 /*! @brief Read current value of the FTFA_FCCOB3_CCOBn field. */
728 #define BR_FTFA_FCCOB3_CCOBn(x) (HW_FTFA_FCCOB3(x).U)
729
730 /*! @brief Format value for bitfield FTFA_FCCOB3_CCOBn. */
731 #define BF_FTFA_FCCOB3_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB3_CCOBn) & BM_FTFA_FCCOB3_CCOBn)
732
733 /*! @brief Set the CCOBn field to a new value. */
734 #define BW_FTFA_FCCOB3_CCOBn(x, v) (HW_FTFA_FCCOB3_WR(x, v))
735 /*@}*/
736
737 /*******************************************************************************
738  * HW_FTFA_FCCOB2 - Flash Common Command Object Registers
739  ******************************************************************************/
740
741 /*!
742  * @brief HW_FTFA_FCCOB2 - Flash Common Command Object Registers (RW)
743  *
744  * Reset value: 0x00U
745  *
746  * The FCCOB register group provides 12 bytes for command codes and parameters.
747  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
748  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
749  */
750 typedef union _hw_ftfa_fccob2
751 {
752     uint8_t U;
753     struct _hw_ftfa_fccob2_bitfields
754     {
755         uint8_t CCOBn : 8;             /*!< [7:0]  */
756     } B;
757 } hw_ftfa_fccob2_t;
758
759 /*!
760  * @name Constants and macros for entire FTFA_FCCOB2 register
761  */
762 /*@{*/
763 #define HW_FTFA_FCCOB2_ADDR(x)   ((x) + 0x5U)
764
765 #define HW_FTFA_FCCOB2(x)        (*(__IO hw_ftfa_fccob2_t *) HW_FTFA_FCCOB2_ADDR(x))
766 #define HW_FTFA_FCCOB2_RD(x)     (HW_FTFA_FCCOB2(x).U)
767 #define HW_FTFA_FCCOB2_WR(x, v)  (HW_FTFA_FCCOB2(x).U = (v))
768 #define HW_FTFA_FCCOB2_SET(x, v) (HW_FTFA_FCCOB2_WR(x, HW_FTFA_FCCOB2_RD(x) |  (v)))
769 #define HW_FTFA_FCCOB2_CLR(x, v) (HW_FTFA_FCCOB2_WR(x, HW_FTFA_FCCOB2_RD(x) & ~(v)))
770 #define HW_FTFA_FCCOB2_TOG(x, v) (HW_FTFA_FCCOB2_WR(x, HW_FTFA_FCCOB2_RD(x) ^  (v)))
771 /*@}*/
772
773 /*
774  * Constants & macros for individual FTFA_FCCOB2 bitfields
775  */
776
777 /*!
778  * @name Register FTFA_FCCOB2, field CCOBn[7:0] (RW)
779  *
780  * The FCCOB register provides a command code and relevant parameters to the
781  * memory controller. The individual registers that compose the FCCOB data set can
782  * be written in any order, but you must provide all needed values, which vary
783  * from command to command. First, set up all required FCCOB fields and then
784  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
785  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
786  * by the user until the command completes (CCIF returns to 1). No command
787  * buffering or queueing is provided; the next command can be loaded only after the
788  * current command completes. Some commands return information to the FCCOB
789  * registers. Any values returned to FCCOB are available for reading after the
790  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
791  * generic flash command format. The first FCCOB register, FCCOB0, always contains
792  * the command code. This 8-bit value defines the command to be executed. The
793  * command code is followed by the parameters required for this specific flash
794  * command, typically an address and/or data values. The command parameter table is
795  * written in terms of FCCOB Number (which is equivalent to the byte number). This
796  * number is a reference to the FCCOB register name and is not the register
797  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
798  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
799  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
800  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
801  * FCCOB register group uses a big endian addressing convention. For all command
802  * parameter fields larger than 1 byte, the most significant data resides in the
803  * lowest FCCOB register number.
804  */
805 /*@{*/
806 #define BP_FTFA_FCCOB2_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB2_CCOBn. */
807 #define BM_FTFA_FCCOB2_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB2_CCOBn. */
808 #define BS_FTFA_FCCOB2_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB2_CCOBn. */
809
810 /*! @brief Read current value of the FTFA_FCCOB2_CCOBn field. */
811 #define BR_FTFA_FCCOB2_CCOBn(x) (HW_FTFA_FCCOB2(x).U)
812
813 /*! @brief Format value for bitfield FTFA_FCCOB2_CCOBn. */
814 #define BF_FTFA_FCCOB2_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB2_CCOBn) & BM_FTFA_FCCOB2_CCOBn)
815
816 /*! @brief Set the CCOBn field to a new value. */
817 #define BW_FTFA_FCCOB2_CCOBn(x, v) (HW_FTFA_FCCOB2_WR(x, v))
818 /*@}*/
819
820 /*******************************************************************************
821  * HW_FTFA_FCCOB1 - Flash Common Command Object Registers
822  ******************************************************************************/
823
824 /*!
825  * @brief HW_FTFA_FCCOB1 - Flash Common Command Object Registers (RW)
826  *
827  * Reset value: 0x00U
828  *
829  * The FCCOB register group provides 12 bytes for command codes and parameters.
830  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
831  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
832  */
833 typedef union _hw_ftfa_fccob1
834 {
835     uint8_t U;
836     struct _hw_ftfa_fccob1_bitfields
837     {
838         uint8_t CCOBn : 8;             /*!< [7:0]  */
839     } B;
840 } hw_ftfa_fccob1_t;
841
842 /*!
843  * @name Constants and macros for entire FTFA_FCCOB1 register
844  */
845 /*@{*/
846 #define HW_FTFA_FCCOB1_ADDR(x)   ((x) + 0x6U)
847
848 #define HW_FTFA_FCCOB1(x)        (*(__IO hw_ftfa_fccob1_t *) HW_FTFA_FCCOB1_ADDR(x))
849 #define HW_FTFA_FCCOB1_RD(x)     (HW_FTFA_FCCOB1(x).U)
850 #define HW_FTFA_FCCOB1_WR(x, v)  (HW_FTFA_FCCOB1(x).U = (v))
851 #define HW_FTFA_FCCOB1_SET(x, v) (HW_FTFA_FCCOB1_WR(x, HW_FTFA_FCCOB1_RD(x) |  (v)))
852 #define HW_FTFA_FCCOB1_CLR(x, v) (HW_FTFA_FCCOB1_WR(x, HW_FTFA_FCCOB1_RD(x) & ~(v)))
853 #define HW_FTFA_FCCOB1_TOG(x, v) (HW_FTFA_FCCOB1_WR(x, HW_FTFA_FCCOB1_RD(x) ^  (v)))
854 /*@}*/
855
856 /*
857  * Constants & macros for individual FTFA_FCCOB1 bitfields
858  */
859
860 /*!
861  * @name Register FTFA_FCCOB1, field CCOBn[7:0] (RW)
862  *
863  * The FCCOB register provides a command code and relevant parameters to the
864  * memory controller. The individual registers that compose the FCCOB data set can
865  * be written in any order, but you must provide all needed values, which vary
866  * from command to command. First, set up all required FCCOB fields and then
867  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
868  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
869  * by the user until the command completes (CCIF returns to 1). No command
870  * buffering or queueing is provided; the next command can be loaded only after the
871  * current command completes. Some commands return information to the FCCOB
872  * registers. Any values returned to FCCOB are available for reading after the
873  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
874  * generic flash command format. The first FCCOB register, FCCOB0, always contains
875  * the command code. This 8-bit value defines the command to be executed. The
876  * command code is followed by the parameters required for this specific flash
877  * command, typically an address and/or data values. The command parameter table is
878  * written in terms of FCCOB Number (which is equivalent to the byte number). This
879  * number is a reference to the FCCOB register name and is not the register
880  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
881  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
882  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
883  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
884  * FCCOB register group uses a big endian addressing convention. For all command
885  * parameter fields larger than 1 byte, the most significant data resides in the
886  * lowest FCCOB register number.
887  */
888 /*@{*/
889 #define BP_FTFA_FCCOB1_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB1_CCOBn. */
890 #define BM_FTFA_FCCOB1_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB1_CCOBn. */
891 #define BS_FTFA_FCCOB1_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB1_CCOBn. */
892
893 /*! @brief Read current value of the FTFA_FCCOB1_CCOBn field. */
894 #define BR_FTFA_FCCOB1_CCOBn(x) (HW_FTFA_FCCOB1(x).U)
895
896 /*! @brief Format value for bitfield FTFA_FCCOB1_CCOBn. */
897 #define BF_FTFA_FCCOB1_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB1_CCOBn) & BM_FTFA_FCCOB1_CCOBn)
898
899 /*! @brief Set the CCOBn field to a new value. */
900 #define BW_FTFA_FCCOB1_CCOBn(x, v) (HW_FTFA_FCCOB1_WR(x, v))
901 /*@}*/
902
903 /*******************************************************************************
904  * HW_FTFA_FCCOB0 - Flash Common Command Object Registers
905  ******************************************************************************/
906
907 /*!
908  * @brief HW_FTFA_FCCOB0 - Flash Common Command Object Registers (RW)
909  *
910  * Reset value: 0x00U
911  *
912  * The FCCOB register group provides 12 bytes for command codes and parameters.
913  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
914  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
915  */
916 typedef union _hw_ftfa_fccob0
917 {
918     uint8_t U;
919     struct _hw_ftfa_fccob0_bitfields
920     {
921         uint8_t CCOBn : 8;             /*!< [7:0]  */
922     } B;
923 } hw_ftfa_fccob0_t;
924
925 /*!
926  * @name Constants and macros for entire FTFA_FCCOB0 register
927  */
928 /*@{*/
929 #define HW_FTFA_FCCOB0_ADDR(x)   ((x) + 0x7U)
930
931 #define HW_FTFA_FCCOB0(x)        (*(__IO hw_ftfa_fccob0_t *) HW_FTFA_FCCOB0_ADDR(x))
932 #define HW_FTFA_FCCOB0_RD(x)     (HW_FTFA_FCCOB0(x).U)
933 #define HW_FTFA_FCCOB0_WR(x, v)  (HW_FTFA_FCCOB0(x).U = (v))
934 #define HW_FTFA_FCCOB0_SET(x, v) (HW_FTFA_FCCOB0_WR(x, HW_FTFA_FCCOB0_RD(x) |  (v)))
935 #define HW_FTFA_FCCOB0_CLR(x, v) (HW_FTFA_FCCOB0_WR(x, HW_FTFA_FCCOB0_RD(x) & ~(v)))
936 #define HW_FTFA_FCCOB0_TOG(x, v) (HW_FTFA_FCCOB0_WR(x, HW_FTFA_FCCOB0_RD(x) ^  (v)))
937 /*@}*/
938
939 /*
940  * Constants & macros for individual FTFA_FCCOB0 bitfields
941  */
942
943 /*!
944  * @name Register FTFA_FCCOB0, field CCOBn[7:0] (RW)
945  *
946  * The FCCOB register provides a command code and relevant parameters to the
947  * memory controller. The individual registers that compose the FCCOB data set can
948  * be written in any order, but you must provide all needed values, which vary
949  * from command to command. First, set up all required FCCOB fields and then
950  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
951  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
952  * by the user until the command completes (CCIF returns to 1). No command
953  * buffering or queueing is provided; the next command can be loaded only after the
954  * current command completes. Some commands return information to the FCCOB
955  * registers. Any values returned to FCCOB are available for reading after the
956  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
957  * generic flash command format. The first FCCOB register, FCCOB0, always contains
958  * the command code. This 8-bit value defines the command to be executed. The
959  * command code is followed by the parameters required for this specific flash
960  * command, typically an address and/or data values. The command parameter table is
961  * written in terms of FCCOB Number (which is equivalent to the byte number). This
962  * number is a reference to the FCCOB register name and is not the register
963  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
964  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
965  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
966  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
967  * FCCOB register group uses a big endian addressing convention. For all command
968  * parameter fields larger than 1 byte, the most significant data resides in the
969  * lowest FCCOB register number.
970  */
971 /*@{*/
972 #define BP_FTFA_FCCOB0_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB0_CCOBn. */
973 #define BM_FTFA_FCCOB0_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB0_CCOBn. */
974 #define BS_FTFA_FCCOB0_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB0_CCOBn. */
975
976 /*! @brief Read current value of the FTFA_FCCOB0_CCOBn field. */
977 #define BR_FTFA_FCCOB0_CCOBn(x) (HW_FTFA_FCCOB0(x).U)
978
979 /*! @brief Format value for bitfield FTFA_FCCOB0_CCOBn. */
980 #define BF_FTFA_FCCOB0_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB0_CCOBn) & BM_FTFA_FCCOB0_CCOBn)
981
982 /*! @brief Set the CCOBn field to a new value. */
983 #define BW_FTFA_FCCOB0_CCOBn(x, v) (HW_FTFA_FCCOB0_WR(x, v))
984 /*@}*/
985
986 /*******************************************************************************
987  * HW_FTFA_FCCOB7 - Flash Common Command Object Registers
988  ******************************************************************************/
989
990 /*!
991  * @brief HW_FTFA_FCCOB7 - Flash Common Command Object Registers (RW)
992  *
993  * Reset value: 0x00U
994  *
995  * The FCCOB register group provides 12 bytes for command codes and parameters.
996  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
997  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
998  */
999 typedef union _hw_ftfa_fccob7
1000 {
1001     uint8_t U;
1002     struct _hw_ftfa_fccob7_bitfields
1003     {
1004         uint8_t CCOBn : 8;             /*!< [7:0]  */
1005     } B;
1006 } hw_ftfa_fccob7_t;
1007
1008 /*!
1009  * @name Constants and macros for entire FTFA_FCCOB7 register
1010  */
1011 /*@{*/
1012 #define HW_FTFA_FCCOB7_ADDR(x)   ((x) + 0x8U)
1013
1014 #define HW_FTFA_FCCOB7(x)        (*(__IO hw_ftfa_fccob7_t *) HW_FTFA_FCCOB7_ADDR(x))
1015 #define HW_FTFA_FCCOB7_RD(x)     (HW_FTFA_FCCOB7(x).U)
1016 #define HW_FTFA_FCCOB7_WR(x, v)  (HW_FTFA_FCCOB7(x).U = (v))
1017 #define HW_FTFA_FCCOB7_SET(x, v) (HW_FTFA_FCCOB7_WR(x, HW_FTFA_FCCOB7_RD(x) |  (v)))
1018 #define HW_FTFA_FCCOB7_CLR(x, v) (HW_FTFA_FCCOB7_WR(x, HW_FTFA_FCCOB7_RD(x) & ~(v)))
1019 #define HW_FTFA_FCCOB7_TOG(x, v) (HW_FTFA_FCCOB7_WR(x, HW_FTFA_FCCOB7_RD(x) ^  (v)))
1020 /*@}*/
1021
1022 /*
1023  * Constants & macros for individual FTFA_FCCOB7 bitfields
1024  */
1025
1026 /*!
1027  * @name Register FTFA_FCCOB7, field CCOBn[7:0] (RW)
1028  *
1029  * The FCCOB register provides a command code and relevant parameters to the
1030  * memory controller. The individual registers that compose the FCCOB data set can
1031  * be written in any order, but you must provide all needed values, which vary
1032  * from command to command. First, set up all required FCCOB fields and then
1033  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
1034  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
1035  * by the user until the command completes (CCIF returns to 1). No command
1036  * buffering or queueing is provided; the next command can be loaded only after the
1037  * current command completes. Some commands return information to the FCCOB
1038  * registers. Any values returned to FCCOB are available for reading after the
1039  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
1040  * generic flash command format. The first FCCOB register, FCCOB0, always contains
1041  * the command code. This 8-bit value defines the command to be executed. The
1042  * command code is followed by the parameters required for this specific flash
1043  * command, typically an address and/or data values. The command parameter table is
1044  * written in terms of FCCOB Number (which is equivalent to the byte number). This
1045  * number is a reference to the FCCOB register name and is not the register
1046  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
1047  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
1048  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
1049  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
1050  * FCCOB register group uses a big endian addressing convention. For all command
1051  * parameter fields larger than 1 byte, the most significant data resides in the
1052  * lowest FCCOB register number.
1053  */
1054 /*@{*/
1055 #define BP_FTFA_FCCOB7_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB7_CCOBn. */
1056 #define BM_FTFA_FCCOB7_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB7_CCOBn. */
1057 #define BS_FTFA_FCCOB7_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB7_CCOBn. */
1058
1059 /*! @brief Read current value of the FTFA_FCCOB7_CCOBn field. */
1060 #define BR_FTFA_FCCOB7_CCOBn(x) (HW_FTFA_FCCOB7(x).U)
1061
1062 /*! @brief Format value for bitfield FTFA_FCCOB7_CCOBn. */
1063 #define BF_FTFA_FCCOB7_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB7_CCOBn) & BM_FTFA_FCCOB7_CCOBn)
1064
1065 /*! @brief Set the CCOBn field to a new value. */
1066 #define BW_FTFA_FCCOB7_CCOBn(x, v) (HW_FTFA_FCCOB7_WR(x, v))
1067 /*@}*/
1068
1069 /*******************************************************************************
1070  * HW_FTFA_FCCOB6 - Flash Common Command Object Registers
1071  ******************************************************************************/
1072
1073 /*!
1074  * @brief HW_FTFA_FCCOB6 - Flash Common Command Object Registers (RW)
1075  *
1076  * Reset value: 0x00U
1077  *
1078  * The FCCOB register group provides 12 bytes for command codes and parameters.
1079  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
1080  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
1081  */
1082 typedef union _hw_ftfa_fccob6
1083 {
1084     uint8_t U;
1085     struct _hw_ftfa_fccob6_bitfields
1086     {
1087         uint8_t CCOBn : 8;             /*!< [7:0]  */
1088     } B;
1089 } hw_ftfa_fccob6_t;
1090
1091 /*!
1092  * @name Constants and macros for entire FTFA_FCCOB6 register
1093  */
1094 /*@{*/
1095 #define HW_FTFA_FCCOB6_ADDR(x)   ((x) + 0x9U)
1096
1097 #define HW_FTFA_FCCOB6(x)        (*(__IO hw_ftfa_fccob6_t *) HW_FTFA_FCCOB6_ADDR(x))
1098 #define HW_FTFA_FCCOB6_RD(x)     (HW_FTFA_FCCOB6(x).U)
1099 #define HW_FTFA_FCCOB6_WR(x, v)  (HW_FTFA_FCCOB6(x).U = (v))
1100 #define HW_FTFA_FCCOB6_SET(x, v) (HW_FTFA_FCCOB6_WR(x, HW_FTFA_FCCOB6_RD(x) |  (v)))
1101 #define HW_FTFA_FCCOB6_CLR(x, v) (HW_FTFA_FCCOB6_WR(x, HW_FTFA_FCCOB6_RD(x) & ~(v)))
1102 #define HW_FTFA_FCCOB6_TOG(x, v) (HW_FTFA_FCCOB6_WR(x, HW_FTFA_FCCOB6_RD(x) ^  (v)))
1103 /*@}*/
1104
1105 /*
1106  * Constants & macros for individual FTFA_FCCOB6 bitfields
1107  */
1108
1109 /*!
1110  * @name Register FTFA_FCCOB6, field CCOBn[7:0] (RW)
1111  *
1112  * The FCCOB register provides a command code and relevant parameters to the
1113  * memory controller. The individual registers that compose the FCCOB data set can
1114  * be written in any order, but you must provide all needed values, which vary
1115  * from command to command. First, set up all required FCCOB fields and then
1116  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
1117  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
1118  * by the user until the command completes (CCIF returns to 1). No command
1119  * buffering or queueing is provided; the next command can be loaded only after the
1120  * current command completes. Some commands return information to the FCCOB
1121  * registers. Any values returned to FCCOB are available for reading after the
1122  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
1123  * generic flash command format. The first FCCOB register, FCCOB0, always contains
1124  * the command code. This 8-bit value defines the command to be executed. The
1125  * command code is followed by the parameters required for this specific flash
1126  * command, typically an address and/or data values. The command parameter table is
1127  * written in terms of FCCOB Number (which is equivalent to the byte number). This
1128  * number is a reference to the FCCOB register name and is not the register
1129  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
1130  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
1131  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
1132  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
1133  * FCCOB register group uses a big endian addressing convention. For all command
1134  * parameter fields larger than 1 byte, the most significant data resides in the
1135  * lowest FCCOB register number.
1136  */
1137 /*@{*/
1138 #define BP_FTFA_FCCOB6_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB6_CCOBn. */
1139 #define BM_FTFA_FCCOB6_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB6_CCOBn. */
1140 #define BS_FTFA_FCCOB6_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB6_CCOBn. */
1141
1142 /*! @brief Read current value of the FTFA_FCCOB6_CCOBn field. */
1143 #define BR_FTFA_FCCOB6_CCOBn(x) (HW_FTFA_FCCOB6(x).U)
1144
1145 /*! @brief Format value for bitfield FTFA_FCCOB6_CCOBn. */
1146 #define BF_FTFA_FCCOB6_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB6_CCOBn) & BM_FTFA_FCCOB6_CCOBn)
1147
1148 /*! @brief Set the CCOBn field to a new value. */
1149 #define BW_FTFA_FCCOB6_CCOBn(x, v) (HW_FTFA_FCCOB6_WR(x, v))
1150 /*@}*/
1151
1152 /*******************************************************************************
1153  * HW_FTFA_FCCOB5 - Flash Common Command Object Registers
1154  ******************************************************************************/
1155
1156 /*!
1157  * @brief HW_FTFA_FCCOB5 - Flash Common Command Object Registers (RW)
1158  *
1159  * Reset value: 0x00U
1160  *
1161  * The FCCOB register group provides 12 bytes for command codes and parameters.
1162  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
1163  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
1164  */
1165 typedef union _hw_ftfa_fccob5
1166 {
1167     uint8_t U;
1168     struct _hw_ftfa_fccob5_bitfields
1169     {
1170         uint8_t CCOBn : 8;             /*!< [7:0]  */
1171     } B;
1172 } hw_ftfa_fccob5_t;
1173
1174 /*!
1175  * @name Constants and macros for entire FTFA_FCCOB5 register
1176  */
1177 /*@{*/
1178 #define HW_FTFA_FCCOB5_ADDR(x)   ((x) + 0xAU)
1179
1180 #define HW_FTFA_FCCOB5(x)        (*(__IO hw_ftfa_fccob5_t *) HW_FTFA_FCCOB5_ADDR(x))
1181 #define HW_FTFA_FCCOB5_RD(x)     (HW_FTFA_FCCOB5(x).U)
1182 #define HW_FTFA_FCCOB5_WR(x, v)  (HW_FTFA_FCCOB5(x).U = (v))
1183 #define HW_FTFA_FCCOB5_SET(x, v) (HW_FTFA_FCCOB5_WR(x, HW_FTFA_FCCOB5_RD(x) |  (v)))
1184 #define HW_FTFA_FCCOB5_CLR(x, v) (HW_FTFA_FCCOB5_WR(x, HW_FTFA_FCCOB5_RD(x) & ~(v)))
1185 #define HW_FTFA_FCCOB5_TOG(x, v) (HW_FTFA_FCCOB5_WR(x, HW_FTFA_FCCOB5_RD(x) ^  (v)))
1186 /*@}*/
1187
1188 /*
1189  * Constants & macros for individual FTFA_FCCOB5 bitfields
1190  */
1191
1192 /*!
1193  * @name Register FTFA_FCCOB5, field CCOBn[7:0] (RW)
1194  *
1195  * The FCCOB register provides a command code and relevant parameters to the
1196  * memory controller. The individual registers that compose the FCCOB data set can
1197  * be written in any order, but you must provide all needed values, which vary
1198  * from command to command. First, set up all required FCCOB fields and then
1199  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
1200  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
1201  * by the user until the command completes (CCIF returns to 1). No command
1202  * buffering or queueing is provided; the next command can be loaded only after the
1203  * current command completes. Some commands return information to the FCCOB
1204  * registers. Any values returned to FCCOB are available for reading after the
1205  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
1206  * generic flash command format. The first FCCOB register, FCCOB0, always contains
1207  * the command code. This 8-bit value defines the command to be executed. The
1208  * command code is followed by the parameters required for this specific flash
1209  * command, typically an address and/or data values. The command parameter table is
1210  * written in terms of FCCOB Number (which is equivalent to the byte number). This
1211  * number is a reference to the FCCOB register name and is not the register
1212  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
1213  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
1214  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
1215  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
1216  * FCCOB register group uses a big endian addressing convention. For all command
1217  * parameter fields larger than 1 byte, the most significant data resides in the
1218  * lowest FCCOB register number.
1219  */
1220 /*@{*/
1221 #define BP_FTFA_FCCOB5_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB5_CCOBn. */
1222 #define BM_FTFA_FCCOB5_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB5_CCOBn. */
1223 #define BS_FTFA_FCCOB5_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB5_CCOBn. */
1224
1225 /*! @brief Read current value of the FTFA_FCCOB5_CCOBn field. */
1226 #define BR_FTFA_FCCOB5_CCOBn(x) (HW_FTFA_FCCOB5(x).U)
1227
1228 /*! @brief Format value for bitfield FTFA_FCCOB5_CCOBn. */
1229 #define BF_FTFA_FCCOB5_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB5_CCOBn) & BM_FTFA_FCCOB5_CCOBn)
1230
1231 /*! @brief Set the CCOBn field to a new value. */
1232 #define BW_FTFA_FCCOB5_CCOBn(x, v) (HW_FTFA_FCCOB5_WR(x, v))
1233 /*@}*/
1234
1235 /*******************************************************************************
1236  * HW_FTFA_FCCOB4 - Flash Common Command Object Registers
1237  ******************************************************************************/
1238
1239 /*!
1240  * @brief HW_FTFA_FCCOB4 - Flash Common Command Object Registers (RW)
1241  *
1242  * Reset value: 0x00U
1243  *
1244  * The FCCOB register group provides 12 bytes for command codes and parameters.
1245  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
1246  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
1247  */
1248 typedef union _hw_ftfa_fccob4
1249 {
1250     uint8_t U;
1251     struct _hw_ftfa_fccob4_bitfields
1252     {
1253         uint8_t CCOBn : 8;             /*!< [7:0]  */
1254     } B;
1255 } hw_ftfa_fccob4_t;
1256
1257 /*!
1258  * @name Constants and macros for entire FTFA_FCCOB4 register
1259  */
1260 /*@{*/
1261 #define HW_FTFA_FCCOB4_ADDR(x)   ((x) + 0xBU)
1262
1263 #define HW_FTFA_FCCOB4(x)        (*(__IO hw_ftfa_fccob4_t *) HW_FTFA_FCCOB4_ADDR(x))
1264 #define HW_FTFA_FCCOB4_RD(x)     (HW_FTFA_FCCOB4(x).U)
1265 #define HW_FTFA_FCCOB4_WR(x, v)  (HW_FTFA_FCCOB4(x).U = (v))
1266 #define HW_FTFA_FCCOB4_SET(x, v) (HW_FTFA_FCCOB4_WR(x, HW_FTFA_FCCOB4_RD(x) |  (v)))
1267 #define HW_FTFA_FCCOB4_CLR(x, v) (HW_FTFA_FCCOB4_WR(x, HW_FTFA_FCCOB4_RD(x) & ~(v)))
1268 #define HW_FTFA_FCCOB4_TOG(x, v) (HW_FTFA_FCCOB4_WR(x, HW_FTFA_FCCOB4_RD(x) ^  (v)))
1269 /*@}*/
1270
1271 /*
1272  * Constants & macros for individual FTFA_FCCOB4 bitfields
1273  */
1274
1275 /*!
1276  * @name Register FTFA_FCCOB4, field CCOBn[7:0] (RW)
1277  *
1278  * The FCCOB register provides a command code and relevant parameters to the
1279  * memory controller. The individual registers that compose the FCCOB data set can
1280  * be written in any order, but you must provide all needed values, which vary
1281  * from command to command. First, set up all required FCCOB fields and then
1282  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
1283  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
1284  * by the user until the command completes (CCIF returns to 1). No command
1285  * buffering or queueing is provided; the next command can be loaded only after the
1286  * current command completes. Some commands return information to the FCCOB
1287  * registers. Any values returned to FCCOB are available for reading after the
1288  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
1289  * generic flash command format. The first FCCOB register, FCCOB0, always contains
1290  * the command code. This 8-bit value defines the command to be executed. The
1291  * command code is followed by the parameters required for this specific flash
1292  * command, typically an address and/or data values. The command parameter table is
1293  * written in terms of FCCOB Number (which is equivalent to the byte number). This
1294  * number is a reference to the FCCOB register name and is not the register
1295  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
1296  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
1297  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
1298  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
1299  * FCCOB register group uses a big endian addressing convention. For all command
1300  * parameter fields larger than 1 byte, the most significant data resides in the
1301  * lowest FCCOB register number.
1302  */
1303 /*@{*/
1304 #define BP_FTFA_FCCOB4_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB4_CCOBn. */
1305 #define BM_FTFA_FCCOB4_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB4_CCOBn. */
1306 #define BS_FTFA_FCCOB4_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB4_CCOBn. */
1307
1308 /*! @brief Read current value of the FTFA_FCCOB4_CCOBn field. */
1309 #define BR_FTFA_FCCOB4_CCOBn(x) (HW_FTFA_FCCOB4(x).U)
1310
1311 /*! @brief Format value for bitfield FTFA_FCCOB4_CCOBn. */
1312 #define BF_FTFA_FCCOB4_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB4_CCOBn) & BM_FTFA_FCCOB4_CCOBn)
1313
1314 /*! @brief Set the CCOBn field to a new value. */
1315 #define BW_FTFA_FCCOB4_CCOBn(x, v) (HW_FTFA_FCCOB4_WR(x, v))
1316 /*@}*/
1317
1318 /*******************************************************************************
1319  * HW_FTFA_FCCOBB - Flash Common Command Object Registers
1320  ******************************************************************************/
1321
1322 /*!
1323  * @brief HW_FTFA_FCCOBB - Flash Common Command Object Registers (RW)
1324  *
1325  * Reset value: 0x00U
1326  *
1327  * The FCCOB register group provides 12 bytes for command codes and parameters.
1328  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
1329  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
1330  */
1331 typedef union _hw_ftfa_fccobb
1332 {
1333     uint8_t U;
1334     struct _hw_ftfa_fccobb_bitfields
1335     {
1336         uint8_t CCOBn : 8;             /*!< [7:0]  */
1337     } B;
1338 } hw_ftfa_fccobb_t;
1339
1340 /*!
1341  * @name Constants and macros for entire FTFA_FCCOBB register
1342  */
1343 /*@{*/
1344 #define HW_FTFA_FCCOBB_ADDR(x)   ((x) + 0xCU)
1345
1346 #define HW_FTFA_FCCOBB(x)        (*(__IO hw_ftfa_fccobb_t *) HW_FTFA_FCCOBB_ADDR(x))
1347 #define HW_FTFA_FCCOBB_RD(x)     (HW_FTFA_FCCOBB(x).U)
1348 #define HW_FTFA_FCCOBB_WR(x, v)  (HW_FTFA_FCCOBB(x).U = (v))
1349 #define HW_FTFA_FCCOBB_SET(x, v) (HW_FTFA_FCCOBB_WR(x, HW_FTFA_FCCOBB_RD(x) |  (v)))
1350 #define HW_FTFA_FCCOBB_CLR(x, v) (HW_FTFA_FCCOBB_WR(x, HW_FTFA_FCCOBB_RD(x) & ~(v)))
1351 #define HW_FTFA_FCCOBB_TOG(x, v) (HW_FTFA_FCCOBB_WR(x, HW_FTFA_FCCOBB_RD(x) ^  (v)))
1352 /*@}*/
1353
1354 /*
1355  * Constants & macros for individual FTFA_FCCOBB bitfields
1356  */
1357
1358 /*!
1359  * @name Register FTFA_FCCOBB, field CCOBn[7:0] (RW)
1360  *
1361  * The FCCOB register provides a command code and relevant parameters to the
1362  * memory controller. The individual registers that compose the FCCOB data set can
1363  * be written in any order, but you must provide all needed values, which vary
1364  * from command to command. First, set up all required FCCOB fields and then
1365  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
1366  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
1367  * by the user until the command completes (CCIF returns to 1). No command
1368  * buffering or queueing is provided; the next command can be loaded only after the
1369  * current command completes. Some commands return information to the FCCOB
1370  * registers. Any values returned to FCCOB are available for reading after the
1371  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
1372  * generic flash command format. The first FCCOB register, FCCOB0, always contains
1373  * the command code. This 8-bit value defines the command to be executed. The
1374  * command code is followed by the parameters required for this specific flash
1375  * command, typically an address and/or data values. The command parameter table is
1376  * written in terms of FCCOB Number (which is equivalent to the byte number). This
1377  * number is a reference to the FCCOB register name and is not the register
1378  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
1379  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
1380  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
1381  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
1382  * FCCOB register group uses a big endian addressing convention. For all command
1383  * parameter fields larger than 1 byte, the most significant data resides in the
1384  * lowest FCCOB register number.
1385  */
1386 /*@{*/
1387 #define BP_FTFA_FCCOBB_CCOBn (0U)          /*!< Bit position for FTFA_FCCOBB_CCOBn. */
1388 #define BM_FTFA_FCCOBB_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOBB_CCOBn. */
1389 #define BS_FTFA_FCCOBB_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOBB_CCOBn. */
1390
1391 /*! @brief Read current value of the FTFA_FCCOBB_CCOBn field. */
1392 #define BR_FTFA_FCCOBB_CCOBn(x) (HW_FTFA_FCCOBB(x).U)
1393
1394 /*! @brief Format value for bitfield FTFA_FCCOBB_CCOBn. */
1395 #define BF_FTFA_FCCOBB_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOBB_CCOBn) & BM_FTFA_FCCOBB_CCOBn)
1396
1397 /*! @brief Set the CCOBn field to a new value. */
1398 #define BW_FTFA_FCCOBB_CCOBn(x, v) (HW_FTFA_FCCOBB_WR(x, v))
1399 /*@}*/
1400
1401 /*******************************************************************************
1402  * HW_FTFA_FCCOBA - Flash Common Command Object Registers
1403  ******************************************************************************/
1404
1405 /*!
1406  * @brief HW_FTFA_FCCOBA - Flash Common Command Object Registers (RW)
1407  *
1408  * Reset value: 0x00U
1409  *
1410  * The FCCOB register group provides 12 bytes for command codes and parameters.
1411  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
1412  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
1413  */
1414 typedef union _hw_ftfa_fccoba
1415 {
1416     uint8_t U;
1417     struct _hw_ftfa_fccoba_bitfields
1418     {
1419         uint8_t CCOBn : 8;             /*!< [7:0]  */
1420     } B;
1421 } hw_ftfa_fccoba_t;
1422
1423 /*!
1424  * @name Constants and macros for entire FTFA_FCCOBA register
1425  */
1426 /*@{*/
1427 #define HW_FTFA_FCCOBA_ADDR(x)   ((x) + 0xDU)
1428
1429 #define HW_FTFA_FCCOBA(x)        (*(__IO hw_ftfa_fccoba_t *) HW_FTFA_FCCOBA_ADDR(x))
1430 #define HW_FTFA_FCCOBA_RD(x)     (HW_FTFA_FCCOBA(x).U)
1431 #define HW_FTFA_FCCOBA_WR(x, v)  (HW_FTFA_FCCOBA(x).U = (v))
1432 #define HW_FTFA_FCCOBA_SET(x, v) (HW_FTFA_FCCOBA_WR(x, HW_FTFA_FCCOBA_RD(x) |  (v)))
1433 #define HW_FTFA_FCCOBA_CLR(x, v) (HW_FTFA_FCCOBA_WR(x, HW_FTFA_FCCOBA_RD(x) & ~(v)))
1434 #define HW_FTFA_FCCOBA_TOG(x, v) (HW_FTFA_FCCOBA_WR(x, HW_FTFA_FCCOBA_RD(x) ^  (v)))
1435 /*@}*/
1436
1437 /*
1438  * Constants & macros for individual FTFA_FCCOBA bitfields
1439  */
1440
1441 /*!
1442  * @name Register FTFA_FCCOBA, field CCOBn[7:0] (RW)
1443  *
1444  * The FCCOB register provides a command code and relevant parameters to the
1445  * memory controller. The individual registers that compose the FCCOB data set can
1446  * be written in any order, but you must provide all needed values, which vary
1447  * from command to command. First, set up all required FCCOB fields and then
1448  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
1449  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
1450  * by the user until the command completes (CCIF returns to 1). No command
1451  * buffering or queueing is provided; the next command can be loaded only after the
1452  * current command completes. Some commands return information to the FCCOB
1453  * registers. Any values returned to FCCOB are available for reading after the
1454  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
1455  * generic flash command format. The first FCCOB register, FCCOB0, always contains
1456  * the command code. This 8-bit value defines the command to be executed. The
1457  * command code is followed by the parameters required for this specific flash
1458  * command, typically an address and/or data values. The command parameter table is
1459  * written in terms of FCCOB Number (which is equivalent to the byte number). This
1460  * number is a reference to the FCCOB register name and is not the register
1461  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
1462  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
1463  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
1464  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
1465  * FCCOB register group uses a big endian addressing convention. For all command
1466  * parameter fields larger than 1 byte, the most significant data resides in the
1467  * lowest FCCOB register number.
1468  */
1469 /*@{*/
1470 #define BP_FTFA_FCCOBA_CCOBn (0U)          /*!< Bit position for FTFA_FCCOBA_CCOBn. */
1471 #define BM_FTFA_FCCOBA_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOBA_CCOBn. */
1472 #define BS_FTFA_FCCOBA_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOBA_CCOBn. */
1473
1474 /*! @brief Read current value of the FTFA_FCCOBA_CCOBn field. */
1475 #define BR_FTFA_FCCOBA_CCOBn(x) (HW_FTFA_FCCOBA(x).U)
1476
1477 /*! @brief Format value for bitfield FTFA_FCCOBA_CCOBn. */
1478 #define BF_FTFA_FCCOBA_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOBA_CCOBn) & BM_FTFA_FCCOBA_CCOBn)
1479
1480 /*! @brief Set the CCOBn field to a new value. */
1481 #define BW_FTFA_FCCOBA_CCOBn(x, v) (HW_FTFA_FCCOBA_WR(x, v))
1482 /*@}*/
1483
1484 /*******************************************************************************
1485  * HW_FTFA_FCCOB9 - Flash Common Command Object Registers
1486  ******************************************************************************/
1487
1488 /*!
1489  * @brief HW_FTFA_FCCOB9 - Flash Common Command Object Registers (RW)
1490  *
1491  * Reset value: 0x00U
1492  *
1493  * The FCCOB register group provides 12 bytes for command codes and parameters.
1494  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
1495  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
1496  */
1497 typedef union _hw_ftfa_fccob9
1498 {
1499     uint8_t U;
1500     struct _hw_ftfa_fccob9_bitfields
1501     {
1502         uint8_t CCOBn : 8;             /*!< [7:0]  */
1503     } B;
1504 } hw_ftfa_fccob9_t;
1505
1506 /*!
1507  * @name Constants and macros for entire FTFA_FCCOB9 register
1508  */
1509 /*@{*/
1510 #define HW_FTFA_FCCOB9_ADDR(x)   ((x) + 0xEU)
1511
1512 #define HW_FTFA_FCCOB9(x)        (*(__IO hw_ftfa_fccob9_t *) HW_FTFA_FCCOB9_ADDR(x))
1513 #define HW_FTFA_FCCOB9_RD(x)     (HW_FTFA_FCCOB9(x).U)
1514 #define HW_FTFA_FCCOB9_WR(x, v)  (HW_FTFA_FCCOB9(x).U = (v))
1515 #define HW_FTFA_FCCOB9_SET(x, v) (HW_FTFA_FCCOB9_WR(x, HW_FTFA_FCCOB9_RD(x) |  (v)))
1516 #define HW_FTFA_FCCOB9_CLR(x, v) (HW_FTFA_FCCOB9_WR(x, HW_FTFA_FCCOB9_RD(x) & ~(v)))
1517 #define HW_FTFA_FCCOB9_TOG(x, v) (HW_FTFA_FCCOB9_WR(x, HW_FTFA_FCCOB9_RD(x) ^  (v)))
1518 /*@}*/
1519
1520 /*
1521  * Constants & macros for individual FTFA_FCCOB9 bitfields
1522  */
1523
1524 /*!
1525  * @name Register FTFA_FCCOB9, field CCOBn[7:0] (RW)
1526  *
1527  * The FCCOB register provides a command code and relevant parameters to the
1528  * memory controller. The individual registers that compose the FCCOB data set can
1529  * be written in any order, but you must provide all needed values, which vary
1530  * from command to command. First, set up all required FCCOB fields and then
1531  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
1532  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
1533  * by the user until the command completes (CCIF returns to 1). No command
1534  * buffering or queueing is provided; the next command can be loaded only after the
1535  * current command completes. Some commands return information to the FCCOB
1536  * registers. Any values returned to FCCOB are available for reading after the
1537  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
1538  * generic flash command format. The first FCCOB register, FCCOB0, always contains
1539  * the command code. This 8-bit value defines the command to be executed. The
1540  * command code is followed by the parameters required for this specific flash
1541  * command, typically an address and/or data values. The command parameter table is
1542  * written in terms of FCCOB Number (which is equivalent to the byte number). This
1543  * number is a reference to the FCCOB register name and is not the register
1544  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
1545  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
1546  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
1547  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
1548  * FCCOB register group uses a big endian addressing convention. For all command
1549  * parameter fields larger than 1 byte, the most significant data resides in the
1550  * lowest FCCOB register number.
1551  */
1552 /*@{*/
1553 #define BP_FTFA_FCCOB9_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB9_CCOBn. */
1554 #define BM_FTFA_FCCOB9_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB9_CCOBn. */
1555 #define BS_FTFA_FCCOB9_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB9_CCOBn. */
1556
1557 /*! @brief Read current value of the FTFA_FCCOB9_CCOBn field. */
1558 #define BR_FTFA_FCCOB9_CCOBn(x) (HW_FTFA_FCCOB9(x).U)
1559
1560 /*! @brief Format value for bitfield FTFA_FCCOB9_CCOBn. */
1561 #define BF_FTFA_FCCOB9_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB9_CCOBn) & BM_FTFA_FCCOB9_CCOBn)
1562
1563 /*! @brief Set the CCOBn field to a new value. */
1564 #define BW_FTFA_FCCOB9_CCOBn(x, v) (HW_FTFA_FCCOB9_WR(x, v))
1565 /*@}*/
1566
1567 /*******************************************************************************
1568  * HW_FTFA_FCCOB8 - Flash Common Command Object Registers
1569  ******************************************************************************/
1570
1571 /*!
1572  * @brief HW_FTFA_FCCOB8 - Flash Common Command Object Registers (RW)
1573  *
1574  * Reset value: 0x00U
1575  *
1576  * The FCCOB register group provides 12 bytes for command codes and parameters.
1577  * The individual bytes within the set append a 0-B hex identifier to the FCCOB
1578  * register name: FCCOB0, FCCOB1, ..., FCCOBB.
1579  */
1580 typedef union _hw_ftfa_fccob8
1581 {
1582     uint8_t U;
1583     struct _hw_ftfa_fccob8_bitfields
1584     {
1585         uint8_t CCOBn : 8;             /*!< [7:0]  */
1586     } B;
1587 } hw_ftfa_fccob8_t;
1588
1589 /*!
1590  * @name Constants and macros for entire FTFA_FCCOB8 register
1591  */
1592 /*@{*/
1593 #define HW_FTFA_FCCOB8_ADDR(x)   ((x) + 0xFU)
1594
1595 #define HW_FTFA_FCCOB8(x)        (*(__IO hw_ftfa_fccob8_t *) HW_FTFA_FCCOB8_ADDR(x))
1596 #define HW_FTFA_FCCOB8_RD(x)     (HW_FTFA_FCCOB8(x).U)
1597 #define HW_FTFA_FCCOB8_WR(x, v)  (HW_FTFA_FCCOB8(x).U = (v))
1598 #define HW_FTFA_FCCOB8_SET(x, v) (HW_FTFA_FCCOB8_WR(x, HW_FTFA_FCCOB8_RD(x) |  (v)))
1599 #define HW_FTFA_FCCOB8_CLR(x, v) (HW_FTFA_FCCOB8_WR(x, HW_FTFA_FCCOB8_RD(x) & ~(v)))
1600 #define HW_FTFA_FCCOB8_TOG(x, v) (HW_FTFA_FCCOB8_WR(x, HW_FTFA_FCCOB8_RD(x) ^  (v)))
1601 /*@}*/
1602
1603 /*
1604  * Constants & macros for individual FTFA_FCCOB8 bitfields
1605  */
1606
1607 /*!
1608  * @name Register FTFA_FCCOB8, field CCOBn[7:0] (RW)
1609  *
1610  * The FCCOB register provides a command code and relevant parameters to the
1611  * memory controller. The individual registers that compose the FCCOB data set can
1612  * be written in any order, but you must provide all needed values, which vary
1613  * from command to command. First, set up all required FCCOB fields and then
1614  * initiate the command's execution by writing a 1 to the FSTAT[CCIF] bit. This clears
1615  * the CCIF bit, which locks all FCCOB parameter fields and they cannot be changed
1616  * by the user until the command completes (CCIF returns to 1). No command
1617  * buffering or queueing is provided; the next command can be loaded only after the
1618  * current command completes. Some commands return information to the FCCOB
1619  * registers. Any values returned to FCCOB are available for reading after the
1620  * FSTAT[CCIF] flag returns to 1 by the memory controller. The following table shows a
1621  * generic flash command format. The first FCCOB register, FCCOB0, always contains
1622  * the command code. This 8-bit value defines the command to be executed. The
1623  * command code is followed by the parameters required for this specific flash
1624  * command, typically an address and/or data values. The command parameter table is
1625  * written in terms of FCCOB Number (which is equivalent to the byte number). This
1626  * number is a reference to the FCCOB register name and is not the register
1627  * address. FCCOB Number Typical Command Parameter Contents [7:0] 0 FCMD (a code that
1628  * defines the flash command) 1 Flash address [23:16] 2 Flash address [15:8] 3
1629  * Flash address [7:0] 4 Data Byte 0 5 Data Byte 1 6 Data Byte 2 7 Data Byte 3 8
1630  * Data Byte 4 9 Data Byte 5 A Data Byte 6 B Data Byte 7 FCCOB Endianness : The
1631  * FCCOB register group uses a big endian addressing convention. For all command
1632  * parameter fields larger than 1 byte, the most significant data resides in the
1633  * lowest FCCOB register number.
1634  */
1635 /*@{*/
1636 #define BP_FTFA_FCCOB8_CCOBn (0U)          /*!< Bit position for FTFA_FCCOB8_CCOBn. */
1637 #define BM_FTFA_FCCOB8_CCOBn (0xFFU)       /*!< Bit mask for FTFA_FCCOB8_CCOBn. */
1638 #define BS_FTFA_FCCOB8_CCOBn (8U)          /*!< Bit field size in bits for FTFA_FCCOB8_CCOBn. */
1639
1640 /*! @brief Read current value of the FTFA_FCCOB8_CCOBn field. */
1641 #define BR_FTFA_FCCOB8_CCOBn(x) (HW_FTFA_FCCOB8(x).U)
1642
1643 /*! @brief Format value for bitfield FTFA_FCCOB8_CCOBn. */
1644 #define BF_FTFA_FCCOB8_CCOBn(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FCCOB8_CCOBn) & BM_FTFA_FCCOB8_CCOBn)
1645
1646 /*! @brief Set the CCOBn field to a new value. */
1647 #define BW_FTFA_FCCOB8_CCOBn(x, v) (HW_FTFA_FCCOB8_WR(x, v))
1648 /*@}*/
1649
1650 /*******************************************************************************
1651  * HW_FTFA_FPROT3 - Program Flash Protection Registers
1652  ******************************************************************************/
1653
1654 /*!
1655  * @brief HW_FTFA_FPROT3 - Program Flash Protection Registers (RW)
1656  *
1657  * Reset value: 0x00U
1658  *
1659  * The FPROT registers define which logical program flash regions are protected
1660  * from program and erase operations. Protected flash regions cannot have their
1661  * content changed; that is, these regions cannot be programmed and cannot be
1662  * erased by any flash command. Unprotected regions can be changed by program and
1663  * erase operations. The four FPROT registers allow up to 32 protectable regions.
1664  * Each bit protects a 1/32 region of the program flash memory except for memory
1665  * configurations with less than 32 KB of program flash where each assigned bit
1666  * protects 1 KB . For configurations with 24 KB of program flash memory or less,
1667  * FPROT0 is not used. For configurations with 16 KB of program flash memory or
1668  * less, FPROT1 is not used. For configurations with 8 KB of program flash memory,
1669  * FPROT2 is not used. The bitfields are defined in each register as follows:
1670  * Program flash protection register Program flash protection bits FPROT0 PROT[31:24]
1671  * FPROT1 PROT[23:16] FPROT2 PROT[15:8] FPROT3 PROT[7:0] During the reset
1672  * sequence, the FPROT registers are loaded with the contents of the program flash
1673  * protection bytes in the Flash Configuration Field as indicated in the following
1674  * table. Program flash protection register Flash Configuration Field offset
1675  * address FPROT0 0x000B FPROT1 0x000A FPROT2 0x0009 FPROT3 0x0008 To change the
1676  * program flash protection that is loaded during the reset sequence, unprotect the
1677  * sector of program flash memory that contains the Flash Configuration Field. Then,
1678  * reprogram the program flash protection byte.
1679  */
1680 typedef union _hw_ftfa_fprot3
1681 {
1682     uint8_t U;
1683     struct _hw_ftfa_fprot3_bitfields
1684     {
1685         uint8_t PROT : 8;              /*!< [7:0] Program Flash Region Protect */
1686     } B;
1687 } hw_ftfa_fprot3_t;
1688
1689 /*!
1690  * @name Constants and macros for entire FTFA_FPROT3 register
1691  */
1692 /*@{*/
1693 #define HW_FTFA_FPROT3_ADDR(x)   ((x) + 0x10U)
1694
1695 #define HW_FTFA_FPROT3(x)        (*(__IO hw_ftfa_fprot3_t *) HW_FTFA_FPROT3_ADDR(x))
1696 #define HW_FTFA_FPROT3_RD(x)     (HW_FTFA_FPROT3(x).U)
1697 #define HW_FTFA_FPROT3_WR(x, v)  (HW_FTFA_FPROT3(x).U = (v))
1698 #define HW_FTFA_FPROT3_SET(x, v) (HW_FTFA_FPROT3_WR(x, HW_FTFA_FPROT3_RD(x) |  (v)))
1699 #define HW_FTFA_FPROT3_CLR(x, v) (HW_FTFA_FPROT3_WR(x, HW_FTFA_FPROT3_RD(x) & ~(v)))
1700 #define HW_FTFA_FPROT3_TOG(x, v) (HW_FTFA_FPROT3_WR(x, HW_FTFA_FPROT3_RD(x) ^  (v)))
1701 /*@}*/
1702
1703 /*
1704  * Constants & macros for individual FTFA_FPROT3 bitfields
1705  */
1706
1707 /*!
1708  * @name Register FTFA_FPROT3, field PROT[7:0] (RW)
1709  *
1710  * Each program flash region can be protected from program and erase operations
1711  * by setting the associated PROT bit. In NVM Normal mode: The protection can
1712  * only be increased, meaning that currently unprotected memory can be protected,
1713  * but currently protected memory cannot be unprotected. Since unprotected regions
1714  * are marked with a 1 and protected regions use a 0, only writes changing 1s to
1715  * 0s are accepted. This 1-to-0 transition check is performed on a bit-by-bit
1716  * basis. Those FPROT bits with 1-to-0 transitions are accepted while all bits with
1717  * 0-to-1 transitions are ignored. In NVM Special mode: All bits of FPROT are
1718  * writable without restriction. Unprotected areas can be protected and protected
1719  * areas can be unprotected. The user must never write to any FPROT register while
1720  * a command is running (CCIF=0). Trying to alter data in any protected area in
1721  * the program flash memory results in a protection violation error and sets the
1722  * FSTAT[FPVIOL] bit. A full block erase of a program flash block is not possible
1723  * if it contains any protected region. Each bit in the 32-bit protection
1724  * register represents 1/32 of the total program flash except for configurations where
1725  * program flash memory is less than 32 KB. For configurations with less than 32
1726  * KB of program flash memory, each assigned bit represents 1 KB.
1727  *
1728  * Values:
1729  * - 0 - Program flash region is protected.
1730  * - 1 - Program flash region is not protected
1731  */
1732 /*@{*/
1733 #define BP_FTFA_FPROT3_PROT  (0U)          /*!< Bit position for FTFA_FPROT3_PROT. */
1734 #define BM_FTFA_FPROT3_PROT  (0xFFU)       /*!< Bit mask for FTFA_FPROT3_PROT. */
1735 #define BS_FTFA_FPROT3_PROT  (8U)          /*!< Bit field size in bits for FTFA_FPROT3_PROT. */
1736
1737 /*! @brief Read current value of the FTFA_FPROT3_PROT field. */
1738 #define BR_FTFA_FPROT3_PROT(x) (HW_FTFA_FPROT3(x).U)
1739
1740 /*! @brief Format value for bitfield FTFA_FPROT3_PROT. */
1741 #define BF_FTFA_FPROT3_PROT(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FPROT3_PROT) & BM_FTFA_FPROT3_PROT)
1742
1743 /*! @brief Set the PROT field to a new value. */
1744 #define BW_FTFA_FPROT3_PROT(x, v) (HW_FTFA_FPROT3_WR(x, v))
1745 /*@}*/
1746
1747 /*******************************************************************************
1748  * HW_FTFA_FPROT2 - Program Flash Protection Registers
1749  ******************************************************************************/
1750
1751 /*!
1752  * @brief HW_FTFA_FPROT2 - Program Flash Protection Registers (RW)
1753  *
1754  * Reset value: 0x00U
1755  *
1756  * The FPROT registers define which logical program flash regions are protected
1757  * from program and erase operations. Protected flash regions cannot have their
1758  * content changed; that is, these regions cannot be programmed and cannot be
1759  * erased by any flash command. Unprotected regions can be changed by program and
1760  * erase operations. The four FPROT registers allow up to 32 protectable regions.
1761  * Each bit protects a 1/32 region of the program flash memory except for memory
1762  * configurations with less than 32 KB of program flash where each assigned bit
1763  * protects 1 KB . For configurations with 24 KB of program flash memory or less,
1764  * FPROT0 is not used. For configurations with 16 KB of program flash memory or
1765  * less, FPROT1 is not used. For configurations with 8 KB of program flash memory,
1766  * FPROT2 is not used. The bitfields are defined in each register as follows:
1767  * Program flash protection register Program flash protection bits FPROT0 PROT[31:24]
1768  * FPROT1 PROT[23:16] FPROT2 PROT[15:8] FPROT3 PROT[7:0] During the reset
1769  * sequence, the FPROT registers are loaded with the contents of the program flash
1770  * protection bytes in the Flash Configuration Field as indicated in the following
1771  * table. Program flash protection register Flash Configuration Field offset
1772  * address FPROT0 0x000B FPROT1 0x000A FPROT2 0x0009 FPROT3 0x0008 To change the
1773  * program flash protection that is loaded during the reset sequence, unprotect the
1774  * sector of program flash memory that contains the Flash Configuration Field. Then,
1775  * reprogram the program flash protection byte.
1776  */
1777 typedef union _hw_ftfa_fprot2
1778 {
1779     uint8_t U;
1780     struct _hw_ftfa_fprot2_bitfields
1781     {
1782         uint8_t PROT : 8;              /*!< [7:0] Program Flash Region Protect */
1783     } B;
1784 } hw_ftfa_fprot2_t;
1785
1786 /*!
1787  * @name Constants and macros for entire FTFA_FPROT2 register
1788  */
1789 /*@{*/
1790 #define HW_FTFA_FPROT2_ADDR(x)   ((x) + 0x11U)
1791
1792 #define HW_FTFA_FPROT2(x)        (*(__IO hw_ftfa_fprot2_t *) HW_FTFA_FPROT2_ADDR(x))
1793 #define HW_FTFA_FPROT2_RD(x)     (HW_FTFA_FPROT2(x).U)
1794 #define HW_FTFA_FPROT2_WR(x, v)  (HW_FTFA_FPROT2(x).U = (v))
1795 #define HW_FTFA_FPROT2_SET(x, v) (HW_FTFA_FPROT2_WR(x, HW_FTFA_FPROT2_RD(x) |  (v)))
1796 #define HW_FTFA_FPROT2_CLR(x, v) (HW_FTFA_FPROT2_WR(x, HW_FTFA_FPROT2_RD(x) & ~(v)))
1797 #define HW_FTFA_FPROT2_TOG(x, v) (HW_FTFA_FPROT2_WR(x, HW_FTFA_FPROT2_RD(x) ^  (v)))
1798 /*@}*/
1799
1800 /*
1801  * Constants & macros for individual FTFA_FPROT2 bitfields
1802  */
1803
1804 /*!
1805  * @name Register FTFA_FPROT2, field PROT[7:0] (RW)
1806  *
1807  * Each program flash region can be protected from program and erase operations
1808  * by setting the associated PROT bit. In NVM Normal mode: The protection can
1809  * only be increased, meaning that currently unprotected memory can be protected,
1810  * but currently protected memory cannot be unprotected. Since unprotected regions
1811  * are marked with a 1 and protected regions use a 0, only writes changing 1s to
1812  * 0s are accepted. This 1-to-0 transition check is performed on a bit-by-bit
1813  * basis. Those FPROT bits with 1-to-0 transitions are accepted while all bits with
1814  * 0-to-1 transitions are ignored. In NVM Special mode: All bits of FPROT are
1815  * writable without restriction. Unprotected areas can be protected and protected
1816  * areas can be unprotected. The user must never write to any FPROT register while
1817  * a command is running (CCIF=0). Trying to alter data in any protected area in
1818  * the program flash memory results in a protection violation error and sets the
1819  * FSTAT[FPVIOL] bit. A full block erase of a program flash block is not possible
1820  * if it contains any protected region. Each bit in the 32-bit protection
1821  * register represents 1/32 of the total program flash except for configurations where
1822  * program flash memory is less than 32 KB. For configurations with less than 32
1823  * KB of program flash memory, each assigned bit represents 1 KB.
1824  *
1825  * Values:
1826  * - 0 - Program flash region is protected.
1827  * - 1 - Program flash region is not protected
1828  */
1829 /*@{*/
1830 #define BP_FTFA_FPROT2_PROT  (0U)          /*!< Bit position for FTFA_FPROT2_PROT. */
1831 #define BM_FTFA_FPROT2_PROT  (0xFFU)       /*!< Bit mask for FTFA_FPROT2_PROT. */
1832 #define BS_FTFA_FPROT2_PROT  (8U)          /*!< Bit field size in bits for FTFA_FPROT2_PROT. */
1833
1834 /*! @brief Read current value of the FTFA_FPROT2_PROT field. */
1835 #define BR_FTFA_FPROT2_PROT(x) (HW_FTFA_FPROT2(x).U)
1836
1837 /*! @brief Format value for bitfield FTFA_FPROT2_PROT. */
1838 #define BF_FTFA_FPROT2_PROT(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FPROT2_PROT) & BM_FTFA_FPROT2_PROT)
1839
1840 /*! @brief Set the PROT field to a new value. */
1841 #define BW_FTFA_FPROT2_PROT(x, v) (HW_FTFA_FPROT2_WR(x, v))
1842 /*@}*/
1843
1844 /*******************************************************************************
1845  * HW_FTFA_FPROT1 - Program Flash Protection Registers
1846  ******************************************************************************/
1847
1848 /*!
1849  * @brief HW_FTFA_FPROT1 - Program Flash Protection Registers (RW)
1850  *
1851  * Reset value: 0x00U
1852  *
1853  * The FPROT registers define which logical program flash regions are protected
1854  * from program and erase operations. Protected flash regions cannot have their
1855  * content changed; that is, these regions cannot be programmed and cannot be
1856  * erased by any flash command. Unprotected regions can be changed by program and
1857  * erase operations. The four FPROT registers allow up to 32 protectable regions.
1858  * Each bit protects a 1/32 region of the program flash memory except for memory
1859  * configurations with less than 32 KB of program flash where each assigned bit
1860  * protects 1 KB . For configurations with 24 KB of program flash memory or less,
1861  * FPROT0 is not used. For configurations with 16 KB of program flash memory or
1862  * less, FPROT1 is not used. For configurations with 8 KB of program flash memory,
1863  * FPROT2 is not used. The bitfields are defined in each register as follows:
1864  * Program flash protection register Program flash protection bits FPROT0 PROT[31:24]
1865  * FPROT1 PROT[23:16] FPROT2 PROT[15:8] FPROT3 PROT[7:0] During the reset
1866  * sequence, the FPROT registers are loaded with the contents of the program flash
1867  * protection bytes in the Flash Configuration Field as indicated in the following
1868  * table. Program flash protection register Flash Configuration Field offset
1869  * address FPROT0 0x000B FPROT1 0x000A FPROT2 0x0009 FPROT3 0x0008 To change the
1870  * program flash protection that is loaded during the reset sequence, unprotect the
1871  * sector of program flash memory that contains the Flash Configuration Field. Then,
1872  * reprogram the program flash protection byte.
1873  */
1874 typedef union _hw_ftfa_fprot1
1875 {
1876     uint8_t U;
1877     struct _hw_ftfa_fprot1_bitfields
1878     {
1879         uint8_t PROT : 8;              /*!< [7:0] Program Flash Region Protect */
1880     } B;
1881 } hw_ftfa_fprot1_t;
1882
1883 /*!
1884  * @name Constants and macros for entire FTFA_FPROT1 register
1885  */
1886 /*@{*/
1887 #define HW_FTFA_FPROT1_ADDR(x)   ((x) + 0x12U)
1888
1889 #define HW_FTFA_FPROT1(x)        (*(__IO hw_ftfa_fprot1_t *) HW_FTFA_FPROT1_ADDR(x))
1890 #define HW_FTFA_FPROT1_RD(x)     (HW_FTFA_FPROT1(x).U)
1891 #define HW_FTFA_FPROT1_WR(x, v)  (HW_FTFA_FPROT1(x).U = (v))
1892 #define HW_FTFA_FPROT1_SET(x, v) (HW_FTFA_FPROT1_WR(x, HW_FTFA_FPROT1_RD(x) |  (v)))
1893 #define HW_FTFA_FPROT1_CLR(x, v) (HW_FTFA_FPROT1_WR(x, HW_FTFA_FPROT1_RD(x) & ~(v)))
1894 #define HW_FTFA_FPROT1_TOG(x, v) (HW_FTFA_FPROT1_WR(x, HW_FTFA_FPROT1_RD(x) ^  (v)))
1895 /*@}*/
1896
1897 /*
1898  * Constants & macros for individual FTFA_FPROT1 bitfields
1899  */
1900
1901 /*!
1902  * @name Register FTFA_FPROT1, field PROT[7:0] (RW)
1903  *
1904  * Each program flash region can be protected from program and erase operations
1905  * by setting the associated PROT bit. In NVM Normal mode: The protection can
1906  * only be increased, meaning that currently unprotected memory can be protected,
1907  * but currently protected memory cannot be unprotected. Since unprotected regions
1908  * are marked with a 1 and protected regions use a 0, only writes changing 1s to
1909  * 0s are accepted. This 1-to-0 transition check is performed on a bit-by-bit
1910  * basis. Those FPROT bits with 1-to-0 transitions are accepted while all bits with
1911  * 0-to-1 transitions are ignored. In NVM Special mode: All bits of FPROT are
1912  * writable without restriction. Unprotected areas can be protected and protected
1913  * areas can be unprotected. The user must never write to any FPROT register while
1914  * a command is running (CCIF=0). Trying to alter data in any protected area in
1915  * the program flash memory results in a protection violation error and sets the
1916  * FSTAT[FPVIOL] bit. A full block erase of a program flash block is not possible
1917  * if it contains any protected region. Each bit in the 32-bit protection
1918  * register represents 1/32 of the total program flash except for configurations where
1919  * program flash memory is less than 32 KB. For configurations with less than 32
1920  * KB of program flash memory, each assigned bit represents 1 KB.
1921  *
1922  * Values:
1923  * - 0 - Program flash region is protected.
1924  * - 1 - Program flash region is not protected
1925  */
1926 /*@{*/
1927 #define BP_FTFA_FPROT1_PROT  (0U)          /*!< Bit position for FTFA_FPROT1_PROT. */
1928 #define BM_FTFA_FPROT1_PROT  (0xFFU)       /*!< Bit mask for FTFA_FPROT1_PROT. */
1929 #define BS_FTFA_FPROT1_PROT  (8U)          /*!< Bit field size in bits for FTFA_FPROT1_PROT. */
1930
1931 /*! @brief Read current value of the FTFA_FPROT1_PROT field. */
1932 #define BR_FTFA_FPROT1_PROT(x) (HW_FTFA_FPROT1(x).U)
1933
1934 /*! @brief Format value for bitfield FTFA_FPROT1_PROT. */
1935 #define BF_FTFA_FPROT1_PROT(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FPROT1_PROT) & BM_FTFA_FPROT1_PROT)
1936
1937 /*! @brief Set the PROT field to a new value. */
1938 #define BW_FTFA_FPROT1_PROT(x, v) (HW_FTFA_FPROT1_WR(x, v))
1939 /*@}*/
1940
1941 /*******************************************************************************
1942  * HW_FTFA_FPROT0 - Program Flash Protection Registers
1943  ******************************************************************************/
1944
1945 /*!
1946  * @brief HW_FTFA_FPROT0 - Program Flash Protection Registers (RW)
1947  *
1948  * Reset value: 0x00U
1949  *
1950  * The FPROT registers define which logical program flash regions are protected
1951  * from program and erase operations. Protected flash regions cannot have their
1952  * content changed; that is, these regions cannot be programmed and cannot be
1953  * erased by any flash command. Unprotected regions can be changed by program and
1954  * erase operations. The four FPROT registers allow up to 32 protectable regions.
1955  * Each bit protects a 1/32 region of the program flash memory except for memory
1956  * configurations with less than 32 KB of program flash where each assigned bit
1957  * protects 1 KB . For configurations with 24 KB of program flash memory or less,
1958  * FPROT0 is not used. For configurations with 16 KB of program flash memory or
1959  * less, FPROT1 is not used. For configurations with 8 KB of program flash memory,
1960  * FPROT2 is not used. The bitfields are defined in each register as follows:
1961  * Program flash protection register Program flash protection bits FPROT0 PROT[31:24]
1962  * FPROT1 PROT[23:16] FPROT2 PROT[15:8] FPROT3 PROT[7:0] During the reset
1963  * sequence, the FPROT registers are loaded with the contents of the program flash
1964  * protection bytes in the Flash Configuration Field as indicated in the following
1965  * table. Program flash protection register Flash Configuration Field offset
1966  * address FPROT0 0x000B FPROT1 0x000A FPROT2 0x0009 FPROT3 0x0008 To change the
1967  * program flash protection that is loaded during the reset sequence, unprotect the
1968  * sector of program flash memory that contains the Flash Configuration Field. Then,
1969  * reprogram the program flash protection byte.
1970  */
1971 typedef union _hw_ftfa_fprot0
1972 {
1973     uint8_t U;
1974     struct _hw_ftfa_fprot0_bitfields
1975     {
1976         uint8_t PROT : 8;              /*!< [7:0] Program Flash Region Protect */
1977     } B;
1978 } hw_ftfa_fprot0_t;
1979
1980 /*!
1981  * @name Constants and macros for entire FTFA_FPROT0 register
1982  */
1983 /*@{*/
1984 #define HW_FTFA_FPROT0_ADDR(x)   ((x) + 0x13U)
1985
1986 #define HW_FTFA_FPROT0(x)        (*(__IO hw_ftfa_fprot0_t *) HW_FTFA_FPROT0_ADDR(x))
1987 #define HW_FTFA_FPROT0_RD(x)     (HW_FTFA_FPROT0(x).U)
1988 #define HW_FTFA_FPROT0_WR(x, v)  (HW_FTFA_FPROT0(x).U = (v))
1989 #define HW_FTFA_FPROT0_SET(x, v) (HW_FTFA_FPROT0_WR(x, HW_FTFA_FPROT0_RD(x) |  (v)))
1990 #define HW_FTFA_FPROT0_CLR(x, v) (HW_FTFA_FPROT0_WR(x, HW_FTFA_FPROT0_RD(x) & ~(v)))
1991 #define HW_FTFA_FPROT0_TOG(x, v) (HW_FTFA_FPROT0_WR(x, HW_FTFA_FPROT0_RD(x) ^  (v)))
1992 /*@}*/
1993
1994 /*
1995  * Constants & macros for individual FTFA_FPROT0 bitfields
1996  */
1997
1998 /*!
1999  * @name Register FTFA_FPROT0, field PROT[7:0] (RW)
2000  *
2001  * Each program flash region can be protected from program and erase operations
2002  * by setting the associated PROT bit. In NVM Normal mode: The protection can
2003  * only be increased, meaning that currently unprotected memory can be protected,
2004  * but currently protected memory cannot be unprotected. Since unprotected regions
2005  * are marked with a 1 and protected regions use a 0, only writes changing 1s to
2006  * 0s are accepted. This 1-to-0 transition check is performed on a bit-by-bit
2007  * basis. Those FPROT bits with 1-to-0 transitions are accepted while all bits with
2008  * 0-to-1 transitions are ignored. In NVM Special mode: All bits of FPROT are
2009  * writable without restriction. Unprotected areas can be protected and protected
2010  * areas can be unprotected. The user must never write to any FPROT register while
2011  * a command is running (CCIF=0). Trying to alter data in any protected area in
2012  * the program flash memory results in a protection violation error and sets the
2013  * FSTAT[FPVIOL] bit. A full block erase of a program flash block is not possible
2014  * if it contains any protected region. Each bit in the 32-bit protection
2015  * register represents 1/32 of the total program flash except for configurations where
2016  * program flash memory is less than 32 KB. For configurations with less than 32
2017  * KB of program flash memory, each assigned bit represents 1 KB.
2018  *
2019  * Values:
2020  * - 0 - Program flash region is protected.
2021  * - 1 - Program flash region is not protected
2022  */
2023 /*@{*/
2024 #define BP_FTFA_FPROT0_PROT  (0U)          /*!< Bit position for FTFA_FPROT0_PROT. */
2025 #define BM_FTFA_FPROT0_PROT  (0xFFU)       /*!< Bit mask for FTFA_FPROT0_PROT. */
2026 #define BS_FTFA_FPROT0_PROT  (8U)          /*!< Bit field size in bits for FTFA_FPROT0_PROT. */
2027
2028 /*! @brief Read current value of the FTFA_FPROT0_PROT field. */
2029 #define BR_FTFA_FPROT0_PROT(x) (HW_FTFA_FPROT0(x).U)
2030
2031 /*! @brief Format value for bitfield FTFA_FPROT0_PROT. */
2032 #define BF_FTFA_FPROT0_PROT(v) ((uint8_t)((uint8_t)(v) << BP_FTFA_FPROT0_PROT) & BM_FTFA_FPROT0_PROT)
2033
2034 /*! @brief Set the PROT field to a new value. */
2035 #define BW_FTFA_FPROT0_PROT(x, v) (HW_FTFA_FPROT0_WR(x, v))
2036 /*@}*/
2037
2038 /*******************************************************************************
2039  * HW_FTFA_XACCH3 - Execute-only Access Registers
2040  ******************************************************************************/
2041
2042 /*!
2043  * @brief HW_FTFA_XACCH3 - Execute-only Access Registers (RO)
2044  *
2045  * Reset value: 0x00U
2046  *
2047  * The XACC registers define which logical program flash segments are restricted
2048  * to data read or execute only or both data and instruction fetches. The eight
2049  * XACC registers allow up to 64 restricted segments of equal memory size.
2050  * Execute-only access register Program flash execute-only access bits XACCH0 XA[63:56]
2051  * XACCH1 XA[55:48] XACCH2 XA[47:40] XACCH3 XA[39:32] XACCL0 XA[31:24] XACCL1
2052  * XA[23:16] XACCL2 XA[15:8] XACCL3 XA[7:0] During the reset sequence, the XACC
2053  * registers are loaded with the logical AND of Program Flash IFR addresses A and B
2054  * as indicated in the following table. Execute-only access register Program
2055  * Flash IFR address A Program Flash IFR address B XACCH0 0xA3 0xAB XACCH1 0xA2 0xAA
2056  * XACCH2 0xA1 0xA9 XACCH3 0xA0 0xA8 XACCL0 0xA7 0xAF XACCL1 0xA6 0xAE XACCL2
2057  * 0xA5 0xAD XACCL3 0xA4 0xAC Use the Program Once command to program the
2058  * execute-only access control fields that are loaded during the reset sequence.
2059  */
2060 typedef union _hw_ftfa_xacch3
2061 {
2062     uint8_t U;
2063     struct _hw_ftfa_xacch3_bitfields
2064     {
2065         uint8_t XA : 8;                /*!< [7:0] Execute-only access control */
2066     } B;
2067 } hw_ftfa_xacch3_t;
2068
2069 /*!
2070  * @name Constants and macros for entire FTFA_XACCH3 register
2071  */
2072 /*@{*/
2073 #define HW_FTFA_XACCH3_ADDR(x)   ((x) + 0x18U)
2074
2075 #define HW_FTFA_XACCH3(x)        (*(__I hw_ftfa_xacch3_t *) HW_FTFA_XACCH3_ADDR(x))
2076 #define HW_FTFA_XACCH3_RD(x)     (HW_FTFA_XACCH3(x).U)
2077 /*@}*/
2078
2079 /*
2080  * Constants & macros for individual FTFA_XACCH3 bitfields
2081  */
2082
2083 /*!
2084  * @name Register FTFA_XACCH3, field XA[7:0] (RO)
2085  *
2086  * Values:
2087  * - 0 - Associated segment is accessible in execute mode only (as an
2088  *     instruction fetch)
2089  * - 1 - Associated segment is accessible as data or in execute mode
2090  */
2091 /*@{*/
2092 #define BP_FTFA_XACCH3_XA    (0U)          /*!< Bit position for FTFA_XACCH3_XA. */
2093 #define BM_FTFA_XACCH3_XA    (0xFFU)       /*!< Bit mask for FTFA_XACCH3_XA. */
2094 #define BS_FTFA_XACCH3_XA    (8U)          /*!< Bit field size in bits for FTFA_XACCH3_XA. */
2095
2096 /*! @brief Read current value of the FTFA_XACCH3_XA field. */
2097 #define BR_FTFA_XACCH3_XA(x) (HW_FTFA_XACCH3(x).U)
2098 /*@}*/
2099
2100 /*******************************************************************************
2101  * HW_FTFA_XACCH2 - Execute-only Access Registers
2102  ******************************************************************************/
2103
2104 /*!
2105  * @brief HW_FTFA_XACCH2 - Execute-only Access Registers (RO)
2106  *
2107  * Reset value: 0x00U
2108  *
2109  * The XACC registers define which logical program flash segments are restricted
2110  * to data read or execute only or both data and instruction fetches. The eight
2111  * XACC registers allow up to 64 restricted segments of equal memory size.
2112  * Execute-only access register Program flash execute-only access bits XACCH0 XA[63:56]
2113  * XACCH1 XA[55:48] XACCH2 XA[47:40] XACCH3 XA[39:32] XACCL0 XA[31:24] XACCL1
2114  * XA[23:16] XACCL2 XA[15:8] XACCL3 XA[7:0] During the reset sequence, the XACC
2115  * registers are loaded with the logical AND of Program Flash IFR addresses A and B
2116  * as indicated in the following table. Execute-only access register Program
2117  * Flash IFR address A Program Flash IFR address B XACCH0 0xA3 0xAB XACCH1 0xA2 0xAA
2118  * XACCH2 0xA1 0xA9 XACCH3 0xA0 0xA8 XACCL0 0xA7 0xAF XACCL1 0xA6 0xAE XACCL2
2119  * 0xA5 0xAD XACCL3 0xA4 0xAC Use the Program Once command to program the
2120  * execute-only access control fields that are loaded during the reset sequence.
2121  */
2122 typedef union _hw_ftfa_xacch2
2123 {
2124     uint8_t U;
2125     struct _hw_ftfa_xacch2_bitfields
2126     {
2127         uint8_t XA : 8;                /*!< [7:0] Execute-only access control */
2128     } B;
2129 } hw_ftfa_xacch2_t;
2130
2131 /*!
2132  * @name Constants and macros for entire FTFA_XACCH2 register
2133  */
2134 /*@{*/
2135 #define HW_FTFA_XACCH2_ADDR(x)   ((x) + 0x19U)
2136
2137 #define HW_FTFA_XACCH2(x)        (*(__I hw_ftfa_xacch2_t *) HW_FTFA_XACCH2_ADDR(x))
2138 #define HW_FTFA_XACCH2_RD(x)     (HW_FTFA_XACCH2(x).U)
2139 /*@}*/
2140
2141 /*
2142  * Constants & macros for individual FTFA_XACCH2 bitfields
2143  */
2144
2145 /*!
2146  * @name Register FTFA_XACCH2, field XA[7:0] (RO)
2147  *
2148  * Values:
2149  * - 0 - Associated segment is accessible in execute mode only (as an
2150  *     instruction fetch)
2151  * - 1 - Associated segment is accessible as data or in execute mode
2152  */
2153 /*@{*/
2154 #define BP_FTFA_XACCH2_XA    (0U)          /*!< Bit position for FTFA_XACCH2_XA. */
2155 #define BM_FTFA_XACCH2_XA    (0xFFU)       /*!< Bit mask for FTFA_XACCH2_XA. */
2156 #define BS_FTFA_XACCH2_XA    (8U)          /*!< Bit field size in bits for FTFA_XACCH2_XA. */
2157
2158 /*! @brief Read current value of the FTFA_XACCH2_XA field. */
2159 #define BR_FTFA_XACCH2_XA(x) (HW_FTFA_XACCH2(x).U)
2160 /*@}*/
2161
2162 /*******************************************************************************
2163  * HW_FTFA_XACCH1 - Execute-only Access Registers
2164  ******************************************************************************/
2165
2166 /*!
2167  * @brief HW_FTFA_XACCH1 - Execute-only Access Registers (RO)
2168  *
2169  * Reset value: 0x00U
2170  *
2171  * The XACC registers define which logical program flash segments are restricted
2172  * to data read or execute only or both data and instruction fetches. The eight
2173  * XACC registers allow up to 64 restricted segments of equal memory size.
2174  * Execute-only access register Program flash execute-only access bits XACCH0 XA[63:56]
2175  * XACCH1 XA[55:48] XACCH2 XA[47:40] XACCH3 XA[39:32] XACCL0 XA[31:24] XACCL1
2176  * XA[23:16] XACCL2 XA[15:8] XACCL3 XA[7:0] During the reset sequence, the XACC
2177  * registers are loaded with the logical AND of Program Flash IFR addresses A and B
2178  * as indicated in the following table. Execute-only access register Program
2179  * Flash IFR address A Program Flash IFR address B XACCH0 0xA3 0xAB XACCH1 0xA2 0xAA
2180  * XACCH2 0xA1 0xA9 XACCH3 0xA0 0xA8 XACCL0 0xA7 0xAF XACCL1 0xA6 0xAE XACCL2
2181  * 0xA5 0xAD XACCL3 0xA4 0xAC Use the Program Once command to program the
2182  * execute-only access control fields that are loaded during the reset sequence.
2183  */
2184 typedef union _hw_ftfa_xacch1
2185 {
2186     uint8_t U;
2187     struct _hw_ftfa_xacch1_bitfields
2188     {
2189         uint8_t XA : 8;                /*!< [7:0] Execute-only access control */
2190     } B;
2191 } hw_ftfa_xacch1_t;
2192
2193 /*!
2194  * @name Constants and macros for entire FTFA_XACCH1 register
2195  */
2196 /*@{*/
2197 #define HW_FTFA_XACCH1_ADDR(x)   ((x) + 0x1AU)
2198
2199 #define HW_FTFA_XACCH1(x)        (*(__I hw_ftfa_xacch1_t *) HW_FTFA_XACCH1_ADDR(x))
2200 #define HW_FTFA_XACCH1_RD(x)     (HW_FTFA_XACCH1(x).U)
2201 /*@}*/
2202
2203 /*
2204  * Constants & macros for individual FTFA_XACCH1 bitfields
2205  */
2206
2207 /*!
2208  * @name Register FTFA_XACCH1, field XA[7:0] (RO)
2209  *
2210  * Values:
2211  * - 0 - Associated segment is accessible in execute mode only (as an
2212  *     instruction fetch)
2213  * - 1 - Associated segment is accessible as data or in execute mode
2214  */
2215 /*@{*/
2216 #define BP_FTFA_XACCH1_XA    (0U)          /*!< Bit position for FTFA_XACCH1_XA. */
2217 #define BM_FTFA_XACCH1_XA    (0xFFU)       /*!< Bit mask for FTFA_XACCH1_XA. */
2218 #define BS_FTFA_XACCH1_XA    (8U)          /*!< Bit field size in bits for FTFA_XACCH1_XA. */
2219
2220 /*! @brief Read current value of the FTFA_XACCH1_XA field. */
2221 #define BR_FTFA_XACCH1_XA(x) (HW_FTFA_XACCH1(x).U)
2222 /*@}*/
2223
2224 /*******************************************************************************
2225  * HW_FTFA_XACCH0 - Execute-only Access Registers
2226  ******************************************************************************/
2227
2228 /*!
2229  * @brief HW_FTFA_XACCH0 - Execute-only Access Registers (RO)
2230  *
2231  * Reset value: 0x00U
2232  *
2233  * The XACC registers define which logical program flash segments are restricted
2234  * to data read or execute only or both data and instruction fetches. The eight
2235  * XACC registers allow up to 64 restricted segments of equal memory size.
2236  * Execute-only access register Program flash execute-only access bits XACCH0 XA[63:56]
2237  * XACCH1 XA[55:48] XACCH2 XA[47:40] XACCH3 XA[39:32] XACCL0 XA[31:24] XACCL1
2238  * XA[23:16] XACCL2 XA[15:8] XACCL3 XA[7:0] During the reset sequence, the XACC
2239  * registers are loaded with the logical AND of Program Flash IFR addresses A and B
2240  * as indicated in the following table. Execute-only access register Program
2241  * Flash IFR address A Program Flash IFR address B XACCH0 0xA3 0xAB XACCH1 0xA2 0xAA
2242  * XACCH2 0xA1 0xA9 XACCH3 0xA0 0xA8 XACCL0 0xA7 0xAF XACCL1 0xA6 0xAE XACCL2
2243  * 0xA5 0xAD XACCL3 0xA4 0xAC Use the Program Once command to program the
2244  * execute-only access control fields that are loaded during the reset sequence.
2245  */
2246 typedef union _hw_ftfa_xacch0
2247 {
2248     uint8_t U;
2249     struct _hw_ftfa_xacch0_bitfields
2250     {
2251         uint8_t XA : 8;                /*!< [7:0] Execute-only access control */
2252     } B;
2253 } hw_ftfa_xacch0_t;
2254
2255 /*!
2256  * @name Constants and macros for entire FTFA_XACCH0 register
2257  */
2258 /*@{*/
2259 #define HW_FTFA_XACCH0_ADDR(x)   ((x) + 0x1BU)
2260
2261 #define HW_FTFA_XACCH0(x)        (*(__I hw_ftfa_xacch0_t *) HW_FTFA_XACCH0_ADDR(x))
2262 #define HW_FTFA_XACCH0_RD(x)     (HW_FTFA_XACCH0(x).U)
2263 /*@}*/
2264
2265 /*
2266  * Constants & macros for individual FTFA_XACCH0 bitfields
2267  */
2268
2269 /*!
2270  * @name Register FTFA_XACCH0, field XA[7:0] (RO)
2271  *
2272  * Values:
2273  * - 0 - Associated segment is accessible in execute mode only (as an
2274  *     instruction fetch)
2275  * - 1 - Associated segment is accessible as data or in execute mode
2276  */
2277 /*@{*/
2278 #define BP_FTFA_XACCH0_XA    (0U)          /*!< Bit position for FTFA_XACCH0_XA. */
2279 #define BM_FTFA_XACCH0_XA    (0xFFU)       /*!< Bit mask for FTFA_XACCH0_XA. */
2280 #define BS_FTFA_XACCH0_XA    (8U)          /*!< Bit field size in bits for FTFA_XACCH0_XA. */
2281
2282 /*! @brief Read current value of the FTFA_XACCH0_XA field. */
2283 #define BR_FTFA_XACCH0_XA(x) (HW_FTFA_XACCH0(x).U)
2284 /*@}*/
2285
2286 /*******************************************************************************
2287  * HW_FTFA_XACCL3 - Execute-only Access Registers
2288  ******************************************************************************/
2289
2290 /*!
2291  * @brief HW_FTFA_XACCL3 - Execute-only Access Registers (RO)
2292  *
2293  * Reset value: 0x00U
2294  *
2295  * The XACC registers define which logical program flash segments are restricted
2296  * to data read or execute only or both data and instruction fetches. The eight
2297  * XACC registers allow up to 64 restricted segments of equal memory size.
2298  * Execute-only access register Program flash execute-only access bits XACCH0 XA[63:56]
2299  * XACCH1 XA[55:48] XACCH2 XA[47:40] XACCH3 XA[39:32] XACCL0 XA[31:24] XACCL1
2300  * XA[23:16] XACCL2 XA[15:8] XACCL3 XA[7:0] During the reset sequence, the XACC
2301  * registers are loaded with the logical AND of Program Flash IFR addresses A and B
2302  * as indicated in the following table. Execute-only access register Program
2303  * Flash IFR address A Program Flash IFR address B XACCH0 0xA3 0xAB XACCH1 0xA2 0xAA
2304  * XACCH2 0xA1 0xA9 XACCH3 0xA0 0xA8 XACCL0 0xA7 0xAF XACCL1 0xA6 0xAE XACCL2
2305  * 0xA5 0xAD XACCL3 0xA4 0xAC Use the Program Once command to program the
2306  * execute-only access control fields that are loaded during the reset sequence.
2307  */
2308 typedef union _hw_ftfa_xaccl3
2309 {
2310     uint8_t U;
2311     struct _hw_ftfa_xaccl3_bitfields
2312     {
2313         uint8_t XA : 8;                /*!< [7:0] Execute-only access control */
2314     } B;
2315 } hw_ftfa_xaccl3_t;
2316
2317 /*!
2318  * @name Constants and macros for entire FTFA_XACCL3 register
2319  */
2320 /*@{*/
2321 #define HW_FTFA_XACCL3_ADDR(x)   ((x) + 0x1CU)
2322
2323 #define HW_FTFA_XACCL3(x)        (*(__I hw_ftfa_xaccl3_t *) HW_FTFA_XACCL3_ADDR(x))
2324 #define HW_FTFA_XACCL3_RD(x)     (HW_FTFA_XACCL3(x).U)
2325 /*@}*/
2326
2327 /*
2328  * Constants & macros for individual FTFA_XACCL3 bitfields
2329  */
2330
2331 /*!
2332  * @name Register FTFA_XACCL3, field XA[7:0] (RO)
2333  *
2334  * Values:
2335  * - 0 - Associated segment is accessible in execute mode only (as an
2336  *     instruction fetch)
2337  * - 1 - Associated segment is accessible as data or in execute mode
2338  */
2339 /*@{*/
2340 #define BP_FTFA_XACCL3_XA    (0U)          /*!< Bit position for FTFA_XACCL3_XA. */
2341 #define BM_FTFA_XACCL3_XA    (0xFFU)       /*!< Bit mask for FTFA_XACCL3_XA. */
2342 #define BS_FTFA_XACCL3_XA    (8U)          /*!< Bit field size in bits for FTFA_XACCL3_XA. */
2343
2344 /*! @brief Read current value of the FTFA_XACCL3_XA field. */
2345 #define BR_FTFA_XACCL3_XA(x) (HW_FTFA_XACCL3(x).U)
2346 /*@}*/
2347
2348 /*******************************************************************************
2349  * HW_FTFA_XACCL2 - Execute-only Access Registers
2350  ******************************************************************************/
2351
2352 /*!
2353  * @brief HW_FTFA_XACCL2 - Execute-only Access Registers (RO)
2354  *
2355  * Reset value: 0x00U
2356  *
2357  * The XACC registers define which logical program flash segments are restricted
2358  * to data read or execute only or both data and instruction fetches. The eight
2359  * XACC registers allow up to 64 restricted segments of equal memory size.
2360  * Execute-only access register Program flash execute-only access bits XACCH0 XA[63:56]
2361  * XACCH1 XA[55:48] XACCH2 XA[47:40] XACCH3 XA[39:32] XACCL0 XA[31:24] XACCL1
2362  * XA[23:16] XACCL2 XA[15:8] XACCL3 XA[7:0] During the reset sequence, the XACC
2363  * registers are loaded with the logical AND of Program Flash IFR addresses A and B
2364  * as indicated in the following table. Execute-only access register Program
2365  * Flash IFR address A Program Flash IFR address B XACCH0 0xA3 0xAB XACCH1 0xA2 0xAA
2366  * XACCH2 0xA1 0xA9 XACCH3 0xA0 0xA8 XACCL0 0xA7 0xAF XACCL1 0xA6 0xAE XACCL2
2367  * 0xA5 0xAD XACCL3 0xA4 0xAC Use the Program Once command to program the
2368  * execute-only access control fields that are loaded during the reset sequence.
2369  */
2370 typedef union _hw_ftfa_xaccl2
2371 {
2372     uint8_t U;
2373     struct _hw_ftfa_xaccl2_bitfields
2374     {
2375         uint8_t XA : 8;                /*!< [7:0] Execute-only access control */
2376     } B;
2377 } hw_ftfa_xaccl2_t;
2378
2379 /*!
2380  * @name Constants and macros for entire FTFA_XACCL2 register
2381  */
2382 /*@{*/
2383 #define HW_FTFA_XACCL2_ADDR(x)   ((x) + 0x1DU)
2384
2385 #define HW_FTFA_XACCL2(x)        (*(__I hw_ftfa_xaccl2_t *) HW_FTFA_XACCL2_ADDR(x))
2386 #define HW_FTFA_XACCL2_RD(x)     (HW_FTFA_XACCL2(x).U)
2387 /*@}*/
2388
2389 /*
2390  * Constants & macros for individual FTFA_XACCL2 bitfields
2391  */
2392
2393 /*!
2394  * @name Register FTFA_XACCL2, field XA[7:0] (RO)
2395  *
2396  * Values:
2397  * - 0 - Associated segment is accessible in execute mode only (as an
2398  *     instruction fetch)
2399  * - 1 - Associated segment is accessible as data or in execute mode
2400  */
2401 /*@{*/
2402 #define BP_FTFA_XACCL2_XA    (0U)          /*!< Bit position for FTFA_XACCL2_XA. */
2403 #define BM_FTFA_XACCL2_XA    (0xFFU)       /*!< Bit mask for FTFA_XACCL2_XA. */
2404 #define BS_FTFA_XACCL2_XA    (8U)          /*!< Bit field size in bits for FTFA_XACCL2_XA. */
2405
2406 /*! @brief Read current value of the FTFA_XACCL2_XA field. */
2407 #define BR_FTFA_XACCL2_XA(x) (HW_FTFA_XACCL2(x).U)
2408 /*@}*/
2409
2410 /*******************************************************************************
2411  * HW_FTFA_XACCL1 - Execute-only Access Registers
2412  ******************************************************************************/
2413
2414 /*!
2415  * @brief HW_FTFA_XACCL1 - Execute-only Access Registers (RO)
2416  *
2417  * Reset value: 0x00U
2418  *
2419  * The XACC registers define which logical program flash segments are restricted
2420  * to data read or execute only or both data and instruction fetches. The eight
2421  * XACC registers allow up to 64 restricted segments of equal memory size.
2422  * Execute-only access register Program flash execute-only access bits XACCH0 XA[63:56]
2423  * XACCH1 XA[55:48] XACCH2 XA[47:40] XACCH3 XA[39:32] XACCL0 XA[31:24] XACCL1
2424  * XA[23:16] XACCL2 XA[15:8] XACCL3 XA[7:0] During the reset sequence, the XACC
2425  * registers are loaded with the logical AND of Program Flash IFR addresses A and B
2426  * as indicated in the following table. Execute-only access register Program
2427  * Flash IFR address A Program Flash IFR address B XACCH0 0xA3 0xAB XACCH1 0xA2 0xAA
2428  * XACCH2 0xA1 0xA9 XACCH3 0xA0 0xA8 XACCL0 0xA7 0xAF XACCL1 0xA6 0xAE XACCL2
2429  * 0xA5 0xAD XACCL3 0xA4 0xAC Use the Program Once command to program the
2430  * execute-only access control fields that are loaded during the reset sequence.
2431  */
2432 typedef union _hw_ftfa_xaccl1
2433 {
2434     uint8_t U;
2435     struct _hw_ftfa_xaccl1_bitfields
2436     {
2437         uint8_t XA : 8;                /*!< [7:0] Execute-only access control */
2438     } B;
2439 } hw_ftfa_xaccl1_t;
2440
2441 /*!
2442  * @name Constants and macros for entire FTFA_XACCL1 register
2443  */
2444 /*@{*/
2445 #define HW_FTFA_XACCL1_ADDR(x)   ((x) + 0x1EU)
2446
2447 #define HW_FTFA_XACCL1(x)        (*(__I hw_ftfa_xaccl1_t *) HW_FTFA_XACCL1_ADDR(x))
2448 #define HW_FTFA_XACCL1_RD(x)     (HW_FTFA_XACCL1(x).U)
2449 /*@}*/
2450
2451 /*
2452  * Constants & macros for individual FTFA_XACCL1 bitfields
2453  */
2454
2455 /*!
2456  * @name Register FTFA_XACCL1, field XA[7:0] (RO)
2457  *
2458  * Values:
2459  * - 0 - Associated segment is accessible in execute mode only (as an
2460  *     instruction fetch)
2461  * - 1 - Associated segment is accessible as data or in execute mode
2462  */
2463 /*@{*/
2464 #define BP_FTFA_XACCL1_XA    (0U)          /*!< Bit position for FTFA_XACCL1_XA. */
2465 #define BM_FTFA_XACCL1_XA    (0xFFU)       /*!< Bit mask for FTFA_XACCL1_XA. */
2466 #define BS_FTFA_XACCL1_XA    (8U)          /*!< Bit field size in bits for FTFA_XACCL1_XA. */
2467
2468 /*! @brief Read current value of the FTFA_XACCL1_XA field. */
2469 #define BR_FTFA_XACCL1_XA(x) (HW_FTFA_XACCL1(x).U)
2470 /*@}*/
2471
2472 /*******************************************************************************
2473  * HW_FTFA_XACCL0 - Execute-only Access Registers
2474  ******************************************************************************/
2475
2476 /*!
2477  * @brief HW_FTFA_XACCL0 - Execute-only Access Registers (RO)
2478  *
2479  * Reset value: 0x00U
2480  *
2481  * The XACC registers define which logical program flash segments are restricted
2482  * to data read or execute only or both data and instruction fetches. The eight
2483  * XACC registers allow up to 64 restricted segments of equal memory size.
2484  * Execute-only access register Program flash execute-only access bits XACCH0 XA[63:56]
2485  * XACCH1 XA[55:48] XACCH2 XA[47:40] XACCH3 XA[39:32] XACCL0 XA[31:24] XACCL1
2486  * XA[23:16] XACCL2 XA[15:8] XACCL3 XA[7:0] During the reset sequence, the XACC
2487  * registers are loaded with the logical AND of Program Flash IFR addresses A and B
2488  * as indicated in the following table. Execute-only access register Program
2489  * Flash IFR address A Program Flash IFR address B XACCH0 0xA3 0xAB XACCH1 0xA2 0xAA
2490  * XACCH2 0xA1 0xA9 XACCH3 0xA0 0xA8 XACCL0 0xA7 0xAF XACCL1 0xA6 0xAE XACCL2
2491  * 0xA5 0xAD XACCL3 0xA4 0xAC Use the Program Once command to program the
2492  * execute-only access control fields that are loaded during the reset sequence.
2493  */
2494 typedef union _hw_ftfa_xaccl0
2495 {
2496     uint8_t U;
2497     struct _hw_ftfa_xaccl0_bitfields
2498     {
2499         uint8_t XA : 8;                /*!< [7:0] Execute-only access control */
2500     } B;
2501 } hw_ftfa_xaccl0_t;
2502
2503 /*!
2504  * @name Constants and macros for entire FTFA_XACCL0 register
2505  */
2506 /*@{*/
2507 #define HW_FTFA_XACCL0_ADDR(x)   ((x) + 0x1FU)
2508
2509 #define HW_FTFA_XACCL0(x)        (*(__I hw_ftfa_xaccl0_t *) HW_FTFA_XACCL0_ADDR(x))
2510 #define HW_FTFA_XACCL0_RD(x)     (HW_FTFA_XACCL0(x).U)
2511 /*@}*/
2512
2513 /*
2514  * Constants & macros for individual FTFA_XACCL0 bitfields
2515  */
2516
2517 /*!
2518  * @name Register FTFA_XACCL0, field XA[7:0] (RO)
2519  *
2520  * Values:
2521  * - 0 - Associated segment is accessible in execute mode only (as an
2522  *     instruction fetch)
2523  * - 1 - Associated segment is accessible as data or in execute mode
2524  */
2525 /*@{*/
2526 #define BP_FTFA_XACCL0_XA    (0U)          /*!< Bit position for FTFA_XACCL0_XA. */
2527 #define BM_FTFA_XACCL0_XA    (0xFFU)       /*!< Bit mask for FTFA_XACCL0_XA. */
2528 #define BS_FTFA_XACCL0_XA    (8U)          /*!< Bit field size in bits for FTFA_XACCL0_XA. */
2529
2530 /*! @brief Read current value of the FTFA_XACCL0_XA field. */
2531 #define BR_FTFA_XACCL0_XA(x) (HW_FTFA_XACCL0(x).U)
2532 /*@}*/
2533
2534 /*******************************************************************************
2535  * HW_FTFA_SACCH3 - Supervisor-only Access Registers
2536  ******************************************************************************/
2537
2538 /*!
2539  * @brief HW_FTFA_SACCH3 - Supervisor-only Access Registers (RO)
2540  *
2541  * Reset value: 0x00U
2542  *
2543  * The SACC registers define which logical program flash segments are restricted
2544  * to supervisor only or user and supervisor access. The eight SACC registers
2545  * allow up to 64 restricted segments of equal memory size. Supervisor-only access
2546  * register Program flash supervisor-only access bits SACCH0 SA[63:56] SACCH1
2547  * SA[55:48] SACCH2 SA[47:40] SACCH3 SA[39:32] SACCL0 SA[31:24] SACCL1 SA[23:16]
2548  * SACCL2 SA[15:8] SACCL3 SA[7:0] During the reset sequence, the SACC registers are
2549  * loaded with the logical AND of Program Flash IFR addresses A and B as
2550  * indicated in the following table. Supervisor-only access register Program Flash IFR
2551  * address A Program Flash IFR address B SACCH0 0xB3 0xBB SACCH1 0xB2 0xBA SACCH2
2552  * 0xB1 0xB9 SACCH3 0xB0 0xB8 SACCL0 0xB7 0xBF SACCL1 0xB6 0xBE SACCL2 0xB5 0xBD
2553  * SACCL3 0xB4 0xBC Use the Program Once command to program the supervisor-only
2554  * access control fields that are loaded during the reset sequence.
2555  */
2556 typedef union _hw_ftfa_sacch3
2557 {
2558     uint8_t U;
2559     struct _hw_ftfa_sacch3_bitfields
2560     {
2561         uint8_t SA : 8;                /*!< [7:0] Supervisor-only access control */
2562     } B;
2563 } hw_ftfa_sacch3_t;
2564
2565 /*!
2566  * @name Constants and macros for entire FTFA_SACCH3 register
2567  */
2568 /*@{*/
2569 #define HW_FTFA_SACCH3_ADDR(x)   ((x) + 0x20U)
2570
2571 #define HW_FTFA_SACCH3(x)        (*(__I hw_ftfa_sacch3_t *) HW_FTFA_SACCH3_ADDR(x))
2572 #define HW_FTFA_SACCH3_RD(x)     (HW_FTFA_SACCH3(x).U)
2573 /*@}*/
2574
2575 /*
2576  * Constants & macros for individual FTFA_SACCH3 bitfields
2577  */
2578
2579 /*!
2580  * @name Register FTFA_SACCH3, field SA[7:0] (RO)
2581  *
2582  * Values:
2583  * - 0 - Associated segment is accessible in supervisor mode only
2584  * - 1 - Associated segment is accessible in user or supervisor mode
2585  */
2586 /*@{*/
2587 #define BP_FTFA_SACCH3_SA    (0U)          /*!< Bit position for FTFA_SACCH3_SA. */
2588 #define BM_FTFA_SACCH3_SA    (0xFFU)       /*!< Bit mask for FTFA_SACCH3_SA. */
2589 #define BS_FTFA_SACCH3_SA    (8U)          /*!< Bit field size in bits for FTFA_SACCH3_SA. */
2590
2591 /*! @brief Read current value of the FTFA_SACCH3_SA field. */
2592 #define BR_FTFA_SACCH3_SA(x) (HW_FTFA_SACCH3(x).U)
2593 /*@}*/
2594
2595 /*******************************************************************************
2596  * HW_FTFA_SACCH2 - Supervisor-only Access Registers
2597  ******************************************************************************/
2598
2599 /*!
2600  * @brief HW_FTFA_SACCH2 - Supervisor-only Access Registers (RO)
2601  *
2602  * Reset value: 0x00U
2603  *
2604  * The SACC registers define which logical program flash segments are restricted
2605  * to supervisor only or user and supervisor access. The eight SACC registers
2606  * allow up to 64 restricted segments of equal memory size. Supervisor-only access
2607  * register Program flash supervisor-only access bits SACCH0 SA[63:56] SACCH1
2608  * SA[55:48] SACCH2 SA[47:40] SACCH3 SA[39:32] SACCL0 SA[31:24] SACCL1 SA[23:16]
2609  * SACCL2 SA[15:8] SACCL3 SA[7:0] During the reset sequence, the SACC registers are
2610  * loaded with the logical AND of Program Flash IFR addresses A and B as
2611  * indicated in the following table. Supervisor-only access register Program Flash IFR
2612  * address A Program Flash IFR address B SACCH0 0xB3 0xBB SACCH1 0xB2 0xBA SACCH2
2613  * 0xB1 0xB9 SACCH3 0xB0 0xB8 SACCL0 0xB7 0xBF SACCL1 0xB6 0xBE SACCL2 0xB5 0xBD
2614  * SACCL3 0xB4 0xBC Use the Program Once command to program the supervisor-only
2615  * access control fields that are loaded during the reset sequence.
2616  */
2617 typedef union _hw_ftfa_sacch2
2618 {
2619     uint8_t U;
2620     struct _hw_ftfa_sacch2_bitfields
2621     {
2622         uint8_t SA : 8;                /*!< [7:0] Supervisor-only access control */
2623     } B;
2624 } hw_ftfa_sacch2_t;
2625
2626 /*!
2627  * @name Constants and macros for entire FTFA_SACCH2 register
2628  */
2629 /*@{*/
2630 #define HW_FTFA_SACCH2_ADDR(x)   ((x) + 0x21U)
2631
2632 #define HW_FTFA_SACCH2(x)        (*(__I hw_ftfa_sacch2_t *) HW_FTFA_SACCH2_ADDR(x))
2633 #define HW_FTFA_SACCH2_RD(x)     (HW_FTFA_SACCH2(x).U)
2634 /*@}*/
2635
2636 /*
2637  * Constants & macros for individual FTFA_SACCH2 bitfields
2638  */
2639
2640 /*!
2641  * @name Register FTFA_SACCH2, field SA[7:0] (RO)
2642  *
2643  * Values:
2644  * - 0 - Associated segment is accessible in supervisor mode only
2645  * - 1 - Associated segment is accessible in user or supervisor mode
2646  */
2647 /*@{*/
2648 #define BP_FTFA_SACCH2_SA    (0U)          /*!< Bit position for FTFA_SACCH2_SA. */
2649 #define BM_FTFA_SACCH2_SA    (0xFFU)       /*!< Bit mask for FTFA_SACCH2_SA. */
2650 #define BS_FTFA_SACCH2_SA    (8U)          /*!< Bit field size in bits for FTFA_SACCH2_SA. */
2651
2652 /*! @brief Read current value of the FTFA_SACCH2_SA field. */
2653 #define BR_FTFA_SACCH2_SA(x) (HW_FTFA_SACCH2(x).U)
2654 /*@}*/
2655
2656 /*******************************************************************************
2657  * HW_FTFA_SACCH1 - Supervisor-only Access Registers
2658  ******************************************************************************/
2659
2660 /*!
2661  * @brief HW_FTFA_SACCH1 - Supervisor-only Access Registers (RO)
2662  *
2663  * Reset value: 0x00U
2664  *
2665  * The SACC registers define which logical program flash segments are restricted
2666  * to supervisor only or user and supervisor access. The eight SACC registers
2667  * allow up to 64 restricted segments of equal memory size. Supervisor-only access
2668  * register Program flash supervisor-only access bits SACCH0 SA[63:56] SACCH1
2669  * SA[55:48] SACCH2 SA[47:40] SACCH3 SA[39:32] SACCL0 SA[31:24] SACCL1 SA[23:16]
2670  * SACCL2 SA[15:8] SACCL3 SA[7:0] During the reset sequence, the SACC registers are
2671  * loaded with the logical AND of Program Flash IFR addresses A and B as
2672  * indicated in the following table. Supervisor-only access register Program Flash IFR
2673  * address A Program Flash IFR address B SACCH0 0xB3 0xBB SACCH1 0xB2 0xBA SACCH2
2674  * 0xB1 0xB9 SACCH3 0xB0 0xB8 SACCL0 0xB7 0xBF SACCL1 0xB6 0xBE SACCL2 0xB5 0xBD
2675  * SACCL3 0xB4 0xBC Use the Program Once command to program the supervisor-only
2676  * access control fields that are loaded during the reset sequence.
2677  */
2678 typedef union _hw_ftfa_sacch1
2679 {
2680     uint8_t U;
2681     struct _hw_ftfa_sacch1_bitfields
2682     {
2683         uint8_t SA : 8;                /*!< [7:0] Supervisor-only access control */
2684     } B;
2685 } hw_ftfa_sacch1_t;
2686
2687 /*!
2688  * @name Constants and macros for entire FTFA_SACCH1 register
2689  */
2690 /*@{*/
2691 #define HW_FTFA_SACCH1_ADDR(x)   ((x) + 0x22U)
2692
2693 #define HW_FTFA_SACCH1(x)        (*(__I hw_ftfa_sacch1_t *) HW_FTFA_SACCH1_ADDR(x))
2694 #define HW_FTFA_SACCH1_RD(x)     (HW_FTFA_SACCH1(x).U)
2695 /*@}*/
2696
2697 /*
2698  * Constants & macros for individual FTFA_SACCH1 bitfields
2699  */
2700
2701 /*!
2702  * @name Register FTFA_SACCH1, field SA[7:0] (RO)
2703  *
2704  * Values:
2705  * - 0 - Associated segment is accessible in supervisor mode only
2706  * - 1 - Associated segment is accessible in user or supervisor mode
2707  */
2708 /*@{*/
2709 #define BP_FTFA_SACCH1_SA    (0U)          /*!< Bit position for FTFA_SACCH1_SA. */
2710 #define BM_FTFA_SACCH1_SA    (0xFFU)       /*!< Bit mask for FTFA_SACCH1_SA. */
2711 #define BS_FTFA_SACCH1_SA    (8U)          /*!< Bit field size in bits for FTFA_SACCH1_SA. */
2712
2713 /*! @brief Read current value of the FTFA_SACCH1_SA field. */
2714 #define BR_FTFA_SACCH1_SA(x) (HW_FTFA_SACCH1(x).U)
2715 /*@}*/
2716
2717 /*******************************************************************************
2718  * HW_FTFA_SACCH0 - Supervisor-only Access Registers
2719  ******************************************************************************/
2720
2721 /*!
2722  * @brief HW_FTFA_SACCH0 - Supervisor-only Access Registers (RO)
2723  *
2724  * Reset value: 0x00U
2725  *
2726  * The SACC registers define which logical program flash segments are restricted
2727  * to supervisor only or user and supervisor access. The eight SACC registers
2728  * allow up to 64 restricted segments of equal memory size. Supervisor-only access
2729  * register Program flash supervisor-only access bits SACCH0 SA[63:56] SACCH1
2730  * SA[55:48] SACCH2 SA[47:40] SACCH3 SA[39:32] SACCL0 SA[31:24] SACCL1 SA[23:16]
2731  * SACCL2 SA[15:8] SACCL3 SA[7:0] During the reset sequence, the SACC registers are
2732  * loaded with the logical AND of Program Flash IFR addresses A and B as
2733  * indicated in the following table. Supervisor-only access register Program Flash IFR
2734  * address A Program Flash IFR address B SACCH0 0xB3 0xBB SACCH1 0xB2 0xBA SACCH2
2735  * 0xB1 0xB9 SACCH3 0xB0 0xB8 SACCL0 0xB7 0xBF SACCL1 0xB6 0xBE SACCL2 0xB5 0xBD
2736  * SACCL3 0xB4 0xBC Use the Program Once command to program the supervisor-only
2737  * access control fields that are loaded during the reset sequence.
2738  */
2739 typedef union _hw_ftfa_sacch0
2740 {
2741     uint8_t U;
2742     struct _hw_ftfa_sacch0_bitfields
2743     {
2744         uint8_t SA : 8;                /*!< [7:0] Supervisor-only access control */
2745     } B;
2746 } hw_ftfa_sacch0_t;
2747
2748 /*!
2749  * @name Constants and macros for entire FTFA_SACCH0 register
2750  */
2751 /*@{*/
2752 #define HW_FTFA_SACCH0_ADDR(x)   ((x) + 0x23U)
2753
2754 #define HW_FTFA_SACCH0(x)        (*(__I hw_ftfa_sacch0_t *) HW_FTFA_SACCH0_ADDR(x))
2755 #define HW_FTFA_SACCH0_RD(x)     (HW_FTFA_SACCH0(x).U)
2756 /*@}*/
2757
2758 /*
2759  * Constants & macros for individual FTFA_SACCH0 bitfields
2760  */
2761
2762 /*!
2763  * @name Register FTFA_SACCH0, field SA[7:0] (RO)
2764  *
2765  * Values:
2766  * - 0 - Associated segment is accessible in supervisor mode only
2767  * - 1 - Associated segment is accessible in user or supervisor mode
2768  */
2769 /*@{*/
2770 #define BP_FTFA_SACCH0_SA    (0U)          /*!< Bit position for FTFA_SACCH0_SA. */
2771 #define BM_FTFA_SACCH0_SA    (0xFFU)       /*!< Bit mask for FTFA_SACCH0_SA. */
2772 #define BS_FTFA_SACCH0_SA    (8U)          /*!< Bit field size in bits for FTFA_SACCH0_SA. */
2773
2774 /*! @brief Read current value of the FTFA_SACCH0_SA field. */
2775 #define BR_FTFA_SACCH0_SA(x) (HW_FTFA_SACCH0(x).U)
2776 /*@}*/
2777
2778 /*******************************************************************************
2779  * HW_FTFA_SACCL3 - Supervisor-only Access Registers
2780  ******************************************************************************/
2781
2782 /*!
2783  * @brief HW_FTFA_SACCL3 - Supervisor-only Access Registers (RO)
2784  *
2785  * Reset value: 0x00U
2786  *
2787  * The SACC registers define which logical program flash segments are restricted
2788  * to supervisor only or user and supervisor access. The eight SACC registers
2789  * allow up to 64 restricted segments of equal memory size. Supervisor-only access
2790  * register Program flash supervisor-only access bits SACCH0 SA[63:56] SACCH1
2791  * SA[55:48] SACCH2 SA[47:40] SACCH3 SA[39:32] SACCL0 SA[31:24] SACCL1 SA[23:16]
2792  * SACCL2 SA[15:8] SACCL3 SA[7:0] During the reset sequence, the SACC registers are
2793  * loaded with the logical AND of Program Flash IFR addresses A and B as
2794  * indicated in the following table. Supervisor-only access register Program Flash IFR
2795  * address A Program Flash IFR address B SACCH0 0xB3 0xBB SACCH1 0xB2 0xBA SACCH2
2796  * 0xB1 0xB9 SACCH3 0xB0 0xB8 SACCL0 0xB7 0xBF SACCL1 0xB6 0xBE SACCL2 0xB5 0xBD
2797  * SACCL3 0xB4 0xBC Use the Program Once command to program the supervisor-only
2798  * access control fields that are loaded during the reset sequence.
2799  */
2800 typedef union _hw_ftfa_saccl3
2801 {
2802     uint8_t U;
2803     struct _hw_ftfa_saccl3_bitfields
2804     {
2805         uint8_t SA : 8;                /*!< [7:0] Supervisor-only access control */
2806     } B;
2807 } hw_ftfa_saccl3_t;
2808
2809 /*!
2810  * @name Constants and macros for entire FTFA_SACCL3 register
2811  */
2812 /*@{*/
2813 #define HW_FTFA_SACCL3_ADDR(x)   ((x) + 0x24U)
2814
2815 #define HW_FTFA_SACCL3(x)        (*(__I hw_ftfa_saccl3_t *) HW_FTFA_SACCL3_ADDR(x))
2816 #define HW_FTFA_SACCL3_RD(x)     (HW_FTFA_SACCL3(x).U)
2817 /*@}*/
2818
2819 /*
2820  * Constants & macros for individual FTFA_SACCL3 bitfields
2821  */
2822
2823 /*!
2824  * @name Register FTFA_SACCL3, field SA[7:0] (RO)
2825  *
2826  * Values:
2827  * - 0 - Associated segment is accessible in supervisor mode only
2828  * - 1 - Associated segment is accessible in user or supervisor mode
2829  */
2830 /*@{*/
2831 #define BP_FTFA_SACCL3_SA    (0U)          /*!< Bit position for FTFA_SACCL3_SA. */
2832 #define BM_FTFA_SACCL3_SA    (0xFFU)       /*!< Bit mask for FTFA_SACCL3_SA. */
2833 #define BS_FTFA_SACCL3_SA    (8U)          /*!< Bit field size in bits for FTFA_SACCL3_SA. */
2834
2835 /*! @brief Read current value of the FTFA_SACCL3_SA field. */
2836 #define BR_FTFA_SACCL3_SA(x) (HW_FTFA_SACCL3(x).U)
2837 /*@}*/
2838
2839 /*******************************************************************************
2840  * HW_FTFA_SACCL2 - Supervisor-only Access Registers
2841  ******************************************************************************/
2842
2843 /*!
2844  * @brief HW_FTFA_SACCL2 - Supervisor-only Access Registers (RO)
2845  *
2846  * Reset value: 0x00U
2847  *
2848  * The SACC registers define which logical program flash segments are restricted
2849  * to supervisor only or user and supervisor access. The eight SACC registers
2850  * allow up to 64 restricted segments of equal memory size. Supervisor-only access
2851  * register Program flash supervisor-only access bits SACCH0 SA[63:56] SACCH1
2852  * SA[55:48] SACCH2 SA[47:40] SACCH3 SA[39:32] SACCL0 SA[31:24] SACCL1 SA[23:16]
2853  * SACCL2 SA[15:8] SACCL3 SA[7:0] During the reset sequence, the SACC registers are
2854  * loaded with the logical AND of Program Flash IFR addresses A and B as
2855  * indicated in the following table. Supervisor-only access register Program Flash IFR
2856  * address A Program Flash IFR address B SACCH0 0xB3 0xBB SACCH1 0xB2 0xBA SACCH2
2857  * 0xB1 0xB9 SACCH3 0xB0 0xB8 SACCL0 0xB7 0xBF SACCL1 0xB6 0xBE SACCL2 0xB5 0xBD
2858  * SACCL3 0xB4 0xBC Use the Program Once command to program the supervisor-only
2859  * access control fields that are loaded during the reset sequence.
2860  */
2861 typedef union _hw_ftfa_saccl2
2862 {
2863     uint8_t U;
2864     struct _hw_ftfa_saccl2_bitfields
2865     {
2866         uint8_t SA : 8;                /*!< [7:0] Supervisor-only access control */
2867     } B;
2868 } hw_ftfa_saccl2_t;
2869
2870 /*!
2871  * @name Constants and macros for entire FTFA_SACCL2 register
2872  */
2873 /*@{*/
2874 #define HW_FTFA_SACCL2_ADDR(x)   ((x) + 0x25U)
2875
2876 #define HW_FTFA_SACCL2(x)        (*(__I hw_ftfa_saccl2_t *) HW_FTFA_SACCL2_ADDR(x))
2877 #define HW_FTFA_SACCL2_RD(x)     (HW_FTFA_SACCL2(x).U)
2878 /*@}*/
2879
2880 /*
2881  * Constants & macros for individual FTFA_SACCL2 bitfields
2882  */
2883
2884 /*!
2885  * @name Register FTFA_SACCL2, field SA[7:0] (RO)
2886  *
2887  * Values:
2888  * - 0 - Associated segment is accessible in supervisor mode only
2889  * - 1 - Associated segment is accessible in user or supervisor mode
2890  */
2891 /*@{*/
2892 #define BP_FTFA_SACCL2_SA    (0U)          /*!< Bit position for FTFA_SACCL2_SA. */
2893 #define BM_FTFA_SACCL2_SA    (0xFFU)       /*!< Bit mask for FTFA_SACCL2_SA. */
2894 #define BS_FTFA_SACCL2_SA    (8U)          /*!< Bit field size in bits for FTFA_SACCL2_SA. */
2895
2896 /*! @brief Read current value of the FTFA_SACCL2_SA field. */
2897 #define BR_FTFA_SACCL2_SA(x) (HW_FTFA_SACCL2(x).U)
2898 /*@}*/
2899
2900 /*******************************************************************************
2901  * HW_FTFA_SACCL1 - Supervisor-only Access Registers
2902  ******************************************************************************/
2903
2904 /*!
2905  * @brief HW_FTFA_SACCL1 - Supervisor-only Access Registers (RO)
2906  *
2907  * Reset value: 0x00U
2908  *
2909  * The SACC registers define which logical program flash segments are restricted
2910  * to supervisor only or user and supervisor access. The eight SACC registers
2911  * allow up to 64 restricted segments of equal memory size. Supervisor-only access
2912  * register Program flash supervisor-only access bits SACCH0 SA[63:56] SACCH1
2913  * SA[55:48] SACCH2 SA[47:40] SACCH3 SA[39:32] SACCL0 SA[31:24] SACCL1 SA[23:16]
2914  * SACCL2 SA[15:8] SACCL3 SA[7:0] During the reset sequence, the SACC registers are
2915  * loaded with the logical AND of Program Flash IFR addresses A and B as
2916  * indicated in the following table. Supervisor-only access register Program Flash IFR
2917  * address A Program Flash IFR address B SACCH0 0xB3 0xBB SACCH1 0xB2 0xBA SACCH2
2918  * 0xB1 0xB9 SACCH3 0xB0 0xB8 SACCL0 0xB7 0xBF SACCL1 0xB6 0xBE SACCL2 0xB5 0xBD
2919  * SACCL3 0xB4 0xBC Use the Program Once command to program the supervisor-only
2920  * access control fields that are loaded during the reset sequence.
2921  */
2922 typedef union _hw_ftfa_saccl1
2923 {
2924     uint8_t U;
2925     struct _hw_ftfa_saccl1_bitfields
2926     {
2927         uint8_t SA : 8;                /*!< [7:0] Supervisor-only access control */
2928     } B;
2929 } hw_ftfa_saccl1_t;
2930
2931 /*!
2932  * @name Constants and macros for entire FTFA_SACCL1 register
2933  */
2934 /*@{*/
2935 #define HW_FTFA_SACCL1_ADDR(x)   ((x) + 0x26U)
2936
2937 #define HW_FTFA_SACCL1(x)        (*(__I hw_ftfa_saccl1_t *) HW_FTFA_SACCL1_ADDR(x))
2938 #define HW_FTFA_SACCL1_RD(x)     (HW_FTFA_SACCL1(x).U)
2939 /*@}*/
2940
2941 /*
2942  * Constants & macros for individual FTFA_SACCL1 bitfields
2943  */
2944
2945 /*!
2946  * @name Register FTFA_SACCL1, field SA[7:0] (RO)
2947  *
2948  * Values:
2949  * - 0 - Associated segment is accessible in supervisor mode only
2950  * - 1 - Associated segment is accessible in user or supervisor mode
2951  */
2952 /*@{*/
2953 #define BP_FTFA_SACCL1_SA    (0U)          /*!< Bit position for FTFA_SACCL1_SA. */
2954 #define BM_FTFA_SACCL1_SA    (0xFFU)       /*!< Bit mask for FTFA_SACCL1_SA. */
2955 #define BS_FTFA_SACCL1_SA    (8U)          /*!< Bit field size in bits for FTFA_SACCL1_SA. */
2956
2957 /*! @brief Read current value of the FTFA_SACCL1_SA field. */
2958 #define BR_FTFA_SACCL1_SA(x) (HW_FTFA_SACCL1(x).U)
2959 /*@}*/
2960
2961 /*******************************************************************************
2962  * HW_FTFA_SACCL0 - Supervisor-only Access Registers
2963  ******************************************************************************/
2964
2965 /*!
2966  * @brief HW_FTFA_SACCL0 - Supervisor-only Access Registers (RO)
2967  *
2968  * Reset value: 0x00U
2969  *
2970  * The SACC registers define which logical program flash segments are restricted
2971  * to supervisor only or user and supervisor access. The eight SACC registers
2972  * allow up to 64 restricted segments of equal memory size. Supervisor-only access
2973  * register Program flash supervisor-only access bits SACCH0 SA[63:56] SACCH1
2974  * SA[55:48] SACCH2 SA[47:40] SACCH3 SA[39:32] SACCL0 SA[31:24] SACCL1 SA[23:16]
2975  * SACCL2 SA[15:8] SACCL3 SA[7:0] During the reset sequence, the SACC registers are
2976  * loaded with the logical AND of Program Flash IFR addresses A and B as
2977  * indicated in the following table. Supervisor-only access register Program Flash IFR
2978  * address A Program Flash IFR address B SACCH0 0xB3 0xBB SACCH1 0xB2 0xBA SACCH2
2979  * 0xB1 0xB9 SACCH3 0xB0 0xB8 SACCL0 0xB7 0xBF SACCL1 0xB6 0xBE SACCL2 0xB5 0xBD
2980  * SACCL3 0xB4 0xBC Use the Program Once command to program the supervisor-only
2981  * access control fields that are loaded during the reset sequence.
2982  */
2983 typedef union _hw_ftfa_saccl0
2984 {
2985     uint8_t U;
2986     struct _hw_ftfa_saccl0_bitfields
2987     {
2988         uint8_t SA : 8;                /*!< [7:0] Supervisor-only access control */
2989     } B;
2990 } hw_ftfa_saccl0_t;
2991
2992 /*!
2993  * @name Constants and macros for entire FTFA_SACCL0 register
2994  */
2995 /*@{*/
2996 #define HW_FTFA_SACCL0_ADDR(x)   ((x) + 0x27U)
2997
2998 #define HW_FTFA_SACCL0(x)        (*(__I hw_ftfa_saccl0_t *) HW_FTFA_SACCL0_ADDR(x))
2999 #define HW_FTFA_SACCL0_RD(x)     (HW_FTFA_SACCL0(x).U)
3000 /*@}*/
3001
3002 /*
3003  * Constants & macros for individual FTFA_SACCL0 bitfields
3004  */
3005
3006 /*!
3007  * @name Register FTFA_SACCL0, field SA[7:0] (RO)
3008  *
3009  * Values:
3010  * - 0 - Associated segment is accessible in supervisor mode only
3011  * - 1 - Associated segment is accessible in user or supervisor mode
3012  */
3013 /*@{*/
3014 #define BP_FTFA_SACCL0_SA    (0U)          /*!< Bit position for FTFA_SACCL0_SA. */
3015 #define BM_FTFA_SACCL0_SA    (0xFFU)       /*!< Bit mask for FTFA_SACCL0_SA. */
3016 #define BS_FTFA_SACCL0_SA    (8U)          /*!< Bit field size in bits for FTFA_SACCL0_SA. */
3017
3018 /*! @brief Read current value of the FTFA_SACCL0_SA field. */
3019 #define BR_FTFA_SACCL0_SA(x) (HW_FTFA_SACCL0(x).U)
3020 /*@}*/
3021
3022 /*******************************************************************************
3023  * HW_FTFA_FACSS - Flash Access Segment Size Register
3024  ******************************************************************************/
3025
3026 /*!
3027  * @brief HW_FTFA_FACSS - Flash Access Segment Size Register (RO)
3028  *
3029  * Reset value: 0x00U
3030  *
3031  * The flash access segment size register determines which bits in the address
3032  * are used to index into the SACC and XACC bitmaps to get the appropriate
3033  * permission flags. All bits in the register are read-only. The contents of this
3034  * register are loaded during the reset sequence.
3035  */
3036 typedef union _hw_ftfa_facss
3037 {
3038     uint8_t U;
3039     struct _hw_ftfa_facss_bitfields
3040     {
3041         uint8_t SGSIZE : 8;            /*!< [7:0] Segment Size */
3042     } B;
3043 } hw_ftfa_facss_t;
3044
3045 /*!
3046  * @name Constants and macros for entire FTFA_FACSS register
3047  */
3048 /*@{*/
3049 #define HW_FTFA_FACSS_ADDR(x)    ((x) + 0x28U)
3050
3051 #define HW_FTFA_FACSS(x)         (*(__I hw_ftfa_facss_t *) HW_FTFA_FACSS_ADDR(x))
3052 #define HW_FTFA_FACSS_RD(x)      (HW_FTFA_FACSS(x).U)
3053 /*@}*/
3054
3055 /*
3056  * Constants & macros for individual FTFA_FACSS bitfields
3057  */
3058
3059 /*!
3060  * @name Register FTFA_FACSS, field SGSIZE[7:0] (RO)
3061  *
3062  * The segment size is a fixed value based on the available program flash size
3063  * divided by NUMSG. Program Flash Size Segment Size Segment Size Encoding 64
3064  * KBytes 2 KBytes 0x3 128 KBytes 4 KBytes 0x4 160 KBytes 4 KBytes 0x4 256 KBytes 4
3065  * KBytes 0x4 512 KBytes 8 KBytes 0x5
3066  */
3067 /*@{*/
3068 #define BP_FTFA_FACSS_SGSIZE (0U)          /*!< Bit position for FTFA_FACSS_SGSIZE. */
3069 #define BM_FTFA_FACSS_SGSIZE (0xFFU)       /*!< Bit mask for FTFA_FACSS_SGSIZE. */
3070 #define BS_FTFA_FACSS_SGSIZE (8U)          /*!< Bit field size in bits for FTFA_FACSS_SGSIZE. */
3071
3072 /*! @brief Read current value of the FTFA_FACSS_SGSIZE field. */
3073 #define BR_FTFA_FACSS_SGSIZE(x) (HW_FTFA_FACSS(x).U)
3074 /*@}*/
3075
3076 /*******************************************************************************
3077  * HW_FTFA_FACSN - Flash Access Segment Number Register
3078  ******************************************************************************/
3079
3080 /*!
3081  * @brief HW_FTFA_FACSN - Flash Access Segment Number Register (RO)
3082  *
3083  * Reset value: 0x00U
3084  *
3085  * The flash access segment number register provides the number of program flash
3086  * segments that are available for XACC and SACC permissions. All bits in the
3087  * register are read-only. The contents of this register are loaded during the
3088  * reset sequence.
3089  */
3090 typedef union _hw_ftfa_facsn
3091 {
3092     uint8_t U;
3093     struct _hw_ftfa_facsn_bitfields
3094     {
3095         uint8_t NUMSG : 8;             /*!< [7:0] Number of Segments Indicator */
3096     } B;
3097 } hw_ftfa_facsn_t;
3098
3099 /*!
3100  * @name Constants and macros for entire FTFA_FACSN register
3101  */
3102 /*@{*/
3103 #define HW_FTFA_FACSN_ADDR(x)    ((x) + 0x2BU)
3104
3105 #define HW_FTFA_FACSN(x)         (*(__I hw_ftfa_facsn_t *) HW_FTFA_FACSN_ADDR(x))
3106 #define HW_FTFA_FACSN_RD(x)      (HW_FTFA_FACSN(x).U)
3107 /*@}*/
3108
3109 /*
3110  * Constants & macros for individual FTFA_FACSN bitfields
3111  */
3112
3113 /*!
3114  * @name Register FTFA_FACSN, field NUMSG[7:0] (RO)
3115  *
3116  * The NUMSG field indicates the number of equal-sized segments in the program
3117  * flash.
3118  *
3119  * Values:
3120  * - 100000 - Program flash memory is divided into 32 segments (64 Kbytes, 128
3121  *     Kbytes)
3122  * - 101000 - Program flash memory is divided into 40 segments (160 Kbytes)
3123  * - 1000000 - Program flash memory is divided into 64 segments (256 Kbytes, 512
3124  *     Kbytes)
3125  */
3126 /*@{*/
3127 #define BP_FTFA_FACSN_NUMSG  (0U)          /*!< Bit position for FTFA_FACSN_NUMSG. */
3128 #define BM_FTFA_FACSN_NUMSG  (0xFFU)       /*!< Bit mask for FTFA_FACSN_NUMSG. */
3129 #define BS_FTFA_FACSN_NUMSG  (8U)          /*!< Bit field size in bits for FTFA_FACSN_NUMSG. */
3130
3131 /*! @brief Read current value of the FTFA_FACSN_NUMSG field. */
3132 #define BR_FTFA_FACSN_NUMSG(x) (HW_FTFA_FACSN(x).U)
3133 /*@}*/
3134
3135 /*******************************************************************************
3136  * hw_ftfa_t - module struct
3137  ******************************************************************************/
3138 /*!
3139  * @brief All FTFA module registers.
3140  */
3141 #pragma pack(1)
3142 typedef struct _hw_ftfa
3143 {
3144     __IO hw_ftfa_fstat_t FSTAT;            /*!< [0x0] Flash Status Register */
3145     __IO hw_ftfa_fcnfg_t FCNFG;            /*!< [0x1] Flash Configuration Register */
3146     __I hw_ftfa_fsec_t FSEC;               /*!< [0x2] Flash Security Register */
3147     __I hw_ftfa_fopt_t FOPT;               /*!< [0x3] Flash Option Register */
3148     __IO hw_ftfa_fccob3_t FCCOB3;          /*!< [0x4] Flash Common Command Object Registers */
3149     __IO hw_ftfa_fccob2_t FCCOB2;          /*!< [0x5] Flash Common Command Object Registers */
3150     __IO hw_ftfa_fccob1_t FCCOB1;          /*!< [0x6] Flash Common Command Object Registers */
3151     __IO hw_ftfa_fccob0_t FCCOB0;          /*!< [0x7] Flash Common Command Object Registers */
3152     __IO hw_ftfa_fccob7_t FCCOB7;          /*!< [0x8] Flash Common Command Object Registers */
3153     __IO hw_ftfa_fccob6_t FCCOB6;          /*!< [0x9] Flash Common Command Object Registers */
3154     __IO hw_ftfa_fccob5_t FCCOB5;          /*!< [0xA] Flash Common Command Object Registers */
3155     __IO hw_ftfa_fccob4_t FCCOB4;          /*!< [0xB] Flash Common Command Object Registers */
3156     __IO hw_ftfa_fccobb_t FCCOBB;          /*!< [0xC] Flash Common Command Object Registers */
3157     __IO hw_ftfa_fccoba_t FCCOBA;          /*!< [0xD] Flash Common Command Object Registers */
3158     __IO hw_ftfa_fccob9_t FCCOB9;          /*!< [0xE] Flash Common Command Object Registers */
3159     __IO hw_ftfa_fccob8_t FCCOB8;          /*!< [0xF] Flash Common Command Object Registers */
3160     __IO hw_ftfa_fprot3_t FPROT3;          /*!< [0x10] Program Flash Protection Registers */
3161     __IO hw_ftfa_fprot2_t FPROT2;          /*!< [0x11] Program Flash Protection Registers */
3162     __IO hw_ftfa_fprot1_t FPROT1;          /*!< [0x12] Program Flash Protection Registers */
3163     __IO hw_ftfa_fprot0_t FPROT0;          /*!< [0x13] Program Flash Protection Registers */
3164     uint8_t _reserved0[4];
3165     __I hw_ftfa_xacch3_t XACCH3;           /*!< [0x18] Execute-only Access Registers */
3166     __I hw_ftfa_xacch2_t XACCH2;           /*!< [0x19] Execute-only Access Registers */
3167     __I hw_ftfa_xacch1_t XACCH1;           /*!< [0x1A] Execute-only Access Registers */
3168     __I hw_ftfa_xacch0_t XACCH0;           /*!< [0x1B] Execute-only Access Registers */
3169     __I hw_ftfa_xaccl3_t XACCL3;           /*!< [0x1C] Execute-only Access Registers */
3170     __I hw_ftfa_xaccl2_t XACCL2;           /*!< [0x1D] Execute-only Access Registers */
3171     __I hw_ftfa_xaccl1_t XACCL1;           /*!< [0x1E] Execute-only Access Registers */
3172     __I hw_ftfa_xaccl0_t XACCL0;           /*!< [0x1F] Execute-only Access Registers */
3173     __I hw_ftfa_sacch3_t SACCH3;           /*!< [0x20] Supervisor-only Access Registers */
3174     __I hw_ftfa_sacch2_t SACCH2;           /*!< [0x21] Supervisor-only Access Registers */
3175     __I hw_ftfa_sacch1_t SACCH1;           /*!< [0x22] Supervisor-only Access Registers */
3176     __I hw_ftfa_sacch0_t SACCH0;           /*!< [0x23] Supervisor-only Access Registers */
3177     __I hw_ftfa_saccl3_t SACCL3;           /*!< [0x24] Supervisor-only Access Registers */
3178     __I hw_ftfa_saccl2_t SACCL2;           /*!< [0x25] Supervisor-only Access Registers */
3179     __I hw_ftfa_saccl1_t SACCL1;           /*!< [0x26] Supervisor-only Access Registers */
3180     __I hw_ftfa_saccl0_t SACCL0;           /*!< [0x27] Supervisor-only Access Registers */
3181     __I hw_ftfa_facss_t FACSS;             /*!< [0x28] Flash Access Segment Size Register */
3182     uint8_t _reserved1[2];
3183     __I hw_ftfa_facsn_t FACSN;             /*!< [0x2B] Flash Access Segment Number Register */
3184 } hw_ftfa_t;
3185 #pragma pack()
3186
3187 /*! @brief Macro to access all FTFA registers. */
3188 /*! @param x FTFA module instance base address. */
3189 /*! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
3190  *     use the '&' operator, like <code>&HW_FTFA(FTFA_BASE)</code>. */
3191 #define HW_FTFA(x)     (*(hw_ftfa_t *)(x))
3192
3193 #endif /* __HW_FTFA_REGISTERS_H__ */
3194 /* EOF */