Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:42

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  * @file
0005  *
0006  * @ingroup RTEMSDeviceGRLIBDSU4
0007  *
0008  * @brief This header file defines the DSU4 register block interface.
0009  */
0010 
0011 /*
0012  * Copyright (C) 2021 embedded brains GmbH & Co. KG
0013  *
0014  * Redistribution and use in source and binary forms, with or without
0015  * modification, are permitted provided that the following conditions
0016  * are met:
0017  * 1. Redistributions of source code must retain the above copyright
0018  *    notice, this list of conditions and the following disclaimer.
0019  * 2. Redistributions in binary form must reproduce the above copyright
0020  *    notice, this list of conditions and the following disclaimer in the
0021  *    documentation and/or other materials provided with the distribution.
0022  *
0023  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0024  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0025  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0026  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0027  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0028  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0029  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0030  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0031  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0032  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0033  * POSSIBILITY OF SUCH DAMAGE.
0034  */
0035 
0036 /*
0037  * This file is part of the RTEMS quality process and was automatically
0038  * generated.  If you find something that needs to be fixed or
0039  * worded better please post a report or patch to an RTEMS mailing list
0040  * or raise a bug report:
0041  *
0042  * https://www.rtems.org/bugs.html
0043  *
0044  * For information on updating and regenerating please refer to the How-To
0045  * section in the Software Requirements Engineering chapter of the
0046  * RTEMS Software Engineering manual.  The manual is provided as a part of
0047  * a release.  For development sources please refer to the online
0048  * documentation at:
0049  *
0050  * https://docs.rtems.org
0051  */
0052 
0053 /* Generated from spec:/dev/grlib/if/dsu4-header */
0054 
0055 #ifndef _GRLIB_DSU4_REGS_H
0056 #define _GRLIB_DSU4_REGS_H
0057 
0058 #include <stdint.h>
0059 
0060 #ifdef __cplusplus
0061 extern "C" {
0062 #endif
0063 
0064 /* Generated from spec:/dev/grlib/if/dsu4 */
0065 
0066 /**
0067  * @defgroup RTEMSDeviceGRLIBDSU4 DSU4
0068  *
0069  * @ingroup RTEMSDeviceGRLIB
0070  *
0071  * @brief This group contains the DSU4 interfaces.
0072  *
0073  * @{
0074  */
0075 
0076 /**
0077  * @defgroup RTEMSDeviceGRLIBDSU4CTRL DSU control register (CTRL)
0078  *
0079  * @brief This group contains register bit definitions.
0080  *
0081  * @{
0082  */
0083 
0084 #define DSU4_CTRL_PW 0x800U
0085 
0086 #define DSU4_CTRL_HL 0x400U
0087 
0088 #define DSU4_CTRL_PE 0x200U
0089 
0090 #define DSU4_CTRL_EB 0x100U
0091 
0092 #define DSU4_CTRL_EE 0x80U
0093 
0094 #define DSU4_CTRL_DM 0x40U
0095 
0096 #define DSU4_CTRL_BZ 0x20U
0097 
0098 #define DSU4_CTRL_BX 0x10U
0099 
0100 #define DSU4_CTRL_BS 0x8U
0101 
0102 #define DSU4_CTRL_BW 0x4U
0103 
0104 #define DSU4_CTRL_BE 0x2U
0105 
0106 #define DSU4_CTRL_TE 0x1U
0107 
0108 /** @} */
0109 
0110 /**
0111  * @defgroup RTEMSDeviceGRLIBDSU4DTTC DSU time tag counter register (DTTC)
0112  *
0113  * @brief This group contains register bit definitions.
0114  *
0115  * @{
0116  */
0117 
0118 #define DSU4_DTTC_TIMETAG_SHIFT 0
0119 #define DSU4_DTTC_TIMETAG_MASK 0xffffffffU
0120 #define DSU4_DTTC_TIMETAG_GET( _reg ) \
0121   ( ( ( _reg ) & DSU4_DTTC_TIMETAG_MASK ) >> \
0122     DSU4_DTTC_TIMETAG_SHIFT )
0123 #define DSU4_DTTC_TIMETAG_SET( _reg, _val ) \
0124   ( ( ( _reg ) & ~DSU4_DTTC_TIMETAG_MASK ) | \
0125     ( ( ( _val ) << DSU4_DTTC_TIMETAG_SHIFT ) & \
0126       DSU4_DTTC_TIMETAG_MASK ) )
0127 #define DSU4_DTTC_TIMETAG( _val ) \
0128   ( ( ( _val ) << DSU4_DTTC_TIMETAG_SHIFT ) & \
0129     DSU4_DTTC_TIMETAG_MASK )
0130 
0131 /** @} */
0132 
0133 /**
0134  * @defgroup RTEMSDeviceGRLIBDSU4BRSS DSU break and single step register (BRSS)
0135  *
0136  * @brief This group contains register bit definitions.
0137  *
0138  * @{
0139  */
0140 
0141 #define DSU4_BRSS_SS_3_0_SHIFT 16
0142 #define DSU4_BRSS_SS_3_0_MASK 0xf0000U
0143 #define DSU4_BRSS_SS_3_0_GET( _reg ) \
0144   ( ( ( _reg ) & DSU4_BRSS_SS_3_0_MASK ) >> \
0145     DSU4_BRSS_SS_3_0_SHIFT )
0146 #define DSU4_BRSS_SS_3_0_SET( _reg, _val ) \
0147   ( ( ( _reg ) & ~DSU4_BRSS_SS_3_0_MASK ) | \
0148     ( ( ( _val ) << DSU4_BRSS_SS_3_0_SHIFT ) & \
0149       DSU4_BRSS_SS_3_0_MASK ) )
0150 #define DSU4_BRSS_SS_3_0( _val ) \
0151   ( ( ( _val ) << DSU4_BRSS_SS_3_0_SHIFT ) & \
0152     DSU4_BRSS_SS_3_0_MASK )
0153 
0154 #define DSU4_BRSS_BN_3_0_SHIFT 0
0155 #define DSU4_BRSS_BN_3_0_MASK 0xfU
0156 #define DSU4_BRSS_BN_3_0_GET( _reg ) \
0157   ( ( ( _reg ) & DSU4_BRSS_BN_3_0_MASK ) >> \
0158     DSU4_BRSS_BN_3_0_SHIFT )
0159 #define DSU4_BRSS_BN_3_0_SET( _reg, _val ) \
0160   ( ( ( _reg ) & ~DSU4_BRSS_BN_3_0_MASK ) | \
0161     ( ( ( _val ) << DSU4_BRSS_BN_3_0_SHIFT ) & \
0162       DSU4_BRSS_BN_3_0_MASK ) )
0163 #define DSU4_BRSS_BN_3_0( _val ) \
0164   ( ( ( _val ) << DSU4_BRSS_BN_3_0_SHIFT ) & \
0165     DSU4_BRSS_BN_3_0_MASK )
0166 
0167 /** @} */
0168 
0169 /**
0170  * @defgroup RTEMSDeviceGRLIBDSU4DBGM DSU debug mode mask register (DBGM)
0171  *
0172  * @brief This group contains register bit definitions.
0173  *
0174  * @{
0175  */
0176 
0177 #define DSU4_DBGM_DM_3_0_SHIFT 16
0178 #define DSU4_DBGM_DM_3_0_MASK 0xf0000U
0179 #define DSU4_DBGM_DM_3_0_GET( _reg ) \
0180   ( ( ( _reg ) & DSU4_DBGM_DM_3_0_MASK ) >> \
0181     DSU4_DBGM_DM_3_0_SHIFT )
0182 #define DSU4_DBGM_DM_3_0_SET( _reg, _val ) \
0183   ( ( ( _reg ) & ~DSU4_DBGM_DM_3_0_MASK ) | \
0184     ( ( ( _val ) << DSU4_DBGM_DM_3_0_SHIFT ) & \
0185       DSU4_DBGM_DM_3_0_MASK ) )
0186 #define DSU4_DBGM_DM_3_0( _val ) \
0187   ( ( ( _val ) << DSU4_DBGM_DM_3_0_SHIFT ) & \
0188     DSU4_DBGM_DM_3_0_MASK )
0189 
0190 #define DSU4_DBGM_ED_3_0_SHIFT 0
0191 #define DSU4_DBGM_ED_3_0_MASK 0xfU
0192 #define DSU4_DBGM_ED_3_0_GET( _reg ) \
0193   ( ( ( _reg ) & DSU4_DBGM_ED_3_0_MASK ) >> \
0194     DSU4_DBGM_ED_3_0_SHIFT )
0195 #define DSU4_DBGM_ED_3_0_SET( _reg, _val ) \
0196   ( ( ( _reg ) & ~DSU4_DBGM_ED_3_0_MASK ) | \
0197     ( ( ( _val ) << DSU4_DBGM_ED_3_0_SHIFT ) & \
0198       DSU4_DBGM_ED_3_0_MASK ) )
0199 #define DSU4_DBGM_ED_3_0( _val ) \
0200   ( ( ( _val ) << DSU4_DBGM_ED_3_0_SHIFT ) & \
0201     DSU4_DBGM_ED_3_0_MASK )
0202 
0203 /** @} */
0204 
0205 /**
0206  * @defgroup RTEMSDeviceGRLIBDSU4DTR DSU trap register (DTR)
0207  *
0208  * @brief This group contains register bit definitions.
0209  *
0210  * @{
0211  */
0212 
0213 #define DSU4_DTR_EM 0x1000U
0214 
0215 #define DSU4_DTR_TRAPTYPE_SHIFT 4
0216 #define DSU4_DTR_TRAPTYPE_MASK 0xff0U
0217 #define DSU4_DTR_TRAPTYPE_GET( _reg ) \
0218   ( ( ( _reg ) & DSU4_DTR_TRAPTYPE_MASK ) >> \
0219     DSU4_DTR_TRAPTYPE_SHIFT )
0220 #define DSU4_DTR_TRAPTYPE_SET( _reg, _val ) \
0221   ( ( ( _reg ) & ~DSU4_DTR_TRAPTYPE_MASK ) | \
0222     ( ( ( _val ) << DSU4_DTR_TRAPTYPE_SHIFT ) & \
0223       DSU4_DTR_TRAPTYPE_MASK ) )
0224 #define DSU4_DTR_TRAPTYPE( _val ) \
0225   ( ( ( _val ) << DSU4_DTR_TRAPTYPE_SHIFT ) & \
0226     DSU4_DTR_TRAPTYPE_MASK )
0227 
0228 /** @} */
0229 
0230 /**
0231  * @defgroup RTEMSDeviceGRLIBDSU4DASI DSU ASI diagnostic access register (DASI)
0232  *
0233  * @brief This group contains register bit definitions.
0234  *
0235  * @{
0236  */
0237 
0238 #define DSU4_DASI_ASI_SHIFT 0
0239 #define DSU4_DASI_ASI_MASK 0xffU
0240 #define DSU4_DASI_ASI_GET( _reg ) \
0241   ( ( ( _reg ) & DSU4_DASI_ASI_MASK ) >> \
0242     DSU4_DASI_ASI_SHIFT )
0243 #define DSU4_DASI_ASI_SET( _reg, _val ) \
0244   ( ( ( _reg ) & ~DSU4_DASI_ASI_MASK ) | \
0245     ( ( ( _val ) << DSU4_DASI_ASI_SHIFT ) & \
0246       DSU4_DASI_ASI_MASK ) )
0247 #define DSU4_DASI_ASI( _val ) \
0248   ( ( ( _val ) << DSU4_DASI_ASI_SHIFT ) & \
0249     DSU4_DASI_ASI_MASK )
0250 
0251 /** @} */
0252 
0253 /**
0254  * @defgroup RTEMSDeviceGRLIBDSU4ATBC AHB trace buffer control register (ATBC)
0255  *
0256  * @brief This group contains register bit definitions.
0257  *
0258  * @{
0259  */
0260 
0261 #define DSU4_ATBC_DCNT_SHIFT 16
0262 #define DSU4_ATBC_DCNT_MASK 0xff0000U
0263 #define DSU4_ATBC_DCNT_GET( _reg ) \
0264   ( ( ( _reg ) & DSU4_ATBC_DCNT_MASK ) >> \
0265     DSU4_ATBC_DCNT_SHIFT )
0266 #define DSU4_ATBC_DCNT_SET( _reg, _val ) \
0267   ( ( ( _reg ) & ~DSU4_ATBC_DCNT_MASK ) | \
0268     ( ( ( _val ) << DSU4_ATBC_DCNT_SHIFT ) & \
0269       DSU4_ATBC_DCNT_MASK ) )
0270 #define DSU4_ATBC_DCNT( _val ) \
0271   ( ( ( _val ) << DSU4_ATBC_DCNT_SHIFT ) & \
0272     DSU4_ATBC_DCNT_MASK )
0273 
0274 #define DSU4_ATBC_DF 0x100U
0275 
0276 #define DSU4_ATBC_SF 0x80U
0277 
0278 #define DSU4_ATBC_TE 0x40U
0279 
0280 #define DSU4_ATBC_TF 0x20U
0281 
0282 #define DSU4_ATBC_BW_SHIFT 3
0283 #define DSU4_ATBC_BW_MASK 0x18U
0284 #define DSU4_ATBC_BW_GET( _reg ) \
0285   ( ( ( _reg ) & DSU4_ATBC_BW_MASK ) >> \
0286     DSU4_ATBC_BW_SHIFT )
0287 #define DSU4_ATBC_BW_SET( _reg, _val ) \
0288   ( ( ( _reg ) & ~DSU4_ATBC_BW_MASK ) | \
0289     ( ( ( _val ) << DSU4_ATBC_BW_SHIFT ) & \
0290       DSU4_ATBC_BW_MASK ) )
0291 #define DSU4_ATBC_BW( _val ) \
0292   ( ( ( _val ) << DSU4_ATBC_BW_SHIFT ) & \
0293     DSU4_ATBC_BW_MASK )
0294 
0295 #define DSU4_ATBC_BR 0x4U
0296 
0297 #define DSU4_ATBC_DM 0x2U
0298 
0299 #define DSU4_ATBC_EN 0x1U
0300 
0301 /** @} */
0302 
0303 /**
0304  * @defgroup RTEMSDeviceGRLIBDSU4ATBI AHB trace buffer index register (ATBI)
0305  *
0306  * @brief This group contains register bit definitions.
0307  *
0308  * @{
0309  */
0310 
0311 #define DSU4_ATBI_INDEX_SHIFT 4
0312 #define DSU4_ATBI_INDEX_MASK 0xff0U
0313 #define DSU4_ATBI_INDEX_GET( _reg ) \
0314   ( ( ( _reg ) & DSU4_ATBI_INDEX_MASK ) >> \
0315     DSU4_ATBI_INDEX_SHIFT )
0316 #define DSU4_ATBI_INDEX_SET( _reg, _val ) \
0317   ( ( ( _reg ) & ~DSU4_ATBI_INDEX_MASK ) | \
0318     ( ( ( _val ) << DSU4_ATBI_INDEX_SHIFT ) & \
0319       DSU4_ATBI_INDEX_MASK ) )
0320 #define DSU4_ATBI_INDEX( _val ) \
0321   ( ( ( _val ) << DSU4_ATBI_INDEX_SHIFT ) & \
0322     DSU4_ATBI_INDEX_MASK )
0323 
0324 /** @} */
0325 
0326 /**
0327  * @defgroup RTEMSDeviceGRLIBDSU4ATBFC \
0328  *   AHB trace buffer filter control register (ATBFC)
0329  *
0330  * @brief This group contains register bit definitions.
0331  *
0332  * @{
0333  */
0334 
0335 #define DSU4_ATBFC_WPF_SHIFT 12
0336 #define DSU4_ATBFC_WPF_MASK 0x3000U
0337 #define DSU4_ATBFC_WPF_GET( _reg ) \
0338   ( ( ( _reg ) & DSU4_ATBFC_WPF_MASK ) >> \
0339     DSU4_ATBFC_WPF_SHIFT )
0340 #define DSU4_ATBFC_WPF_SET( _reg, _val ) \
0341   ( ( ( _reg ) & ~DSU4_ATBFC_WPF_MASK ) | \
0342     ( ( ( _val ) << DSU4_ATBFC_WPF_SHIFT ) & \
0343       DSU4_ATBFC_WPF_MASK ) )
0344 #define DSU4_ATBFC_WPF( _val ) \
0345   ( ( ( _val ) << DSU4_ATBFC_WPF_SHIFT ) & \
0346     DSU4_ATBFC_WPF_MASK )
0347 
0348 #define DSU4_ATBFC_BPF_SHIFT 8
0349 #define DSU4_ATBFC_BPF_MASK 0x300U
0350 #define DSU4_ATBFC_BPF_GET( _reg ) \
0351   ( ( ( _reg ) & DSU4_ATBFC_BPF_MASK ) >> \
0352     DSU4_ATBFC_BPF_SHIFT )
0353 #define DSU4_ATBFC_BPF_SET( _reg, _val ) \
0354   ( ( ( _reg ) & ~DSU4_ATBFC_BPF_MASK ) | \
0355     ( ( ( _val ) << DSU4_ATBFC_BPF_SHIFT ) & \
0356       DSU4_ATBFC_BPF_MASK ) )
0357 #define DSU4_ATBFC_BPF( _val ) \
0358   ( ( ( _val ) << DSU4_ATBFC_BPF_SHIFT ) & \
0359     DSU4_ATBFC_BPF_MASK )
0360 
0361 #define DSU4_ATBFC_PF 0x8U
0362 
0363 #define DSU4_ATBFC_AF 0x4U
0364 
0365 #define DSU4_ATBFC_FR 0x2U
0366 
0367 #define DSU4_ATBFC_FW 0x1U
0368 
0369 /** @} */
0370 
0371 /**
0372  * @defgroup RTEMSDeviceGRLIBDSU4ATBFM \
0373  *   AHB trace buffer filter mask register (ATBFM)
0374  *
0375  * @brief This group contains register bit definitions.
0376  *
0377  * @{
0378  */
0379 
0380 #define DSU4_ATBFM_SMASK_15_0_SHIFT 16
0381 #define DSU4_ATBFM_SMASK_15_0_MASK 0xffff0000U
0382 #define DSU4_ATBFM_SMASK_15_0_GET( _reg ) \
0383   ( ( ( _reg ) & DSU4_ATBFM_SMASK_15_0_MASK ) >> \
0384     DSU4_ATBFM_SMASK_15_0_SHIFT )
0385 #define DSU4_ATBFM_SMASK_15_0_SET( _reg, _val ) \
0386   ( ( ( _reg ) & ~DSU4_ATBFM_SMASK_15_0_MASK ) | \
0387     ( ( ( _val ) << DSU4_ATBFM_SMASK_15_0_SHIFT ) & \
0388       DSU4_ATBFM_SMASK_15_0_MASK ) )
0389 #define DSU4_ATBFM_SMASK_15_0( _val ) \
0390   ( ( ( _val ) << DSU4_ATBFM_SMASK_15_0_SHIFT ) & \
0391     DSU4_ATBFM_SMASK_15_0_MASK )
0392 
0393 #define DSU4_ATBFM_MMASK_15_0_SHIFT 0
0394 #define DSU4_ATBFM_MMASK_15_0_MASK 0xffffU
0395 #define DSU4_ATBFM_MMASK_15_0_GET( _reg ) \
0396   ( ( ( _reg ) & DSU4_ATBFM_MMASK_15_0_MASK ) >> \
0397     DSU4_ATBFM_MMASK_15_0_SHIFT )
0398 #define DSU4_ATBFM_MMASK_15_0_SET( _reg, _val ) \
0399   ( ( ( _reg ) & ~DSU4_ATBFM_MMASK_15_0_MASK ) | \
0400     ( ( ( _val ) << DSU4_ATBFM_MMASK_15_0_SHIFT ) & \
0401       DSU4_ATBFM_MMASK_15_0_MASK ) )
0402 #define DSU4_ATBFM_MMASK_15_0( _val ) \
0403   ( ( ( _val ) << DSU4_ATBFM_MMASK_15_0_SHIFT ) & \
0404     DSU4_ATBFM_MMASK_15_0_MASK )
0405 
0406 /** @} */
0407 
0408 /**
0409  * @defgroup RTEMSDeviceGRLIBDSU4ATBBA \
0410  *   AHB trace buffer break address registers (ATBBA)
0411  *
0412  * @brief This group contains register bit definitions.
0413  *
0414  * @{
0415  */
0416 
0417 #define DSU4_ATBBA_BADDR_31_2_SHIFT 2
0418 #define DSU4_ATBBA_BADDR_31_2_MASK 0xfffffffcU
0419 #define DSU4_ATBBA_BADDR_31_2_GET( _reg ) \
0420   ( ( ( _reg ) & DSU4_ATBBA_BADDR_31_2_MASK ) >> \
0421     DSU4_ATBBA_BADDR_31_2_SHIFT )
0422 #define DSU4_ATBBA_BADDR_31_2_SET( _reg, _val ) \
0423   ( ( ( _reg ) & ~DSU4_ATBBA_BADDR_31_2_MASK ) | \
0424     ( ( ( _val ) << DSU4_ATBBA_BADDR_31_2_SHIFT ) & \
0425       DSU4_ATBBA_BADDR_31_2_MASK ) )
0426 #define DSU4_ATBBA_BADDR_31_2( _val ) \
0427   ( ( ( _val ) << DSU4_ATBBA_BADDR_31_2_SHIFT ) & \
0428     DSU4_ATBBA_BADDR_31_2_MASK )
0429 
0430 /** @} */
0431 
0432 /**
0433  * @defgroup RTEMSDeviceGRLIBDSU4ATBBM \
0434  *   AHB trace buffer break mask registers (ATBBM)
0435  *
0436  * @brief This group contains register bit definitions.
0437  *
0438  * @{
0439  */
0440 
0441 #define DSU4_ATBBM_BMASK_31_2_SHIFT 2
0442 #define DSU4_ATBBM_BMASK_31_2_MASK 0xfffffffcU
0443 #define DSU4_ATBBM_BMASK_31_2_GET( _reg ) \
0444   ( ( ( _reg ) & DSU4_ATBBM_BMASK_31_2_MASK ) >> \
0445     DSU4_ATBBM_BMASK_31_2_SHIFT )
0446 #define DSU4_ATBBM_BMASK_31_2_SET( _reg, _val ) \
0447   ( ( ( _reg ) & ~DSU4_ATBBM_BMASK_31_2_MASK ) | \
0448     ( ( ( _val ) << DSU4_ATBBM_BMASK_31_2_SHIFT ) & \
0449       DSU4_ATBBM_BMASK_31_2_MASK ) )
0450 #define DSU4_ATBBM_BMASK_31_2( _val ) \
0451   ( ( ( _val ) << DSU4_ATBBM_BMASK_31_2_SHIFT ) & \
0452     DSU4_ATBBM_BMASK_31_2_MASK )
0453 
0454 #define DSU4_ATBBM_LD 0x2U
0455 
0456 #define DSU4_ATBBM_ST 0x1U
0457 
0458 /** @} */
0459 
0460 /**
0461  * @defgroup RTEMSDeviceGRLIBDSU4ICNT Instruction trace count register (ICNT)
0462  *
0463  * @brief This group contains register bit definitions.
0464  *
0465  * @{
0466  */
0467 
0468 #define DSU4_ICNT_CE 0x80000000U
0469 
0470 #define DSU4_ICNT_IC 0x40000000U
0471 
0472 #define DSU4_ICNT_PE 0x20000000U
0473 
0474 #define DSU4_ICNT_ICOUNT_28_0_SHIFT 0
0475 #define DSU4_ICNT_ICOUNT_28_0_MASK 0x1fffffffU
0476 #define DSU4_ICNT_ICOUNT_28_0_GET( _reg ) \
0477   ( ( ( _reg ) & DSU4_ICNT_ICOUNT_28_0_MASK ) >> \
0478     DSU4_ICNT_ICOUNT_28_0_SHIFT )
0479 #define DSU4_ICNT_ICOUNT_28_0_SET( _reg, _val ) \
0480   ( ( ( _reg ) & ~DSU4_ICNT_ICOUNT_28_0_MASK ) | \
0481     ( ( ( _val ) << DSU4_ICNT_ICOUNT_28_0_SHIFT ) & \
0482       DSU4_ICNT_ICOUNT_28_0_MASK ) )
0483 #define DSU4_ICNT_ICOUNT_28_0( _val ) \
0484   ( ( ( _val ) << DSU4_ICNT_ICOUNT_28_0_SHIFT ) & \
0485     DSU4_ICNT_ICOUNT_28_0_MASK )
0486 
0487 /** @} */
0488 
0489 /**
0490  * @defgroup RTEMSDeviceGRLIBDSU4AHBWPC \
0491  *   AHB watchpoint control register (AHBWPC)
0492  *
0493  * @brief This group contains register bit definitions.
0494  *
0495  * @{
0496  */
0497 
0498 #define DSU4_AHBWPC_IN 0x40U
0499 
0500 #define DSU4_AHBWPC_CP 0x20U
0501 
0502 #define DSU4_AHBWPC_EN 0x10U
0503 
0504 #define DSU4_AHBWPC_IN 0x4U
0505 
0506 #define DSU4_AHBWPC_CP 0x2U
0507 
0508 #define DSU4_AHBWPC_EN 0x1U
0509 
0510 /** @} */
0511 
0512 /**
0513  * @defgroup RTEMSDeviceGRLIBDSU4AHBWPD AHB watchpoint data registers (AHBWPD)
0514  *
0515  * @brief This group contains register bit definitions.
0516  *
0517  * @{
0518  */
0519 
0520 #define DSU4_AHBWPD_DATA_SHIFT 0
0521 #define DSU4_AHBWPD_DATA_MASK 0xffffffffU
0522 #define DSU4_AHBWPD_DATA_GET( _reg ) \
0523   ( ( ( _reg ) & DSU4_AHBWPD_DATA_MASK ) >> \
0524     DSU4_AHBWPD_DATA_SHIFT )
0525 #define DSU4_AHBWPD_DATA_SET( _reg, _val ) \
0526   ( ( ( _reg ) & ~DSU4_AHBWPD_DATA_MASK ) | \
0527     ( ( ( _val ) << DSU4_AHBWPD_DATA_SHIFT ) & \
0528       DSU4_AHBWPD_DATA_MASK ) )
0529 #define DSU4_AHBWPD_DATA( _val ) \
0530   ( ( ( _val ) << DSU4_AHBWPD_DATA_SHIFT ) & \
0531     DSU4_AHBWPD_DATA_MASK )
0532 
0533 /** @} */
0534 
0535 /**
0536  * @defgroup RTEMSDeviceGRLIBDSU4AHBWPM AHB watchpoint mask registers (AHBWPM)
0537  *
0538  * @brief This group contains register bit definitions.
0539  *
0540  * @{
0541  */
0542 
0543 #define DSU4_AHBWPM_MASK_SHIFT 0
0544 #define DSU4_AHBWPM_MASK_MASK 0xffffffffU
0545 #define DSU4_AHBWPM_MASK_GET( _reg ) \
0546   ( ( ( _reg ) & DSU4_AHBWPM_MASK_MASK ) >> \
0547     DSU4_AHBWPM_MASK_SHIFT )
0548 #define DSU4_AHBWPM_MASK_SET( _reg, _val ) \
0549   ( ( ( _reg ) & ~DSU4_AHBWPM_MASK_MASK ) | \
0550     ( ( ( _val ) << DSU4_AHBWPM_MASK_SHIFT ) & \
0551       DSU4_AHBWPM_MASK_MASK ) )
0552 #define DSU4_AHBWPM_MASK( _val ) \
0553   ( ( ( _val ) << DSU4_AHBWPM_MASK_SHIFT ) & \
0554     DSU4_AHBWPM_MASK_MASK )
0555 
0556 /** @} */
0557 
0558 /**
0559  * @defgroup RTEMSDeviceGRLIBDSU4ITBC0 \
0560  *   Instruction trace buffer control register 0 (ITBC0)
0561  *
0562  * @brief This group contains register bit definitions.
0563  *
0564  * @{
0565  */
0566 
0567 #define DSU4_ITBC0_TFILT_SHIFT 28
0568 #define DSU4_ITBC0_TFILT_MASK 0xf0000000U
0569 #define DSU4_ITBC0_TFILT_GET( _reg ) \
0570   ( ( ( _reg ) & DSU4_ITBC0_TFILT_MASK ) >> \
0571     DSU4_ITBC0_TFILT_SHIFT )
0572 #define DSU4_ITBC0_TFILT_SET( _reg, _val ) \
0573   ( ( ( _reg ) & ~DSU4_ITBC0_TFILT_MASK ) | \
0574     ( ( ( _val ) << DSU4_ITBC0_TFILT_SHIFT ) & \
0575       DSU4_ITBC0_TFILT_MASK ) )
0576 #define DSU4_ITBC0_TFILT( _val ) \
0577   ( ( ( _val ) << DSU4_ITBC0_TFILT_SHIFT ) & \
0578     DSU4_ITBC0_TFILT_MASK )
0579 
0580 #define DSU4_ITBC0_ITPOINTER_SHIFT 0
0581 #define DSU4_ITBC0_ITPOINTER_MASK 0xffffU
0582 #define DSU4_ITBC0_ITPOINTER_GET( _reg ) \
0583   ( ( ( _reg ) & DSU4_ITBC0_ITPOINTER_MASK ) >> \
0584     DSU4_ITBC0_ITPOINTER_SHIFT )
0585 #define DSU4_ITBC0_ITPOINTER_SET( _reg, _val ) \
0586   ( ( ( _reg ) & ~DSU4_ITBC0_ITPOINTER_MASK ) | \
0587     ( ( ( _val ) << DSU4_ITBC0_ITPOINTER_SHIFT ) & \
0588       DSU4_ITBC0_ITPOINTER_MASK ) )
0589 #define DSU4_ITBC0_ITPOINTER( _val ) \
0590   ( ( ( _val ) << DSU4_ITBC0_ITPOINTER_SHIFT ) & \
0591     DSU4_ITBC0_ITPOINTER_MASK )
0592 
0593 /** @} */
0594 
0595 /**
0596  * @defgroup RTEMSDeviceGRLIBDSU4ITBC1 \
0597  *   Instruction trace buffer control register 1 (ITBC1)
0598  *
0599  * @brief This group contains register bit definitions.
0600  *
0601  * @{
0602  */
0603 
0604 #define DSU4_ITBC1_WO 0x8000000U
0605 
0606 #define DSU4_ITBC1_TLIM_SHIFT 24
0607 #define DSU4_ITBC1_TLIM_MASK 0x7000000U
0608 #define DSU4_ITBC1_TLIM_GET( _reg ) \
0609   ( ( ( _reg ) & DSU4_ITBC1_TLIM_MASK ) >> \
0610     DSU4_ITBC1_TLIM_SHIFT )
0611 #define DSU4_ITBC1_TLIM_SET( _reg, _val ) \
0612   ( ( ( _reg ) & ~DSU4_ITBC1_TLIM_MASK ) | \
0613     ( ( ( _val ) << DSU4_ITBC1_TLIM_SHIFT ) & \
0614       DSU4_ITBC1_TLIM_MASK ) )
0615 #define DSU4_ITBC1_TLIM( _val ) \
0616   ( ( ( _val ) << DSU4_ITBC1_TLIM_SHIFT ) & \
0617     DSU4_ITBC1_TLIM_MASK )
0618 
0619 #define DSU4_ITBC1_TOV 0x800000U
0620 
0621 /** @} */
0622 
0623 /**
0624  * @brief This structure defines the DSU4 register block memory map.
0625  */
0626 typedef struct dsu4 {
0627   /**
0628    * @brief See @ref RTEMSDeviceGRLIBDSU4CTRL.
0629    */
0630   uint32_t ctrl;
0631 
0632   uint32_t reserved_4_8;
0633 
0634   /**
0635    * @brief See @ref RTEMSDeviceGRLIBDSU4DTTC.
0636    */
0637   uint32_t dttc;
0638 
0639   uint32_t reserved_c_20[ 5 ];
0640 
0641   /**
0642    * @brief See @ref RTEMSDeviceGRLIBDSU4BRSS.
0643    */
0644   uint32_t brss;
0645 
0646   /**
0647    * @brief See @ref RTEMSDeviceGRLIBDSU4DBGM.
0648    */
0649   uint32_t dbgm;
0650 
0651   uint32_t reserved_28_40[ 6 ];
0652 
0653   /**
0654    * @brief See @ref RTEMSDeviceGRLIBDSU4ATBC.
0655    */
0656   uint32_t atbc;
0657 
0658   /**
0659    * @brief See @ref RTEMSDeviceGRLIBDSU4ATBI.
0660    */
0661   uint32_t atbi;
0662 
0663   /**
0664    * @brief See @ref RTEMSDeviceGRLIBDSU4ATBFC.
0665    */
0666   uint32_t atbfc;
0667 
0668   /**
0669    * @brief See @ref RTEMSDeviceGRLIBDSU4ATBFM.
0670    */
0671   uint32_t atbfm;
0672 
0673   /**
0674    * @brief See @ref RTEMSDeviceGRLIBDSU4ATBBA.
0675    */
0676   uint32_t atbba_0;
0677 
0678   /**
0679    * @brief See @ref RTEMSDeviceGRLIBDSU4ATBBM.
0680    */
0681   uint32_t atbbm_0;
0682 
0683   /**
0684    * @brief See @ref RTEMSDeviceGRLIBDSU4ATBBA.
0685    */
0686   uint32_t atbba_1;
0687 
0688   /**
0689    * @brief See @ref RTEMSDeviceGRLIBDSU4ATBBM.
0690    */
0691   uint32_t atbbm_1;
0692 
0693   uint32_t reserved_60_70[ 4 ];
0694 
0695   /**
0696    * @brief See @ref RTEMSDeviceGRLIBDSU4ICNT.
0697    */
0698   uint32_t icnt;
0699 
0700   uint32_t reserved_74_80[ 3 ];
0701 
0702   /**
0703    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPC.
0704    */
0705   uint32_t ahbwpc;
0706 
0707   uint32_t reserved_84_90[ 3 ];
0708 
0709   /**
0710    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPD.
0711    */
0712   uint32_t ahbwpd_0;
0713 
0714   uint32_t reserved_94_9c[ 2 ];
0715 
0716   /**
0717    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPD.
0718    */
0719   uint32_t ahbwpd_1;
0720 
0721   /**
0722    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPM.
0723    */
0724   uint32_t ahbwpm_0;
0725 
0726   uint32_t reserved_a4_ac[ 2 ];
0727 
0728   /**
0729    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPM.
0730    */
0731   uint32_t ahbwpm_1;
0732 
0733   /**
0734    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPD.
0735    */
0736   uint32_t ahbwpd_2;
0737 
0738   uint32_t reserved_b4_bc[ 2 ];
0739 
0740   /**
0741    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPD.
0742    */
0743   uint32_t ahbwpd_3;
0744 
0745   /**
0746    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPM.
0747    */
0748   uint32_t ahbwpm_2;
0749 
0750   uint32_t reserved_c4_cc[ 2 ];
0751 
0752   /**
0753    * @brief See @ref RTEMSDeviceGRLIBDSU4AHBWPM.
0754    */
0755   uint32_t ahbwpm_3;
0756 
0757   uint32_t reserved_d0_110000[ 278476 ];
0758 
0759   /**
0760    * @brief See @ref RTEMSDeviceGRLIBDSU4ITBC0.
0761    */
0762   uint32_t itbc0;
0763 
0764   /**
0765    * @brief See @ref RTEMSDeviceGRLIBDSU4ITBC1.
0766    */
0767   uint32_t itbc1;
0768 
0769   uint32_t reserved_110008_400020[ 770054 ];
0770 
0771   /**
0772    * @brief See @ref RTEMSDeviceGRLIBDSU4DTR.
0773    */
0774   uint32_t dtr;
0775 
0776   /**
0777    * @brief See @ref RTEMSDeviceGRLIBDSU4DASI.
0778    */
0779   uint32_t dasi;
0780 } dsu4;
0781 
0782 /** @} */
0783 
0784 #ifdef __cplusplus
0785 }
0786 #endif
0787 
0788 #endif /* _GRLIB_DSU4_REGS_H */