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_axbs.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 ** Redistribution and use in source and binary forms, with or without modification, 00019 ** are permitted provided that the following conditions are met: 00020 ** 00021 ** o Redistributions of source code must retain the above copyright notice, this list 00022 ** of conditions and the following disclaimer. 00023 ** 00024 ** o Redistributions in binary form must reproduce the above copyright notice, this 00025 ** list of conditions and the following disclaimer in the documentation and/or 00026 ** other materials provided with the distribution. 00027 ** 00028 ** o Neither the name of Freescale Semiconductor, Inc. nor the names of its 00029 ** contributors may be used to endorse or promote products derived from this 00030 ** software without specific prior written permission. 00031 ** 00032 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 00033 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00034 ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00035 ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 00036 ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00037 ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00038 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 00039 ** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00040 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00041 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00042 ** 00043 ** http: www.freescale.com 00044 ** mail: support@freescale.com 00045 ** 00046 ** Revisions: 00047 ** - rev. 1.0 (2013-08-12) 00048 ** Initial version. 00049 ** - rev. 2.0 (2013-10-29) 00050 ** Register accessor macros added to the memory map. 00051 ** Symbols for Processor Expert memory map compatibility added to the memory map. 00052 ** Startup file for gcc has been updated according to CMSIS 3.2. 00053 ** System initialization updated. 00054 ** MCG - registers updated. 00055 ** PORTA, PORTB, PORTC, PORTE - registers for digital filter removed. 00056 ** - rev. 2.1 (2013-10-30) 00057 ** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled. 00058 ** - rev. 2.2 (2013-12-09) 00059 ** DMA - EARS register removed. 00060 ** AIPS0, AIPS1 - MPRA register updated. 00061 ** - rev. 2.3 (2014-01-24) 00062 ** Update according to reference manual rev. 2 00063 ** ENET, MCG, MCM, SIM, USB - registers updated 00064 ** - rev. 2.4 (2014-02-10) 00065 ** The declaration of clock configurations has been moved to separate header file system_MK64F12.h 00066 ** Update of SystemInit() and SystemCoreClockUpdate() functions. 00067 ** - rev. 2.5 (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 ** Module access macro module_BASES replaced by module_BASE_PTRS. 00071 ** 00072 ** ################################################################### 00073 */ 00074 00075 /* 00076 * WARNING! DO NOT EDIT THIS FILE DIRECTLY! 00077 * 00078 * This file was generated automatically and any changes may be lost. 00079 */ 00080 #ifndef __HW_AXBS_REGISTERS_H__ 00081 #define __HW_AXBS_REGISTERS_H__ 00082 00083 #include "MK64F12.h" 00084 #include "fsl_bitaccess.h" 00085 00086 /* 00087 * MK64F12 AXBS 00088 * 00089 * Crossbar switch 00090 * 00091 * Registers defined in this header file: 00092 * - HW_AXBS_PRSn - Priority Registers Slave 00093 * - HW_AXBS_CRSn - Control Register 00094 * - HW_AXBS_MGPCR0 - Master General Purpose Control Register 00095 * - HW_AXBS_MGPCR1 - Master General Purpose Control Register 00096 * - HW_AXBS_MGPCR2 - Master General Purpose Control Register 00097 * - HW_AXBS_MGPCR3 - Master General Purpose Control Register 00098 * - HW_AXBS_MGPCR4 - Master General Purpose Control Register 00099 * - HW_AXBS_MGPCR5 - Master General Purpose Control Register 00100 * 00101 * - hw_axbs_t - Struct containing all module registers. 00102 */ 00103 00104 #define HW_AXBS_INSTANCE_COUNT (1U) /*!< Number of instances of the AXBS module. */ 00105 00106 /******************************************************************************* 00107 * HW_AXBS_PRSn - Priority Registers Slave 00108 ******************************************************************************/ 00109 00110 /*! 00111 * @brief HW_AXBS_PRSn - Priority Registers Slave (RW) 00112 * 00113 * Reset value: 0x00543210U 00114 * 00115 * The priority registers (PRSn) set the priority of each master port on a per 00116 * slave port basis and reside in each slave port. The priority register can be 00117 * accessed only with 32-bit accesses. After the CRSn[RO] bit is set, the PRSn 00118 * register can only be read; attempts to write to it have no effect on PRSn and 00119 * result in a bus-error response to the master initiating the write. Two available 00120 * masters must not be programmed with the same priority level. Attempts to 00121 * program two or more masters with the same priority level result in a bus-error 00122 * response and the PRSn is not updated. Valid values for the Mn priority fields 00123 * depend on which masters are available on the chip. This information can be found in 00124 * the chip-specific information for the crossbar. If the chip contains less 00125 * than five masters, values 0 to 3 are valid. Writing other values will result in 00126 * an error. If the chip contains five or more masters, valid values are 0 to n-1, 00127 * where n is the number of masters attached to the AXBS module. Other values 00128 * will result in an error. 00129 */ 00130 typedef union _hw_axbs_prsn 00131 { 00132 uint32_t U; 00133 struct _hw_axbs_prsn_bitfields 00134 { 00135 uint32_t M0 : 3; /*!< [2:0] Master 0 Priority. Sets the arbitration 00136 * priority for this port on the associated slave port. */ 00137 uint32_t RESERVED0 : 1; /*!< [3] */ 00138 uint32_t M1 : 3; /*!< [6:4] Master 1 Priority. Sets the arbitration 00139 * priority for this port on the associated slave port. */ 00140 uint32_t RESERVED1 : 1; /*!< [7] */ 00141 uint32_t M2 : 3; /*!< [10:8] Master 2 Priority. Sets the arbitration 00142 * priority for this port on the associated slave port. */ 00143 uint32_t RESERVED2 : 1; /*!< [11] */ 00144 uint32_t M3 : 3; /*!< [14:12] Master 3 Priority. Sets the arbitration 00145 * priority for this port on the associated slave port. */ 00146 uint32_t RESERVED3 : 1; /*!< [15] */ 00147 uint32_t M4 : 3; /*!< [18:16] Master 4 Priority. Sets the arbitration 00148 * priority for this port on the associated slave port. */ 00149 uint32_t RESERVED4 : 1; /*!< [19] */ 00150 uint32_t M5 : 3; /*!< [22:20] Master 5 Priority. Sets the arbitration 00151 * priority for this port on the associated slave port. */ 00152 uint32_t RESERVED5 : 9; /*!< [31:23] */ 00153 } B; 00154 } hw_axbs_prsn_t; 00155 00156 /*! 00157 * @name Constants and macros for entire AXBS_PRSn register 00158 */ 00159 /*@{*/ 00160 #define HW_AXBS_PRSn_COUNT (5U) 00161 00162 #define HW_AXBS_PRSn_ADDR(x, n) ((x) + 0x0U + (0x100U * (n))) 00163 00164 #define HW_AXBS_PRSn(x, n) (*(__IO hw_axbs_prsn_t *) HW_AXBS_PRSn_ADDR(x, n)) 00165 #define HW_AXBS_PRSn_RD(x, n) (HW_AXBS_PRSn(x, n).U) 00166 #define HW_AXBS_PRSn_WR(x, n, v) (HW_AXBS_PRSn(x, n).U = (v)) 00167 #define HW_AXBS_PRSn_SET(x, n, v) (HW_AXBS_PRSn_WR(x, n, HW_AXBS_PRSn_RD(x, n) | (v))) 00168 #define HW_AXBS_PRSn_CLR(x, n, v) (HW_AXBS_PRSn_WR(x, n, HW_AXBS_PRSn_RD(x, n) & ~(v))) 00169 #define HW_AXBS_PRSn_TOG(x, n, v) (HW_AXBS_PRSn_WR(x, n, HW_AXBS_PRSn_RD(x, n) ^ (v))) 00170 /*@}*/ 00171 00172 /* 00173 * Constants & macros for individual AXBS_PRSn bitfields 00174 */ 00175 00176 /*! 00177 * @name Register AXBS_PRSn, field M0[2:0] (RW) 00178 * 00179 * Values: 00180 * - 000 - This master has level 1, or highest, priority when accessing the 00181 * slave port. 00182 * - 001 - This master has level 2 priority when accessing the slave port. 00183 * - 010 - This master has level 3 priority when accessing the slave port. 00184 * - 011 - This master has level 4 priority when accessing the slave port. 00185 * - 100 - This master has level 5 priority when accessing the slave port. 00186 * - 101 - This master has level 6 priority when accessing the slave port. 00187 * - 110 - This master has level 7 priority when accessing the slave port. 00188 * - 111 - This master has level 8, or lowest, priority when accessing the slave 00189 * port. 00190 */ 00191 /*@{*/ 00192 #define BP_AXBS_PRSn_M0 (0U) /*!< Bit position for AXBS_PRSn_M0. */ 00193 #define BM_AXBS_PRSn_M0 (0x00000007U) /*!< Bit mask for AXBS_PRSn_M0. */ 00194 #define BS_AXBS_PRSn_M0 (3U) /*!< Bit field size in bits for AXBS_PRSn_M0. */ 00195 00196 /*! @brief Read current value of the AXBS_PRSn_M0 field. */ 00197 #define BR_AXBS_PRSn_M0(x, n) (HW_AXBS_PRSn(x, n).B.M0) 00198 00199 /*! @brief Format value for bitfield AXBS_PRSn_M0. */ 00200 #define BF_AXBS_PRSn_M0(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M0) & BM_AXBS_PRSn_M0) 00201 00202 /*! @brief Set the M0 field to a new value. */ 00203 #define BW_AXBS_PRSn_M0(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M0) | BF_AXBS_PRSn_M0(v))) 00204 /*@}*/ 00205 00206 /*! 00207 * @name Register AXBS_PRSn, field M1[6:4] (RW) 00208 * 00209 * Values: 00210 * - 000 - This master has level 1, or highest, priority when accessing the 00211 * slave port. 00212 * - 001 - This master has level 2 priority when accessing the slave port. 00213 * - 010 - This master has level 3 priority when accessing the slave port. 00214 * - 011 - This master has level 4 priority when accessing the slave port. 00215 * - 100 - This master has level 5 priority when accessing the slave port. 00216 * - 101 - This master has level 6 priority when accessing the slave port. 00217 * - 110 - This master has level 7 priority when accessing the slave port. 00218 * - 111 - This master has level 8, or lowest, priority when accessing the slave 00219 * port. 00220 */ 00221 /*@{*/ 00222 #define BP_AXBS_PRSn_M1 (4U) /*!< Bit position for AXBS_PRSn_M1. */ 00223 #define BM_AXBS_PRSn_M1 (0x00000070U) /*!< Bit mask for AXBS_PRSn_M1. */ 00224 #define BS_AXBS_PRSn_M1 (3U) /*!< Bit field size in bits for AXBS_PRSn_M1. */ 00225 00226 /*! @brief Read current value of the AXBS_PRSn_M1 field. */ 00227 #define BR_AXBS_PRSn_M1(x, n) (HW_AXBS_PRSn(x, n).B.M1) 00228 00229 /*! @brief Format value for bitfield AXBS_PRSn_M1. */ 00230 #define BF_AXBS_PRSn_M1(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M1) & BM_AXBS_PRSn_M1) 00231 00232 /*! @brief Set the M1 field to a new value. */ 00233 #define BW_AXBS_PRSn_M1(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M1) | BF_AXBS_PRSn_M1(v))) 00234 /*@}*/ 00235 00236 /*! 00237 * @name Register AXBS_PRSn, field M2[10:8] (RW) 00238 * 00239 * Values: 00240 * - 000 - This master has level 1, or highest, priority when accessing the 00241 * slave port. 00242 * - 001 - This master has level 2 priority when accessing the slave port. 00243 * - 010 - This master has level 3 priority when accessing the slave port. 00244 * - 011 - This master has level 4 priority when accessing the slave port. 00245 * - 100 - This master has level 5 priority when accessing the slave port. 00246 * - 101 - This master has level 6 priority when accessing the slave port. 00247 * - 110 - This master has level 7 priority when accessing the slave port. 00248 * - 111 - This master has level 8, or lowest, priority when accessing the slave 00249 * port. 00250 */ 00251 /*@{*/ 00252 #define BP_AXBS_PRSn_M2 (8U) /*!< Bit position for AXBS_PRSn_M2. */ 00253 #define BM_AXBS_PRSn_M2 (0x00000700U) /*!< Bit mask for AXBS_PRSn_M2. */ 00254 #define BS_AXBS_PRSn_M2 (3U) /*!< Bit field size in bits for AXBS_PRSn_M2. */ 00255 00256 /*! @brief Read current value of the AXBS_PRSn_M2 field. */ 00257 #define BR_AXBS_PRSn_M2(x, n) (HW_AXBS_PRSn(x, n).B.M2) 00258 00259 /*! @brief Format value for bitfield AXBS_PRSn_M2. */ 00260 #define BF_AXBS_PRSn_M2(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M2) & BM_AXBS_PRSn_M2) 00261 00262 /*! @brief Set the M2 field to a new value. */ 00263 #define BW_AXBS_PRSn_M2(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M2) | BF_AXBS_PRSn_M2(v))) 00264 /*@}*/ 00265 00266 /*! 00267 * @name Register AXBS_PRSn, field M3[14:12] (RW) 00268 * 00269 * Values: 00270 * - 000 - This master has level 1, or highest, priority when accessing the 00271 * slave port. 00272 * - 001 - This master has level 2 priority when accessing the slave port. 00273 * - 010 - This master has level 3 priority when accessing the slave port. 00274 * - 011 - This master has level 4 priority when accessing the slave port. 00275 * - 100 - This master has level 5 priority when accessing the slave port. 00276 * - 101 - This master has level 6 priority when accessing the slave port. 00277 * - 110 - This master has level 7 priority when accessing the slave port. 00278 * - 111 - This master has level 8, or lowest, priority when accessing the slave 00279 * port. 00280 */ 00281 /*@{*/ 00282 #define BP_AXBS_PRSn_M3 (12U) /*!< Bit position for AXBS_PRSn_M3. */ 00283 #define BM_AXBS_PRSn_M3 (0x00007000U) /*!< Bit mask for AXBS_PRSn_M3. */ 00284 #define BS_AXBS_PRSn_M3 (3U) /*!< Bit field size in bits for AXBS_PRSn_M3. */ 00285 00286 /*! @brief Read current value of the AXBS_PRSn_M3 field. */ 00287 #define BR_AXBS_PRSn_M3(x, n) (HW_AXBS_PRSn(x, n).B.M3) 00288 00289 /*! @brief Format value for bitfield AXBS_PRSn_M3. */ 00290 #define BF_AXBS_PRSn_M3(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M3) & BM_AXBS_PRSn_M3) 00291 00292 /*! @brief Set the M3 field to a new value. */ 00293 #define BW_AXBS_PRSn_M3(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M3) | BF_AXBS_PRSn_M3(v))) 00294 /*@}*/ 00295 00296 /*! 00297 * @name Register AXBS_PRSn, field M4[18:16] (RW) 00298 * 00299 * Values: 00300 * - 000 - This master has level 1, or highest, priority when accessing the 00301 * slave port. 00302 * - 001 - This master has level 2 priority when accessing the slave port. 00303 * - 010 - This master has level 3 priority when accessing the slave port. 00304 * - 011 - This master has level 4 priority when accessing the slave port. 00305 * - 100 - This master has level 5 priority when accessing the slave port. 00306 * - 101 - This master has level 6 priority when accessing the slave port. 00307 * - 110 - This master has level 7 priority when accessing the slave port. 00308 * - 111 - This master has level 8, or lowest, priority when accessing the slave 00309 * port. 00310 */ 00311 /*@{*/ 00312 #define BP_AXBS_PRSn_M4 (16U) /*!< Bit position for AXBS_PRSn_M4. */ 00313 #define BM_AXBS_PRSn_M4 (0x00070000U) /*!< Bit mask for AXBS_PRSn_M4. */ 00314 #define BS_AXBS_PRSn_M4 (3U) /*!< Bit field size in bits for AXBS_PRSn_M4. */ 00315 00316 /*! @brief Read current value of the AXBS_PRSn_M4 field. */ 00317 #define BR_AXBS_PRSn_M4(x, n) (HW_AXBS_PRSn(x, n).B.M4) 00318 00319 /*! @brief Format value for bitfield AXBS_PRSn_M4. */ 00320 #define BF_AXBS_PRSn_M4(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M4) & BM_AXBS_PRSn_M4) 00321 00322 /*! @brief Set the M4 field to a new value. */ 00323 #define BW_AXBS_PRSn_M4(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M4) | BF_AXBS_PRSn_M4(v))) 00324 /*@}*/ 00325 00326 /*! 00327 * @name Register AXBS_PRSn, field M5[22:20] (RW) 00328 * 00329 * Values: 00330 * - 000 - This master has level 1, or highest, priority when accessing the 00331 * slave port. 00332 * - 001 - This master has level 2 priority when accessing the slave port. 00333 * - 010 - This master has level 3 priority when accessing the slave port. 00334 * - 011 - This master has level 4 priority when accessing the slave port. 00335 * - 100 - This master has level 5 priority when accessing the slave port. 00336 * - 101 - This master has level 6 priority when accessing the slave port. 00337 * - 110 - This master has level 7 priority when accessing the slave port. 00338 * - 111 - This master has level 8, or lowest, priority when accessing the slave 00339 * port. 00340 */ 00341 /*@{*/ 00342 #define BP_AXBS_PRSn_M5 (20U) /*!< Bit position for AXBS_PRSn_M5. */ 00343 #define BM_AXBS_PRSn_M5 (0x00700000U) /*!< Bit mask for AXBS_PRSn_M5. */ 00344 #define BS_AXBS_PRSn_M5 (3U) /*!< Bit field size in bits for AXBS_PRSn_M5. */ 00345 00346 /*! @brief Read current value of the AXBS_PRSn_M5 field. */ 00347 #define BR_AXBS_PRSn_M5(x, n) (HW_AXBS_PRSn(x, n).B.M5) 00348 00349 /*! @brief Format value for bitfield AXBS_PRSn_M5. */ 00350 #define BF_AXBS_PRSn_M5(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M5) & BM_AXBS_PRSn_M5) 00351 00352 /*! @brief Set the M5 field to a new value. */ 00353 #define BW_AXBS_PRSn_M5(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M5) | BF_AXBS_PRSn_M5(v))) 00354 /*@}*/ 00355 /******************************************************************************* 00356 * HW_AXBS_CRSn - Control Register 00357 ******************************************************************************/ 00358 00359 /*! 00360 * @brief HW_AXBS_CRSn - Control Register (RW) 00361 * 00362 * Reset value: 0x00000000U 00363 * 00364 * These registers control several features of each slave port and must be 00365 * accessed using 32-bit accesses. After CRSn[RO] is set, the PRSn can only be read; 00366 * attempts to write to it have no effect and result in an error response. 00367 */ 00368 typedef union _hw_axbs_crsn 00369 { 00370 uint32_t U; 00371 struct _hw_axbs_crsn_bitfields 00372 { 00373 uint32_t PARK : 3; /*!< [2:0] Park */ 00374 uint32_t RESERVED0 : 1; /*!< [3] */ 00375 uint32_t PCTL : 2; /*!< [5:4] Parking Control */ 00376 uint32_t RESERVED1 : 2; /*!< [7:6] */ 00377 uint32_t ARB : 2; /*!< [9:8] Arbitration Mode */ 00378 uint32_t RESERVED2 : 20; /*!< [29:10] */ 00379 uint32_t HLP : 1; /*!< [30] Halt Low Priority */ 00380 uint32_t RO : 1; /*!< [31] Read Only */ 00381 } B; 00382 } hw_axbs_crsn_t; 00383 00384 /*! 00385 * @name Constants and macros for entire AXBS_CRSn register 00386 */ 00387 /*@{*/ 00388 #define HW_AXBS_CRSn_COUNT (5U) 00389 00390 #define HW_AXBS_CRSn_ADDR(x, n) ((x) + 0x10U + (0x100U * (n))) 00391 00392 #define HW_AXBS_CRSn(x, n) (*(__IO hw_axbs_crsn_t *) HW_AXBS_CRSn_ADDR(x, n)) 00393 #define HW_AXBS_CRSn_RD(x, n) (HW_AXBS_CRSn(x, n).U) 00394 #define HW_AXBS_CRSn_WR(x, n, v) (HW_AXBS_CRSn(x, n).U = (v)) 00395 #define HW_AXBS_CRSn_SET(x, n, v) (HW_AXBS_CRSn_WR(x, n, HW_AXBS_CRSn_RD(x, n) | (v))) 00396 #define HW_AXBS_CRSn_CLR(x, n, v) (HW_AXBS_CRSn_WR(x, n, HW_AXBS_CRSn_RD(x, n) & ~(v))) 00397 #define HW_AXBS_CRSn_TOG(x, n, v) (HW_AXBS_CRSn_WR(x, n, HW_AXBS_CRSn_RD(x, n) ^ (v))) 00398 /*@}*/ 00399 00400 /* 00401 * Constants & macros for individual AXBS_CRSn bitfields 00402 */ 00403 00404 /*! 00405 * @name Register AXBS_CRSn, field PARK[2:0] (RW) 00406 * 00407 * Determines which master port the current slave port parks on when no masters 00408 * are actively making requests and the PCTL bits are cleared. Select only master 00409 * ports that are present on the chip. Otherwise, undefined behavior might occur. 00410 * 00411 * Values: 00412 * - 000 - Park on master port M0 00413 * - 001 - Park on master port M1 00414 * - 010 - Park on master port M2 00415 * - 011 - Park on master port M3 00416 * - 100 - Park on master port M4 00417 * - 101 - Park on master port M5 00418 * - 110 - Park on master port M6 00419 * - 111 - Park on master port M7 00420 */ 00421 /*@{*/ 00422 #define BP_AXBS_CRSn_PARK (0U) /*!< Bit position for AXBS_CRSn_PARK. */ 00423 #define BM_AXBS_CRSn_PARK (0x00000007U) /*!< Bit mask for AXBS_CRSn_PARK. */ 00424 #define BS_AXBS_CRSn_PARK (3U) /*!< Bit field size in bits for AXBS_CRSn_PARK. */ 00425 00426 /*! @brief Read current value of the AXBS_CRSn_PARK field. */ 00427 #define BR_AXBS_CRSn_PARK(x, n) (HW_AXBS_CRSn(x, n).B.PARK) 00428 00429 /*! @brief Format value for bitfield AXBS_CRSn_PARK. */ 00430 #define BF_AXBS_CRSn_PARK(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_PARK) & BM_AXBS_CRSn_PARK) 00431 00432 /*! @brief Set the PARK field to a new value. */ 00433 #define BW_AXBS_CRSn_PARK(x, n, v) (HW_AXBS_CRSn_WR(x, n, (HW_AXBS_CRSn_RD(x, n) & ~BM_AXBS_CRSn_PARK) | BF_AXBS_CRSn_PARK(v))) 00434 /*@}*/ 00435 00436 /*! 00437 * @name Register AXBS_CRSn, field PCTL[5:4] (RW) 00438 * 00439 * Determines the slave port's parking control. The low-power park feature 00440 * results in an overall power savings if the slave port is not saturated. However, 00441 * this forces an extra latency clock when any master tries to access the slave 00442 * port while not in use because it is not parked on any master. 00443 * 00444 * Values: 00445 * - 00 - When no master makes a request, the arbiter parks the slave port on 00446 * the master port defined by the PARK field 00447 * - 01 - When no master makes a request, the arbiter parks the slave port on 00448 * the last master to be in control of the slave port 00449 * - 10 - When no master makes a request, the slave port is not parked on a 00450 * master and the arbiter drives all outputs to a constant safe state 00451 * - 11 - Reserved 00452 */ 00453 /*@{*/ 00454 #define BP_AXBS_CRSn_PCTL (4U) /*!< Bit position for AXBS_CRSn_PCTL. */ 00455 #define BM_AXBS_CRSn_PCTL (0x00000030U) /*!< Bit mask for AXBS_CRSn_PCTL. */ 00456 #define BS_AXBS_CRSn_PCTL (2U) /*!< Bit field size in bits for AXBS_CRSn_PCTL. */ 00457 00458 /*! @brief Read current value of the AXBS_CRSn_PCTL field. */ 00459 #define BR_AXBS_CRSn_PCTL(x, n) (HW_AXBS_CRSn(x, n).B.PCTL) 00460 00461 /*! @brief Format value for bitfield AXBS_CRSn_PCTL. */ 00462 #define BF_AXBS_CRSn_PCTL(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_PCTL) & BM_AXBS_CRSn_PCTL) 00463 00464 /*! @brief Set the PCTL field to a new value. */ 00465 #define BW_AXBS_CRSn_PCTL(x, n, v) (HW_AXBS_CRSn_WR(x, n, (HW_AXBS_CRSn_RD(x, n) & ~BM_AXBS_CRSn_PCTL) | BF_AXBS_CRSn_PCTL(v))) 00466 /*@}*/ 00467 00468 /*! 00469 * @name Register AXBS_CRSn, field ARB[9:8] (RW) 00470 * 00471 * Selects the arbitration policy for the slave port. 00472 * 00473 * Values: 00474 * - 00 - Fixed priority 00475 * - 01 - Round-robin, or rotating, priority 00476 * - 10 - Reserved 00477 * - 11 - Reserved 00478 */ 00479 /*@{*/ 00480 #define BP_AXBS_CRSn_ARB (8U) /*!< Bit position for AXBS_CRSn_ARB. */ 00481 #define BM_AXBS_CRSn_ARB (0x00000300U) /*!< Bit mask for AXBS_CRSn_ARB. */ 00482 #define BS_AXBS_CRSn_ARB (2U) /*!< Bit field size in bits for AXBS_CRSn_ARB. */ 00483 00484 /*! @brief Read current value of the AXBS_CRSn_ARB field. */ 00485 #define BR_AXBS_CRSn_ARB(x, n) (HW_AXBS_CRSn(x, n).B.ARB) 00486 00487 /*! @brief Format value for bitfield AXBS_CRSn_ARB. */ 00488 #define BF_AXBS_CRSn_ARB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_ARB) & BM_AXBS_CRSn_ARB) 00489 00490 /*! @brief Set the ARB field to a new value. */ 00491 #define BW_AXBS_CRSn_ARB(x, n, v) (HW_AXBS_CRSn_WR(x, n, (HW_AXBS_CRSn_RD(x, n) & ~BM_AXBS_CRSn_ARB) | BF_AXBS_CRSn_ARB(v))) 00492 /*@}*/ 00493 00494 /*! 00495 * @name Register AXBS_CRSn, field HLP[30] (RW) 00496 * 00497 * Sets the initial arbitration priority for low power mode requests . Setting 00498 * this bit will not affect the request for low power mode from attaining highest 00499 * priority once it has control of the slave ports. 00500 * 00501 * Values: 00502 * - 0 - The low power mode request has the highest priority for arbitration on 00503 * this slave port 00504 * - 1 - The low power mode request has the lowest initial priority for 00505 * arbitration on this slave port 00506 */ 00507 /*@{*/ 00508 #define BP_AXBS_CRSn_HLP (30U) /*!< Bit position for AXBS_CRSn_HLP. */ 00509 #define BM_AXBS_CRSn_HLP (0x40000000U) /*!< Bit mask for AXBS_CRSn_HLP. */ 00510 #define BS_AXBS_CRSn_HLP (1U) /*!< Bit field size in bits for AXBS_CRSn_HLP. */ 00511 00512 /*! @brief Read current value of the AXBS_CRSn_HLP field. */ 00513 #define BR_AXBS_CRSn_HLP(x, n) (BITBAND_ACCESS32(HW_AXBS_CRSn_ADDR(x, n), BP_AXBS_CRSn_HLP)) 00514 00515 /*! @brief Format value for bitfield AXBS_CRSn_HLP. */ 00516 #define BF_AXBS_CRSn_HLP(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_HLP) & BM_AXBS_CRSn_HLP) 00517 00518 /*! @brief Set the HLP field to a new value. */ 00519 #define BW_AXBS_CRSn_HLP(x, n, v) (BITBAND_ACCESS32(HW_AXBS_CRSn_ADDR(x, n), BP_AXBS_CRSn_HLP) = (v)) 00520 /*@}*/ 00521 00522 /*! 00523 * @name Register AXBS_CRSn, field RO[31] (RW) 00524 * 00525 * Forces the slave port's CSRn and PRSn registers to be read-only. After set, 00526 * only a hardware reset clears it. 00527 * 00528 * Values: 00529 * - 0 - The slave port's registers are writeable 00530 * - 1 - The slave port's registers are read-only and cannot be written. 00531 * Attempted writes have no effect on the registers and result in a bus error 00532 * response. 00533 */ 00534 /*@{*/ 00535 #define BP_AXBS_CRSn_RO (31U) /*!< Bit position for AXBS_CRSn_RO. */ 00536 #define BM_AXBS_CRSn_RO (0x80000000U) /*!< Bit mask for AXBS_CRSn_RO. */ 00537 #define BS_AXBS_CRSn_RO (1U) /*!< Bit field size in bits for AXBS_CRSn_RO. */ 00538 00539 /*! @brief Read current value of the AXBS_CRSn_RO field. */ 00540 #define BR_AXBS_CRSn_RO(x, n) (BITBAND_ACCESS32(HW_AXBS_CRSn_ADDR(x, n), BP_AXBS_CRSn_RO)) 00541 00542 /*! @brief Format value for bitfield AXBS_CRSn_RO. */ 00543 #define BF_AXBS_CRSn_RO(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_RO) & BM_AXBS_CRSn_RO) 00544 00545 /*! @brief Set the RO field to a new value. */ 00546 #define BW_AXBS_CRSn_RO(x, n, v) (BITBAND_ACCESS32(HW_AXBS_CRSn_ADDR(x, n), BP_AXBS_CRSn_RO) = (v)) 00547 /*@}*/ 00548 00549 /******************************************************************************* 00550 * HW_AXBS_MGPCR0 - Master General Purpose Control Register 00551 ******************************************************************************/ 00552 00553 /*! 00554 * @brief HW_AXBS_MGPCR0 - Master General Purpose Control Register (RW) 00555 * 00556 * Reset value: 0x00000000U 00557 * 00558 * The MGPCR controls only whether the master's undefined length burst accesses 00559 * are allowed to complete uninterrupted or whether they can be broken by 00560 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor 00561 * mode with 32-bit accesses. 00562 */ 00563 typedef union _hw_axbs_mgpcr0 00564 { 00565 uint32_t U; 00566 struct _hw_axbs_mgpcr0_bitfields 00567 { 00568 uint32_t AULB : 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */ 00569 uint32_t RESERVED0 : 29; /*!< [31:3] */ 00570 } B; 00571 } hw_axbs_mgpcr0_t; 00572 00573 /*! 00574 * @name Constants and macros for entire AXBS_MGPCR0 register 00575 */ 00576 /*@{*/ 00577 #define HW_AXBS_MGPCR0_ADDR(x) ((x) + 0x800U) 00578 00579 #define HW_AXBS_MGPCR0(x) (*(__IO hw_axbs_mgpcr0_t *) HW_AXBS_MGPCR0_ADDR(x)) 00580 #define HW_AXBS_MGPCR0_RD(x) (HW_AXBS_MGPCR0(x).U) 00581 #define HW_AXBS_MGPCR0_WR(x, v) (HW_AXBS_MGPCR0(x).U = (v)) 00582 #define HW_AXBS_MGPCR0_SET(x, v) (HW_AXBS_MGPCR0_WR(x, HW_AXBS_MGPCR0_RD(x) | (v))) 00583 #define HW_AXBS_MGPCR0_CLR(x, v) (HW_AXBS_MGPCR0_WR(x, HW_AXBS_MGPCR0_RD(x) & ~(v))) 00584 #define HW_AXBS_MGPCR0_TOG(x, v) (HW_AXBS_MGPCR0_WR(x, HW_AXBS_MGPCR0_RD(x) ^ (v))) 00585 /*@}*/ 00586 00587 /* 00588 * Constants & macros for individual AXBS_MGPCR0 bitfields 00589 */ 00590 00591 /*! 00592 * @name Register AXBS_MGPCR0, field AULB[2:0] (RW) 00593 * 00594 * Determines whether, and when, the crossbar switch arbitrates away the slave 00595 * port the master owns when the master is performing undefined length burst 00596 * accesses. 00597 * 00598 * Values: 00599 * - 000 - No arbitration is allowed during an undefined length burst 00600 * - 001 - Arbitration is allowed at any time during an undefined length burst 00601 * - 010 - Arbitration is allowed after four beats of an undefined length burst 00602 * - 011 - Arbitration is allowed after eight beats of an undefined length burst 00603 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst 00604 * - 101 - Reserved 00605 * - 110 - Reserved 00606 * - 111 - Reserved 00607 */ 00608 /*@{*/ 00609 #define BP_AXBS_MGPCR0_AULB (0U) /*!< Bit position for AXBS_MGPCR0_AULB. */ 00610 #define BM_AXBS_MGPCR0_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR0_AULB. */ 00611 #define BS_AXBS_MGPCR0_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR0_AULB. */ 00612 00613 /*! @brief Read current value of the AXBS_MGPCR0_AULB field. */ 00614 #define BR_AXBS_MGPCR0_AULB(x) (HW_AXBS_MGPCR0(x).B.AULB) 00615 00616 /*! @brief Format value for bitfield AXBS_MGPCR0_AULB. */ 00617 #define BF_AXBS_MGPCR0_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR0_AULB) & BM_AXBS_MGPCR0_AULB) 00618 00619 /*! @brief Set the AULB field to a new value. */ 00620 #define BW_AXBS_MGPCR0_AULB(x, v) (HW_AXBS_MGPCR0_WR(x, (HW_AXBS_MGPCR0_RD(x) & ~BM_AXBS_MGPCR0_AULB) | BF_AXBS_MGPCR0_AULB(v))) 00621 /*@}*/ 00622 00623 /******************************************************************************* 00624 * HW_AXBS_MGPCR1 - Master General Purpose Control Register 00625 ******************************************************************************/ 00626 00627 /*! 00628 * @brief HW_AXBS_MGPCR1 - Master General Purpose Control Register (RW) 00629 * 00630 * Reset value: 0x00000000U 00631 * 00632 * The MGPCR controls only whether the master's undefined length burst accesses 00633 * are allowed to complete uninterrupted or whether they can be broken by 00634 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor 00635 * mode with 32-bit accesses. 00636 */ 00637 typedef union _hw_axbs_mgpcr1 00638 { 00639 uint32_t U; 00640 struct _hw_axbs_mgpcr1_bitfields 00641 { 00642 uint32_t AULB : 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */ 00643 uint32_t RESERVED0 : 29; /*!< [31:3] */ 00644 } B; 00645 } hw_axbs_mgpcr1_t; 00646 00647 /*! 00648 * @name Constants and macros for entire AXBS_MGPCR1 register 00649 */ 00650 /*@{*/ 00651 #define HW_AXBS_MGPCR1_ADDR(x) ((x) + 0x900U) 00652 00653 #define HW_AXBS_MGPCR1(x) (*(__IO hw_axbs_mgpcr1_t *) HW_AXBS_MGPCR1_ADDR(x)) 00654 #define HW_AXBS_MGPCR1_RD(x) (HW_AXBS_MGPCR1(x).U) 00655 #define HW_AXBS_MGPCR1_WR(x, v) (HW_AXBS_MGPCR1(x).U = (v)) 00656 #define HW_AXBS_MGPCR1_SET(x, v) (HW_AXBS_MGPCR1_WR(x, HW_AXBS_MGPCR1_RD(x) | (v))) 00657 #define HW_AXBS_MGPCR1_CLR(x, v) (HW_AXBS_MGPCR1_WR(x, HW_AXBS_MGPCR1_RD(x) & ~(v))) 00658 #define HW_AXBS_MGPCR1_TOG(x, v) (HW_AXBS_MGPCR1_WR(x, HW_AXBS_MGPCR1_RD(x) ^ (v))) 00659 /*@}*/ 00660 00661 /* 00662 * Constants & macros for individual AXBS_MGPCR1 bitfields 00663 */ 00664 00665 /*! 00666 * @name Register AXBS_MGPCR1, field AULB[2:0] (RW) 00667 * 00668 * Determines whether, and when, the crossbar switch arbitrates away the slave 00669 * port the master owns when the master is performing undefined length burst 00670 * accesses. 00671 * 00672 * Values: 00673 * - 000 - No arbitration is allowed during an undefined length burst 00674 * - 001 - Arbitration is allowed at any time during an undefined length burst 00675 * - 010 - Arbitration is allowed after four beats of an undefined length burst 00676 * - 011 - Arbitration is allowed after eight beats of an undefined length burst 00677 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst 00678 * - 101 - Reserved 00679 * - 110 - Reserved 00680 * - 111 - Reserved 00681 */ 00682 /*@{*/ 00683 #define BP_AXBS_MGPCR1_AULB (0U) /*!< Bit position for AXBS_MGPCR1_AULB. */ 00684 #define BM_AXBS_MGPCR1_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR1_AULB. */ 00685 #define BS_AXBS_MGPCR1_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR1_AULB. */ 00686 00687 /*! @brief Read current value of the AXBS_MGPCR1_AULB field. */ 00688 #define BR_AXBS_MGPCR1_AULB(x) (HW_AXBS_MGPCR1(x).B.AULB) 00689 00690 /*! @brief Format value for bitfield AXBS_MGPCR1_AULB. */ 00691 #define BF_AXBS_MGPCR1_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR1_AULB) & BM_AXBS_MGPCR1_AULB) 00692 00693 /*! @brief Set the AULB field to a new value. */ 00694 #define BW_AXBS_MGPCR1_AULB(x, v) (HW_AXBS_MGPCR1_WR(x, (HW_AXBS_MGPCR1_RD(x) & ~BM_AXBS_MGPCR1_AULB) | BF_AXBS_MGPCR1_AULB(v))) 00695 /*@}*/ 00696 00697 /******************************************************************************* 00698 * HW_AXBS_MGPCR2 - Master General Purpose Control Register 00699 ******************************************************************************/ 00700 00701 /*! 00702 * @brief HW_AXBS_MGPCR2 - Master General Purpose Control Register (RW) 00703 * 00704 * Reset value: 0x00000000U 00705 * 00706 * The MGPCR controls only whether the master's undefined length burst accesses 00707 * are allowed to complete uninterrupted or whether they can be broken by 00708 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor 00709 * mode with 32-bit accesses. 00710 */ 00711 typedef union _hw_axbs_mgpcr2 00712 { 00713 uint32_t U; 00714 struct _hw_axbs_mgpcr2_bitfields 00715 { 00716 uint32_t AULB : 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */ 00717 uint32_t RESERVED0 : 29; /*!< [31:3] */ 00718 } B; 00719 } hw_axbs_mgpcr2_t; 00720 00721 /*! 00722 * @name Constants and macros for entire AXBS_MGPCR2 register 00723 */ 00724 /*@{*/ 00725 #define HW_AXBS_MGPCR2_ADDR(x) ((x) + 0xA00U) 00726 00727 #define HW_AXBS_MGPCR2(x) (*(__IO hw_axbs_mgpcr2_t *) HW_AXBS_MGPCR2_ADDR(x)) 00728 #define HW_AXBS_MGPCR2_RD(x) (HW_AXBS_MGPCR2(x).U) 00729 #define HW_AXBS_MGPCR2_WR(x, v) (HW_AXBS_MGPCR2(x).U = (v)) 00730 #define HW_AXBS_MGPCR2_SET(x, v) (HW_AXBS_MGPCR2_WR(x, HW_AXBS_MGPCR2_RD(x) | (v))) 00731 #define HW_AXBS_MGPCR2_CLR(x, v) (HW_AXBS_MGPCR2_WR(x, HW_AXBS_MGPCR2_RD(x) & ~(v))) 00732 #define HW_AXBS_MGPCR2_TOG(x, v) (HW_AXBS_MGPCR2_WR(x, HW_AXBS_MGPCR2_RD(x) ^ (v))) 00733 /*@}*/ 00734 00735 /* 00736 * Constants & macros for individual AXBS_MGPCR2 bitfields 00737 */ 00738 00739 /*! 00740 * @name Register AXBS_MGPCR2, field AULB[2:0] (RW) 00741 * 00742 * Determines whether, and when, the crossbar switch arbitrates away the slave 00743 * port the master owns when the master is performing undefined length burst 00744 * accesses. 00745 * 00746 * Values: 00747 * - 000 - No arbitration is allowed during an undefined length burst 00748 * - 001 - Arbitration is allowed at any time during an undefined length burst 00749 * - 010 - Arbitration is allowed after four beats of an undefined length burst 00750 * - 011 - Arbitration is allowed after eight beats of an undefined length burst 00751 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst 00752 * - 101 - Reserved 00753 * - 110 - Reserved 00754 * - 111 - Reserved 00755 */ 00756 /*@{*/ 00757 #define BP_AXBS_MGPCR2_AULB (0U) /*!< Bit position for AXBS_MGPCR2_AULB. */ 00758 #define BM_AXBS_MGPCR2_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR2_AULB. */ 00759 #define BS_AXBS_MGPCR2_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR2_AULB. */ 00760 00761 /*! @brief Read current value of the AXBS_MGPCR2_AULB field. */ 00762 #define BR_AXBS_MGPCR2_AULB(x) (HW_AXBS_MGPCR2(x).B.AULB) 00763 00764 /*! @brief Format value for bitfield AXBS_MGPCR2_AULB. */ 00765 #define BF_AXBS_MGPCR2_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR2_AULB) & BM_AXBS_MGPCR2_AULB) 00766 00767 /*! @brief Set the AULB field to a new value. */ 00768 #define BW_AXBS_MGPCR2_AULB(x, v) (HW_AXBS_MGPCR2_WR(x, (HW_AXBS_MGPCR2_RD(x) & ~BM_AXBS_MGPCR2_AULB) | BF_AXBS_MGPCR2_AULB(v))) 00769 /*@}*/ 00770 00771 /******************************************************************************* 00772 * HW_AXBS_MGPCR3 - Master General Purpose Control Register 00773 ******************************************************************************/ 00774 00775 /*! 00776 * @brief HW_AXBS_MGPCR3 - Master General Purpose Control Register (RW) 00777 * 00778 * Reset value: 0x00000000U 00779 * 00780 * The MGPCR controls only whether the master's undefined length burst accesses 00781 * are allowed to complete uninterrupted or whether they can be broken by 00782 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor 00783 * mode with 32-bit accesses. 00784 */ 00785 typedef union _hw_axbs_mgpcr3 00786 { 00787 uint32_t U; 00788 struct _hw_axbs_mgpcr3_bitfields 00789 { 00790 uint32_t AULB : 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */ 00791 uint32_t RESERVED0 : 29; /*!< [31:3] */ 00792 } B; 00793 } hw_axbs_mgpcr3_t; 00794 00795 /*! 00796 * @name Constants and macros for entire AXBS_MGPCR3 register 00797 */ 00798 /*@{*/ 00799 #define HW_AXBS_MGPCR3_ADDR(x) ((x) + 0xB00U) 00800 00801 #define HW_AXBS_MGPCR3(x) (*(__IO hw_axbs_mgpcr3_t *) HW_AXBS_MGPCR3_ADDR(x)) 00802 #define HW_AXBS_MGPCR3_RD(x) (HW_AXBS_MGPCR3(x).U) 00803 #define HW_AXBS_MGPCR3_WR(x, v) (HW_AXBS_MGPCR3(x).U = (v)) 00804 #define HW_AXBS_MGPCR3_SET(x, v) (HW_AXBS_MGPCR3_WR(x, HW_AXBS_MGPCR3_RD(x) | (v))) 00805 #define HW_AXBS_MGPCR3_CLR(x, v) (HW_AXBS_MGPCR3_WR(x, HW_AXBS_MGPCR3_RD(x) & ~(v))) 00806 #define HW_AXBS_MGPCR3_TOG(x, v) (HW_AXBS_MGPCR3_WR(x, HW_AXBS_MGPCR3_RD(x) ^ (v))) 00807 /*@}*/ 00808 00809 /* 00810 * Constants & macros for individual AXBS_MGPCR3 bitfields 00811 */ 00812 00813 /*! 00814 * @name Register AXBS_MGPCR3, field AULB[2:0] (RW) 00815 * 00816 * Determines whether, and when, the crossbar switch arbitrates away the slave 00817 * port the master owns when the master is performing undefined length burst 00818 * accesses. 00819 * 00820 * Values: 00821 * - 000 - No arbitration is allowed during an undefined length burst 00822 * - 001 - Arbitration is allowed at any time during an undefined length burst 00823 * - 010 - Arbitration is allowed after four beats of an undefined length burst 00824 * - 011 - Arbitration is allowed after eight beats of an undefined length burst 00825 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst 00826 * - 101 - Reserved 00827 * - 110 - Reserved 00828 * - 111 - Reserved 00829 */ 00830 /*@{*/ 00831 #define BP_AXBS_MGPCR3_AULB (0U) /*!< Bit position for AXBS_MGPCR3_AULB. */ 00832 #define BM_AXBS_MGPCR3_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR3_AULB. */ 00833 #define BS_AXBS_MGPCR3_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR3_AULB. */ 00834 00835 /*! @brief Read current value of the AXBS_MGPCR3_AULB field. */ 00836 #define BR_AXBS_MGPCR3_AULB(x) (HW_AXBS_MGPCR3(x).B.AULB) 00837 00838 /*! @brief Format value for bitfield AXBS_MGPCR3_AULB. */ 00839 #define BF_AXBS_MGPCR3_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR3_AULB) & BM_AXBS_MGPCR3_AULB) 00840 00841 /*! @brief Set the AULB field to a new value. */ 00842 #define BW_AXBS_MGPCR3_AULB(x, v) (HW_AXBS_MGPCR3_WR(x, (HW_AXBS_MGPCR3_RD(x) & ~BM_AXBS_MGPCR3_AULB) | BF_AXBS_MGPCR3_AULB(v))) 00843 /*@}*/ 00844 00845 /******************************************************************************* 00846 * HW_AXBS_MGPCR4 - Master General Purpose Control Register 00847 ******************************************************************************/ 00848 00849 /*! 00850 * @brief HW_AXBS_MGPCR4 - Master General Purpose Control Register (RW) 00851 * 00852 * Reset value: 0x00000000U 00853 * 00854 * The MGPCR controls only whether the master's undefined length burst accesses 00855 * are allowed to complete uninterrupted or whether they can be broken by 00856 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor 00857 * mode with 32-bit accesses. 00858 */ 00859 typedef union _hw_axbs_mgpcr4 00860 { 00861 uint32_t U; 00862 struct _hw_axbs_mgpcr4_bitfields 00863 { 00864 uint32_t AULB : 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */ 00865 uint32_t RESERVED0 : 29; /*!< [31:3] */ 00866 } B; 00867 } hw_axbs_mgpcr4_t; 00868 00869 /*! 00870 * @name Constants and macros for entire AXBS_MGPCR4 register 00871 */ 00872 /*@{*/ 00873 #define HW_AXBS_MGPCR4_ADDR(x) ((x) + 0xC00U) 00874 00875 #define HW_AXBS_MGPCR4(x) (*(__IO hw_axbs_mgpcr4_t *) HW_AXBS_MGPCR4_ADDR(x)) 00876 #define HW_AXBS_MGPCR4_RD(x) (HW_AXBS_MGPCR4(x).U) 00877 #define HW_AXBS_MGPCR4_WR(x, v) (HW_AXBS_MGPCR4(x).U = (v)) 00878 #define HW_AXBS_MGPCR4_SET(x, v) (HW_AXBS_MGPCR4_WR(x, HW_AXBS_MGPCR4_RD(x) | (v))) 00879 #define HW_AXBS_MGPCR4_CLR(x, v) (HW_AXBS_MGPCR4_WR(x, HW_AXBS_MGPCR4_RD(x) & ~(v))) 00880 #define HW_AXBS_MGPCR4_TOG(x, v) (HW_AXBS_MGPCR4_WR(x, HW_AXBS_MGPCR4_RD(x) ^ (v))) 00881 /*@}*/ 00882 00883 /* 00884 * Constants & macros for individual AXBS_MGPCR4 bitfields 00885 */ 00886 00887 /*! 00888 * @name Register AXBS_MGPCR4, field AULB[2:0] (RW) 00889 * 00890 * Determines whether, and when, the crossbar switch arbitrates away the slave 00891 * port the master owns when the master is performing undefined length burst 00892 * accesses. 00893 * 00894 * Values: 00895 * - 000 - No arbitration is allowed during an undefined length burst 00896 * - 001 - Arbitration is allowed at any time during an undefined length burst 00897 * - 010 - Arbitration is allowed after four beats of an undefined length burst 00898 * - 011 - Arbitration is allowed after eight beats of an undefined length burst 00899 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst 00900 * - 101 - Reserved 00901 * - 110 - Reserved 00902 * - 111 - Reserved 00903 */ 00904 /*@{*/ 00905 #define BP_AXBS_MGPCR4_AULB (0U) /*!< Bit position for AXBS_MGPCR4_AULB. */ 00906 #define BM_AXBS_MGPCR4_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR4_AULB. */ 00907 #define BS_AXBS_MGPCR4_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR4_AULB. */ 00908 00909 /*! @brief Read current value of the AXBS_MGPCR4_AULB field. */ 00910 #define BR_AXBS_MGPCR4_AULB(x) (HW_AXBS_MGPCR4(x).B.AULB) 00911 00912 /*! @brief Format value for bitfield AXBS_MGPCR4_AULB. */ 00913 #define BF_AXBS_MGPCR4_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR4_AULB) & BM_AXBS_MGPCR4_AULB) 00914 00915 /*! @brief Set the AULB field to a new value. */ 00916 #define BW_AXBS_MGPCR4_AULB(x, v) (HW_AXBS_MGPCR4_WR(x, (HW_AXBS_MGPCR4_RD(x) & ~BM_AXBS_MGPCR4_AULB) | BF_AXBS_MGPCR4_AULB(v))) 00917 /*@}*/ 00918 00919 /******************************************************************************* 00920 * HW_AXBS_MGPCR5 - Master General Purpose Control Register 00921 ******************************************************************************/ 00922 00923 /*! 00924 * @brief HW_AXBS_MGPCR5 - Master General Purpose Control Register (RW) 00925 * 00926 * Reset value: 0x00000000U 00927 * 00928 * The MGPCR controls only whether the master's undefined length burst accesses 00929 * are allowed to complete uninterrupted or whether they can be broken by 00930 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor 00931 * mode with 32-bit accesses. 00932 */ 00933 typedef union _hw_axbs_mgpcr5 00934 { 00935 uint32_t U; 00936 struct _hw_axbs_mgpcr5_bitfields 00937 { 00938 uint32_t AULB : 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */ 00939 uint32_t RESERVED0 : 29; /*!< [31:3] */ 00940 } B; 00941 } hw_axbs_mgpcr5_t; 00942 00943 /*! 00944 * @name Constants and macros for entire AXBS_MGPCR5 register 00945 */ 00946 /*@{*/ 00947 #define HW_AXBS_MGPCR5_ADDR(x) ((x) + 0xD00U) 00948 00949 #define HW_AXBS_MGPCR5(x) (*(__IO hw_axbs_mgpcr5_t *) HW_AXBS_MGPCR5_ADDR(x)) 00950 #define HW_AXBS_MGPCR5_RD(x) (HW_AXBS_MGPCR5(x).U) 00951 #define HW_AXBS_MGPCR5_WR(x, v) (HW_AXBS_MGPCR5(x).U = (v)) 00952 #define HW_AXBS_MGPCR5_SET(x, v) (HW_AXBS_MGPCR5_WR(x, HW_AXBS_MGPCR5_RD(x) | (v))) 00953 #define HW_AXBS_MGPCR5_CLR(x, v) (HW_AXBS_MGPCR5_WR(x, HW_AXBS_MGPCR5_RD(x) & ~(v))) 00954 #define HW_AXBS_MGPCR5_TOG(x, v) (HW_AXBS_MGPCR5_WR(x, HW_AXBS_MGPCR5_RD(x) ^ (v))) 00955 /*@}*/ 00956 00957 /* 00958 * Constants & macros for individual AXBS_MGPCR5 bitfields 00959 */ 00960 00961 /*! 00962 * @name Register AXBS_MGPCR5, field AULB[2:0] (RW) 00963 * 00964 * Determines whether, and when, the crossbar switch arbitrates away the slave 00965 * port the master owns when the master is performing undefined length burst 00966 * accesses. 00967 * 00968 * Values: 00969 * - 000 - No arbitration is allowed during an undefined length burst 00970 * - 001 - Arbitration is allowed at any time during an undefined length burst 00971 * - 010 - Arbitration is allowed after four beats of an undefined length burst 00972 * - 011 - Arbitration is allowed after eight beats of an undefined length burst 00973 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst 00974 * - 101 - Reserved 00975 * - 110 - Reserved 00976 * - 111 - Reserved 00977 */ 00978 /*@{*/ 00979 #define BP_AXBS_MGPCR5_AULB (0U) /*!< Bit position for AXBS_MGPCR5_AULB. */ 00980 #define BM_AXBS_MGPCR5_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR5_AULB. */ 00981 #define BS_AXBS_MGPCR5_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR5_AULB. */ 00982 00983 /*! @brief Read current value of the AXBS_MGPCR5_AULB field. */ 00984 #define BR_AXBS_MGPCR5_AULB(x) (HW_AXBS_MGPCR5(x).B.AULB) 00985 00986 /*! @brief Format value for bitfield AXBS_MGPCR5_AULB. */ 00987 #define BF_AXBS_MGPCR5_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR5_AULB) & BM_AXBS_MGPCR5_AULB) 00988 00989 /*! @brief Set the AULB field to a new value. */ 00990 #define BW_AXBS_MGPCR5_AULB(x, v) (HW_AXBS_MGPCR5_WR(x, (HW_AXBS_MGPCR5_RD(x) & ~BM_AXBS_MGPCR5_AULB) | BF_AXBS_MGPCR5_AULB(v))) 00991 /*@}*/ 00992 00993 /******************************************************************************* 00994 * hw_axbs_t - module struct 00995 ******************************************************************************/ 00996 /*! 00997 * @brief All AXBS module registers. 00998 */ 00999 #pragma pack(1) 01000 typedef struct _hw_axbs 01001 { 01002 struct { 01003 __IO hw_axbs_prsn_t PRSn ; /*!< [0x0] Priority Registers Slave */ 01004 uint8_t _reserved0[12]; 01005 __IO hw_axbs_crsn_t CRSn ; /*!< [0x10] Control Register */ 01006 uint8_t _reserved1[236]; 01007 } SLAVE[5]; 01008 uint8_t _reserved0[768]; 01009 __IO hw_axbs_mgpcr0_t MGPCR0 ; /*!< [0x800] Master General Purpose Control Register */ 01010 uint8_t _reserved1[252]; 01011 __IO hw_axbs_mgpcr1_t MGPCR1 ; /*!< [0x900] Master General Purpose Control Register */ 01012 uint8_t _reserved2[252]; 01013 __IO hw_axbs_mgpcr2_t MGPCR2 ; /*!< [0xA00] Master General Purpose Control Register */ 01014 uint8_t _reserved3[252]; 01015 __IO hw_axbs_mgpcr3_t MGPCR3 ; /*!< [0xB00] Master General Purpose Control Register */ 01016 uint8_t _reserved4[252]; 01017 __IO hw_axbs_mgpcr4_t MGPCR4 ; /*!< [0xC00] Master General Purpose Control Register */ 01018 uint8_t _reserved5[252]; 01019 __IO hw_axbs_mgpcr5_t MGPCR5 ; /*!< [0xD00] Master General Purpose Control Register */ 01020 } hw_axbs_t; 01021 #pragma pack() 01022 01023 /*! @brief Macro to access all AXBS registers. */ 01024 /*! @param x AXBS module instance base address. */ 01025 /*! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct, 01026 * use the '&' operator, like <code>&HW_AXBS(AXBS_BASE)</code>. */ 01027 #define HW_AXBS(x) (*(hw_axbs_t *)(x)) 01028 01029 #endif /* __HW_AXBS_REGISTERS_H__ */ 01030 /* EOF */
Generated on Tue Jul 12 2022 18:48:49 by
1.7.2