Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of target-mcu-k64f by
MK64F12_fmc.h
00001 /* 00002 ** ################################################################### 00003 ** Compilers: Keil ARM C/C++ Compiler 00004 ** Freescale C/C++ for Embedded ARM 00005 ** GNU C Compiler 00006 ** IAR ANSI C/C++ Compiler for ARM 00007 ** 00008 ** Reference manual: K64P144M120SF5RM, Rev.2, January 2014 00009 ** Version: rev. 2.5, 2014-02-10 00010 ** Build: b140604 00011 ** 00012 ** Abstract: 00013 ** Extension to the CMSIS register access layer header. 00014 ** 00015 ** Copyright (c) 2014 Freescale Semiconductor, Inc. 00016 ** All rights reserved. 00017 ** 00018 ** (C) COPYRIGHT 2015-2015 ARM Limited 00019 ** ALL RIGHTS RESERVED 00020 ** 00021 ** Redistribution and use in source and binary forms, with or without modification, 00022 ** are permitted provided that the following conditions are met: 00023 ** 00024 ** o Redistributions of source code must retain the above copyright notice, this list 00025 ** of conditions and the following disclaimer. 00026 ** 00027 ** o Redistributions in binary form must reproduce the above copyright notice, this 00028 ** list of conditions and the following disclaimer in the documentation and/or 00029 ** other materials provided with the distribution. 00030 ** 00031 ** o Neither the name of Freescale Semiconductor, Inc. nor the names of its 00032 ** contributors may be used to endorse or promote products derived from this 00033 ** software without specific prior written permission. 00034 ** 00035 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 00036 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00037 ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00038 ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 00039 ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00040 ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00041 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 00042 ** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00043 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00044 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00045 ** 00046 ** http: www.freescale.com 00047 ** mail: support@freescale.com 00048 ** 00049 ** Revisions: 00050 ** - rev. 1.0 (2013-08-12) 00051 ** Initial version. 00052 ** - rev. 2.0 (2013-10-29) 00053 ** Register accessor macros added to the memory map. 00054 ** Symbols for Processor Expert memory map compatibility added to the memory map. 00055 ** Startup file for gcc has been updated according to CMSIS 3.2. 00056 ** System initialization updated. 00057 ** MCG - registers updated. 00058 ** PORTA, PORTB, PORTC, PORTE - registers for digital filter removed. 00059 ** - rev. 2.1 (2013-10-30) 00060 ** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled. 00061 ** - rev. 2.2 (2013-12-09) 00062 ** DMA - EARS register removed. 00063 ** AIPS0, AIPS1 - MPRA register updated. 00064 ** - rev. 2.3 (2014-01-24) 00065 ** Update according to reference manual rev. 2 00066 ** ENET, MCG, MCM, SIM, USB - registers updated 00067 ** - rev. 2.4 (2014-02-10) 00068 ** The declaration of clock configurations has been moved to separate header file system_MK64F12.h 00069 ** Update of SystemInit() and SystemCoreClockUpdate() functions. 00070 ** - rev. 2.5 (2014-02-10) 00071 ** The declaration of clock configurations has been moved to separate header file system_MK64F12.h 00072 ** Update of SystemInit() and SystemCoreClockUpdate() functions. 00073 ** Module access macro module_BASES replaced by module_BASE_PTRS. 00074 ** - rev. 2.6 (2015-08-03) (ARM) 00075 ** All accesses to memory are replaced by equivalent macros; this allows 00076 ** memory read/write operations to be re-defined if needed (for example, 00077 ** to implement new security features 00078 ** 00079 ** ################################################################### 00080 */ 00081 00082 /* 00083 * WARNING! DO NOT EDIT THIS FILE DIRECTLY! 00084 * 00085 * This file was generated automatically and any changes may be lost. 00086 */ 00087 #ifndef __HW_FMC_REGISTERS_H__ 00088 #define __HW_FMC_REGISTERS_H__ 00089 00090 #include "MK64F12.h" 00091 #include "fsl_bitaccess.h" 00092 00093 /* 00094 * MK64F12 FMC 00095 * 00096 * Flash Memory Controller 00097 * 00098 * Registers defined in this header file: 00099 * - HW_FMC_PFAPR - Flash Access Protection Register 00100 * - HW_FMC_PFB0CR - Flash Bank 0 Control Register 00101 * - HW_FMC_PFB1CR - Flash Bank 1 Control Register 00102 * - HW_FMC_TAGVDW0Sn - Cache Tag Storage 00103 * - HW_FMC_TAGVDW1Sn - Cache Tag Storage 00104 * - HW_FMC_TAGVDW2Sn - Cache Tag Storage 00105 * - HW_FMC_TAGVDW3Sn - Cache Tag Storage 00106 * - HW_FMC_DATAW0SnU - Cache Data Storage (upper word) 00107 * - HW_FMC_DATAW0SnL - Cache Data Storage (lower word) 00108 * - HW_FMC_DATAW1SnU - Cache Data Storage (upper word) 00109 * - HW_FMC_DATAW1SnL - Cache Data Storage (lower word) 00110 * - HW_FMC_DATAW2SnU - Cache Data Storage (upper word) 00111 * - HW_FMC_DATAW2SnL - Cache Data Storage (lower word) 00112 * - HW_FMC_DATAW3SnU - Cache Data Storage (upper word) 00113 * - HW_FMC_DATAW3SnL - Cache Data Storage (lower word) 00114 * 00115 * - hw_fmc_t - Struct containing all module registers. 00116 */ 00117 00118 #define HW_FMC_INSTANCE_COUNT (1U) /*!< Number of instances of the FMC module. */ 00119 00120 /******************************************************************************* 00121 * HW_FMC_PFAPR - Flash Access Protection Register 00122 ******************************************************************************/ 00123 00124 /*! 00125 * @brief HW_FMC_PFAPR - Flash Access Protection Register (RW) 00126 * 00127 * Reset value: 0x00F8003FU 00128 */ 00129 typedef union _hw_fmc_pfapr 00130 { 00131 uint32_t U; 00132 struct _hw_fmc_pfapr_bitfields 00133 { 00134 uint32_t M0AP : 2; /*!< [1:0] Master 0 Access Protection */ 00135 uint32_t M1AP : 2; /*!< [3:2] Master 1 Access Protection */ 00136 uint32_t M2AP : 2; /*!< [5:4] Master 2 Access Protection */ 00137 uint32_t M3AP : 2; /*!< [7:6] Master 3 Access Protection */ 00138 uint32_t M4AP : 2; /*!< [9:8] Master 4 Access Protection */ 00139 uint32_t M5AP : 2; /*!< [11:10] Master 5 Access Protection */ 00140 uint32_t M6AP : 2; /*!< [13:12] Master 6 Access Protection */ 00141 uint32_t M7AP : 2; /*!< [15:14] Master 7 Access Protection */ 00142 uint32_t M0PFD : 1; /*!< [16] Master 0 Prefetch Disable */ 00143 uint32_t M1PFD : 1; /*!< [17] Master 1 Prefetch Disable */ 00144 uint32_t M2PFD : 1; /*!< [18] Master 2 Prefetch Disable */ 00145 uint32_t M3PFD : 1; /*!< [19] Master 3 Prefetch Disable */ 00146 uint32_t M4PFD : 1; /*!< [20] Master 4 Prefetch Disable */ 00147 uint32_t M5PFD : 1; /*!< [21] Master 5 Prefetch Disable */ 00148 uint32_t M6PFD : 1; /*!< [22] Master 6 Prefetch Disable */ 00149 uint32_t M7PFD : 1; /*!< [23] Master 7 Prefetch Disable */ 00150 uint32_t RESERVED0 : 8; /*!< [31:24] */ 00151 } B; 00152 } hw_fmc_pfapr_t; 00153 00154 /*! 00155 * @name Constants and macros for entire FMC_PFAPR register 00156 */ 00157 /*@{*/ 00158 #define HW_FMC_PFAPR_ADDR(x) ((x) + 0x0U) 00159 00160 #define HW_FMC_PFAPR(x) (*(__IO hw_fmc_pfapr_t *) HW_FMC_PFAPR_ADDR(x)) 00161 #define HW_FMC_PFAPR_RD(x) (ADDRESS_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x))) 00162 #define HW_FMC_PFAPR_WR(x, v) (ADDRESS_WRITE(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), v)) 00163 #define HW_FMC_PFAPR_SET(x, v) (HW_FMC_PFAPR_WR(x, HW_FMC_PFAPR_RD(x) | (v))) 00164 #define HW_FMC_PFAPR_CLR(x, v) (HW_FMC_PFAPR_WR(x, HW_FMC_PFAPR_RD(x) & ~(v))) 00165 #define HW_FMC_PFAPR_TOG(x, v) (HW_FMC_PFAPR_WR(x, HW_FMC_PFAPR_RD(x) ^ (v))) 00166 /*@}*/ 00167 00168 /* 00169 * Constants & macros for individual FMC_PFAPR bitfields 00170 */ 00171 00172 /*! 00173 * @name Register FMC_PFAPR, field M0AP[1:0] (RW) 00174 * 00175 * This field controls whether read and write access to the flash are allowed 00176 * based on the logical master number of the requesting crossbar switch master. 00177 * 00178 * Values: 00179 * - 00 - No access may be performed by this master 00180 * - 01 - Only read accesses may be performed by this master 00181 * - 10 - Only write accesses may be performed by this master 00182 * - 11 - Both read and write accesses may be performed by this master 00183 */ 00184 /*@{*/ 00185 #define BP_FMC_PFAPR_M0AP (0U) /*!< Bit position for FMC_PFAPR_M0AP. */ 00186 #define BM_FMC_PFAPR_M0AP (0x00000003U) /*!< Bit mask for FMC_PFAPR_M0AP. */ 00187 #define BS_FMC_PFAPR_M0AP (2U) /*!< Bit field size in bits for FMC_PFAPR_M0AP. */ 00188 00189 /*! @brief Read current value of the FMC_PFAPR_M0AP field. */ 00190 #define BR_FMC_PFAPR_M0AP(x) (UNION_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), U, B.M0AP)) 00191 00192 /*! @brief Format value for bitfield FMC_PFAPR_M0AP. */ 00193 #define BF_FMC_PFAPR_M0AP(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M0AP) & BM_FMC_PFAPR_M0AP) 00194 00195 /*! @brief Set the M0AP field to a new value. */ 00196 #define BW_FMC_PFAPR_M0AP(x, v) (HW_FMC_PFAPR_WR(x, (HW_FMC_PFAPR_RD(x) & ~BM_FMC_PFAPR_M0AP) | BF_FMC_PFAPR_M0AP(v))) 00197 /*@}*/ 00198 00199 /*! 00200 * @name Register FMC_PFAPR, field M1AP[3:2] (RW) 00201 * 00202 * This field controls whether read and write access to the flash are allowed 00203 * based on the logical master number of the requesting crossbar switch master. 00204 * 00205 * Values: 00206 * - 00 - No access may be performed by this master 00207 * - 01 - Only read accesses may be performed by this master 00208 * - 10 - Only write accesses may be performed by this master 00209 * - 11 - Both read and write accesses may be performed by this master 00210 */ 00211 /*@{*/ 00212 #define BP_FMC_PFAPR_M1AP (2U) /*!< Bit position for FMC_PFAPR_M1AP. */ 00213 #define BM_FMC_PFAPR_M1AP (0x0000000CU) /*!< Bit mask for FMC_PFAPR_M1AP. */ 00214 #define BS_FMC_PFAPR_M1AP (2U) /*!< Bit field size in bits for FMC_PFAPR_M1AP. */ 00215 00216 /*! @brief Read current value of the FMC_PFAPR_M1AP field. */ 00217 #define BR_FMC_PFAPR_M1AP(x) (UNION_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), U, B.M1AP)) 00218 00219 /*! @brief Format value for bitfield FMC_PFAPR_M1AP. */ 00220 #define BF_FMC_PFAPR_M1AP(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M1AP) & BM_FMC_PFAPR_M1AP) 00221 00222 /*! @brief Set the M1AP field to a new value. */ 00223 #define BW_FMC_PFAPR_M1AP(x, v) (HW_FMC_PFAPR_WR(x, (HW_FMC_PFAPR_RD(x) & ~BM_FMC_PFAPR_M1AP) | BF_FMC_PFAPR_M1AP(v))) 00224 /*@}*/ 00225 00226 /*! 00227 * @name Register FMC_PFAPR, field M2AP[5:4] (RW) 00228 * 00229 * This field controls whether read and write access to the flash are allowed 00230 * based on the logical master number of the requesting crossbar switch master. 00231 * 00232 * Values: 00233 * - 00 - No access may be performed by this master 00234 * - 01 - Only read accesses may be performed by this master 00235 * - 10 - Only write accesses may be performed by this master 00236 * - 11 - Both read and write accesses may be performed by this master 00237 */ 00238 /*@{*/ 00239 #define BP_FMC_PFAPR_M2AP (4U) /*!< Bit position for FMC_PFAPR_M2AP. */ 00240 #define BM_FMC_PFAPR_M2AP (0x00000030U) /*!< Bit mask for FMC_PFAPR_M2AP. */ 00241 #define BS_FMC_PFAPR_M2AP (2U) /*!< Bit field size in bits for FMC_PFAPR_M2AP. */ 00242 00243 /*! @brief Read current value of the FMC_PFAPR_M2AP field. */ 00244 #define BR_FMC_PFAPR_M2AP(x) (UNION_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), U, B.M2AP)) 00245 00246 /*! @brief Format value for bitfield FMC_PFAPR_M2AP. */ 00247 #define BF_FMC_PFAPR_M2AP(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M2AP) & BM_FMC_PFAPR_M2AP) 00248 00249 /*! @brief Set the M2AP field to a new value. */ 00250 #define BW_FMC_PFAPR_M2AP(x, v) (HW_FMC_PFAPR_WR(x, (HW_FMC_PFAPR_RD(x) & ~BM_FMC_PFAPR_M2AP) | BF_FMC_PFAPR_M2AP(v))) 00251 /*@}*/ 00252 00253 /*! 00254 * @name Register FMC_PFAPR, field M3AP[7:6] (RW) 00255 * 00256 * This field controls whether read and write access to the flash are allowed 00257 * based on the logical master number of the requesting crossbar switch master. 00258 * 00259 * Values: 00260 * - 00 - No access may be performed by this master 00261 * - 01 - Only read accesses may be performed by this master 00262 * - 10 - Only write accesses may be performed by this master 00263 * - 11 - Both read and write accesses may be performed by this master 00264 */ 00265 /*@{*/ 00266 #define BP_FMC_PFAPR_M3AP (6U) /*!< Bit position for FMC_PFAPR_M3AP. */ 00267 #define BM_FMC_PFAPR_M3AP (0x000000C0U) /*!< Bit mask for FMC_PFAPR_M3AP. */ 00268 #define BS_FMC_PFAPR_M3AP (2U) /*!< Bit field size in bits for FMC_PFAPR_M3AP. */ 00269 00270 /*! @brief Read current value of the FMC_PFAPR_M3AP field. */ 00271 #define BR_FMC_PFAPR_M3AP(x) (UNION_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), U, B.M3AP)) 00272 00273 /*! @brief Format value for bitfield FMC_PFAPR_M3AP. */ 00274 #define BF_FMC_PFAPR_M3AP(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M3AP) & BM_FMC_PFAPR_M3AP) 00275 00276 /*! @brief Set the M3AP field to a new value. */ 00277 #define BW_FMC_PFAPR_M3AP(x, v) (HW_FMC_PFAPR_WR(x, (HW_FMC_PFAPR_RD(x) & ~BM_FMC_PFAPR_M3AP) | BF_FMC_PFAPR_M3AP(v))) 00278 /*@}*/ 00279 00280 /*! 00281 * @name Register FMC_PFAPR, field M4AP[9:8] (RW) 00282 * 00283 * This field controls whether read and write access to the flash are allowed 00284 * based on the logical master number of the requesting crossbar switch master. 00285 * 00286 * Values: 00287 * - 00 - No access may be performed by this master 00288 * - 01 - Only read accesses may be performed by this master 00289 * - 10 - Only write accesses may be performed by this master 00290 * - 11 - Both read and write accesses may be performed by this master 00291 */ 00292 /*@{*/ 00293 #define BP_FMC_PFAPR_M4AP (8U) /*!< Bit position for FMC_PFAPR_M4AP. */ 00294 #define BM_FMC_PFAPR_M4AP (0x00000300U) /*!< Bit mask for FMC_PFAPR_M4AP. */ 00295 #define BS_FMC_PFAPR_M4AP (2U) /*!< Bit field size in bits for FMC_PFAPR_M4AP. */ 00296 00297 /*! @brief Read current value of the FMC_PFAPR_M4AP field. */ 00298 #define BR_FMC_PFAPR_M4AP(x) (UNION_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), U, B.M4AP)) 00299 00300 /*! @brief Format value for bitfield FMC_PFAPR_M4AP. */ 00301 #define BF_FMC_PFAPR_M4AP(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M4AP) & BM_FMC_PFAPR_M4AP) 00302 00303 /*! @brief Set the M4AP field to a new value. */ 00304 #define BW_FMC_PFAPR_M4AP(x, v) (HW_FMC_PFAPR_WR(x, (HW_FMC_PFAPR_RD(x) & ~BM_FMC_PFAPR_M4AP) | BF_FMC_PFAPR_M4AP(v))) 00305 /*@}*/ 00306 00307 /*! 00308 * @name Register FMC_PFAPR, field M5AP[11:10] (RW) 00309 * 00310 * This field controls whether read and write access to the flash are allowed 00311 * based on the logical master number of the requesting crossbar switch master. 00312 * 00313 * Values: 00314 * - 00 - No access may be performed by this master 00315 * - 01 - Only read accesses may be performed by this master 00316 * - 10 - Only write accesses may be performed by this master 00317 * - 11 - Both read and write accesses may be performed by this master 00318 */ 00319 /*@{*/ 00320 #define BP_FMC_PFAPR_M5AP (10U) /*!< Bit position for FMC_PFAPR_M5AP. */ 00321 #define BM_FMC_PFAPR_M5AP (0x00000C00U) /*!< Bit mask for FMC_PFAPR_M5AP. */ 00322 #define BS_FMC_PFAPR_M5AP (2U) /*!< Bit field size in bits for FMC_PFAPR_M5AP. */ 00323 00324 /*! @brief Read current value of the FMC_PFAPR_M5AP field. */ 00325 #define BR_FMC_PFAPR_M5AP(x) (UNION_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), U, B.M5AP)) 00326 00327 /*! @brief Format value for bitfield FMC_PFAPR_M5AP. */ 00328 #define BF_FMC_PFAPR_M5AP(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M5AP) & BM_FMC_PFAPR_M5AP) 00329 00330 /*! @brief Set the M5AP field to a new value. */ 00331 #define BW_FMC_PFAPR_M5AP(x, v) (HW_FMC_PFAPR_WR(x, (HW_FMC_PFAPR_RD(x) & ~BM_FMC_PFAPR_M5AP) | BF_FMC_PFAPR_M5AP(v))) 00332 /*@}*/ 00333 00334 /*! 00335 * @name Register FMC_PFAPR, field M6AP[13:12] (RW) 00336 * 00337 * This field controls whether read and write access to the flash are allowed 00338 * based on the logical master number of the requesting crossbar switch master. 00339 * 00340 * Values: 00341 * - 00 - No access may be performed by this master 00342 * - 01 - Only read accesses may be performed by this master 00343 * - 10 - Only write accesses may be performed by this master 00344 * - 11 - Both read and write accesses may be performed by this master 00345 */ 00346 /*@{*/ 00347 #define BP_FMC_PFAPR_M6AP (12U) /*!< Bit position for FMC_PFAPR_M6AP. */ 00348 #define BM_FMC_PFAPR_M6AP (0x00003000U) /*!< Bit mask for FMC_PFAPR_M6AP. */ 00349 #define BS_FMC_PFAPR_M6AP (2U) /*!< Bit field size in bits for FMC_PFAPR_M6AP. */ 00350 00351 /*! @brief Read current value of the FMC_PFAPR_M6AP field. */ 00352 #define BR_FMC_PFAPR_M6AP(x) (UNION_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), U, B.M6AP)) 00353 00354 /*! @brief Format value for bitfield FMC_PFAPR_M6AP. */ 00355 #define BF_FMC_PFAPR_M6AP(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M6AP) & BM_FMC_PFAPR_M6AP) 00356 00357 /*! @brief Set the M6AP field to a new value. */ 00358 #define BW_FMC_PFAPR_M6AP(x, v) (HW_FMC_PFAPR_WR(x, (HW_FMC_PFAPR_RD(x) & ~BM_FMC_PFAPR_M6AP) | BF_FMC_PFAPR_M6AP(v))) 00359 /*@}*/ 00360 00361 /*! 00362 * @name Register FMC_PFAPR, field M7AP[15:14] (RW) 00363 * 00364 * This field controls whether read and write access to the flash are allowed 00365 * based on the logical master number of the requesting crossbar switch master. 00366 * 00367 * Values: 00368 * - 00 - No access may be performed by this master. 00369 * - 01 - Only read accesses may be performed by this master. 00370 * - 10 - Only write accesses may be performed by this master. 00371 * - 11 - Both read and write accesses may be performed by this master. 00372 */ 00373 /*@{*/ 00374 #define BP_FMC_PFAPR_M7AP (14U) /*!< Bit position for FMC_PFAPR_M7AP. */ 00375 #define BM_FMC_PFAPR_M7AP (0x0000C000U) /*!< Bit mask for FMC_PFAPR_M7AP. */ 00376 #define BS_FMC_PFAPR_M7AP (2U) /*!< Bit field size in bits for FMC_PFAPR_M7AP. */ 00377 00378 /*! @brief Read current value of the FMC_PFAPR_M7AP field. */ 00379 #define BR_FMC_PFAPR_M7AP(x) (UNION_READ(hw_fmc_pfapr_t, HW_FMC_PFAPR_ADDR(x), U, B.M7AP)) 00380 00381 /*! @brief Format value for bitfield FMC_PFAPR_M7AP. */ 00382 #define BF_FMC_PFAPR_M7AP(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M7AP) & BM_FMC_PFAPR_M7AP) 00383 00384 /*! @brief Set the M7AP field to a new value. */ 00385 #define BW_FMC_PFAPR_M7AP(x, v) (HW_FMC_PFAPR_WR(x, (HW_FMC_PFAPR_RD(x) & ~BM_FMC_PFAPR_M7AP) | BF_FMC_PFAPR_M7AP(v))) 00386 /*@}*/ 00387 00388 /*! 00389 * @name Register FMC_PFAPR, field M0PFD[16] (RW) 00390 * 00391 * These bits control whether prefetching is enabled based on the logical number 00392 * of the requesting crossbar switch master. This field is further qualified by 00393 * the PFBnCR[BxDPE,BxIPE] bits. 00394 * 00395 * Values: 00396 * - 0 - Prefetching for this master is enabled. 00397 * - 1 - Prefetching for this master is disabled. 00398 */ 00399 /*@{*/ 00400 #define BP_FMC_PFAPR_M0PFD (16U) /*!< Bit position for FMC_PFAPR_M0PFD. */ 00401 #define BM_FMC_PFAPR_M0PFD (0x00010000U) /*!< Bit mask for FMC_PFAPR_M0PFD. */ 00402 #define BS_FMC_PFAPR_M0PFD (1U) /*!< Bit field size in bits for FMC_PFAPR_M0PFD. */ 00403 00404 /*! @brief Read current value of the FMC_PFAPR_M0PFD field. */ 00405 #define BR_FMC_PFAPR_M0PFD(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M0PFD))) 00406 00407 /*! @brief Format value for bitfield FMC_PFAPR_M0PFD. */ 00408 #define BF_FMC_PFAPR_M0PFD(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M0PFD) & BM_FMC_PFAPR_M0PFD) 00409 00410 /*! @brief Set the M0PFD field to a new value. */ 00411 #define BW_FMC_PFAPR_M0PFD(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M0PFD), v)) 00412 /*@}*/ 00413 00414 /*! 00415 * @name Register FMC_PFAPR, field M1PFD[17] (RW) 00416 * 00417 * These bits control whether prefetching is enabled based on the logical number 00418 * of the requesting crossbar switch master. This field is further qualified by 00419 * the PFBnCR[BxDPE,BxIPE] bits. 00420 * 00421 * Values: 00422 * - 0 - Prefetching for this master is enabled. 00423 * - 1 - Prefetching for this master is disabled. 00424 */ 00425 /*@{*/ 00426 #define BP_FMC_PFAPR_M1PFD (17U) /*!< Bit position for FMC_PFAPR_M1PFD. */ 00427 #define BM_FMC_PFAPR_M1PFD (0x00020000U) /*!< Bit mask for FMC_PFAPR_M1PFD. */ 00428 #define BS_FMC_PFAPR_M1PFD (1U) /*!< Bit field size in bits for FMC_PFAPR_M1PFD. */ 00429 00430 /*! @brief Read current value of the FMC_PFAPR_M1PFD field. */ 00431 #define BR_FMC_PFAPR_M1PFD(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M1PFD))) 00432 00433 /*! @brief Format value for bitfield FMC_PFAPR_M1PFD. */ 00434 #define BF_FMC_PFAPR_M1PFD(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M1PFD) & BM_FMC_PFAPR_M1PFD) 00435 00436 /*! @brief Set the M1PFD field to a new value. */ 00437 #define BW_FMC_PFAPR_M1PFD(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M1PFD), v)) 00438 /*@}*/ 00439 00440 /*! 00441 * @name Register FMC_PFAPR, field M2PFD[18] (RW) 00442 * 00443 * These bits control whether prefetching is enabled based on the logical number 00444 * of the requesting crossbar switch master. This field is further qualified by 00445 * the PFBnCR[BxDPE,BxIPE] bits. 00446 * 00447 * Values: 00448 * - 0 - Prefetching for this master is enabled. 00449 * - 1 - Prefetching for this master is disabled. 00450 */ 00451 /*@{*/ 00452 #define BP_FMC_PFAPR_M2PFD (18U) /*!< Bit position for FMC_PFAPR_M2PFD. */ 00453 #define BM_FMC_PFAPR_M2PFD (0x00040000U) /*!< Bit mask for FMC_PFAPR_M2PFD. */ 00454 #define BS_FMC_PFAPR_M2PFD (1U) /*!< Bit field size in bits for FMC_PFAPR_M2PFD. */ 00455 00456 /*! @brief Read current value of the FMC_PFAPR_M2PFD field. */ 00457 #define BR_FMC_PFAPR_M2PFD(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M2PFD))) 00458 00459 /*! @brief Format value for bitfield FMC_PFAPR_M2PFD. */ 00460 #define BF_FMC_PFAPR_M2PFD(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M2PFD) & BM_FMC_PFAPR_M2PFD) 00461 00462 /*! @brief Set the M2PFD field to a new value. */ 00463 #define BW_FMC_PFAPR_M2PFD(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M2PFD), v)) 00464 /*@}*/ 00465 00466 /*! 00467 * @name Register FMC_PFAPR, field M3PFD[19] (RW) 00468 * 00469 * These bits control whether prefetching is enabled based on the logical number 00470 * of the requesting crossbar switch master. This field is further qualified by 00471 * the PFBnCR[BxDPE,BxIPE] bits. 00472 * 00473 * Values: 00474 * - 0 - Prefetching for this master is enabled. 00475 * - 1 - Prefetching for this master is disabled. 00476 */ 00477 /*@{*/ 00478 #define BP_FMC_PFAPR_M3PFD (19U) /*!< Bit position for FMC_PFAPR_M3PFD. */ 00479 #define BM_FMC_PFAPR_M3PFD (0x00080000U) /*!< Bit mask for FMC_PFAPR_M3PFD. */ 00480 #define BS_FMC_PFAPR_M3PFD (1U) /*!< Bit field size in bits for FMC_PFAPR_M3PFD. */ 00481 00482 /*! @brief Read current value of the FMC_PFAPR_M3PFD field. */ 00483 #define BR_FMC_PFAPR_M3PFD(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M3PFD))) 00484 00485 /*! @brief Format value for bitfield FMC_PFAPR_M3PFD. */ 00486 #define BF_FMC_PFAPR_M3PFD(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M3PFD) & BM_FMC_PFAPR_M3PFD) 00487 00488 /*! @brief Set the M3PFD field to a new value. */ 00489 #define BW_FMC_PFAPR_M3PFD(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M3PFD), v)) 00490 /*@}*/ 00491 00492 /*! 00493 * @name Register FMC_PFAPR, field M4PFD[20] (RW) 00494 * 00495 * These bits control whether prefetching is enabled based on the logical number 00496 * of the requesting crossbar switch master. This field is further qualified by 00497 * the PFBnCR[BxDPE,BxIPE] bits. 00498 * 00499 * Values: 00500 * - 0 - Prefetching for this master is enabled. 00501 * - 1 - Prefetching for this master is disabled. 00502 */ 00503 /*@{*/ 00504 #define BP_FMC_PFAPR_M4PFD (20U) /*!< Bit position for FMC_PFAPR_M4PFD. */ 00505 #define BM_FMC_PFAPR_M4PFD (0x00100000U) /*!< Bit mask for FMC_PFAPR_M4PFD. */ 00506 #define BS_FMC_PFAPR_M4PFD (1U) /*!< Bit field size in bits for FMC_PFAPR_M4PFD. */ 00507 00508 /*! @brief Read current value of the FMC_PFAPR_M4PFD field. */ 00509 #define BR_FMC_PFAPR_M4PFD(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M4PFD))) 00510 00511 /*! @brief Format value for bitfield FMC_PFAPR_M4PFD. */ 00512 #define BF_FMC_PFAPR_M4PFD(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M4PFD) & BM_FMC_PFAPR_M4PFD) 00513 00514 /*! @brief Set the M4PFD field to a new value. */ 00515 #define BW_FMC_PFAPR_M4PFD(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M4PFD), v)) 00516 /*@}*/ 00517 00518 /*! 00519 * @name Register FMC_PFAPR, field M5PFD[21] (RW) 00520 * 00521 * These bits control whether prefetching is enabled based on the logical number 00522 * of the requesting crossbar switch master. This field is further qualified by 00523 * the PFBnCR[BxDPE,BxIPE] bits. 00524 * 00525 * Values: 00526 * - 0 - Prefetching for this master is enabled. 00527 * - 1 - Prefetching for this master is disabled. 00528 */ 00529 /*@{*/ 00530 #define BP_FMC_PFAPR_M5PFD (21U) /*!< Bit position for FMC_PFAPR_M5PFD. */ 00531 #define BM_FMC_PFAPR_M5PFD (0x00200000U) /*!< Bit mask for FMC_PFAPR_M5PFD. */ 00532 #define BS_FMC_PFAPR_M5PFD (1U) /*!< Bit field size in bits for FMC_PFAPR_M5PFD. */ 00533 00534 /*! @brief Read current value of the FMC_PFAPR_M5PFD field. */ 00535 #define BR_FMC_PFAPR_M5PFD(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M5PFD))) 00536 00537 /*! @brief Format value for bitfield FMC_PFAPR_M5PFD. */ 00538 #define BF_FMC_PFAPR_M5PFD(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M5PFD) & BM_FMC_PFAPR_M5PFD) 00539 00540 /*! @brief Set the M5PFD field to a new value. */ 00541 #define BW_FMC_PFAPR_M5PFD(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M5PFD), v)) 00542 /*@}*/ 00543 00544 /*! 00545 * @name Register FMC_PFAPR, field M6PFD[22] (RW) 00546 * 00547 * These bits control whether prefetching is enabled based on the logical number 00548 * of the requesting crossbar switch master. This field is further qualified by 00549 * the PFBnCR[BxDPE,BxIPE] bits. 00550 * 00551 * Values: 00552 * - 0 - Prefetching for this master is enabled. 00553 * - 1 - Prefetching for this master is disabled. 00554 */ 00555 /*@{*/ 00556 #define BP_FMC_PFAPR_M6PFD (22U) /*!< Bit position for FMC_PFAPR_M6PFD. */ 00557 #define BM_FMC_PFAPR_M6PFD (0x00400000U) /*!< Bit mask for FMC_PFAPR_M6PFD. */ 00558 #define BS_FMC_PFAPR_M6PFD (1U) /*!< Bit field size in bits for FMC_PFAPR_M6PFD. */ 00559 00560 /*! @brief Read current value of the FMC_PFAPR_M6PFD field. */ 00561 #define BR_FMC_PFAPR_M6PFD(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M6PFD))) 00562 00563 /*! @brief Format value for bitfield FMC_PFAPR_M6PFD. */ 00564 #define BF_FMC_PFAPR_M6PFD(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M6PFD) & BM_FMC_PFAPR_M6PFD) 00565 00566 /*! @brief Set the M6PFD field to a new value. */ 00567 #define BW_FMC_PFAPR_M6PFD(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M6PFD), v)) 00568 /*@}*/ 00569 00570 /*! 00571 * @name Register FMC_PFAPR, field M7PFD[23] (RW) 00572 * 00573 * These bits control whether prefetching is enabled based on the logical number 00574 * of the requesting crossbar switch master. This field is further qualified by 00575 * the PFBnCR[BxDPE,BxIPE] bits. 00576 * 00577 * Values: 00578 * - 0 - Prefetching for this master is enabled. 00579 * - 1 - Prefetching for this master is disabled. 00580 */ 00581 /*@{*/ 00582 #define BP_FMC_PFAPR_M7PFD (23U) /*!< Bit position for FMC_PFAPR_M7PFD. */ 00583 #define BM_FMC_PFAPR_M7PFD (0x00800000U) /*!< Bit mask for FMC_PFAPR_M7PFD. */ 00584 #define BS_FMC_PFAPR_M7PFD (1U) /*!< Bit field size in bits for FMC_PFAPR_M7PFD. */ 00585 00586 /*! @brief Read current value of the FMC_PFAPR_M7PFD field. */ 00587 #define BR_FMC_PFAPR_M7PFD(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M7PFD))) 00588 00589 /*! @brief Format value for bitfield FMC_PFAPR_M7PFD. */ 00590 #define BF_FMC_PFAPR_M7PFD(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFAPR_M7PFD) & BM_FMC_PFAPR_M7PFD) 00591 00592 /*! @brief Set the M7PFD field to a new value. */ 00593 #define BW_FMC_PFAPR_M7PFD(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFAPR_ADDR(x), BP_FMC_PFAPR_M7PFD), v)) 00594 /*@}*/ 00595 00596 /******************************************************************************* 00597 * HW_FMC_PFB0CR - Flash Bank 0 Control Register 00598 ******************************************************************************/ 00599 00600 /*! 00601 * @brief HW_FMC_PFB0CR - Flash Bank 0 Control Register (RW) 00602 * 00603 * Reset value: 0x3004001FU 00604 */ 00605 typedef union _hw_fmc_pfb0cr 00606 { 00607 uint32_t U; 00608 struct _hw_fmc_pfb0cr_bitfields 00609 { 00610 uint32_t B0SEBE : 1; /*!< [0] Bank 0 Single Entry Buffer Enable */ 00611 uint32_t B0IPE : 1; /*!< [1] Bank 0 Instruction Prefetch Enable */ 00612 uint32_t B0DPE : 1; /*!< [2] Bank 0 Data Prefetch Enable */ 00613 uint32_t B0ICE : 1; /*!< [3] Bank 0 Instruction Cache Enable */ 00614 uint32_t B0DCE : 1; /*!< [4] Bank 0 Data Cache Enable */ 00615 uint32_t CRC : 3; /*!< [7:5] Cache Replacement Control */ 00616 uint32_t RESERVED0 : 9; /*!< [16:8] */ 00617 uint32_t B0MW : 2; /*!< [18:17] Bank 0 Memory Width */ 00618 uint32_t S_B_INV : 1; /*!< [19] Invalidate Prefetch Speculation 00619 * Buffer */ 00620 uint32_t CINV_WAY : 4; /*!< [23:20] Cache Invalidate Way x */ 00621 uint32_t CLCK_WAY : 4; /*!< [27:24] Cache Lock Way x */ 00622 uint32_t B0RWSC : 4; /*!< [31:28] Bank 0 Read Wait State Control */ 00623 } B; 00624 } hw_fmc_pfb0cr_t; 00625 00626 /*! 00627 * @name Constants and macros for entire FMC_PFB0CR register 00628 */ 00629 /*@{*/ 00630 #define HW_FMC_PFB0CR_ADDR(x) ((x) + 0x4U) 00631 00632 #define HW_FMC_PFB0CR(x) (*(__IO hw_fmc_pfb0cr_t *) HW_FMC_PFB0CR_ADDR(x)) 00633 #define HW_FMC_PFB0CR_RD(x) (ADDRESS_READ(hw_fmc_pfb0cr_t, HW_FMC_PFB0CR_ADDR(x))) 00634 #define HW_FMC_PFB0CR_WR(x, v) (ADDRESS_WRITE(hw_fmc_pfb0cr_t, HW_FMC_PFB0CR_ADDR(x), v)) 00635 #define HW_FMC_PFB0CR_SET(x, v) (HW_FMC_PFB0CR_WR(x, HW_FMC_PFB0CR_RD(x) | (v))) 00636 #define HW_FMC_PFB0CR_CLR(x, v) (HW_FMC_PFB0CR_WR(x, HW_FMC_PFB0CR_RD(x) & ~(v))) 00637 #define HW_FMC_PFB0CR_TOG(x, v) (HW_FMC_PFB0CR_WR(x, HW_FMC_PFB0CR_RD(x) ^ (v))) 00638 /*@}*/ 00639 00640 /* 00641 * Constants & macros for individual FMC_PFB0CR bitfields 00642 */ 00643 00644 /*! 00645 * @name Register FMC_PFB0CR, field B0SEBE[0] (RW) 00646 * 00647 * This bit controls whether the single entry page buffer is enabled in response 00648 * to flash read accesses. Its operation is independent from bank 1's cache. A 00649 * high-to-low transition of this enable forces the page buffer to be invalidated. 00650 * 00651 * Values: 00652 * - 0 - Single entry buffer is disabled. 00653 * - 1 - Single entry buffer is enabled. 00654 */ 00655 /*@{*/ 00656 #define BP_FMC_PFB0CR_B0SEBE (0U) /*!< Bit position for FMC_PFB0CR_B0SEBE. */ 00657 #define BM_FMC_PFB0CR_B0SEBE (0x00000001U) /*!< Bit mask for FMC_PFB0CR_B0SEBE. */ 00658 #define BS_FMC_PFB0CR_B0SEBE (1U) /*!< Bit field size in bits for FMC_PFB0CR_B0SEBE. */ 00659 00660 /*! @brief Read current value of the FMC_PFB0CR_B0SEBE field. */ 00661 #define BR_FMC_PFB0CR_B0SEBE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0SEBE))) 00662 00663 /*! @brief Format value for bitfield FMC_PFB0CR_B0SEBE. */ 00664 #define BF_FMC_PFB0CR_B0SEBE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_B0SEBE) & BM_FMC_PFB0CR_B0SEBE) 00665 00666 /*! @brief Set the B0SEBE field to a new value. */ 00667 #define BW_FMC_PFB0CR_B0SEBE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0SEBE), v)) 00668 /*@}*/ 00669 00670 /*! 00671 * @name Register FMC_PFB0CR, field B0IPE[1] (RW) 00672 * 00673 * This bit controls whether prefetches (or speculative accesses) are initiated 00674 * in response to instruction fetches. 00675 * 00676 * Values: 00677 * - 0 - Do not prefetch in response to instruction fetches. 00678 * - 1 - Enable prefetches in response to instruction fetches. 00679 */ 00680 /*@{*/ 00681 #define BP_FMC_PFB0CR_B0IPE (1U) /*!< Bit position for FMC_PFB0CR_B0IPE. */ 00682 #define BM_FMC_PFB0CR_B0IPE (0x00000002U) /*!< Bit mask for FMC_PFB0CR_B0IPE. */ 00683 #define BS_FMC_PFB0CR_B0IPE (1U) /*!< Bit field size in bits for FMC_PFB0CR_B0IPE. */ 00684 00685 /*! @brief Read current value of the FMC_PFB0CR_B0IPE field. */ 00686 #define BR_FMC_PFB0CR_B0IPE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0IPE))) 00687 00688 /*! @brief Format value for bitfield FMC_PFB0CR_B0IPE. */ 00689 #define BF_FMC_PFB0CR_B0IPE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_B0IPE) & BM_FMC_PFB0CR_B0IPE) 00690 00691 /*! @brief Set the B0IPE field to a new value. */ 00692 #define BW_FMC_PFB0CR_B0IPE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0IPE), v)) 00693 /*@}*/ 00694 00695 /*! 00696 * @name Register FMC_PFB0CR, field B0DPE[2] (RW) 00697 * 00698 * This bit controls whether prefetches (or speculative accesses) are initiated 00699 * in response to data references. 00700 * 00701 * Values: 00702 * - 0 - Do not prefetch in response to data references. 00703 * - 1 - Enable prefetches in response to data references. 00704 */ 00705 /*@{*/ 00706 #define BP_FMC_PFB0CR_B0DPE (2U) /*!< Bit position for FMC_PFB0CR_B0DPE. */ 00707 #define BM_FMC_PFB0CR_B0DPE (0x00000004U) /*!< Bit mask for FMC_PFB0CR_B0DPE. */ 00708 #define BS_FMC_PFB0CR_B0DPE (1U) /*!< Bit field size in bits for FMC_PFB0CR_B0DPE. */ 00709 00710 /*! @brief Read current value of the FMC_PFB0CR_B0DPE field. */ 00711 #define BR_FMC_PFB0CR_B0DPE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0DPE))) 00712 00713 /*! @brief Format value for bitfield FMC_PFB0CR_B0DPE. */ 00714 #define BF_FMC_PFB0CR_B0DPE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_B0DPE) & BM_FMC_PFB0CR_B0DPE) 00715 00716 /*! @brief Set the B0DPE field to a new value. */ 00717 #define BW_FMC_PFB0CR_B0DPE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0DPE), v)) 00718 /*@}*/ 00719 00720 /*! 00721 * @name Register FMC_PFB0CR, field B0ICE[3] (RW) 00722 * 00723 * This bit controls whether instruction fetches are loaded into the cache. 00724 * 00725 * Values: 00726 * - 0 - Do not cache instruction fetches. 00727 * - 1 - Cache instruction fetches. 00728 */ 00729 /*@{*/ 00730 #define BP_FMC_PFB0CR_B0ICE (3U) /*!< Bit position for FMC_PFB0CR_B0ICE. */ 00731 #define BM_FMC_PFB0CR_B0ICE (0x00000008U) /*!< Bit mask for FMC_PFB0CR_B0ICE. */ 00732 #define BS_FMC_PFB0CR_B0ICE (1U) /*!< Bit field size in bits for FMC_PFB0CR_B0ICE. */ 00733 00734 /*! @brief Read current value of the FMC_PFB0CR_B0ICE field. */ 00735 #define BR_FMC_PFB0CR_B0ICE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0ICE))) 00736 00737 /*! @brief Format value for bitfield FMC_PFB0CR_B0ICE. */ 00738 #define BF_FMC_PFB0CR_B0ICE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_B0ICE) & BM_FMC_PFB0CR_B0ICE) 00739 00740 /*! @brief Set the B0ICE field to a new value. */ 00741 #define BW_FMC_PFB0CR_B0ICE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0ICE), v)) 00742 /*@}*/ 00743 00744 /*! 00745 * @name Register FMC_PFB0CR, field B0DCE[4] (RW) 00746 * 00747 * This bit controls whether data references are loaded into the cache. 00748 * 00749 * Values: 00750 * - 0 - Do not cache data references. 00751 * - 1 - Cache data references. 00752 */ 00753 /*@{*/ 00754 #define BP_FMC_PFB0CR_B0DCE (4U) /*!< Bit position for FMC_PFB0CR_B0DCE. */ 00755 #define BM_FMC_PFB0CR_B0DCE (0x00000010U) /*!< Bit mask for FMC_PFB0CR_B0DCE. */ 00756 #define BS_FMC_PFB0CR_B0DCE (1U) /*!< Bit field size in bits for FMC_PFB0CR_B0DCE. */ 00757 00758 /*! @brief Read current value of the FMC_PFB0CR_B0DCE field. */ 00759 #define BR_FMC_PFB0CR_B0DCE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0DCE))) 00760 00761 /*! @brief Format value for bitfield FMC_PFB0CR_B0DCE. */ 00762 #define BF_FMC_PFB0CR_B0DCE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_B0DCE) & BM_FMC_PFB0CR_B0DCE) 00763 00764 /*! @brief Set the B0DCE field to a new value. */ 00765 #define BW_FMC_PFB0CR_B0DCE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_B0DCE), v)) 00766 /*@}*/ 00767 00768 /*! 00769 * @name Register FMC_PFB0CR, field CRC[7:5] (RW) 00770 * 00771 * This 3-bit field defines the replacement algorithm for accesses that are 00772 * cached. 00773 * 00774 * Values: 00775 * - 000 - LRU replacement algorithm per set across all four ways 00776 * - 001 - Reserved 00777 * - 010 - Independent LRU with ways [0-1] for ifetches, [2-3] for data 00778 * - 011 - Independent LRU with ways [0-2] for ifetches, [3] for data 00779 * - 1xx - Reserved 00780 */ 00781 /*@{*/ 00782 #define BP_FMC_PFB0CR_CRC (5U) /*!< Bit position for FMC_PFB0CR_CRC. */ 00783 #define BM_FMC_PFB0CR_CRC (0x000000E0U) /*!< Bit mask for FMC_PFB0CR_CRC. */ 00784 #define BS_FMC_PFB0CR_CRC (3U) /*!< Bit field size in bits for FMC_PFB0CR_CRC. */ 00785 00786 /*! @brief Read current value of the FMC_PFB0CR_CRC field. */ 00787 #define BR_FMC_PFB0CR_CRC(x) (UNION_READ(hw_fmc_pfb0cr_t, HW_FMC_PFB0CR_ADDR(x), U, B.CRC)) 00788 00789 /*! @brief Format value for bitfield FMC_PFB0CR_CRC. */ 00790 #define BF_FMC_PFB0CR_CRC(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_CRC) & BM_FMC_PFB0CR_CRC) 00791 00792 /*! @brief Set the CRC field to a new value. */ 00793 #define BW_FMC_PFB0CR_CRC(x, v) (HW_FMC_PFB0CR_WR(x, (HW_FMC_PFB0CR_RD(x) & ~BM_FMC_PFB0CR_CRC) | BF_FMC_PFB0CR_CRC(v))) 00794 /*@}*/ 00795 00796 /*! 00797 * @name Register FMC_PFB0CR, field B0MW[18:17] (RO) 00798 * 00799 * This read-only field defines the width of the bank 0 memory. 00800 * 00801 * Values: 00802 * - 00 - 32 bits 00803 * - 01 - 64 bits 00804 * - 10 - 128 bits 00805 * - 11 - Reserved 00806 */ 00807 /*@{*/ 00808 #define BP_FMC_PFB0CR_B0MW (17U) /*!< Bit position for FMC_PFB0CR_B0MW. */ 00809 #define BM_FMC_PFB0CR_B0MW (0x00060000U) /*!< Bit mask for FMC_PFB0CR_B0MW. */ 00810 #define BS_FMC_PFB0CR_B0MW (2U) /*!< Bit field size in bits for FMC_PFB0CR_B0MW. */ 00811 00812 /*! @brief Read current value of the FMC_PFB0CR_B0MW field. */ 00813 #define BR_FMC_PFB0CR_B0MW(x) (UNION_READ(hw_fmc_pfb0cr_t, HW_FMC_PFB0CR_ADDR(x), U, B.B0MW)) 00814 /*@}*/ 00815 00816 /*! 00817 * @name Register FMC_PFB0CR, field S_B_INV[19] (WORZ) 00818 * 00819 * This bit determines if the FMC's prefetch speculation buffer and the single 00820 * entry page buffer are to be invalidated (cleared). When this bit is written, 00821 * the speculation buffer and single entry buffer are immediately cleared. This bit 00822 * always reads as zero. 00823 * 00824 * Values: 00825 * - 0 - Speculation buffer and single entry buffer are not affected. 00826 * - 1 - Invalidate (clear) speculation buffer and single entry buffer. 00827 */ 00828 /*@{*/ 00829 #define BP_FMC_PFB0CR_S_B_INV (19U) /*!< Bit position for FMC_PFB0CR_S_B_INV. */ 00830 #define BM_FMC_PFB0CR_S_B_INV (0x00080000U) /*!< Bit mask for FMC_PFB0CR_S_B_INV. */ 00831 #define BS_FMC_PFB0CR_S_B_INV (1U) /*!< Bit field size in bits for FMC_PFB0CR_S_B_INV. */ 00832 00833 /*! @brief Format value for bitfield FMC_PFB0CR_S_B_INV. */ 00834 #define BF_FMC_PFB0CR_S_B_INV(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_S_B_INV) & BM_FMC_PFB0CR_S_B_INV) 00835 00836 /*! @brief Set the S_B_INV field to a new value. */ 00837 #define BW_FMC_PFB0CR_S_B_INV(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB0CR_ADDR(x), BP_FMC_PFB0CR_S_B_INV), v)) 00838 /*@}*/ 00839 00840 /*! 00841 * @name Register FMC_PFB0CR, field CINV_WAY[23:20] (WORZ) 00842 * 00843 * These bits determine if the given cache way is to be invalidated (cleared). 00844 * When a bit within this field is written, the corresponding cache way is 00845 * immediately invalidated: the way's tag, data, and valid contents are cleared. This 00846 * field always reads as zero. Cache invalidation takes precedence over locking. 00847 * The cache is invalidated by system reset. System software is required to 00848 * maintain memory coherency when any segment of the flash memory is programmed or 00849 * erased. Accordingly, cache invalidations must occur after a programming or erase 00850 * event is completed and before the new memory image is accessed. The bit setting 00851 * definitions are for each bit in the field. 00852 * 00853 * Values: 00854 * - 0 - No cache way invalidation for the corresponding cache 00855 * - 1 - Invalidate cache way for the corresponding cache: clear the tag, data, 00856 * and vld bits of ways selected 00857 */ 00858 /*@{*/ 00859 #define BP_FMC_PFB0CR_CINV_WAY (20U) /*!< Bit position for FMC_PFB0CR_CINV_WAY. */ 00860 #define BM_FMC_PFB0CR_CINV_WAY (0x00F00000U) /*!< Bit mask for FMC_PFB0CR_CINV_WAY. */ 00861 #define BS_FMC_PFB0CR_CINV_WAY (4U) /*!< Bit field size in bits for FMC_PFB0CR_CINV_WAY. */ 00862 00863 /*! @brief Format value for bitfield FMC_PFB0CR_CINV_WAY. */ 00864 #define BF_FMC_PFB0CR_CINV_WAY(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_CINV_WAY) & BM_FMC_PFB0CR_CINV_WAY) 00865 00866 /*! @brief Set the CINV_WAY field to a new value. */ 00867 #define BW_FMC_PFB0CR_CINV_WAY(x, v) (HW_FMC_PFB0CR_WR(x, (HW_FMC_PFB0CR_RD(x) & ~BM_FMC_PFB0CR_CINV_WAY) | BF_FMC_PFB0CR_CINV_WAY(v))) 00868 /*@}*/ 00869 00870 /*! 00871 * @name Register FMC_PFB0CR, field CLCK_WAY[27:24] (RW) 00872 * 00873 * These bits determine if the given cache way is locked such that its contents 00874 * will not be displaced by future misses. The bit setting definitions are for 00875 * each bit in the field. 00876 * 00877 * Values: 00878 * - 0 - Cache way is unlocked and may be displaced 00879 * - 1 - Cache way is locked and its contents are not displaced 00880 */ 00881 /*@{*/ 00882 #define BP_FMC_PFB0CR_CLCK_WAY (24U) /*!< Bit position for FMC_PFB0CR_CLCK_WAY. */ 00883 #define BM_FMC_PFB0CR_CLCK_WAY (0x0F000000U) /*!< Bit mask for FMC_PFB0CR_CLCK_WAY. */ 00884 #define BS_FMC_PFB0CR_CLCK_WAY (4U) /*!< Bit field size in bits for FMC_PFB0CR_CLCK_WAY. */ 00885 00886 /*! @brief Read current value of the FMC_PFB0CR_CLCK_WAY field. */ 00887 #define BR_FMC_PFB0CR_CLCK_WAY(x) (UNION_READ(hw_fmc_pfb0cr_t, HW_FMC_PFB0CR_ADDR(x), U, B.CLCK_WAY)) 00888 00889 /*! @brief Format value for bitfield FMC_PFB0CR_CLCK_WAY. */ 00890 #define BF_FMC_PFB0CR_CLCK_WAY(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB0CR_CLCK_WAY) & BM_FMC_PFB0CR_CLCK_WAY) 00891 00892 /*! @brief Set the CLCK_WAY field to a new value. */ 00893 #define BW_FMC_PFB0CR_CLCK_WAY(x, v) (HW_FMC_PFB0CR_WR(x, (HW_FMC_PFB0CR_RD(x) & ~BM_FMC_PFB0CR_CLCK_WAY) | BF_FMC_PFB0CR_CLCK_WAY(v))) 00894 /*@}*/ 00895 00896 /*! 00897 * @name Register FMC_PFB0CR, field B0RWSC[31:28] (RO) 00898 * 00899 * This read-only field defines the number of wait states required to access the 00900 * bank 0 flash memory. The relationship between the read access time of the 00901 * flash array (expressed in system clock cycles) and RWSC is defined as: Access 00902 * time of flash array [system clocks] = RWSC + 1 The FMC automatically calculates 00903 * this value based on the ratio of the system clock speed to the flash clock 00904 * speed. For example, when this ratio is 4:1, the field's value is 3h. 00905 */ 00906 /*@{*/ 00907 #define BP_FMC_PFB0CR_B0RWSC (28U) /*!< Bit position for FMC_PFB0CR_B0RWSC. */ 00908 #define BM_FMC_PFB0CR_B0RWSC (0xF0000000U) /*!< Bit mask for FMC_PFB0CR_B0RWSC. */ 00909 #define BS_FMC_PFB0CR_B0RWSC (4U) /*!< Bit field size in bits for FMC_PFB0CR_B0RWSC. */ 00910 00911 /*! @brief Read current value of the FMC_PFB0CR_B0RWSC field. */ 00912 #define BR_FMC_PFB0CR_B0RWSC(x) (UNION_READ(hw_fmc_pfb0cr_t, HW_FMC_PFB0CR_ADDR(x), U, B.B0RWSC)) 00913 /*@}*/ 00914 00915 /******************************************************************************* 00916 * HW_FMC_PFB1CR - Flash Bank 1 Control Register 00917 ******************************************************************************/ 00918 00919 /*! 00920 * @brief HW_FMC_PFB1CR - Flash Bank 1 Control Register (RW) 00921 * 00922 * Reset value: 0x3004001FU 00923 * 00924 * This register has a format similar to that for PFB0CR, except it controls the 00925 * operation of flash bank 1, and the "global" cache control fields are empty. 00926 */ 00927 typedef union _hw_fmc_pfb1cr 00928 { 00929 uint32_t U; 00930 struct _hw_fmc_pfb1cr_bitfields 00931 { 00932 uint32_t B1SEBE : 1; /*!< [0] Bank 1 Single Entry Buffer Enable */ 00933 uint32_t B1IPE : 1; /*!< [1] Bank 1 Instruction Prefetch Enable */ 00934 uint32_t B1DPE : 1; /*!< [2] Bank 1 Data Prefetch Enable */ 00935 uint32_t B1ICE : 1; /*!< [3] Bank 1 Instruction Cache Enable */ 00936 uint32_t B1DCE : 1; /*!< [4] Bank 1 Data Cache Enable */ 00937 uint32_t RESERVED0 : 12; /*!< [16:5] */ 00938 uint32_t B1MW : 2; /*!< [18:17] Bank 1 Memory Width */ 00939 uint32_t RESERVED1 : 9; /*!< [27:19] */ 00940 uint32_t B1RWSC : 4; /*!< [31:28] Bank 1 Read Wait State Control */ 00941 } B; 00942 } hw_fmc_pfb1cr_t; 00943 00944 /*! 00945 * @name Constants and macros for entire FMC_PFB1CR register 00946 */ 00947 /*@{*/ 00948 #define HW_FMC_PFB1CR_ADDR(x) ((x) + 0x8U) 00949 00950 #define HW_FMC_PFB1CR(x) (*(__IO hw_fmc_pfb1cr_t *) HW_FMC_PFB1CR_ADDR(x)) 00951 #define HW_FMC_PFB1CR_RD(x) (ADDRESS_READ(hw_fmc_pfb1cr_t, HW_FMC_PFB1CR_ADDR(x))) 00952 #define HW_FMC_PFB1CR_WR(x, v) (ADDRESS_WRITE(hw_fmc_pfb1cr_t, HW_FMC_PFB1CR_ADDR(x), v)) 00953 #define HW_FMC_PFB1CR_SET(x, v) (HW_FMC_PFB1CR_WR(x, HW_FMC_PFB1CR_RD(x) | (v))) 00954 #define HW_FMC_PFB1CR_CLR(x, v) (HW_FMC_PFB1CR_WR(x, HW_FMC_PFB1CR_RD(x) & ~(v))) 00955 #define HW_FMC_PFB1CR_TOG(x, v) (HW_FMC_PFB1CR_WR(x, HW_FMC_PFB1CR_RD(x) ^ (v))) 00956 /*@}*/ 00957 00958 /* 00959 * Constants & macros for individual FMC_PFB1CR bitfields 00960 */ 00961 00962 /*! 00963 * @name Register FMC_PFB1CR, field B1SEBE[0] (RW) 00964 * 00965 * This bit controls whether the single entry buffer is enabled in response to 00966 * flash read accesses. Its operation is independent from bank 0's cache. A 00967 * high-to-low transition of this enable forces the page buffer to be invalidated. 00968 * 00969 * Values: 00970 * - 0 - Single entry buffer is disabled. 00971 * - 1 - Single entry buffer is enabled. 00972 */ 00973 /*@{*/ 00974 #define BP_FMC_PFB1CR_B1SEBE (0U) /*!< Bit position for FMC_PFB1CR_B1SEBE. */ 00975 #define BM_FMC_PFB1CR_B1SEBE (0x00000001U) /*!< Bit mask for FMC_PFB1CR_B1SEBE. */ 00976 #define BS_FMC_PFB1CR_B1SEBE (1U) /*!< Bit field size in bits for FMC_PFB1CR_B1SEBE. */ 00977 00978 /*! @brief Read current value of the FMC_PFB1CR_B1SEBE field. */ 00979 #define BR_FMC_PFB1CR_B1SEBE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1SEBE))) 00980 00981 /*! @brief Format value for bitfield FMC_PFB1CR_B1SEBE. */ 00982 #define BF_FMC_PFB1CR_B1SEBE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB1CR_B1SEBE) & BM_FMC_PFB1CR_B1SEBE) 00983 00984 /*! @brief Set the B1SEBE field to a new value. */ 00985 #define BW_FMC_PFB1CR_B1SEBE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1SEBE), v)) 00986 /*@}*/ 00987 00988 /*! 00989 * @name Register FMC_PFB1CR, field B1IPE[1] (RW) 00990 * 00991 * This bit controls whether prefetches (or speculative accesses) are initiated 00992 * in response to instruction fetches. 00993 * 00994 * Values: 00995 * - 0 - Do not prefetch in response to instruction fetches. 00996 * - 1 - Enable prefetches in response to instruction fetches. 00997 */ 00998 /*@{*/ 00999 #define BP_FMC_PFB1CR_B1IPE (1U) /*!< Bit position for FMC_PFB1CR_B1IPE. */ 01000 #define BM_FMC_PFB1CR_B1IPE (0x00000002U) /*!< Bit mask for FMC_PFB1CR_B1IPE. */ 01001 #define BS_FMC_PFB1CR_B1IPE (1U) /*!< Bit field size in bits for FMC_PFB1CR_B1IPE. */ 01002 01003 /*! @brief Read current value of the FMC_PFB1CR_B1IPE field. */ 01004 #define BR_FMC_PFB1CR_B1IPE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1IPE))) 01005 01006 /*! @brief Format value for bitfield FMC_PFB1CR_B1IPE. */ 01007 #define BF_FMC_PFB1CR_B1IPE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB1CR_B1IPE) & BM_FMC_PFB1CR_B1IPE) 01008 01009 /*! @brief Set the B1IPE field to a new value. */ 01010 #define BW_FMC_PFB1CR_B1IPE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1IPE), v)) 01011 /*@}*/ 01012 01013 /*! 01014 * @name Register FMC_PFB1CR, field B1DPE[2] (RW) 01015 * 01016 * This bit controls whether prefetches (or speculative accesses) are initiated 01017 * in response to data references. 01018 * 01019 * Values: 01020 * - 0 - Do not prefetch in response to data references. 01021 * - 1 - Enable prefetches in response to data references. 01022 */ 01023 /*@{*/ 01024 #define BP_FMC_PFB1CR_B1DPE (2U) /*!< Bit position for FMC_PFB1CR_B1DPE. */ 01025 #define BM_FMC_PFB1CR_B1DPE (0x00000004U) /*!< Bit mask for FMC_PFB1CR_B1DPE. */ 01026 #define BS_FMC_PFB1CR_B1DPE (1U) /*!< Bit field size in bits for FMC_PFB1CR_B1DPE. */ 01027 01028 /*! @brief Read current value of the FMC_PFB1CR_B1DPE field. */ 01029 #define BR_FMC_PFB1CR_B1DPE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1DPE))) 01030 01031 /*! @brief Format value for bitfield FMC_PFB1CR_B1DPE. */ 01032 #define BF_FMC_PFB1CR_B1DPE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB1CR_B1DPE) & BM_FMC_PFB1CR_B1DPE) 01033 01034 /*! @brief Set the B1DPE field to a new value. */ 01035 #define BW_FMC_PFB1CR_B1DPE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1DPE), v)) 01036 /*@}*/ 01037 01038 /*! 01039 * @name Register FMC_PFB1CR, field B1ICE[3] (RW) 01040 * 01041 * This bit controls whether instruction fetches are loaded into the cache. 01042 * 01043 * Values: 01044 * - 0 - Do not cache instruction fetches. 01045 * - 1 - Cache instruction fetches. 01046 */ 01047 /*@{*/ 01048 #define BP_FMC_PFB1CR_B1ICE (3U) /*!< Bit position for FMC_PFB1CR_B1ICE. */ 01049 #define BM_FMC_PFB1CR_B1ICE (0x00000008U) /*!< Bit mask for FMC_PFB1CR_B1ICE. */ 01050 #define BS_FMC_PFB1CR_B1ICE (1U) /*!< Bit field size in bits for FMC_PFB1CR_B1ICE. */ 01051 01052 /*! @brief Read current value of the FMC_PFB1CR_B1ICE field. */ 01053 #define BR_FMC_PFB1CR_B1ICE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1ICE))) 01054 01055 /*! @brief Format value for bitfield FMC_PFB1CR_B1ICE. */ 01056 #define BF_FMC_PFB1CR_B1ICE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB1CR_B1ICE) & BM_FMC_PFB1CR_B1ICE) 01057 01058 /*! @brief Set the B1ICE field to a new value. */ 01059 #define BW_FMC_PFB1CR_B1ICE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1ICE), v)) 01060 /*@}*/ 01061 01062 /*! 01063 * @name Register FMC_PFB1CR, field B1DCE[4] (RW) 01064 * 01065 * This bit controls whether data references are loaded into the cache. 01066 * 01067 * Values: 01068 * - 0 - Do not cache data references. 01069 * - 1 - Cache data references. 01070 */ 01071 /*@{*/ 01072 #define BP_FMC_PFB1CR_B1DCE (4U) /*!< Bit position for FMC_PFB1CR_B1DCE. */ 01073 #define BM_FMC_PFB1CR_B1DCE (0x00000010U) /*!< Bit mask for FMC_PFB1CR_B1DCE. */ 01074 #define BS_FMC_PFB1CR_B1DCE (1U) /*!< Bit field size in bits for FMC_PFB1CR_B1DCE. */ 01075 01076 /*! @brief Read current value of the FMC_PFB1CR_B1DCE field. */ 01077 #define BR_FMC_PFB1CR_B1DCE(x) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1DCE))) 01078 01079 /*! @brief Format value for bitfield FMC_PFB1CR_B1DCE. */ 01080 #define BF_FMC_PFB1CR_B1DCE(v) ((uint32_t)((uint32_t)(v) << BP_FMC_PFB1CR_B1DCE) & BM_FMC_PFB1CR_B1DCE) 01081 01082 /*! @brief Set the B1DCE field to a new value. */ 01083 #define BW_FMC_PFB1CR_B1DCE(x, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_PFB1CR_ADDR(x), BP_FMC_PFB1CR_B1DCE), v)) 01084 /*@}*/ 01085 01086 /*! 01087 * @name Register FMC_PFB1CR, field B1MW[18:17] (RO) 01088 * 01089 * This read-only field defines the width of the bank 1 memory. 01090 * 01091 * Values: 01092 * - 00 - 32 bits 01093 * - 01 - 64 bits 01094 * - 10 - 128 bits 01095 * - 11 - Reserved 01096 */ 01097 /*@{*/ 01098 #define BP_FMC_PFB1CR_B1MW (17U) /*!< Bit position for FMC_PFB1CR_B1MW. */ 01099 #define BM_FMC_PFB1CR_B1MW (0x00060000U) /*!< Bit mask for FMC_PFB1CR_B1MW. */ 01100 #define BS_FMC_PFB1CR_B1MW (2U) /*!< Bit field size in bits for FMC_PFB1CR_B1MW. */ 01101 01102 /*! @brief Read current value of the FMC_PFB1CR_B1MW field. */ 01103 #define BR_FMC_PFB1CR_B1MW(x) (UNION_READ(hw_fmc_pfb1cr_t, HW_FMC_PFB1CR_ADDR(x), U, B.B1MW)) 01104 /*@}*/ 01105 01106 /*! 01107 * @name Register FMC_PFB1CR, field B1RWSC[31:28] (RO) 01108 * 01109 * This read-only field defines the number of wait states required to access the 01110 * bank 1 flash memory. The relationship between the read access time of the 01111 * flash array (expressed in system clock cycles) and RWSC is defined as: Access 01112 * time of flash array [system clocks] = RWSC + 1 The FMC automatically calculates 01113 * this value based on the ratio of the system clock speed to the flash clock 01114 * speed. For example, when this ratio is 4:1, the field's value is 3h. 01115 */ 01116 /*@{*/ 01117 #define BP_FMC_PFB1CR_B1RWSC (28U) /*!< Bit position for FMC_PFB1CR_B1RWSC. */ 01118 #define BM_FMC_PFB1CR_B1RWSC (0xF0000000U) /*!< Bit mask for FMC_PFB1CR_B1RWSC. */ 01119 #define BS_FMC_PFB1CR_B1RWSC (4U) /*!< Bit field size in bits for FMC_PFB1CR_B1RWSC. */ 01120 01121 /*! @brief Read current value of the FMC_PFB1CR_B1RWSC field. */ 01122 #define BR_FMC_PFB1CR_B1RWSC(x) (UNION_READ(hw_fmc_pfb1cr_t, HW_FMC_PFB1CR_ADDR(x), U, B.B1RWSC)) 01123 /*@}*/ 01124 01125 /******************************************************************************* 01126 * HW_FMC_TAGVDW0Sn - Cache Tag Storage 01127 ******************************************************************************/ 01128 01129 /*! 01130 * @brief HW_FMC_TAGVDW0Sn - Cache Tag Storage (RW) 01131 * 01132 * Reset value: 0x00000000U 01133 * 01134 * The cache is a 4-way, set-associative cache with 4 sets. The ways are 01135 * numbered 0-3 and the sets are numbered 0-3. In TAGVDWxSy, x denotes the way, and y 01136 * denotes the set. This section represents tag/vld information for all sets in the 01137 * indicated way. 01138 */ 01139 typedef union _hw_fmc_tagvdw0sn 01140 { 01141 uint32_t U; 01142 struct _hw_fmc_tagvdw0sn_bitfields 01143 { 01144 uint32_t valid : 1; /*!< [0] 1-bit valid for cache entry */ 01145 uint32_t RESERVED0 : 4; /*!< [4:1] */ 01146 uint32_t tag : 14; /*!< [18:5] 14-bit tag for cache entry */ 01147 uint32_t RESERVED1 : 13; /*!< [31:19] */ 01148 } B; 01149 } hw_fmc_tagvdw0sn_t; 01150 01151 /*! 01152 * @name Constants and macros for entire FMC_TAGVDW0Sn register 01153 */ 01154 /*@{*/ 01155 #define HW_FMC_TAGVDW0Sn_COUNT (4U) 01156 01157 #define HW_FMC_TAGVDW0Sn_ADDR(x, n) ((x) + 0x100U + (0x4U * (n))) 01158 01159 #define HW_FMC_TAGVDW0Sn(x, n) (*(__IO hw_fmc_tagvdw0sn_t *) HW_FMC_TAGVDW0Sn_ADDR(x, n)) 01160 #define HW_FMC_TAGVDW0Sn_RD(x, n) (ADDRESS_READ(hw_fmc_tagvdw0sn_t, HW_FMC_TAGVDW0Sn_ADDR(x, n))) 01161 #define HW_FMC_TAGVDW0Sn_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_tagvdw0sn_t, HW_FMC_TAGVDW0Sn_ADDR(x, n), v)) 01162 #define HW_FMC_TAGVDW0Sn_SET(x, n, v) (HW_FMC_TAGVDW0Sn_WR(x, n, HW_FMC_TAGVDW0Sn_RD(x, n) | (v))) 01163 #define HW_FMC_TAGVDW0Sn_CLR(x, n, v) (HW_FMC_TAGVDW0Sn_WR(x, n, HW_FMC_TAGVDW0Sn_RD(x, n) & ~(v))) 01164 #define HW_FMC_TAGVDW0Sn_TOG(x, n, v) (HW_FMC_TAGVDW0Sn_WR(x, n, HW_FMC_TAGVDW0Sn_RD(x, n) ^ (v))) 01165 /*@}*/ 01166 01167 /* 01168 * Constants & macros for individual FMC_TAGVDW0Sn bitfields 01169 */ 01170 01171 /*! 01172 * @name Register FMC_TAGVDW0Sn, field valid[0] (RW) 01173 */ 01174 /*@{*/ 01175 #define BP_FMC_TAGVDW0Sn_valid (0U) /*!< Bit position for FMC_TAGVDW0Sn_valid. */ 01176 #define BM_FMC_TAGVDW0Sn_valid (0x00000001U) /*!< Bit mask for FMC_TAGVDW0Sn_valid. */ 01177 #define BS_FMC_TAGVDW0Sn_valid (1U) /*!< Bit field size in bits for FMC_TAGVDW0Sn_valid. */ 01178 01179 /*! @brief Read current value of the FMC_TAGVDW0Sn_valid field. */ 01180 #define BR_FMC_TAGVDW0Sn_valid(x, n) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_TAGVDW0Sn_ADDR(x, n), BP_FMC_TAGVDW0Sn_valid))) 01181 01182 /*! @brief Format value for bitfield FMC_TAGVDW0Sn_valid. */ 01183 #define BF_FMC_TAGVDW0Sn_valid(v) ((uint32_t)((uint32_t)(v) << BP_FMC_TAGVDW0Sn_valid) & BM_FMC_TAGVDW0Sn_valid) 01184 01185 /*! @brief Set the valid field to a new value. */ 01186 #define BW_FMC_TAGVDW0Sn_valid(x, n, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_TAGVDW0Sn_ADDR(x, n), BP_FMC_TAGVDW0Sn_valid), v)) 01187 /*@}*/ 01188 01189 /*! 01190 * @name Register FMC_TAGVDW0Sn, field tag[18:5] (RW) 01191 */ 01192 /*@{*/ 01193 #define BP_FMC_TAGVDW0Sn_tag (5U) /*!< Bit position for FMC_TAGVDW0Sn_tag. */ 01194 #define BM_FMC_TAGVDW0Sn_tag (0x0007FFE0U) /*!< Bit mask for FMC_TAGVDW0Sn_tag. */ 01195 #define BS_FMC_TAGVDW0Sn_tag (14U) /*!< Bit field size in bits for FMC_TAGVDW0Sn_tag. */ 01196 01197 /*! @brief Read current value of the FMC_TAGVDW0Sn_tag field. */ 01198 #define BR_FMC_TAGVDW0Sn_tag(x, n) (UNION_READ(hw_fmc_tagvdw0sn_t, HW_FMC_TAGVDW0Sn_ADDR(x, n), U, B.tag)) 01199 01200 /*! @brief Format value for bitfield FMC_TAGVDW0Sn_tag. */ 01201 #define BF_FMC_TAGVDW0Sn_tag(v) ((uint32_t)((uint32_t)(v) << BP_FMC_TAGVDW0Sn_tag) & BM_FMC_TAGVDW0Sn_tag) 01202 01203 /*! @brief Set the tag field to a new value. */ 01204 #define BW_FMC_TAGVDW0Sn_tag(x, n, v) (HW_FMC_TAGVDW0Sn_WR(x, n, (HW_FMC_TAGVDW0Sn_RD(x, n) & ~BM_FMC_TAGVDW0Sn_tag) | BF_FMC_TAGVDW0Sn_tag(v))) 01205 /*@}*/ 01206 01207 /******************************************************************************* 01208 * HW_FMC_TAGVDW1Sn - Cache Tag Storage 01209 ******************************************************************************/ 01210 01211 /*! 01212 * @brief HW_FMC_TAGVDW1Sn - Cache Tag Storage (RW) 01213 * 01214 * Reset value: 0x00000000U 01215 * 01216 * The cache is a 4-way, set-associative cache with 4 sets. The ways are 01217 * numbered 0-3 and the sets are numbered 0-3. In TAGVDWxSy, x denotes the way, and y 01218 * denotes the set. This section represents tag/vld information for all sets in the 01219 * indicated way. 01220 */ 01221 typedef union _hw_fmc_tagvdw1sn 01222 { 01223 uint32_t U; 01224 struct _hw_fmc_tagvdw1sn_bitfields 01225 { 01226 uint32_t valid : 1; /*!< [0] 1-bit valid for cache entry */ 01227 uint32_t RESERVED0 : 4; /*!< [4:1] */ 01228 uint32_t tag : 14; /*!< [18:5] 14-bit tag for cache entry */ 01229 uint32_t RESERVED1 : 13; /*!< [31:19] */ 01230 } B; 01231 } hw_fmc_tagvdw1sn_t; 01232 01233 /*! 01234 * @name Constants and macros for entire FMC_TAGVDW1Sn register 01235 */ 01236 /*@{*/ 01237 #define HW_FMC_TAGVDW1Sn_COUNT (4U) 01238 01239 #define HW_FMC_TAGVDW1Sn_ADDR(x, n) ((x) + 0x110U + (0x4U * (n))) 01240 01241 #define HW_FMC_TAGVDW1Sn(x, n) (*(__IO hw_fmc_tagvdw1sn_t *) HW_FMC_TAGVDW1Sn_ADDR(x, n)) 01242 #define HW_FMC_TAGVDW1Sn_RD(x, n) (ADDRESS_READ(hw_fmc_tagvdw1sn_t, HW_FMC_TAGVDW1Sn_ADDR(x, n))) 01243 #define HW_FMC_TAGVDW1Sn_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_tagvdw1sn_t, HW_FMC_TAGVDW1Sn_ADDR(x, n), v)) 01244 #define HW_FMC_TAGVDW1Sn_SET(x, n, v) (HW_FMC_TAGVDW1Sn_WR(x, n, HW_FMC_TAGVDW1Sn_RD(x, n) | (v))) 01245 #define HW_FMC_TAGVDW1Sn_CLR(x, n, v) (HW_FMC_TAGVDW1Sn_WR(x, n, HW_FMC_TAGVDW1Sn_RD(x, n) & ~(v))) 01246 #define HW_FMC_TAGVDW1Sn_TOG(x, n, v) (HW_FMC_TAGVDW1Sn_WR(x, n, HW_FMC_TAGVDW1Sn_RD(x, n) ^ (v))) 01247 /*@}*/ 01248 01249 /* 01250 * Constants & macros for individual FMC_TAGVDW1Sn bitfields 01251 */ 01252 01253 /*! 01254 * @name Register FMC_TAGVDW1Sn, field valid[0] (RW) 01255 */ 01256 /*@{*/ 01257 #define BP_FMC_TAGVDW1Sn_valid (0U) /*!< Bit position for FMC_TAGVDW1Sn_valid. */ 01258 #define BM_FMC_TAGVDW1Sn_valid (0x00000001U) /*!< Bit mask for FMC_TAGVDW1Sn_valid. */ 01259 #define BS_FMC_TAGVDW1Sn_valid (1U) /*!< Bit field size in bits for FMC_TAGVDW1Sn_valid. */ 01260 01261 /*! @brief Read current value of the FMC_TAGVDW1Sn_valid field. */ 01262 #define BR_FMC_TAGVDW1Sn_valid(x, n) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_TAGVDW1Sn_ADDR(x, n), BP_FMC_TAGVDW1Sn_valid))) 01263 01264 /*! @brief Format value for bitfield FMC_TAGVDW1Sn_valid. */ 01265 #define BF_FMC_TAGVDW1Sn_valid(v) ((uint32_t)((uint32_t)(v) << BP_FMC_TAGVDW1Sn_valid) & BM_FMC_TAGVDW1Sn_valid) 01266 01267 /*! @brief Set the valid field to a new value. */ 01268 #define BW_FMC_TAGVDW1Sn_valid(x, n, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_TAGVDW1Sn_ADDR(x, n), BP_FMC_TAGVDW1Sn_valid), v)) 01269 /*@}*/ 01270 01271 /*! 01272 * @name Register FMC_TAGVDW1Sn, field tag[18:5] (RW) 01273 */ 01274 /*@{*/ 01275 #define BP_FMC_TAGVDW1Sn_tag (5U) /*!< Bit position for FMC_TAGVDW1Sn_tag. */ 01276 #define BM_FMC_TAGVDW1Sn_tag (0x0007FFE0U) /*!< Bit mask for FMC_TAGVDW1Sn_tag. */ 01277 #define BS_FMC_TAGVDW1Sn_tag (14U) /*!< Bit field size in bits for FMC_TAGVDW1Sn_tag. */ 01278 01279 /*! @brief Read current value of the FMC_TAGVDW1Sn_tag field. */ 01280 #define BR_FMC_TAGVDW1Sn_tag(x, n) (UNION_READ(hw_fmc_tagvdw1sn_t, HW_FMC_TAGVDW1Sn_ADDR(x, n), U, B.tag)) 01281 01282 /*! @brief Format value for bitfield FMC_TAGVDW1Sn_tag. */ 01283 #define BF_FMC_TAGVDW1Sn_tag(v) ((uint32_t)((uint32_t)(v) << BP_FMC_TAGVDW1Sn_tag) & BM_FMC_TAGVDW1Sn_tag) 01284 01285 /*! @brief Set the tag field to a new value. */ 01286 #define BW_FMC_TAGVDW1Sn_tag(x, n, v) (HW_FMC_TAGVDW1Sn_WR(x, n, (HW_FMC_TAGVDW1Sn_RD(x, n) & ~BM_FMC_TAGVDW1Sn_tag) | BF_FMC_TAGVDW1Sn_tag(v))) 01287 /*@}*/ 01288 01289 /******************************************************************************* 01290 * HW_FMC_TAGVDW2Sn - Cache Tag Storage 01291 ******************************************************************************/ 01292 01293 /*! 01294 * @brief HW_FMC_TAGVDW2Sn - Cache Tag Storage (RW) 01295 * 01296 * Reset value: 0x00000000U 01297 * 01298 * The cache is a 4-way, set-associative cache with 4 sets. The ways are 01299 * numbered 0-3 and the sets are numbered 0-3. In TAGVDWxSy, x denotes the way, and y 01300 * denotes the set. This section represents tag/vld information for all sets in the 01301 * indicated way. 01302 */ 01303 typedef union _hw_fmc_tagvdw2sn 01304 { 01305 uint32_t U; 01306 struct _hw_fmc_tagvdw2sn_bitfields 01307 { 01308 uint32_t valid : 1; /*!< [0] 1-bit valid for cache entry */ 01309 uint32_t RESERVED0 : 4; /*!< [4:1] */ 01310 uint32_t tag : 14; /*!< [18:5] 14-bit tag for cache entry */ 01311 uint32_t RESERVED1 : 13; /*!< [31:19] */ 01312 } B; 01313 } hw_fmc_tagvdw2sn_t; 01314 01315 /*! 01316 * @name Constants and macros for entire FMC_TAGVDW2Sn register 01317 */ 01318 /*@{*/ 01319 #define HW_FMC_TAGVDW2Sn_COUNT (4U) 01320 01321 #define HW_FMC_TAGVDW2Sn_ADDR(x, n) ((x) + 0x120U + (0x4U * (n))) 01322 01323 #define HW_FMC_TAGVDW2Sn(x, n) (*(__IO hw_fmc_tagvdw2sn_t *) HW_FMC_TAGVDW2Sn_ADDR(x, n)) 01324 #define HW_FMC_TAGVDW2Sn_RD(x, n) (ADDRESS_READ(hw_fmc_tagvdw2sn_t, HW_FMC_TAGVDW2Sn_ADDR(x, n))) 01325 #define HW_FMC_TAGVDW2Sn_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_tagvdw2sn_t, HW_FMC_TAGVDW2Sn_ADDR(x, n), v)) 01326 #define HW_FMC_TAGVDW2Sn_SET(x, n, v) (HW_FMC_TAGVDW2Sn_WR(x, n, HW_FMC_TAGVDW2Sn_RD(x, n) | (v))) 01327 #define HW_FMC_TAGVDW2Sn_CLR(x, n, v) (HW_FMC_TAGVDW2Sn_WR(x, n, HW_FMC_TAGVDW2Sn_RD(x, n) & ~(v))) 01328 #define HW_FMC_TAGVDW2Sn_TOG(x, n, v) (HW_FMC_TAGVDW2Sn_WR(x, n, HW_FMC_TAGVDW2Sn_RD(x, n) ^ (v))) 01329 /*@}*/ 01330 01331 /* 01332 * Constants & macros for individual FMC_TAGVDW2Sn bitfields 01333 */ 01334 01335 /*! 01336 * @name Register FMC_TAGVDW2Sn, field valid[0] (RW) 01337 */ 01338 /*@{*/ 01339 #define BP_FMC_TAGVDW2Sn_valid (0U) /*!< Bit position for FMC_TAGVDW2Sn_valid. */ 01340 #define BM_FMC_TAGVDW2Sn_valid (0x00000001U) /*!< Bit mask for FMC_TAGVDW2Sn_valid. */ 01341 #define BS_FMC_TAGVDW2Sn_valid (1U) /*!< Bit field size in bits for FMC_TAGVDW2Sn_valid. */ 01342 01343 /*! @brief Read current value of the FMC_TAGVDW2Sn_valid field. */ 01344 #define BR_FMC_TAGVDW2Sn_valid(x, n) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_TAGVDW2Sn_ADDR(x, n), BP_FMC_TAGVDW2Sn_valid))) 01345 01346 /*! @brief Format value for bitfield FMC_TAGVDW2Sn_valid. */ 01347 #define BF_FMC_TAGVDW2Sn_valid(v) ((uint32_t)((uint32_t)(v) << BP_FMC_TAGVDW2Sn_valid) & BM_FMC_TAGVDW2Sn_valid) 01348 01349 /*! @brief Set the valid field to a new value. */ 01350 #define BW_FMC_TAGVDW2Sn_valid(x, n, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_TAGVDW2Sn_ADDR(x, n), BP_FMC_TAGVDW2Sn_valid), v)) 01351 /*@}*/ 01352 01353 /*! 01354 * @name Register FMC_TAGVDW2Sn, field tag[18:5] (RW) 01355 */ 01356 /*@{*/ 01357 #define BP_FMC_TAGVDW2Sn_tag (5U) /*!< Bit position for FMC_TAGVDW2Sn_tag. */ 01358 #define BM_FMC_TAGVDW2Sn_tag (0x0007FFE0U) /*!< Bit mask for FMC_TAGVDW2Sn_tag. */ 01359 #define BS_FMC_TAGVDW2Sn_tag (14U) /*!< Bit field size in bits for FMC_TAGVDW2Sn_tag. */ 01360 01361 /*! @brief Read current value of the FMC_TAGVDW2Sn_tag field. */ 01362 #define BR_FMC_TAGVDW2Sn_tag(x, n) (UNION_READ(hw_fmc_tagvdw2sn_t, HW_FMC_TAGVDW2Sn_ADDR(x, n), U, B.tag)) 01363 01364 /*! @brief Format value for bitfield FMC_TAGVDW2Sn_tag. */ 01365 #define BF_FMC_TAGVDW2Sn_tag(v) ((uint32_t)((uint32_t)(v) << BP_FMC_TAGVDW2Sn_tag) & BM_FMC_TAGVDW2Sn_tag) 01366 01367 /*! @brief Set the tag field to a new value. */ 01368 #define BW_FMC_TAGVDW2Sn_tag(x, n, v) (HW_FMC_TAGVDW2Sn_WR(x, n, (HW_FMC_TAGVDW2Sn_RD(x, n) & ~BM_FMC_TAGVDW2Sn_tag) | BF_FMC_TAGVDW2Sn_tag(v))) 01369 /*@}*/ 01370 01371 /******************************************************************************* 01372 * HW_FMC_TAGVDW3Sn - Cache Tag Storage 01373 ******************************************************************************/ 01374 01375 /*! 01376 * @brief HW_FMC_TAGVDW3Sn - Cache Tag Storage (RW) 01377 * 01378 * Reset value: 0x00000000U 01379 * 01380 * The cache is a 4-way, set-associative cache with 4 sets. The ways are 01381 * numbered 0-3 and the sets are numbered 0-3. In TAGVDWxSy, x denotes the way, and y 01382 * denotes the set. This section represents tag/vld information for all sets in the 01383 * indicated way. 01384 */ 01385 typedef union _hw_fmc_tagvdw3sn 01386 { 01387 uint32_t U; 01388 struct _hw_fmc_tagvdw3sn_bitfields 01389 { 01390 uint32_t valid : 1; /*!< [0] 1-bit valid for cache entry */ 01391 uint32_t RESERVED0 : 4; /*!< [4:1] */ 01392 uint32_t tag : 14; /*!< [18:5] 14-bit tag for cache entry */ 01393 uint32_t RESERVED1 : 13; /*!< [31:19] */ 01394 } B; 01395 } hw_fmc_tagvdw3sn_t; 01396 01397 /*! 01398 * @name Constants and macros for entire FMC_TAGVDW3Sn register 01399 */ 01400 /*@{*/ 01401 #define HW_FMC_TAGVDW3Sn_COUNT (4U) 01402 01403 #define HW_FMC_TAGVDW3Sn_ADDR(x, n) ((x) + 0x130U + (0x4U * (n))) 01404 01405 #define HW_FMC_TAGVDW3Sn(x, n) (*(__IO hw_fmc_tagvdw3sn_t *) HW_FMC_TAGVDW3Sn_ADDR(x, n)) 01406 #define HW_FMC_TAGVDW3Sn_RD(x, n) (ADDRESS_READ(hw_fmc_tagvdw3sn_t, HW_FMC_TAGVDW3Sn_ADDR(x, n))) 01407 #define HW_FMC_TAGVDW3Sn_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_tagvdw3sn_t, HW_FMC_TAGVDW3Sn_ADDR(x, n), v)) 01408 #define HW_FMC_TAGVDW3Sn_SET(x, n, v) (HW_FMC_TAGVDW3Sn_WR(x, n, HW_FMC_TAGVDW3Sn_RD(x, n) | (v))) 01409 #define HW_FMC_TAGVDW3Sn_CLR(x, n, v) (HW_FMC_TAGVDW3Sn_WR(x, n, HW_FMC_TAGVDW3Sn_RD(x, n) & ~(v))) 01410 #define HW_FMC_TAGVDW3Sn_TOG(x, n, v) (HW_FMC_TAGVDW3Sn_WR(x, n, HW_FMC_TAGVDW3Sn_RD(x, n) ^ (v))) 01411 /*@}*/ 01412 01413 /* 01414 * Constants & macros for individual FMC_TAGVDW3Sn bitfields 01415 */ 01416 01417 /*! 01418 * @name Register FMC_TAGVDW3Sn, field valid[0] (RW) 01419 */ 01420 /*@{*/ 01421 #define BP_FMC_TAGVDW3Sn_valid (0U) /*!< Bit position for FMC_TAGVDW3Sn_valid. */ 01422 #define BM_FMC_TAGVDW3Sn_valid (0x00000001U) /*!< Bit mask for FMC_TAGVDW3Sn_valid. */ 01423 #define BS_FMC_TAGVDW3Sn_valid (1U) /*!< Bit field size in bits for FMC_TAGVDW3Sn_valid. */ 01424 01425 /*! @brief Read current value of the FMC_TAGVDW3Sn_valid field. */ 01426 #define BR_FMC_TAGVDW3Sn_valid(x, n) (ADDRESS_READ(uint32_t, BITBAND_ADDRESS32(HW_FMC_TAGVDW3Sn_ADDR(x, n), BP_FMC_TAGVDW3Sn_valid))) 01427 01428 /*! @brief Format value for bitfield FMC_TAGVDW3Sn_valid. */ 01429 #define BF_FMC_TAGVDW3Sn_valid(v) ((uint32_t)((uint32_t)(v) << BP_FMC_TAGVDW3Sn_valid) & BM_FMC_TAGVDW3Sn_valid) 01430 01431 /*! @brief Set the valid field to a new value. */ 01432 #define BW_FMC_TAGVDW3Sn_valid(x, n, v) (ADDRESS_WRITE(uint32_t, BITBAND_ADDRESS32(HW_FMC_TAGVDW3Sn_ADDR(x, n), BP_FMC_TAGVDW3Sn_valid), v)) 01433 /*@}*/ 01434 01435 /*! 01436 * @name Register FMC_TAGVDW3Sn, field tag[18:5] (RW) 01437 */ 01438 /*@{*/ 01439 #define BP_FMC_TAGVDW3Sn_tag (5U) /*!< Bit position for FMC_TAGVDW3Sn_tag. */ 01440 #define BM_FMC_TAGVDW3Sn_tag (0x0007FFE0U) /*!< Bit mask for FMC_TAGVDW3Sn_tag. */ 01441 #define BS_FMC_TAGVDW3Sn_tag (14U) /*!< Bit field size in bits for FMC_TAGVDW3Sn_tag. */ 01442 01443 /*! @brief Read current value of the FMC_TAGVDW3Sn_tag field. */ 01444 #define BR_FMC_TAGVDW3Sn_tag(x, n) (UNION_READ(hw_fmc_tagvdw3sn_t, HW_FMC_TAGVDW3Sn_ADDR(x, n), U, B.tag)) 01445 01446 /*! @brief Format value for bitfield FMC_TAGVDW3Sn_tag. */ 01447 #define BF_FMC_TAGVDW3Sn_tag(v) ((uint32_t)((uint32_t)(v) << BP_FMC_TAGVDW3Sn_tag) & BM_FMC_TAGVDW3Sn_tag) 01448 01449 /*! @brief Set the tag field to a new value. */ 01450 #define BW_FMC_TAGVDW3Sn_tag(x, n, v) (HW_FMC_TAGVDW3Sn_WR(x, n, (HW_FMC_TAGVDW3Sn_RD(x, n) & ~BM_FMC_TAGVDW3Sn_tag) | BF_FMC_TAGVDW3Sn_tag(v))) 01451 /*@}*/ 01452 01453 /******************************************************************************* 01454 * HW_FMC_DATAW0SnU - Cache Data Storage (upper word) 01455 ******************************************************************************/ 01456 01457 /*! 01458 * @brief HW_FMC_DATAW0SnU - Cache Data Storage (upper word) (RW) 01459 * 01460 * Reset value: 0x00000000U 01461 * 01462 * The cache of 64-bit entries is a 4-way, set-associative cache with 4 sets. 01463 * The ways are numbered 0-3 and the sets are numbered 0-3. In DATAWxSyU and 01464 * DATAWxSyL, x denotes the way, y denotes the set, and U and L represent upper and 01465 * lower word, respectively. This section represents data for the upper word (bits 01466 * [63:32]) of all sets in the indicated way. 01467 */ 01468 typedef union _hw_fmc_dataw0snu 01469 { 01470 uint32_t U; 01471 struct _hw_fmc_dataw0snu_bitfields 01472 { 01473 uint32_t data : 32; /*!< [31:0] Bits [63:32] of data entry */ 01474 } B; 01475 } hw_fmc_dataw0snu_t; 01476 01477 /*! 01478 * @name Constants and macros for entire FMC_DATAW0SnU register 01479 */ 01480 /*@{*/ 01481 #define HW_FMC_DATAW0SnU_COUNT (4U) 01482 01483 #define HW_FMC_DATAW0SnU_ADDR(x, n) ((x) + 0x200U + (0x8U * (n))) 01484 01485 #define HW_FMC_DATAW0SnU(x, n) (*(__IO hw_fmc_dataw0snu_t *) HW_FMC_DATAW0SnU_ADDR(x, n)) 01486 #define HW_FMC_DATAW0SnU_RD(x, n) (ADDRESS_READ(hw_fmc_dataw0snu_t, HW_FMC_DATAW0SnU_ADDR(x, n))) 01487 #define HW_FMC_DATAW0SnU_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_dataw0snu_t, HW_FMC_DATAW0SnU_ADDR(x, n), v)) 01488 #define HW_FMC_DATAW0SnU_SET(x, n, v) (HW_FMC_DATAW0SnU_WR(x, n, HW_FMC_DATAW0SnU_RD(x, n) | (v))) 01489 #define HW_FMC_DATAW0SnU_CLR(x, n, v) (HW_FMC_DATAW0SnU_WR(x, n, HW_FMC_DATAW0SnU_RD(x, n) & ~(v))) 01490 #define HW_FMC_DATAW0SnU_TOG(x, n, v) (HW_FMC_DATAW0SnU_WR(x, n, HW_FMC_DATAW0SnU_RD(x, n) ^ (v))) 01491 /*@}*/ 01492 01493 /* 01494 * Constants & macros for individual FMC_DATAW0SnU bitfields 01495 */ 01496 01497 /*! 01498 * @name Register FMC_DATAW0SnU, field data[31:0] (RW) 01499 */ 01500 /*@{*/ 01501 #define BP_FMC_DATAW0SnU_data (0U) /*!< Bit position for FMC_DATAW0SnU_data. */ 01502 #define BM_FMC_DATAW0SnU_data (0xFFFFFFFFU) /*!< Bit mask for FMC_DATAW0SnU_data. */ 01503 #define BS_FMC_DATAW0SnU_data (32U) /*!< Bit field size in bits for FMC_DATAW0SnU_data. */ 01504 01505 /*! @brief Read current value of the FMC_DATAW0SnU_data field. */ 01506 #define BR_FMC_DATAW0SnU_data(x, n) (HW_FMC_DATAW0SnU(x, n).U) 01507 01508 /*! @brief Format value for bitfield FMC_DATAW0SnU_data. */ 01509 #define BF_FMC_DATAW0SnU_data(v) ((uint32_t)((uint32_t)(v) << BP_FMC_DATAW0SnU_data) & BM_FMC_DATAW0SnU_data) 01510 01511 /*! @brief Set the data field to a new value. */ 01512 #define BW_FMC_DATAW0SnU_data(x, n, v) (HW_FMC_DATAW0SnU_WR(x, n, v)) 01513 /*@}*/ 01514 /******************************************************************************* 01515 * HW_FMC_DATAW0SnL - Cache Data Storage (lower word) 01516 ******************************************************************************/ 01517 01518 /*! 01519 * @brief HW_FMC_DATAW0SnL - Cache Data Storage (lower word) (RW) 01520 * 01521 * Reset value: 0x00000000U 01522 * 01523 * The cache of 64-bit entries is a 4-way, set-associative cache with 4 sets. 01524 * The ways are numbered 0-3 and the sets are numbered 0-3. In DATAWxSyU and 01525 * DATAWxSyL, x denotes the way, y denotes the set, and U and L represent upper and 01526 * lower word, respectively. This section represents data for the lower word (bits 01527 * [31:0]) of all sets in the indicated way. 01528 */ 01529 typedef union _hw_fmc_dataw0snl 01530 { 01531 uint32_t U; 01532 struct _hw_fmc_dataw0snl_bitfields 01533 { 01534 uint32_t data : 32; /*!< [31:0] Bits [31:0] of data entry */ 01535 } B; 01536 } hw_fmc_dataw0snl_t; 01537 01538 /*! 01539 * @name Constants and macros for entire FMC_DATAW0SnL register 01540 */ 01541 /*@{*/ 01542 #define HW_FMC_DATAW0SnL_COUNT (4U) 01543 01544 #define HW_FMC_DATAW0SnL_ADDR(x, n) ((x) + 0x204U + (0x8U * (n))) 01545 01546 #define HW_FMC_DATAW0SnL(x, n) (*(__IO hw_fmc_dataw0snl_t *) HW_FMC_DATAW0SnL_ADDR(x, n)) 01547 #define HW_FMC_DATAW0SnL_RD(x, n) (ADDRESS_READ(hw_fmc_dataw0snl_t, HW_FMC_DATAW0SnL_ADDR(x, n))) 01548 #define HW_FMC_DATAW0SnL_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_dataw0snl_t, HW_FMC_DATAW0SnL_ADDR(x, n), v)) 01549 #define HW_FMC_DATAW0SnL_SET(x, n, v) (HW_FMC_DATAW0SnL_WR(x, n, HW_FMC_DATAW0SnL_RD(x, n) | (v))) 01550 #define HW_FMC_DATAW0SnL_CLR(x, n, v) (HW_FMC_DATAW0SnL_WR(x, n, HW_FMC_DATAW0SnL_RD(x, n) & ~(v))) 01551 #define HW_FMC_DATAW0SnL_TOG(x, n, v) (HW_FMC_DATAW0SnL_WR(x, n, HW_FMC_DATAW0SnL_RD(x, n) ^ (v))) 01552 /*@}*/ 01553 01554 /* 01555 * Constants & macros for individual FMC_DATAW0SnL bitfields 01556 */ 01557 01558 /*! 01559 * @name Register FMC_DATAW0SnL, field data[31:0] (RW) 01560 */ 01561 /*@{*/ 01562 #define BP_FMC_DATAW0SnL_data (0U) /*!< Bit position for FMC_DATAW0SnL_data. */ 01563 #define BM_FMC_DATAW0SnL_data (0xFFFFFFFFU) /*!< Bit mask for FMC_DATAW0SnL_data. */ 01564 #define BS_FMC_DATAW0SnL_data (32U) /*!< Bit field size in bits for FMC_DATAW0SnL_data. */ 01565 01566 /*! @brief Read current value of the FMC_DATAW0SnL_data field. */ 01567 #define BR_FMC_DATAW0SnL_data(x, n) (HW_FMC_DATAW0SnL(x, n).U) 01568 01569 /*! @brief Format value for bitfield FMC_DATAW0SnL_data. */ 01570 #define BF_FMC_DATAW0SnL_data(v) ((uint32_t)((uint32_t)(v) << BP_FMC_DATAW0SnL_data) & BM_FMC_DATAW0SnL_data) 01571 01572 /*! @brief Set the data field to a new value. */ 01573 #define BW_FMC_DATAW0SnL_data(x, n, v) (HW_FMC_DATAW0SnL_WR(x, n, v)) 01574 /*@}*/ 01575 01576 /******************************************************************************* 01577 * HW_FMC_DATAW1SnU - Cache Data Storage (upper word) 01578 ******************************************************************************/ 01579 01580 /*! 01581 * @brief HW_FMC_DATAW1SnU - Cache Data Storage (upper word) (RW) 01582 * 01583 * Reset value: 0x00000000U 01584 * 01585 * The cache of 64-bit entries is a 4-way, set-associative cache with 4 sets. 01586 * The ways are numbered 0-3 and the sets are numbered 0-3. In DATAWxSyU and 01587 * DATAWxSyL, x denotes the way, y denotes the set, and U and L represent upper and 01588 * lower word, respectively. This section represents data for the upper word (bits 01589 * [63:32]) of all sets in the indicated way. 01590 */ 01591 typedef union _hw_fmc_dataw1snu 01592 { 01593 uint32_t U; 01594 struct _hw_fmc_dataw1snu_bitfields 01595 { 01596 uint32_t data : 32; /*!< [31:0] Bits [63:32] of data entry */ 01597 } B; 01598 } hw_fmc_dataw1snu_t; 01599 01600 /*! 01601 * @name Constants and macros for entire FMC_DATAW1SnU register 01602 */ 01603 /*@{*/ 01604 #define HW_FMC_DATAW1SnU_COUNT (4U) 01605 01606 #define HW_FMC_DATAW1SnU_ADDR(x, n) ((x) + 0x220U + (0x8U * (n))) 01607 01608 #define HW_FMC_DATAW1SnU(x, n) (*(__IO hw_fmc_dataw1snu_t *) HW_FMC_DATAW1SnU_ADDR(x, n)) 01609 #define HW_FMC_DATAW1SnU_RD(x, n) (ADDRESS_READ(hw_fmc_dataw1snu_t, HW_FMC_DATAW1SnU_ADDR(x, n))) 01610 #define HW_FMC_DATAW1SnU_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_dataw1snu_t, HW_FMC_DATAW1SnU_ADDR(x, n), v)) 01611 #define HW_FMC_DATAW1SnU_SET(x, n, v) (HW_FMC_DATAW1SnU_WR(x, n, HW_FMC_DATAW1SnU_RD(x, n) | (v))) 01612 #define HW_FMC_DATAW1SnU_CLR(x, n, v) (HW_FMC_DATAW1SnU_WR(x, n, HW_FMC_DATAW1SnU_RD(x, n) & ~(v))) 01613 #define HW_FMC_DATAW1SnU_TOG(x, n, v) (HW_FMC_DATAW1SnU_WR(x, n, HW_FMC_DATAW1SnU_RD(x, n) ^ (v))) 01614 /*@}*/ 01615 01616 /* 01617 * Constants & macros for individual FMC_DATAW1SnU bitfields 01618 */ 01619 01620 /*! 01621 * @name Register FMC_DATAW1SnU, field data[31:0] (RW) 01622 */ 01623 /*@{*/ 01624 #define BP_FMC_DATAW1SnU_data (0U) /*!< Bit position for FMC_DATAW1SnU_data. */ 01625 #define BM_FMC_DATAW1SnU_data (0xFFFFFFFFU) /*!< Bit mask for FMC_DATAW1SnU_data. */ 01626 #define BS_FMC_DATAW1SnU_data (32U) /*!< Bit field size in bits for FMC_DATAW1SnU_data. */ 01627 01628 /*! @brief Read current value of the FMC_DATAW1SnU_data field. */ 01629 #define BR_FMC_DATAW1SnU_data(x, n) (HW_FMC_DATAW1SnU(x, n).U) 01630 01631 /*! @brief Format value for bitfield FMC_DATAW1SnU_data. */ 01632 #define BF_FMC_DATAW1SnU_data(v) ((uint32_t)((uint32_t)(v) << BP_FMC_DATAW1SnU_data) & BM_FMC_DATAW1SnU_data) 01633 01634 /*! @brief Set the data field to a new value. */ 01635 #define BW_FMC_DATAW1SnU_data(x, n, v) (HW_FMC_DATAW1SnU_WR(x, n, v)) 01636 /*@}*/ 01637 /******************************************************************************* 01638 * HW_FMC_DATAW1SnL - Cache Data Storage (lower word) 01639 ******************************************************************************/ 01640 01641 /*! 01642 * @brief HW_FMC_DATAW1SnL - Cache Data Storage (lower word) (RW) 01643 * 01644 * Reset value: 0x00000000U 01645 * 01646 * The cache of 64-bit entries is a 4-way, set-associative cache with 4 sets. 01647 * The ways are numbered 0-3 and the sets are numbered 0-3. In DATAWxSyU and 01648 * DATAWxSyL, x denotes the way, y denotes the set, and U and L represent upper and 01649 * lower word, respectively. This section represents data for the lower word (bits 01650 * [31:0]) of all sets in the indicated way. 01651 */ 01652 typedef union _hw_fmc_dataw1snl 01653 { 01654 uint32_t U; 01655 struct _hw_fmc_dataw1snl_bitfields 01656 { 01657 uint32_t data : 32; /*!< [31:0] Bits [31:0] of data entry */ 01658 } B; 01659 } hw_fmc_dataw1snl_t; 01660 01661 /*! 01662 * @name Constants and macros for entire FMC_DATAW1SnL register 01663 */ 01664 /*@{*/ 01665 #define HW_FMC_DATAW1SnL_COUNT (4U) 01666 01667 #define HW_FMC_DATAW1SnL_ADDR(x, n) ((x) + 0x224U + (0x8U * (n))) 01668 01669 #define HW_FMC_DATAW1SnL(x, n) (*(__IO hw_fmc_dataw1snl_t *) HW_FMC_DATAW1SnL_ADDR(x, n)) 01670 #define HW_FMC_DATAW1SnL_RD(x, n) (ADDRESS_READ(hw_fmc_dataw1snl_t, HW_FMC_DATAW1SnL_ADDR(x, n))) 01671 #define HW_FMC_DATAW1SnL_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_dataw1snl_t, HW_FMC_DATAW1SnL_ADDR(x, n), v)) 01672 #define HW_FMC_DATAW1SnL_SET(x, n, v) (HW_FMC_DATAW1SnL_WR(x, n, HW_FMC_DATAW1SnL_RD(x, n) | (v))) 01673 #define HW_FMC_DATAW1SnL_CLR(x, n, v) (HW_FMC_DATAW1SnL_WR(x, n, HW_FMC_DATAW1SnL_RD(x, n) & ~(v))) 01674 #define HW_FMC_DATAW1SnL_TOG(x, n, v) (HW_FMC_DATAW1SnL_WR(x, n, HW_FMC_DATAW1SnL_RD(x, n) ^ (v))) 01675 /*@}*/ 01676 01677 /* 01678 * Constants & macros for individual FMC_DATAW1SnL bitfields 01679 */ 01680 01681 /*! 01682 * @name Register FMC_DATAW1SnL, field data[31:0] (RW) 01683 */ 01684 /*@{*/ 01685 #define BP_FMC_DATAW1SnL_data (0U) /*!< Bit position for FMC_DATAW1SnL_data. */ 01686 #define BM_FMC_DATAW1SnL_data (0xFFFFFFFFU) /*!< Bit mask for FMC_DATAW1SnL_data. */ 01687 #define BS_FMC_DATAW1SnL_data (32U) /*!< Bit field size in bits for FMC_DATAW1SnL_data. */ 01688 01689 /*! @brief Read current value of the FMC_DATAW1SnL_data field. */ 01690 #define BR_FMC_DATAW1SnL_data(x, n) (HW_FMC_DATAW1SnL(x, n).U) 01691 01692 /*! @brief Format value for bitfield FMC_DATAW1SnL_data. */ 01693 #define BF_FMC_DATAW1SnL_data(v) ((uint32_t)((uint32_t)(v) << BP_FMC_DATAW1SnL_data) & BM_FMC_DATAW1SnL_data) 01694 01695 /*! @brief Set the data field to a new value. */ 01696 #define BW_FMC_DATAW1SnL_data(x, n, v) (HW_FMC_DATAW1SnL_WR(x, n, v)) 01697 /*@}*/ 01698 01699 /******************************************************************************* 01700 * HW_FMC_DATAW2SnU - Cache Data Storage (upper word) 01701 ******************************************************************************/ 01702 01703 /*! 01704 * @brief HW_FMC_DATAW2SnU - Cache Data Storage (upper word) (RW) 01705 * 01706 * Reset value: 0x00000000U 01707 * 01708 * The cache of 64-bit entries is a 4-way, set-associative cache with 4 sets. 01709 * The ways are numbered 0-3 and the sets are numbered 0-3. In DATAWxSyU and 01710 * DATAWxSyL, x denotes the way, y denotes the set, and U and L represent upper and 01711 * lower word, respectively. This section represents data for the upper word (bits 01712 * [63:32]) of all sets in the indicated way. 01713 */ 01714 typedef union _hw_fmc_dataw2snu 01715 { 01716 uint32_t U; 01717 struct _hw_fmc_dataw2snu_bitfields 01718 { 01719 uint32_t data : 32; /*!< [31:0] Bits [63:32] of data entry */ 01720 } B; 01721 } hw_fmc_dataw2snu_t; 01722 01723 /*! 01724 * @name Constants and macros for entire FMC_DATAW2SnU register 01725 */ 01726 /*@{*/ 01727 #define HW_FMC_DATAW2SnU_COUNT (4U) 01728 01729 #define HW_FMC_DATAW2SnU_ADDR(x, n) ((x) + 0x240U + (0x8U * (n))) 01730 01731 #define HW_FMC_DATAW2SnU(x, n) (*(__IO hw_fmc_dataw2snu_t *) HW_FMC_DATAW2SnU_ADDR(x, n)) 01732 #define HW_FMC_DATAW2SnU_RD(x, n) (ADDRESS_READ(hw_fmc_dataw2snu_t, HW_FMC_DATAW2SnU_ADDR(x, n))) 01733 #define HW_FMC_DATAW2SnU_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_dataw2snu_t, HW_FMC_DATAW2SnU_ADDR(x, n), v)) 01734 #define HW_FMC_DATAW2SnU_SET(x, n, v) (HW_FMC_DATAW2SnU_WR(x, n, HW_FMC_DATAW2SnU_RD(x, n) | (v))) 01735 #define HW_FMC_DATAW2SnU_CLR(x, n, v) (HW_FMC_DATAW2SnU_WR(x, n, HW_FMC_DATAW2SnU_RD(x, n) & ~(v))) 01736 #define HW_FMC_DATAW2SnU_TOG(x, n, v) (HW_FMC_DATAW2SnU_WR(x, n, HW_FMC_DATAW2SnU_RD(x, n) ^ (v))) 01737 /*@}*/ 01738 01739 /* 01740 * Constants & macros for individual FMC_DATAW2SnU bitfields 01741 */ 01742 01743 /*! 01744 * @name Register FMC_DATAW2SnU, field data[31:0] (RW) 01745 */ 01746 /*@{*/ 01747 #define BP_FMC_DATAW2SnU_data (0U) /*!< Bit position for FMC_DATAW2SnU_data. */ 01748 #define BM_FMC_DATAW2SnU_data (0xFFFFFFFFU) /*!< Bit mask for FMC_DATAW2SnU_data. */ 01749 #define BS_FMC_DATAW2SnU_data (32U) /*!< Bit field size in bits for FMC_DATAW2SnU_data. */ 01750 01751 /*! @brief Read current value of the FMC_DATAW2SnU_data field. */ 01752 #define BR_FMC_DATAW2SnU_data(x, n) (HW_FMC_DATAW2SnU(x, n).U) 01753 01754 /*! @brief Format value for bitfield FMC_DATAW2SnU_data. */ 01755 #define BF_FMC_DATAW2SnU_data(v) ((uint32_t)((uint32_t)(v) << BP_FMC_DATAW2SnU_data) & BM_FMC_DATAW2SnU_data) 01756 01757 /*! @brief Set the data field to a new value. */ 01758 #define BW_FMC_DATAW2SnU_data(x, n, v) (HW_FMC_DATAW2SnU_WR(x, n, v)) 01759 /*@}*/ 01760 /******************************************************************************* 01761 * HW_FMC_DATAW2SnL - Cache Data Storage (lower word) 01762 ******************************************************************************/ 01763 01764 /*! 01765 * @brief HW_FMC_DATAW2SnL - Cache Data Storage (lower word) (RW) 01766 * 01767 * Reset value: 0x00000000U 01768 * 01769 * The cache of 64-bit entries is a 4-way, set-associative cache with 4 sets. 01770 * The ways are numbered 0-3 and the sets are numbered 0-3. In DATAWxSyU and 01771 * DATAWxSyL, x denotes the way, y denotes the set, and U and L represent upper and 01772 * lower word, respectively. This section represents data for the lower word (bits 01773 * [31:0]) of all sets in the indicated way. 01774 */ 01775 typedef union _hw_fmc_dataw2snl 01776 { 01777 uint32_t U; 01778 struct _hw_fmc_dataw2snl_bitfields 01779 { 01780 uint32_t data : 32; /*!< [31:0] Bits [31:0] of data entry */ 01781 } B; 01782 } hw_fmc_dataw2snl_t; 01783 01784 /*! 01785 * @name Constants and macros for entire FMC_DATAW2SnL register 01786 */ 01787 /*@{*/ 01788 #define HW_FMC_DATAW2SnL_COUNT (4U) 01789 01790 #define HW_FMC_DATAW2SnL_ADDR(x, n) ((x) + 0x244U + (0x8U * (n))) 01791 01792 #define HW_FMC_DATAW2SnL(x, n) (*(__IO hw_fmc_dataw2snl_t *) HW_FMC_DATAW2SnL_ADDR(x, n)) 01793 #define HW_FMC_DATAW2SnL_RD(x, n) (ADDRESS_READ(hw_fmc_dataw2snl_t, HW_FMC_DATAW2SnL_ADDR(x, n))) 01794 #define HW_FMC_DATAW2SnL_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_dataw2snl_t, HW_FMC_DATAW2SnL_ADDR(x, n), v)) 01795 #define HW_FMC_DATAW2SnL_SET(x, n, v) (HW_FMC_DATAW2SnL_WR(x, n, HW_FMC_DATAW2SnL_RD(x, n) | (v))) 01796 #define HW_FMC_DATAW2SnL_CLR(x, n, v) (HW_FMC_DATAW2SnL_WR(x, n, HW_FMC_DATAW2SnL_RD(x, n) & ~(v))) 01797 #define HW_FMC_DATAW2SnL_TOG(x, n, v) (HW_FMC_DATAW2SnL_WR(x, n, HW_FMC_DATAW2SnL_RD(x, n) ^ (v))) 01798 /*@}*/ 01799 01800 /* 01801 * Constants & macros for individual FMC_DATAW2SnL bitfields 01802 */ 01803 01804 /*! 01805 * @name Register FMC_DATAW2SnL, field data[31:0] (RW) 01806 */ 01807 /*@{*/ 01808 #define BP_FMC_DATAW2SnL_data (0U) /*!< Bit position for FMC_DATAW2SnL_data. */ 01809 #define BM_FMC_DATAW2SnL_data (0xFFFFFFFFU) /*!< Bit mask for FMC_DATAW2SnL_data. */ 01810 #define BS_FMC_DATAW2SnL_data (32U) /*!< Bit field size in bits for FMC_DATAW2SnL_data. */ 01811 01812 /*! @brief Read current value of the FMC_DATAW2SnL_data field. */ 01813 #define BR_FMC_DATAW2SnL_data(x, n) (HW_FMC_DATAW2SnL(x, n).U) 01814 01815 /*! @brief Format value for bitfield FMC_DATAW2SnL_data. */ 01816 #define BF_FMC_DATAW2SnL_data(v) ((uint32_t)((uint32_t)(v) << BP_FMC_DATAW2SnL_data) & BM_FMC_DATAW2SnL_data) 01817 01818 /*! @brief Set the data field to a new value. */ 01819 #define BW_FMC_DATAW2SnL_data(x, n, v) (HW_FMC_DATAW2SnL_WR(x, n, v)) 01820 /*@}*/ 01821 01822 /******************************************************************************* 01823 * HW_FMC_DATAW3SnU - Cache Data Storage (upper word) 01824 ******************************************************************************/ 01825 01826 /*! 01827 * @brief HW_FMC_DATAW3SnU - Cache Data Storage (upper word) (RW) 01828 * 01829 * Reset value: 0x00000000U 01830 * 01831 * The cache of 64-bit entries is a 4-way, set-associative cache with 4 sets. 01832 * The ways are numbered 0-3 and the sets are numbered 0-3. In DATAWxSyU and 01833 * DATAWxSyL, x denotes the way, y denotes the set, and U and L represent upper and 01834 * lower word, respectively. This section represents data for the upper word (bits 01835 * [63:32]) of all sets in the indicated way. 01836 */ 01837 typedef union _hw_fmc_dataw3snu 01838 { 01839 uint32_t U; 01840 struct _hw_fmc_dataw3snu_bitfields 01841 { 01842 uint32_t data : 32; /*!< [31:0] Bits [63:32] of data entry */ 01843 } B; 01844 } hw_fmc_dataw3snu_t; 01845 01846 /*! 01847 * @name Constants and macros for entire FMC_DATAW3SnU register 01848 */ 01849 /*@{*/ 01850 #define HW_FMC_DATAW3SnU_COUNT (4U) 01851 01852 #define HW_FMC_DATAW3SnU_ADDR(x, n) ((x) + 0x260U + (0x8U * (n))) 01853 01854 #define HW_FMC_DATAW3SnU(x, n) (*(__IO hw_fmc_dataw3snu_t *) HW_FMC_DATAW3SnU_ADDR(x, n)) 01855 #define HW_FMC_DATAW3SnU_RD(x, n) (ADDRESS_READ(hw_fmc_dataw3snu_t, HW_FMC_DATAW3SnU_ADDR(x, n))) 01856 #define HW_FMC_DATAW3SnU_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_dataw3snu_t, HW_FMC_DATAW3SnU_ADDR(x, n), v)) 01857 #define HW_FMC_DATAW3SnU_SET(x, n, v) (HW_FMC_DATAW3SnU_WR(x, n, HW_FMC_DATAW3SnU_RD(x, n) | (v))) 01858 #define HW_FMC_DATAW3SnU_CLR(x, n, v) (HW_FMC_DATAW3SnU_WR(x, n, HW_FMC_DATAW3SnU_RD(x, n) & ~(v))) 01859 #define HW_FMC_DATAW3SnU_TOG(x, n, v) (HW_FMC_DATAW3SnU_WR(x, n, HW_FMC_DATAW3SnU_RD(x, n) ^ (v))) 01860 /*@}*/ 01861 01862 /* 01863 * Constants & macros for individual FMC_DATAW3SnU bitfields 01864 */ 01865 01866 /*! 01867 * @name Register FMC_DATAW3SnU, field data[31:0] (RW) 01868 */ 01869 /*@{*/ 01870 #define BP_FMC_DATAW3SnU_data (0U) /*!< Bit position for FMC_DATAW3SnU_data. */ 01871 #define BM_FMC_DATAW3SnU_data (0xFFFFFFFFU) /*!< Bit mask for FMC_DATAW3SnU_data. */ 01872 #define BS_FMC_DATAW3SnU_data (32U) /*!< Bit field size in bits for FMC_DATAW3SnU_data. */ 01873 01874 /*! @brief Read current value of the FMC_DATAW3SnU_data field. */ 01875 #define BR_FMC_DATAW3SnU_data(x, n) (HW_FMC_DATAW3SnU(x, n).U) 01876 01877 /*! @brief Format value for bitfield FMC_DATAW3SnU_data. */ 01878 #define BF_FMC_DATAW3SnU_data(v) ((uint32_t)((uint32_t)(v) << BP_FMC_DATAW3SnU_data) & BM_FMC_DATAW3SnU_data) 01879 01880 /*! @brief Set the data field to a new value. */ 01881 #define BW_FMC_DATAW3SnU_data(x, n, v) (HW_FMC_DATAW3SnU_WR(x, n, v)) 01882 /*@}*/ 01883 /******************************************************************************* 01884 * HW_FMC_DATAW3SnL - Cache Data Storage (lower word) 01885 ******************************************************************************/ 01886 01887 /*! 01888 * @brief HW_FMC_DATAW3SnL - Cache Data Storage (lower word) (RW) 01889 * 01890 * Reset value: 0x00000000U 01891 * 01892 * The cache of 64-bit entries is a 4-way, set-associative cache with 4 sets. 01893 * The ways are numbered 0-3 and the sets are numbered 0-3. In DATAWxSyU and 01894 * DATAWxSyL, x denotes the way, y denotes the set, and U and L represent upper and 01895 * lower word, respectively. This section represents data for the lower word (bits 01896 * [31:0]) of all sets in the indicated way. 01897 */ 01898 typedef union _hw_fmc_dataw3snl 01899 { 01900 uint32_t U; 01901 struct _hw_fmc_dataw3snl_bitfields 01902 { 01903 uint32_t data : 32; /*!< [31:0] Bits [31:0] of data entry */ 01904 } B; 01905 } hw_fmc_dataw3snl_t; 01906 01907 /*! 01908 * @name Constants and macros for entire FMC_DATAW3SnL register 01909 */ 01910 /*@{*/ 01911 #define HW_FMC_DATAW3SnL_COUNT (4U) 01912 01913 #define HW_FMC_DATAW3SnL_ADDR(x, n) ((x) + 0x264U + (0x8U * (n))) 01914 01915 #define HW_FMC_DATAW3SnL(x, n) (*(__IO hw_fmc_dataw3snl_t *) HW_FMC_DATAW3SnL_ADDR(x, n)) 01916 #define HW_FMC_DATAW3SnL_RD(x, n) (ADDRESS_READ(hw_fmc_dataw3snl_t, HW_FMC_DATAW3SnL_ADDR(x, n))) 01917 #define HW_FMC_DATAW3SnL_WR(x, n, v) (ADDRESS_WRITE(hw_fmc_dataw3snl_t, HW_FMC_DATAW3SnL_ADDR(x, n), v)) 01918 #define HW_FMC_DATAW3SnL_SET(x, n, v) (HW_FMC_DATAW3SnL_WR(x, n, HW_FMC_DATAW3SnL_RD(x, n) | (v))) 01919 #define HW_FMC_DATAW3SnL_CLR(x, n, v) (HW_FMC_DATAW3SnL_WR(x, n, HW_FMC_DATAW3SnL_RD(x, n) & ~(v))) 01920 #define HW_FMC_DATAW3SnL_TOG(x, n, v) (HW_FMC_DATAW3SnL_WR(x, n, HW_FMC_DATAW3SnL_RD(x, n) ^ (v))) 01921 /*@}*/ 01922 01923 /* 01924 * Constants & macros for individual FMC_DATAW3SnL bitfields 01925 */ 01926 01927 /*! 01928 * @name Register FMC_DATAW3SnL, field data[31:0] (RW) 01929 */ 01930 /*@{*/ 01931 #define BP_FMC_DATAW3SnL_data (0U) /*!< Bit position for FMC_DATAW3SnL_data. */ 01932 #define BM_FMC_DATAW3SnL_data (0xFFFFFFFFU) /*!< Bit mask for FMC_DATAW3SnL_data. */ 01933 #define BS_FMC_DATAW3SnL_data (32U) /*!< Bit field size in bits for FMC_DATAW3SnL_data. */ 01934 01935 /*! @brief Read current value of the FMC_DATAW3SnL_data field. */ 01936 #define BR_FMC_DATAW3SnL_data(x, n) (HW_FMC_DATAW3SnL(x, n).U) 01937 01938 /*! @brief Format value for bitfield FMC_DATAW3SnL_data. */ 01939 #define BF_FMC_DATAW3SnL_data(v) ((uint32_t)((uint32_t)(v) << BP_FMC_DATAW3SnL_data) & BM_FMC_DATAW3SnL_data) 01940 01941 /*! @brief Set the data field to a new value. */ 01942 #define BW_FMC_DATAW3SnL_data(x, n, v) (HW_FMC_DATAW3SnL_WR(x, n, v)) 01943 /*@}*/ 01944 01945 /******************************************************************************* 01946 * hw_fmc_t - module struct 01947 ******************************************************************************/ 01948 /*! 01949 * @brief All FMC module registers. 01950 */ 01951 #pragma pack(1) 01952 typedef struct _hw_fmc 01953 { 01954 __IO hw_fmc_pfapr_t PFAPR ; /*!< [0x0] Flash Access Protection Register */ 01955 __IO hw_fmc_pfb0cr_t PFB0CR ; /*!< [0x4] Flash Bank 0 Control Register */ 01956 __IO hw_fmc_pfb1cr_t PFB1CR ; /*!< [0x8] Flash Bank 1 Control Register */ 01957 uint8_t _reserved0[244]; 01958 __IO hw_fmc_tagvdw0sn_t TAGVDW0Sn [4]; /*!< [0x100] Cache Tag Storage */ 01959 __IO hw_fmc_tagvdw1sn_t TAGVDW1Sn [4]; /*!< [0x110] Cache Tag Storage */ 01960 __IO hw_fmc_tagvdw2sn_t TAGVDW2Sn [4]; /*!< [0x120] Cache Tag Storage */ 01961 __IO hw_fmc_tagvdw3sn_t TAGVDW3Sn [4]; /*!< [0x130] Cache Tag Storage */ 01962 uint8_t _reserved1[192]; 01963 struct { 01964 __IO hw_fmc_dataw0snu_t DATAW0SnU ; /*!< [0x200] Cache Data Storage (upper word) */ 01965 __IO hw_fmc_dataw0snl_t DATAW0SnL ; /*!< [0x204] Cache Data Storage (lower word) */ 01966 } DATAW0Sn[4]; 01967 struct { 01968 __IO hw_fmc_dataw1snu_t DATAW1SnU ; /*!< [0x220] Cache Data Storage (upper word) */ 01969 __IO hw_fmc_dataw1snl_t DATAW1SnL ; /*!< [0x224] Cache Data Storage (lower word) */ 01970 } DATAW1Sn[4]; 01971 struct { 01972 __IO hw_fmc_dataw2snu_t DATAW2SnU ; /*!< [0x240] Cache Data Storage (upper word) */ 01973 __IO hw_fmc_dataw2snl_t DATAW2SnL ; /*!< [0x244] Cache Data Storage (lower word) */ 01974 } DATAW2Sn[4]; 01975 struct { 01976 __IO hw_fmc_dataw3snu_t DATAW3SnU ; /*!< [0x260] Cache Data Storage (upper word) */ 01977 __IO hw_fmc_dataw3snl_t DATAW3SnL ; /*!< [0x264] Cache Data Storage (lower word) */ 01978 } DATAW3Sn[4]; 01979 } hw_fmc_t; 01980 #pragma pack() 01981 01982 /*! @brief Macro to access all FMC registers. */ 01983 /*! @param x FMC module instance base address. */ 01984 /*! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct, 01985 * use the '&' operator, like <code>&HW_FMC(FMC_BASE)</code>. */ 01986 #define HW_FMC(x) (*(hw_fmc_t *)(x)) 01987 01988 #endif /* __HW_FMC_REGISTERS_H__ */ 01989 /* EOF */
Generated on Sat Aug 27 2022 17:09:00 by
