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