1 /**
2  * \file
3  *
4  * \brief Component description for DSU
5  *
6  * Copyright (c) 2016 Atmel Corporation,
7  *                    a wholly owned subsidiary of Microchip Technology Inc.
8  *
9  * \asf_license_start
10  *
11  * \page License
12  *
13  * Licensed under the Apache License, Version 2.0 (the "License");
14  * you may not use this file except in compliance with the License.
15  * You may obtain a copy of the Licence at
16  *
17  *     http://www.apache.org/licenses/LICENSE-2.0
18  *
19  * Unless required by applicable law or agreed to in writing, software
20  * distributed under the License is distributed on an "AS IS" BASIS,
21  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22  * See the License for the specific language governing permissions and
23  * limitations under the License.
24  *
25  * \asf_license_stop
26  *
27  */
28 
29 #ifndef _SAML21_DSU_COMPONENT_
30 #define _SAML21_DSU_COMPONENT_
31 
32 /* ========================================================================== */
33 /**  SOFTWARE API DEFINITION FOR DSU */
34 /* ========================================================================== */
35 /** \addtogroup SAML21_DSU Device Service Unit */
36 /*@{*/
37 
38 #define DSU_U2209
39 #define REV_DSU                     0x250
40 
41 /* -------- DSU_CTRL : (DSU Offset: 0x0000) ( /W  8) Control -------- */
42 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
43 typedef union {
44   struct {
45     uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
46     uint8_t  :1;               /*!< bit:      1  Reserved                           */
47     uint8_t  CRC:1;            /*!< bit:      2  32-bit Cyclic Redundancy Code      */
48     uint8_t  MBIST:1;          /*!< bit:      3  Memory built-in self-test          */
49     uint8_t  CE:1;             /*!< bit:      4  Chip-Erase                         */
50     uint8_t  :1;               /*!< bit:      5  Reserved                           */
51     uint8_t  ARR:1;            /*!< bit:      6  Auxiliary Row Read                 */
52     uint8_t  SMSA:1;           /*!< bit:      7  Start Memory Stream Access         */
53   } bit;                       /*!< Structure used for bit  access                  */
54   uint8_t reg;                 /*!< Type      used for register access              */
55 } DSU_CTRL_Type;
56 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
57 
58 #define DSU_CTRL_OFFSET             0x0000       /**< \brief (DSU_CTRL offset) Control */
59 #define DSU_CTRL_RESETVALUE         _U(0x00)     /**< \brief (DSU_CTRL reset_value) Control */
60 
61 #define DSU_CTRL_SWRST_Pos          0            /**< \brief (DSU_CTRL) Software Reset */
62 #define DSU_CTRL_SWRST              (_U(0x1) << DSU_CTRL_SWRST_Pos)
63 #define DSU_CTRL_CRC_Pos            2            /**< \brief (DSU_CTRL) 32-bit Cyclic Redundancy Code */
64 #define DSU_CTRL_CRC                (_U(0x1) << DSU_CTRL_CRC_Pos)
65 #define DSU_CTRL_MBIST_Pos          3            /**< \brief (DSU_CTRL) Memory built-in self-test */
66 #define DSU_CTRL_MBIST              (_U(0x1) << DSU_CTRL_MBIST_Pos)
67 #define DSU_CTRL_CE_Pos             4            /**< \brief (DSU_CTRL) Chip-Erase */
68 #define DSU_CTRL_CE                 (_U(0x1) << DSU_CTRL_CE_Pos)
69 #define DSU_CTRL_ARR_Pos            6            /**< \brief (DSU_CTRL) Auxiliary Row Read */
70 #define DSU_CTRL_ARR                (_U(0x1) << DSU_CTRL_ARR_Pos)
71 #define DSU_CTRL_SMSA_Pos           7            /**< \brief (DSU_CTRL) Start Memory Stream Access */
72 #define DSU_CTRL_SMSA               (_U(0x1) << DSU_CTRL_SMSA_Pos)
73 #define DSU_CTRL_MASK               _U(0xDD)     /**< \brief (DSU_CTRL) MASK Register */
74 
75 /* -------- DSU_STATUSA : (DSU Offset: 0x0001) (R/W  8) Status A -------- */
76 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
77 typedef union {
78   struct {
79     uint8_t  DONE:1;           /*!< bit:      0  Done                               */
80     uint8_t  CRSTEXT:1;        /*!< bit:      1  CPU Reset Phase Extension          */
81     uint8_t  BERR:1;           /*!< bit:      2  Bus Error                          */
82     uint8_t  FAIL:1;           /*!< bit:      3  Failure                            */
83     uint8_t  PERR:1;           /*!< bit:      4  Protection Error                   */
84     uint8_t  :3;               /*!< bit:  5.. 7  Reserved                           */
85   } bit;                       /*!< Structure used for bit  access                  */
86   uint8_t reg;                 /*!< Type      used for register access              */
87 } DSU_STATUSA_Type;
88 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
89 
90 #define DSU_STATUSA_OFFSET          0x0001       /**< \brief (DSU_STATUSA offset) Status A */
91 #define DSU_STATUSA_RESETVALUE      _U(0x00)     /**< \brief (DSU_STATUSA reset_value) Status A */
92 
93 #define DSU_STATUSA_DONE_Pos        0            /**< \brief (DSU_STATUSA) Done */
94 #define DSU_STATUSA_DONE            (_U(0x1) << DSU_STATUSA_DONE_Pos)
95 #define DSU_STATUSA_CRSTEXT_Pos     1            /**< \brief (DSU_STATUSA) CPU Reset Phase Extension */
96 #define DSU_STATUSA_CRSTEXT         (_U(0x1) << DSU_STATUSA_CRSTEXT_Pos)
97 #define DSU_STATUSA_BERR_Pos        2            /**< \brief (DSU_STATUSA) Bus Error */
98 #define DSU_STATUSA_BERR            (_U(0x1) << DSU_STATUSA_BERR_Pos)
99 #define DSU_STATUSA_FAIL_Pos        3            /**< \brief (DSU_STATUSA) Failure */
100 #define DSU_STATUSA_FAIL            (_U(0x1) << DSU_STATUSA_FAIL_Pos)
101 #define DSU_STATUSA_PERR_Pos        4            /**< \brief (DSU_STATUSA) Protection Error */
102 #define DSU_STATUSA_PERR            (_U(0x1) << DSU_STATUSA_PERR_Pos)
103 #define DSU_STATUSA_MASK            _U(0x1F)     /**< \brief (DSU_STATUSA) MASK Register */
104 
105 /* -------- DSU_STATUSB : (DSU Offset: 0x0002) (R/   8) Status B -------- */
106 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
107 typedef union {
108   struct {
109     uint8_t  PROT:1;           /*!< bit:      0  Protected                          */
110     uint8_t  DBGPRES:1;        /*!< bit:      1  Debugger Present                   */
111     uint8_t  DCCD0:1;          /*!< bit:      2  Debug Communication Channel 0 Dirty */
112     uint8_t  DCCD1:1;          /*!< bit:      3  Debug Communication Channel 1 Dirty */
113     uint8_t  HPE:1;            /*!< bit:      4  Hot-Plugging Enable                */
114     uint8_t  :3;               /*!< bit:  5.. 7  Reserved                           */
115   } bit;                       /*!< Structure used for bit  access                  */
116   struct {
117     uint8_t  :2;               /*!< bit:  0.. 1  Reserved                           */
118     uint8_t  DCCD:2;           /*!< bit:  2.. 3  Debug Communication Channel x Dirty */
119     uint8_t  :4;               /*!< bit:  4.. 7  Reserved                           */
120   } vec;                       /*!< Structure used for vec  access                  */
121   uint8_t reg;                 /*!< Type      used for register access              */
122 } DSU_STATUSB_Type;
123 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
124 
125 #define DSU_STATUSB_OFFSET          0x0002       /**< \brief (DSU_STATUSB offset) Status B */
126 #define DSU_STATUSB_RESETVALUE      _U(0x00)     /**< \brief (DSU_STATUSB reset_value) Status B */
127 
128 #define DSU_STATUSB_PROT_Pos        0            /**< \brief (DSU_STATUSB) Protected */
129 #define DSU_STATUSB_PROT            (_U(0x1) << DSU_STATUSB_PROT_Pos)
130 #define DSU_STATUSB_DBGPRES_Pos     1            /**< \brief (DSU_STATUSB) Debugger Present */
131 #define DSU_STATUSB_DBGPRES         (_U(0x1) << DSU_STATUSB_DBGPRES_Pos)
132 #define DSU_STATUSB_DCCD0_Pos       2            /**< \brief (DSU_STATUSB) Debug Communication Channel 0 Dirty */
133 #define DSU_STATUSB_DCCD0           (1 << DSU_STATUSB_DCCD0_Pos)
134 #define DSU_STATUSB_DCCD1_Pos       3            /**< \brief (DSU_STATUSB) Debug Communication Channel 1 Dirty */
135 #define DSU_STATUSB_DCCD1           (1 << DSU_STATUSB_DCCD1_Pos)
136 #define DSU_STATUSB_DCCD_Pos        2            /**< \brief (DSU_STATUSB) Debug Communication Channel x Dirty */
137 #define DSU_STATUSB_DCCD_Msk        (_U(0x3) << DSU_STATUSB_DCCD_Pos)
138 #define DSU_STATUSB_DCCD(value)     (DSU_STATUSB_DCCD_Msk & ((value) << DSU_STATUSB_DCCD_Pos))
139 #define DSU_STATUSB_HPE_Pos         4            /**< \brief (DSU_STATUSB) Hot-Plugging Enable */
140 #define DSU_STATUSB_HPE             (_U(0x1) << DSU_STATUSB_HPE_Pos)
141 #define DSU_STATUSB_MASK            _U(0x1F)     /**< \brief (DSU_STATUSB) MASK Register */
142 
143 /* -------- DSU_ADDR : (DSU Offset: 0x0004) (R/W 32) Address -------- */
144 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
145 typedef union {
146   struct {
147     uint32_t AMOD:2;           /*!< bit:  0.. 1  Access Mode                        */
148     uint32_t ADDR:30;          /*!< bit:  2..31  Address                            */
149   } bit;                       /*!< Structure used for bit  access                  */
150   uint32_t reg;                /*!< Type      used for register access              */
151 } DSU_ADDR_Type;
152 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
153 
154 #define DSU_ADDR_OFFSET             0x0004       /**< \brief (DSU_ADDR offset) Address */
155 #define DSU_ADDR_RESETVALUE         _U(0x00000000) /**< \brief (DSU_ADDR reset_value) Address */
156 
157 #define DSU_ADDR_AMOD_Pos           0            /**< \brief (DSU_ADDR) Access Mode */
158 #define DSU_ADDR_AMOD_Msk           (_U(0x3) << DSU_ADDR_AMOD_Pos)
159 #define DSU_ADDR_AMOD(value)        (DSU_ADDR_AMOD_Msk & ((value) << DSU_ADDR_AMOD_Pos))
160 #define DSU_ADDR_ADDR_Pos           2            /**< \brief (DSU_ADDR) Address */
161 #define DSU_ADDR_ADDR_Msk           (_U(0x3FFFFFFF) << DSU_ADDR_ADDR_Pos)
162 #define DSU_ADDR_ADDR(value)        (DSU_ADDR_ADDR_Msk & ((value) << DSU_ADDR_ADDR_Pos))
163 #define DSU_ADDR_MASK               _U(0xFFFFFFFF) /**< \brief (DSU_ADDR) MASK Register */
164 
165 /* -------- DSU_LENGTH : (DSU Offset: 0x0008) (R/W 32) Length -------- */
166 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
167 typedef union {
168   struct {
169     uint32_t :2;               /*!< bit:  0.. 1  Reserved                           */
170     uint32_t LENGTH:30;        /*!< bit:  2..31  Length                             */
171   } bit;                       /*!< Structure used for bit  access                  */
172   uint32_t reg;                /*!< Type      used for register access              */
173 } DSU_LENGTH_Type;
174 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
175 
176 #define DSU_LENGTH_OFFSET           0x0008       /**< \brief (DSU_LENGTH offset) Length */
177 #define DSU_LENGTH_RESETVALUE       _U(0x00000000) /**< \brief (DSU_LENGTH reset_value) Length */
178 
179 #define DSU_LENGTH_LENGTH_Pos       2            /**< \brief (DSU_LENGTH) Length */
180 #define DSU_LENGTH_LENGTH_Msk       (_U(0x3FFFFFFF) << DSU_LENGTH_LENGTH_Pos)
181 #define DSU_LENGTH_LENGTH(value)    (DSU_LENGTH_LENGTH_Msk & ((value) << DSU_LENGTH_LENGTH_Pos))
182 #define DSU_LENGTH_MASK             _U(0xFFFFFFFC) /**< \brief (DSU_LENGTH) MASK Register */
183 
184 /* -------- DSU_DATA : (DSU Offset: 0x000C) (R/W 32) Data -------- */
185 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
186 typedef union {
187   struct {
188     uint32_t DATA:32;          /*!< bit:  0..31  Data                               */
189   } bit;                       /*!< Structure used for bit  access                  */
190   uint32_t reg;                /*!< Type      used for register access              */
191 } DSU_DATA_Type;
192 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
193 
194 #define DSU_DATA_OFFSET             0x000C       /**< \brief (DSU_DATA offset) Data */
195 #define DSU_DATA_RESETVALUE         _U(0x00000000) /**< \brief (DSU_DATA reset_value) Data */
196 
197 #define DSU_DATA_DATA_Pos           0            /**< \brief (DSU_DATA) Data */
198 #define DSU_DATA_DATA_Msk           (_U(0xFFFFFFFF) << DSU_DATA_DATA_Pos)
199 #define DSU_DATA_DATA(value)        (DSU_DATA_DATA_Msk & ((value) << DSU_DATA_DATA_Pos))
200 #define DSU_DATA_MASK               _U(0xFFFFFFFF) /**< \brief (DSU_DATA) MASK Register */
201 
202 /* -------- DSU_DCC : (DSU Offset: 0x0010) (R/W 32) Debug Communication Channel n -------- */
203 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
204 typedef union {
205   struct {
206     uint32_t DATA:32;          /*!< bit:  0..31  Data                               */
207   } bit;                       /*!< Structure used for bit  access                  */
208   uint32_t reg;                /*!< Type      used for register access              */
209 } DSU_DCC_Type;
210 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
211 
212 #define DSU_DCC_OFFSET              0x0010       /**< \brief (DSU_DCC offset) Debug Communication Channel n */
213 #define DSU_DCC_RESETVALUE          _U(0x00000000) /**< \brief (DSU_DCC reset_value) Debug Communication Channel n */
214 
215 #define DSU_DCC_DATA_Pos            0            /**< \brief (DSU_DCC) Data */
216 #define DSU_DCC_DATA_Msk            (_U(0xFFFFFFFF) << DSU_DCC_DATA_Pos)
217 #define DSU_DCC_DATA(value)         (DSU_DCC_DATA_Msk & ((value) << DSU_DCC_DATA_Pos))
218 #define DSU_DCC_MASK                _U(0xFFFFFFFF) /**< \brief (DSU_DCC) MASK Register */
219 
220 /* -------- DSU_DID : (DSU Offset: 0x0018) (R/  32) Device Identification -------- */
221 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
222 typedef union {
223   struct {
224     uint32_t DEVSEL:8;         /*!< bit:  0.. 7  Device Select                      */
225     uint32_t REVISION:4;       /*!< bit:  8..11  Revision Number                    */
226     uint32_t DIE:4;            /*!< bit: 12..15  Die Number                         */
227     uint32_t SERIES:6;         /*!< bit: 16..21  Series                             */
228     uint32_t :1;               /*!< bit:     22  Reserved                           */
229     uint32_t FAMILY:5;         /*!< bit: 23..27  Family                             */
230     uint32_t PROCESSOR:4;      /*!< bit: 28..31  Processor                          */
231   } bit;                       /*!< Structure used for bit  access                  */
232   uint32_t reg;                /*!< Type      used for register access              */
233 } DSU_DID_Type;
234 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
235 
236 #define DSU_DID_OFFSET              0x0018       /**< \brief (DSU_DID offset) Device Identification */
237 
238 #define DSU_DID_DEVSEL_Pos          0            /**< \brief (DSU_DID) Device Select */
239 #define DSU_DID_DEVSEL_Msk          (_U(0xFF) << DSU_DID_DEVSEL_Pos)
240 #define DSU_DID_DEVSEL(value)       (DSU_DID_DEVSEL_Msk & ((value) << DSU_DID_DEVSEL_Pos))
241 #define DSU_DID_REVISION_Pos        8            /**< \brief (DSU_DID) Revision Number */
242 #define DSU_DID_REVISION_Msk        (_U(0xF) << DSU_DID_REVISION_Pos)
243 #define DSU_DID_REVISION(value)     (DSU_DID_REVISION_Msk & ((value) << DSU_DID_REVISION_Pos))
244 #define DSU_DID_DIE_Pos             12           /**< \brief (DSU_DID) Die Number */
245 #define DSU_DID_DIE_Msk             (_U(0xF) << DSU_DID_DIE_Pos)
246 #define DSU_DID_DIE(value)          (DSU_DID_DIE_Msk & ((value) << DSU_DID_DIE_Pos))
247 #define DSU_DID_SERIES_Pos          16           /**< \brief (DSU_DID) Series */
248 #define DSU_DID_SERIES_Msk          (_U(0x3F) << DSU_DID_SERIES_Pos)
249 #define DSU_DID_SERIES(value)       (DSU_DID_SERIES_Msk & ((value) << DSU_DID_SERIES_Pos))
250 #define   DSU_DID_SERIES_0_Val            _U(0x0)   /**< \brief (DSU_DID) Cortex-M0+ processor, basic feature set */
251 #define   DSU_DID_SERIES_1_Val            _U(0x1)   /**< \brief (DSU_DID) Cortex-M0+ processor, USB */
252 #define DSU_DID_SERIES_0            (DSU_DID_SERIES_0_Val          << DSU_DID_SERIES_Pos)
253 #define DSU_DID_SERIES_1            (DSU_DID_SERIES_1_Val          << DSU_DID_SERIES_Pos)
254 #define DSU_DID_FAMILY_Pos          23           /**< \brief (DSU_DID) Family */
255 #define DSU_DID_FAMILY_Msk          (_U(0x1F) << DSU_DID_FAMILY_Pos)
256 #define DSU_DID_FAMILY(value)       (DSU_DID_FAMILY_Msk & ((value) << DSU_DID_FAMILY_Pos))
257 #define   DSU_DID_FAMILY_0_Val            _U(0x0)   /**< \brief (DSU_DID) General purpose microcontroller */
258 #define   DSU_DID_FAMILY_1_Val            _U(0x1)   /**< \brief (DSU_DID) PicoPower */
259 #define DSU_DID_FAMILY_0            (DSU_DID_FAMILY_0_Val          << DSU_DID_FAMILY_Pos)
260 #define DSU_DID_FAMILY_1            (DSU_DID_FAMILY_1_Val          << DSU_DID_FAMILY_Pos)
261 #define DSU_DID_PROCESSOR_Pos       28           /**< \brief (DSU_DID) Processor */
262 #define DSU_DID_PROCESSOR_Msk       (_U(0xF) << DSU_DID_PROCESSOR_Pos)
263 #define DSU_DID_PROCESSOR(value)    (DSU_DID_PROCESSOR_Msk & ((value) << DSU_DID_PROCESSOR_Pos))
264 #define   DSU_DID_PROCESSOR_0_Val         _U(0x0)   /**< \brief (DSU_DID) Cortex-M0 */
265 #define   DSU_DID_PROCESSOR_1_Val         _U(0x1)   /**< \brief (DSU_DID) Cortex-M0+ */
266 #define   DSU_DID_PROCESSOR_2_Val         _U(0x2)   /**< \brief (DSU_DID) Cortex-M3 */
267 #define   DSU_DID_PROCESSOR_3_Val         _U(0x3)   /**< \brief (DSU_DID) Cortex-M4 */
268 #define DSU_DID_PROCESSOR_0         (DSU_DID_PROCESSOR_0_Val       << DSU_DID_PROCESSOR_Pos)
269 #define DSU_DID_PROCESSOR_1         (DSU_DID_PROCESSOR_1_Val       << DSU_DID_PROCESSOR_Pos)
270 #define DSU_DID_PROCESSOR_2         (DSU_DID_PROCESSOR_2_Val       << DSU_DID_PROCESSOR_Pos)
271 #define DSU_DID_PROCESSOR_3         (DSU_DID_PROCESSOR_3_Val       << DSU_DID_PROCESSOR_Pos)
272 #define DSU_DID_MASK                _U(0xFFBFFFFF) /**< \brief (DSU_DID) MASK Register */
273 
274 /* -------- DSU_DCFG : (DSU Offset: 0x00F0) (R/W 32) Device Configuration -------- */
275 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
276 typedef union {
277   struct {
278     uint32_t DCFG:32;          /*!< bit:  0..31  Device Configuration               */
279   } bit;                       /*!< Structure used for bit  access                  */
280   uint32_t reg;                /*!< Type      used for register access              */
281 } DSU_DCFG_Type;
282 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
283 
284 #define DSU_DCFG_OFFSET             0x00F0       /**< \brief (DSU_DCFG offset) Device Configuration */
285 #define DSU_DCFG_RESETVALUE         _U(0x00000000) /**< \brief (DSU_DCFG reset_value) Device Configuration */
286 
287 #define DSU_DCFG_DCFG_Pos           0            /**< \brief (DSU_DCFG) Device Configuration */
288 #define DSU_DCFG_DCFG_Msk           (_U(0xFFFFFFFF) << DSU_DCFG_DCFG_Pos)
289 #define DSU_DCFG_DCFG(value)        (DSU_DCFG_DCFG_Msk & ((value) << DSU_DCFG_DCFG_Pos))
290 #define DSU_DCFG_MASK               _U(0xFFFFFFFF) /**< \brief (DSU_DCFG) MASK Register */
291 
292 /* -------- DSU_ENTRY : (DSU Offset: 0x1000) (R/  32) Coresight ROM Table Entry n -------- */
293 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
294 typedef union {
295   struct {
296     uint32_t EPRES:1;          /*!< bit:      0  Entry Present                      */
297     uint32_t FMT:1;            /*!< bit:      1  Format                             */
298     uint32_t :10;              /*!< bit:  2..11  Reserved                           */
299     uint32_t ADDOFF:20;        /*!< bit: 12..31  Address Offset                     */
300   } bit;                       /*!< Structure used for bit  access                  */
301   uint32_t reg;                /*!< Type      used for register access              */
302 } DSU_ENTRY_Type;
303 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
304 
305 #define DSU_ENTRY_OFFSET            0x1000       /**< \brief (DSU_ENTRY offset) Coresight ROM Table Entry n */
306 
307 #define DSU_ENTRY_EPRES_Pos         0            /**< \brief (DSU_ENTRY) Entry Present */
308 #define DSU_ENTRY_EPRES             (_U(0x1) << DSU_ENTRY_EPRES_Pos)
309 #define DSU_ENTRY_FMT_Pos           1            /**< \brief (DSU_ENTRY) Format */
310 #define DSU_ENTRY_FMT               (_U(0x1) << DSU_ENTRY_FMT_Pos)
311 #define DSU_ENTRY_ADDOFF_Pos        12           /**< \brief (DSU_ENTRY) Address Offset */
312 #define DSU_ENTRY_ADDOFF_Msk        (_U(0xFFFFF) << DSU_ENTRY_ADDOFF_Pos)
313 #define DSU_ENTRY_ADDOFF(value)     (DSU_ENTRY_ADDOFF_Msk & ((value) << DSU_ENTRY_ADDOFF_Pos))
314 #define DSU_ENTRY_MASK              _U(0xFFFFF003) /**< \brief (DSU_ENTRY) MASK Register */
315 
316 /* -------- DSU_END : (DSU Offset: 0x1008) (R/  32) Coresight ROM Table End -------- */
317 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
318 typedef union {
319   struct {
320     uint32_t END:32;           /*!< bit:  0..31  End Marker                         */
321   } bit;                       /*!< Structure used for bit  access                  */
322   uint32_t reg;                /*!< Type      used for register access              */
323 } DSU_END_Type;
324 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
325 
326 #define DSU_END_OFFSET              0x1008       /**< \brief (DSU_END offset) Coresight ROM Table End */
327 #define DSU_END_RESETVALUE          _U(0x00000000) /**< \brief (DSU_END reset_value) Coresight ROM Table End */
328 
329 #define DSU_END_END_Pos             0            /**< \brief (DSU_END) End Marker */
330 #define DSU_END_END_Msk             (_U(0xFFFFFFFF) << DSU_END_END_Pos)
331 #define DSU_END_END(value)          (DSU_END_END_Msk & ((value) << DSU_END_END_Pos))
332 #define DSU_END_MASK                _U(0xFFFFFFFF) /**< \brief (DSU_END) MASK Register */
333 
334 /* -------- DSU_MEMTYPE : (DSU Offset: 0x1FCC) (R/  32) Coresight ROM Table Memory Type -------- */
335 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
336 typedef union {
337   struct {
338     uint32_t SMEMP:1;          /*!< bit:      0  System Memory Present              */
339     uint32_t :31;              /*!< bit:  1..31  Reserved                           */
340   } bit;                       /*!< Structure used for bit  access                  */
341   uint32_t reg;                /*!< Type      used for register access              */
342 } DSU_MEMTYPE_Type;
343 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
344 
345 #define DSU_MEMTYPE_OFFSET          0x1FCC       /**< \brief (DSU_MEMTYPE offset) Coresight ROM Table Memory Type */
346 #define DSU_MEMTYPE_RESETVALUE      _U(0x00000000) /**< \brief (DSU_MEMTYPE reset_value) Coresight ROM Table Memory Type */
347 
348 #define DSU_MEMTYPE_SMEMP_Pos       0            /**< \brief (DSU_MEMTYPE) System Memory Present */
349 #define DSU_MEMTYPE_SMEMP           (_U(0x1) << DSU_MEMTYPE_SMEMP_Pos)
350 #define DSU_MEMTYPE_MASK            _U(0x00000001) /**< \brief (DSU_MEMTYPE) MASK Register */
351 
352 /* -------- DSU_PID4 : (DSU Offset: 0x1FD0) (R/  32) Peripheral Identification 4 -------- */
353 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
354 typedef union {
355   struct {
356     uint32_t JEPCC:4;          /*!< bit:  0.. 3  JEP-106 Continuation Code          */
357     uint32_t FKBC:4;           /*!< bit:  4.. 7  4KB count                          */
358     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
359   } bit;                       /*!< Structure used for bit  access                  */
360   uint32_t reg;                /*!< Type      used for register access              */
361 } DSU_PID4_Type;
362 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
363 
364 #define DSU_PID4_OFFSET             0x1FD0       /**< \brief (DSU_PID4 offset) Peripheral Identification 4 */
365 #define DSU_PID4_RESETVALUE         _U(0x00000000) /**< \brief (DSU_PID4 reset_value) Peripheral Identification 4 */
366 
367 #define DSU_PID4_JEPCC_Pos          0            /**< \brief (DSU_PID4) JEP-106 Continuation Code */
368 #define DSU_PID4_JEPCC_Msk          (_U(0xF) << DSU_PID4_JEPCC_Pos)
369 #define DSU_PID4_JEPCC(value)       (DSU_PID4_JEPCC_Msk & ((value) << DSU_PID4_JEPCC_Pos))
370 #define DSU_PID4_FKBC_Pos           4            /**< \brief (DSU_PID4) 4KB count */
371 #define DSU_PID4_FKBC_Msk           (_U(0xF) << DSU_PID4_FKBC_Pos)
372 #define DSU_PID4_FKBC(value)        (DSU_PID4_FKBC_Msk & ((value) << DSU_PID4_FKBC_Pos))
373 #define DSU_PID4_MASK               _U(0x000000FF) /**< \brief (DSU_PID4) MASK Register */
374 
375 /* -------- DSU_PID5 : (DSU Offset: 0x1FD4) (R/  32) Peripheral Identification 5 -------- */
376 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
377 typedef union {
378   uint32_t reg;                /*!< Type      used for register access              */
379 } DSU_PID5_Type;
380 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
381 
382 #define DSU_PID5_OFFSET             0x1FD4       /**< \brief (DSU_PID5 offset) Peripheral Identification 5 */
383 #define DSU_PID5_MASK               _U(0x00000000) /**< \brief (DSU_PID5) MASK Register */
384 
385 /* -------- DSU_PID6 : (DSU Offset: 0x1FD8) (R/  32) Peripheral Identification 6 -------- */
386 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
387 typedef union {
388   uint32_t reg;                /*!< Type      used for register access              */
389 } DSU_PID6_Type;
390 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
391 
392 #define DSU_PID6_OFFSET             0x1FD8       /**< \brief (DSU_PID6 offset) Peripheral Identification 6 */
393 #define DSU_PID6_MASK               _U(0x00000000) /**< \brief (DSU_PID6) MASK Register */
394 
395 /* -------- DSU_PID7 : (DSU Offset: 0x1FDC) (R/  32) Peripheral Identification 7 -------- */
396 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
397 typedef union {
398   uint32_t reg;                /*!< Type      used for register access              */
399 } DSU_PID7_Type;
400 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
401 
402 #define DSU_PID7_OFFSET             0x1FDC       /**< \brief (DSU_PID7 offset) Peripheral Identification 7 */
403 #define DSU_PID7_MASK               _U(0x00000000) /**< \brief (DSU_PID7) MASK Register */
404 
405 /* -------- DSU_PID0 : (DSU Offset: 0x1FE0) (R/  32) Peripheral Identification 0 -------- */
406 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
407 typedef union {
408   struct {
409     uint32_t PARTNBL:8;        /*!< bit:  0.. 7  Part Number Low                    */
410     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
411   } bit;                       /*!< Structure used for bit  access                  */
412   uint32_t reg;                /*!< Type      used for register access              */
413 } DSU_PID0_Type;
414 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
415 
416 #define DSU_PID0_OFFSET             0x1FE0       /**< \brief (DSU_PID0 offset) Peripheral Identification 0 */
417 #define DSU_PID0_RESETVALUE         _U(0x00000000) /**< \brief (DSU_PID0 reset_value) Peripheral Identification 0 */
418 
419 #define DSU_PID0_PARTNBL_Pos        0            /**< \brief (DSU_PID0) Part Number Low */
420 #define DSU_PID0_PARTNBL_Msk        (_U(0xFF) << DSU_PID0_PARTNBL_Pos)
421 #define DSU_PID0_PARTNBL(value)     (DSU_PID0_PARTNBL_Msk & ((value) << DSU_PID0_PARTNBL_Pos))
422 #define DSU_PID0_MASK               _U(0x000000FF) /**< \brief (DSU_PID0) MASK Register */
423 
424 /* -------- DSU_PID1 : (DSU Offset: 0x1FE4) (R/  32) Peripheral Identification 1 -------- */
425 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
426 typedef union {
427   struct {
428     uint32_t PARTNBH:4;        /*!< bit:  0.. 3  Part Number High                   */
429     uint32_t JEPIDCL:4;        /*!< bit:  4.. 7  Low part of the JEP-106 Identity Code */
430     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
431   } bit;                       /*!< Structure used for bit  access                  */
432   uint32_t reg;                /*!< Type      used for register access              */
433 } DSU_PID1_Type;
434 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
435 
436 #define DSU_PID1_OFFSET             0x1FE4       /**< \brief (DSU_PID1 offset) Peripheral Identification 1 */
437 #define DSU_PID1_RESETVALUE         _U(0x000000FC) /**< \brief (DSU_PID1 reset_value) Peripheral Identification 1 */
438 
439 #define DSU_PID1_PARTNBH_Pos        0            /**< \brief (DSU_PID1) Part Number High */
440 #define DSU_PID1_PARTNBH_Msk        (_U(0xF) << DSU_PID1_PARTNBH_Pos)
441 #define DSU_PID1_PARTNBH(value)     (DSU_PID1_PARTNBH_Msk & ((value) << DSU_PID1_PARTNBH_Pos))
442 #define DSU_PID1_JEPIDCL_Pos        4            /**< \brief (DSU_PID1) Low part of the JEP-106 Identity Code */
443 #define DSU_PID1_JEPIDCL_Msk        (_U(0xF) << DSU_PID1_JEPIDCL_Pos)
444 #define DSU_PID1_JEPIDCL(value)     (DSU_PID1_JEPIDCL_Msk & ((value) << DSU_PID1_JEPIDCL_Pos))
445 #define DSU_PID1_MASK               _U(0x000000FF) /**< \brief (DSU_PID1) MASK Register */
446 
447 /* -------- DSU_PID2 : (DSU Offset: 0x1FE8) (R/  32) Peripheral Identification 2 -------- */
448 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
449 typedef union {
450   struct {
451     uint32_t JEPIDCH:3;        /*!< bit:  0.. 2  JEP-106 Identity Code High         */
452     uint32_t JEPU:1;           /*!< bit:      3  JEP-106 Identity Code is used      */
453     uint32_t REVISION:4;       /*!< bit:  4.. 7  Revision Number                    */
454     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
455   } bit;                       /*!< Structure used for bit  access                  */
456   uint32_t reg;                /*!< Type      used for register access              */
457 } DSU_PID2_Type;
458 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
459 
460 #define DSU_PID2_OFFSET             0x1FE8       /**< \brief (DSU_PID2 offset) Peripheral Identification 2 */
461 #define DSU_PID2_RESETVALUE         _U(0x00000009) /**< \brief (DSU_PID2 reset_value) Peripheral Identification 2 */
462 
463 #define DSU_PID2_JEPIDCH_Pos        0            /**< \brief (DSU_PID2) JEP-106 Identity Code High */
464 #define DSU_PID2_JEPIDCH_Msk        (_U(0x7) << DSU_PID2_JEPIDCH_Pos)
465 #define DSU_PID2_JEPIDCH(value)     (DSU_PID2_JEPIDCH_Msk & ((value) << DSU_PID2_JEPIDCH_Pos))
466 #define DSU_PID2_JEPU_Pos           3            /**< \brief (DSU_PID2) JEP-106 Identity Code is used */
467 #define DSU_PID2_JEPU               (_U(0x1) << DSU_PID2_JEPU_Pos)
468 #define DSU_PID2_REVISION_Pos       4            /**< \brief (DSU_PID2) Revision Number */
469 #define DSU_PID2_REVISION_Msk       (_U(0xF) << DSU_PID2_REVISION_Pos)
470 #define DSU_PID2_REVISION(value)    (DSU_PID2_REVISION_Msk & ((value) << DSU_PID2_REVISION_Pos))
471 #define DSU_PID2_MASK               _U(0x000000FF) /**< \brief (DSU_PID2) MASK Register */
472 
473 /* -------- DSU_PID3 : (DSU Offset: 0x1FEC) (R/  32) Peripheral Identification 3 -------- */
474 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
475 typedef union {
476   struct {
477     uint32_t CUSMOD:4;         /*!< bit:  0.. 3  ARM CUSMOD                         */
478     uint32_t REVAND:4;         /*!< bit:  4.. 7  Revision Number                    */
479     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
480   } bit;                       /*!< Structure used for bit  access                  */
481   uint32_t reg;                /*!< Type      used for register access              */
482 } DSU_PID3_Type;
483 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
484 
485 #define DSU_PID3_OFFSET             0x1FEC       /**< \brief (DSU_PID3 offset) Peripheral Identification 3 */
486 #define DSU_PID3_RESETVALUE         _U(0x00000000) /**< \brief (DSU_PID3 reset_value) Peripheral Identification 3 */
487 
488 #define DSU_PID3_CUSMOD_Pos         0            /**< \brief (DSU_PID3) ARM CUSMOD */
489 #define DSU_PID3_CUSMOD_Msk         (_U(0xF) << DSU_PID3_CUSMOD_Pos)
490 #define DSU_PID3_CUSMOD(value)      (DSU_PID3_CUSMOD_Msk & ((value) << DSU_PID3_CUSMOD_Pos))
491 #define DSU_PID3_REVAND_Pos         4            /**< \brief (DSU_PID3) Revision Number */
492 #define DSU_PID3_REVAND_Msk         (_U(0xF) << DSU_PID3_REVAND_Pos)
493 #define DSU_PID3_REVAND(value)      (DSU_PID3_REVAND_Msk & ((value) << DSU_PID3_REVAND_Pos))
494 #define DSU_PID3_MASK               _U(0x000000FF) /**< \brief (DSU_PID3) MASK Register */
495 
496 /* -------- DSU_CID0 : (DSU Offset: 0x1FF0) (R/  32) Component Identification 0 -------- */
497 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
498 typedef union {
499   struct {
500     uint32_t PREAMBLEB0:8;     /*!< bit:  0.. 7  Preamble Byte 0                    */
501     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
502   } bit;                       /*!< Structure used for bit  access                  */
503   uint32_t reg;                /*!< Type      used for register access              */
504 } DSU_CID0_Type;
505 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
506 
507 #define DSU_CID0_OFFSET             0x1FF0       /**< \brief (DSU_CID0 offset) Component Identification 0 */
508 #define DSU_CID0_RESETVALUE         _U(0x00000000) /**< \brief (DSU_CID0 reset_value) Component Identification 0 */
509 
510 #define DSU_CID0_PREAMBLEB0_Pos     0            /**< \brief (DSU_CID0) Preamble Byte 0 */
511 #define DSU_CID0_PREAMBLEB0_Msk     (_U(0xFF) << DSU_CID0_PREAMBLEB0_Pos)
512 #define DSU_CID0_PREAMBLEB0(value)  (DSU_CID0_PREAMBLEB0_Msk & ((value) << DSU_CID0_PREAMBLEB0_Pos))
513 #define DSU_CID0_MASK               _U(0x000000FF) /**< \brief (DSU_CID0) MASK Register */
514 
515 /* -------- DSU_CID1 : (DSU Offset: 0x1FF4) (R/  32) Component Identification 1 -------- */
516 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
517 typedef union {
518   struct {
519     uint32_t PREAMBLE:4;       /*!< bit:  0.. 3  Preamble                           */
520     uint32_t CCLASS:4;         /*!< bit:  4.. 7  Component Class                    */
521     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
522   } bit;                       /*!< Structure used for bit  access                  */
523   uint32_t reg;                /*!< Type      used for register access              */
524 } DSU_CID1_Type;
525 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
526 
527 #define DSU_CID1_OFFSET             0x1FF4       /**< \brief (DSU_CID1 offset) Component Identification 1 */
528 #define DSU_CID1_RESETVALUE         _U(0x00000000) /**< \brief (DSU_CID1 reset_value) Component Identification 1 */
529 
530 #define DSU_CID1_PREAMBLE_Pos       0            /**< \brief (DSU_CID1) Preamble */
531 #define DSU_CID1_PREAMBLE_Msk       (_U(0xF) << DSU_CID1_PREAMBLE_Pos)
532 #define DSU_CID1_PREAMBLE(value)    (DSU_CID1_PREAMBLE_Msk & ((value) << DSU_CID1_PREAMBLE_Pos))
533 #define DSU_CID1_CCLASS_Pos         4            /**< \brief (DSU_CID1) Component Class */
534 #define DSU_CID1_CCLASS_Msk         (_U(0xF) << DSU_CID1_CCLASS_Pos)
535 #define DSU_CID1_CCLASS(value)      (DSU_CID1_CCLASS_Msk & ((value) << DSU_CID1_CCLASS_Pos))
536 #define DSU_CID1_MASK               _U(0x000000FF) /**< \brief (DSU_CID1) MASK Register */
537 
538 /* -------- DSU_CID2 : (DSU Offset: 0x1FF8) (R/  32) Component Identification 2 -------- */
539 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
540 typedef union {
541   struct {
542     uint32_t PREAMBLEB2:8;     /*!< bit:  0.. 7  Preamble Byte 2                    */
543     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
544   } bit;                       /*!< Structure used for bit  access                  */
545   uint32_t reg;                /*!< Type      used for register access              */
546 } DSU_CID2_Type;
547 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
548 
549 #define DSU_CID2_OFFSET             0x1FF8       /**< \brief (DSU_CID2 offset) Component Identification 2 */
550 #define DSU_CID2_RESETVALUE         _U(0x00000000) /**< \brief (DSU_CID2 reset_value) Component Identification 2 */
551 
552 #define DSU_CID2_PREAMBLEB2_Pos     0            /**< \brief (DSU_CID2) Preamble Byte 2 */
553 #define DSU_CID2_PREAMBLEB2_Msk     (_U(0xFF) << DSU_CID2_PREAMBLEB2_Pos)
554 #define DSU_CID2_PREAMBLEB2(value)  (DSU_CID2_PREAMBLEB2_Msk & ((value) << DSU_CID2_PREAMBLEB2_Pos))
555 #define DSU_CID2_MASK               _U(0x000000FF) /**< \brief (DSU_CID2) MASK Register */
556 
557 /* -------- DSU_CID3 : (DSU Offset: 0x1FFC) (R/  32) Component Identification 3 -------- */
558 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
559 typedef union {
560   struct {
561     uint32_t PREAMBLEB3:8;     /*!< bit:  0.. 7  Preamble Byte 3                    */
562     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
563   } bit;                       /*!< Structure used for bit  access                  */
564   uint32_t reg;                /*!< Type      used for register access              */
565 } DSU_CID3_Type;
566 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
567 
568 #define DSU_CID3_OFFSET             0x1FFC       /**< \brief (DSU_CID3 offset) Component Identification 3 */
569 #define DSU_CID3_RESETVALUE         _U(0x00000000) /**< \brief (DSU_CID3 reset_value) Component Identification 3 */
570 
571 #define DSU_CID3_PREAMBLEB3_Pos     0            /**< \brief (DSU_CID3) Preamble Byte 3 */
572 #define DSU_CID3_PREAMBLEB3_Msk     (_U(0xFF) << DSU_CID3_PREAMBLEB3_Pos)
573 #define DSU_CID3_PREAMBLEB3(value)  (DSU_CID3_PREAMBLEB3_Msk & ((value) << DSU_CID3_PREAMBLEB3_Pos))
574 #define DSU_CID3_MASK               _U(0x000000FF) /**< \brief (DSU_CID3) MASK Register */
575 
576 /** \brief DSU hardware registers */
577 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
578 typedef struct {
579   __O  DSU_CTRL_Type             CTRL;        /**< \brief Offset: 0x0000 ( /W  8) Control */
580   __IO DSU_STATUSA_Type          STATUSA;     /**< \brief Offset: 0x0001 (R/W  8) Status A */
581   __I  DSU_STATUSB_Type          STATUSB;     /**< \brief Offset: 0x0002 (R/   8) Status B */
582        RoReg8                    Reserved1[0x1];
583   __IO DSU_ADDR_Type             ADDR;        /**< \brief Offset: 0x0004 (R/W 32) Address */
584   __IO DSU_LENGTH_Type           LENGTH;      /**< \brief Offset: 0x0008 (R/W 32) Length */
585   __IO DSU_DATA_Type             DATA;        /**< \brief Offset: 0x000C (R/W 32) Data */
586   __IO DSU_DCC_Type              DCC[2];      /**< \brief Offset: 0x0010 (R/W 32) Debug Communication Channel n */
587   __I  DSU_DID_Type              DID;         /**< \brief Offset: 0x0018 (R/  32) Device Identification */
588        RoReg8                    Reserved2[0xD4];
589   __IO DSU_DCFG_Type             DCFG[2];     /**< \brief Offset: 0x00F0 (R/W 32) Device Configuration */
590        RoReg8                    Reserved3[0xF08];
591   __I  DSU_ENTRY_Type            ENTRY[2];    /**< \brief Offset: 0x1000 (R/  32) Coresight ROM Table Entry n */
592   __I  DSU_END_Type              END;         /**< \brief Offset: 0x1008 (R/  32) Coresight ROM Table End */
593        RoReg8                    Reserved4[0xFC0];
594   __I  DSU_MEMTYPE_Type          MEMTYPE;     /**< \brief Offset: 0x1FCC (R/  32) Coresight ROM Table Memory Type */
595   __I  DSU_PID4_Type             PID4;        /**< \brief Offset: 0x1FD0 (R/  32) Peripheral Identification 4 */
596   __I  DSU_PID5_Type             PID5;        /**< \brief Offset: 0x1FD4 (R/  32) Peripheral Identification 5 */
597   __I  DSU_PID6_Type             PID6;        /**< \brief Offset: 0x1FD8 (R/  32) Peripheral Identification 6 */
598   __I  DSU_PID7_Type             PID7;        /**< \brief Offset: 0x1FDC (R/  32) Peripheral Identification 7 */
599   __I  DSU_PID0_Type             PID0;        /**< \brief Offset: 0x1FE0 (R/  32) Peripheral Identification 0 */
600   __I  DSU_PID1_Type             PID1;        /**< \brief Offset: 0x1FE4 (R/  32) Peripheral Identification 1 */
601   __I  DSU_PID2_Type             PID2;        /**< \brief Offset: 0x1FE8 (R/  32) Peripheral Identification 2 */
602   __I  DSU_PID3_Type             PID3;        /**< \brief Offset: 0x1FEC (R/  32) Peripheral Identification 3 */
603   __I  DSU_CID0_Type             CID0;        /**< \brief Offset: 0x1FF0 (R/  32) Component Identification 0 */
604   __I  DSU_CID1_Type             CID1;        /**< \brief Offset: 0x1FF4 (R/  32) Component Identification 1 */
605   __I  DSU_CID2_Type             CID2;        /**< \brief Offset: 0x1FF8 (R/  32) Component Identification 2 */
606   __I  DSU_CID3_Type             CID3;        /**< \brief Offset: 0x1FFC (R/  32) Component Identification 3 */
607 } Dsu;
608 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
609 
610 /*@}*/
611 
612 #endif /* _SAML21_DSU_COMPONENT_ */
613