1#[doc = "DCP register reference index"]
2#[repr(C)]
3pub struct RegisterBlock {
4#[doc = "DCP control register 0"]
5pub CTRL: crate::RWRegister<u32>,
6#[doc = "DCP control register 0"]
7pub CTRL_SET: crate::RWRegister<u32>,
8#[doc = "DCP control register 0"]
9pub CTRL_CLR: crate::RWRegister<u32>,
10#[doc = "DCP control register 0"]
11pub CTRL_TOG: crate::RWRegister<u32>,
12#[doc = "DCP status register"]
13pub STAT: crate::RWRegister<u32>,
14#[doc = "DCP status register"]
15pub STAT_SET: crate::RWRegister<u32>,
16#[doc = "DCP status register"]
17pub STAT_CLR: crate::RWRegister<u32>,
18#[doc = "DCP status register"]
19pub STAT_TOG: crate::RWRegister<u32>,
20#[doc = "DCP channel control register"]
21pub CHANNELCTRL: crate::RWRegister<u32>,
22#[doc = "DCP channel control register"]
23pub CHANNELCTRL_SET: crate::RWRegister<u32>,
24#[doc = "DCP channel control register"]
25pub CHANNELCTRL_CLR: crate::RWRegister<u32>,
26#[doc = "DCP channel control register"]
27pub CHANNELCTRL_TOG: crate::RWRegister<u32>,
28#[doc = "DCP capability 0 register"]
29pub CAPABILITY0: crate::RWRegister<u32>,
30 _reserved0: [u8; 0x0c],
31#[doc = "DCP capability 1 register"]
32pub CAPABILITY1: crate::RORegister<u32>,
33 _reserved1: [u8; 0x0c],
34#[doc = "DCP context buffer pointer"]
35pub CONTEXT: crate::RWRegister<u32>,
36 _reserved2: [u8; 0x0c],
37#[doc = "DCP key index"]
38pub KEY: crate::RWRegister<u32>,
39 _reserved3: [u8; 0x0c],
40#[doc = "DCP key data"]
41pub KEYDATA: crate::RWRegister<u32>,
42 _reserved4: [u8; 0x0c],
43#[doc = "DCP work packet 0 status register"]
44pub PACKET0: crate::RORegister<u32>,
45 _reserved5: [u8; 0x0c],
46#[doc = "DCP work packet 1 status register"]
47pub PACKET1: crate::RORegister<u32>,
48 _reserved6: [u8; 0x0c],
49#[doc = "DCP work packet 2 status register"]
50pub PACKET2: crate::RORegister<u32>,
51 _reserved7: [u8; 0x0c],
52#[doc = "DCP work packet 3 status register"]
53pub PACKET3: crate::RORegister<u32>,
54 _reserved8: [u8; 0x0c],
55#[doc = "DCP work packet 4 status register"]
56pub PACKET4: crate::RORegister<u32>,
57 _reserved9: [u8; 0x0c],
58#[doc = "DCP work packet 5 status register"]
59pub PACKET5: crate::RORegister<u32>,
60 _reserved10: [u8; 0x0c],
61#[doc = "DCP work packet 6 status register"]
62pub PACKET6: crate::RORegister<u32>,
63 _reserved11: [u8; 0x1c],
64#[doc = "DCP channel 0 command pointer address register"]
65pub CH0CMDPTR: crate::RWRegister<u32>,
66 _reserved12: [u8; 0x0c],
67#[doc = "DCP channel 0 semaphore register"]
68pub CH0SEMA: crate::RWRegister<u32>,
69 _reserved13: [u8; 0x0c],
70#[doc = "DCP channel 0 status register"]
71pub CH0STAT: crate::RWRegister<u32>,
72#[doc = "DCP channel 0 status register"]
73pub CH0STAT_SET: crate::RWRegister<u32>,
74#[doc = "DCP channel 0 status register"]
75pub CH0STAT_CLR: crate::RWRegister<u32>,
76#[doc = "DCP channel 0 status register"]
77pub CH0STAT_TOG: crate::RWRegister<u32>,
78#[doc = "DCP channel 0 options register"]
79pub CH0OPTS: crate::RWRegister<u32>,
80#[doc = "DCP channel 0 options register"]
81pub CH0OPTS_SET: crate::RWRegister<u32>,
82#[doc = "DCP channel 0 options register"]
83pub CH0OPTS_CLR: crate::RWRegister<u32>,
84#[doc = "DCP channel 0 options register"]
85pub CH0OPTS_TOG: crate::RWRegister<u32>,
86#[doc = "DCP channel 1 command pointer address register"]
87pub CH1CMDPTR: crate::RWRegister<u32>,
88 _reserved14: [u8; 0x0c],
89#[doc = "DCP channel 1 semaphore register"]
90pub CH1SEMA: crate::RWRegister<u32>,
91 _reserved15: [u8; 0x0c],
92#[doc = "DCP channel 1 status register"]
93pub CH1STAT: crate::RWRegister<u32>,
94#[doc = "DCP channel 1 status register"]
95pub CH1STAT_SET: crate::RWRegister<u32>,
96#[doc = "DCP channel 1 status register"]
97pub CH1STAT_CLR: crate::RWRegister<u32>,
98#[doc = "DCP channel 1 status register"]
99pub CH1STAT_TOG: crate::RWRegister<u32>,
100#[doc = "DCP channel 1 options register"]
101pub CH1OPTS: crate::RWRegister<u32>,
102#[doc = "DCP channel 1 options register"]
103pub CH1OPTS_SET: crate::RWRegister<u32>,
104#[doc = "DCP channel 1 options register"]
105pub CH1OPTS_CLR: crate::RWRegister<u32>,
106#[doc = "DCP channel 1 options register"]
107pub CH1OPTS_TOG: crate::RWRegister<u32>,
108#[doc = "DCP channel 2 command pointer address register"]
109pub CH2CMDPTR: crate::RWRegister<u32>,
110 _reserved16: [u8; 0x0c],
111#[doc = "DCP channel 2 semaphore register"]
112pub CH2SEMA: crate::RWRegister<u32>,
113 _reserved17: [u8; 0x0c],
114#[doc = "DCP channel 2 status register"]
115pub CH2STAT: crate::RWRegister<u32>,
116#[doc = "DCP channel 2 status register"]
117pub CH2STAT_SET: crate::RWRegister<u32>,
118#[doc = "DCP channel 2 status register"]
119pub CH2STAT_CLR: crate::RWRegister<u32>,
120#[doc = "DCP channel 2 status register"]
121pub CH2STAT_TOG: crate::RWRegister<u32>,
122#[doc = "DCP channel 2 options register"]
123pub CH2OPTS: crate::RWRegister<u32>,
124#[doc = "DCP channel 2 options register"]
125pub CH2OPTS_SET: crate::RWRegister<u32>,
126#[doc = "DCP channel 2 options register"]
127pub CH2OPTS_CLR: crate::RWRegister<u32>,
128#[doc = "DCP channel 2 options register"]
129pub CH2OPTS_TOG: crate::RWRegister<u32>,
130#[doc = "DCP channel 3 command pointer address register"]
131pub CH3CMDPTR: crate::RWRegister<u32>,
132 _reserved18: [u8; 0x0c],
133#[doc = "DCP channel 3 semaphore register"]
134pub CH3SEMA: crate::RWRegister<u32>,
135 _reserved19: [u8; 0x0c],
136#[doc = "DCP channel 3 status register"]
137pub CH3STAT: crate::RWRegister<u32>,
138#[doc = "DCP channel 3 status register"]
139pub CH3STAT_SET: crate::RWRegister<u32>,
140#[doc = "DCP channel 3 status register"]
141pub CH3STAT_CLR: crate::RWRegister<u32>,
142#[doc = "DCP channel 3 status register"]
143pub CH3STAT_TOG: crate::RWRegister<u32>,
144#[doc = "DCP channel 3 options register"]
145pub CH3OPTS: crate::RWRegister<u32>,
146#[doc = "DCP channel 3 options register"]
147pub CH3OPTS_SET: crate::RWRegister<u32>,
148#[doc = "DCP channel 3 options register"]
149pub CH3OPTS_CLR: crate::RWRegister<u32>,
150#[doc = "DCP channel 3 options register"]
151pub CH3OPTS_TOG: crate::RWRegister<u32>,
152 _reserved20: [u8; 0x0200],
153#[doc = "DCP debug select register"]
154pub DBGSELECT: crate::RWRegister<u32>,
155 _reserved21: [u8; 0x0c],
156#[doc = "DCP debug data register"]
157pub DBGDATA: crate::RORegister<u32>,
158 _reserved22: [u8; 0x0c],
159#[doc = "DCP page table register"]
160pub PAGETABLE: crate::RWRegister<u32>,
161 _reserved23: [u8; 0x0c],
162#[doc = "DCP version register"]
163pub VERSION: crate::RORegister<u32>,
164}
165#[doc = "DCP control register 0"]
166pub mod CTRL {
167#[doc = "Per-channel interrupt enable bit"]
168pub mod CHANNEL_INTERRUPT_ENABLE {
169pub const offset: u32 = 0;
170pub const mask: u32 = 0xff << offset;
171pub mod R {}
172pub mod W {}
173pub mod RW {
174#[doc = "CH0"]
175pub const CH0: u32 = 0x01;
176#[doc = "CH1"]
177pub const CH1: u32 = 0x02;
178#[doc = "CH2"]
179pub const CH2: u32 = 0x04;
180#[doc = "CH3"]
181pub const CH3: u32 = 0x08;
182 }
183 }
184#[doc = "Enable automatic context switching for the channels"]
185pub mod ENABLE_CONTEXT_SWITCHING {
186pub const offset: u32 = 21;
187pub const mask: u32 = 0x01 << offset;
188pub mod R {}
189pub mod W {}
190pub mod RW {}
191 }
192#[doc = "The software must set this bit to enable the caching of contexts between the operations"]
193pub mod ENABLE_CONTEXT_CACHING {
194pub const offset: u32 = 22;
195pub const mask: u32 = 0x01 << offset;
196pub mod R {}
197pub mod W {}
198pub mod RW {}
199 }
200#[doc = "The software must set this bit to enable the ragged writes to the unaligned buffers to be gathered between multiple write operations"]
201pub mod GATHER_RESIDUAL_WRITES {
202pub const offset: u32 = 23;
203pub const mask: u32 = 0x01 << offset;
204pub mod R {}
205pub mod W {}
206pub mod RW {}
207 }
208#[doc = "Indicates whether the SHA1/SHA2 functions are present."]
209pub mod PRESENT_SHA {
210pub const offset: u32 = 28;
211pub const mask: u32 = 0x01 << offset;
212pub mod R {}
213pub mod W {}
214pub mod RW {
215#[doc = "Absent"]
216pub const ABSENT: u32 = 0;
217#[doc = "Present"]
218pub const PRESENT: u32 = 0x01;
219 }
220 }
221#[doc = "Indicates whether the crypto (cipher/hash) functions are present."]
222pub mod PRESENT_CRYPTO {
223pub const offset: u32 = 29;
224pub const mask: u32 = 0x01 << offset;
225pub mod R {}
226pub mod W {}
227pub mod RW {
228#[doc = "Absent"]
229pub const ABSENT: u32 = 0;
230#[doc = "Present"]
231pub const PRESENT: u32 = 0x01;
232 }
233 }
234#[doc = "This bit must be set to zero for a normal operation"]
235pub mod CLKGATE {
236pub const offset: u32 = 30;
237pub const mask: u32 = 0x01 << offset;
238pub mod R {}
239pub mod W {}
240pub mod RW {}
241 }
242#[doc = "Set this bit to zero to enable a normal DCP operation"]
243pub mod SFTRST {
244pub const offset: u32 = 31;
245pub const mask: u32 = 0x01 << offset;
246pub mod R {}
247pub mod W {}
248pub mod RW {}
249 }
250}
251#[doc = "DCP control register 0"]
252pub mod CTRL_SET {
253#[doc = "Per-channel interrupt enable bit"]
254pub mod CHANNEL_INTERRUPT_ENABLE {
255pub const offset: u32 = 0;
256pub const mask: u32 = 0xff << offset;
257pub mod R {}
258pub mod W {}
259pub mod RW {
260#[doc = "CH0"]
261pub const CH0: u32 = 0x01;
262#[doc = "CH1"]
263pub const CH1: u32 = 0x02;
264#[doc = "CH2"]
265pub const CH2: u32 = 0x04;
266#[doc = "CH3"]
267pub const CH3: u32 = 0x08;
268 }
269 }
270#[doc = "Enable automatic context switching for the channels"]
271pub mod ENABLE_CONTEXT_SWITCHING {
272pub const offset: u32 = 21;
273pub const mask: u32 = 0x01 << offset;
274pub mod R {}
275pub mod W {}
276pub mod RW {}
277 }
278#[doc = "The software must set this bit to enable the caching of contexts between the operations"]
279pub mod ENABLE_CONTEXT_CACHING {
280pub const offset: u32 = 22;
281pub const mask: u32 = 0x01 << offset;
282pub mod R {}
283pub mod W {}
284pub mod RW {}
285 }
286#[doc = "The software must set this bit to enable the ragged writes to the unaligned buffers to be gathered between multiple write operations"]
287pub mod GATHER_RESIDUAL_WRITES {
288pub const offset: u32 = 23;
289pub const mask: u32 = 0x01 << offset;
290pub mod R {}
291pub mod W {}
292pub mod RW {}
293 }
294#[doc = "Indicates whether the SHA1/SHA2 functions are present."]
295pub mod PRESENT_SHA {
296pub const offset: u32 = 28;
297pub const mask: u32 = 0x01 << offset;
298pub mod R {}
299pub mod W {}
300pub mod RW {
301#[doc = "Absent"]
302pub const ABSENT: u32 = 0;
303#[doc = "Present"]
304pub const PRESENT: u32 = 0x01;
305 }
306 }
307#[doc = "Indicates whether the crypto (cipher/hash) functions are present."]
308pub mod PRESENT_CRYPTO {
309pub const offset: u32 = 29;
310pub const mask: u32 = 0x01 << offset;
311pub mod R {}
312pub mod W {}
313pub mod RW {
314#[doc = "Absent"]
315pub const ABSENT: u32 = 0;
316#[doc = "Present"]
317pub const PRESENT: u32 = 0x01;
318 }
319 }
320#[doc = "This bit must be set to zero for a normal operation"]
321pub mod CLKGATE {
322pub const offset: u32 = 30;
323pub const mask: u32 = 0x01 << offset;
324pub mod R {}
325pub mod W {}
326pub mod RW {}
327 }
328#[doc = "Set this bit to zero to enable a normal DCP operation"]
329pub mod SFTRST {
330pub const offset: u32 = 31;
331pub const mask: u32 = 0x01 << offset;
332pub mod R {}
333pub mod W {}
334pub mod RW {}
335 }
336}
337#[doc = "DCP control register 0"]
338pub mod CTRL_CLR {
339#[doc = "Per-channel interrupt enable bit"]
340pub mod CHANNEL_INTERRUPT_ENABLE {
341pub const offset: u32 = 0;
342pub const mask: u32 = 0xff << offset;
343pub mod R {}
344pub mod W {}
345pub mod RW {
346#[doc = "CH0"]
347pub const CH0: u32 = 0x01;
348#[doc = "CH1"]
349pub const CH1: u32 = 0x02;
350#[doc = "CH2"]
351pub const CH2: u32 = 0x04;
352#[doc = "CH3"]
353pub const CH3: u32 = 0x08;
354 }
355 }
356#[doc = "Enable automatic context switching for the channels"]
357pub mod ENABLE_CONTEXT_SWITCHING {
358pub const offset: u32 = 21;
359pub const mask: u32 = 0x01 << offset;
360pub mod R {}
361pub mod W {}
362pub mod RW {}
363 }
364#[doc = "The software must set this bit to enable the caching of contexts between the operations"]
365pub mod ENABLE_CONTEXT_CACHING {
366pub const offset: u32 = 22;
367pub const mask: u32 = 0x01 << offset;
368pub mod R {}
369pub mod W {}
370pub mod RW {}
371 }
372#[doc = "The software must set this bit to enable the ragged writes to the unaligned buffers to be gathered between multiple write operations"]
373pub mod GATHER_RESIDUAL_WRITES {
374pub const offset: u32 = 23;
375pub const mask: u32 = 0x01 << offset;
376pub mod R {}
377pub mod W {}
378pub mod RW {}
379 }
380#[doc = "Indicates whether the SHA1/SHA2 functions are present."]
381pub mod PRESENT_SHA {
382pub const offset: u32 = 28;
383pub const mask: u32 = 0x01 << offset;
384pub mod R {}
385pub mod W {}
386pub mod RW {
387#[doc = "Absent"]
388pub const ABSENT: u32 = 0;
389#[doc = "Present"]
390pub const PRESENT: u32 = 0x01;
391 }
392 }
393#[doc = "Indicates whether the crypto (cipher/hash) functions are present."]
394pub mod PRESENT_CRYPTO {
395pub const offset: u32 = 29;
396pub const mask: u32 = 0x01 << offset;
397pub mod R {}
398pub mod W {}
399pub mod RW {
400#[doc = "Absent"]
401pub const ABSENT: u32 = 0;
402#[doc = "Present"]
403pub const PRESENT: u32 = 0x01;
404 }
405 }
406#[doc = "This bit must be set to zero for a normal operation"]
407pub mod CLKGATE {
408pub const offset: u32 = 30;
409pub const mask: u32 = 0x01 << offset;
410pub mod R {}
411pub mod W {}
412pub mod RW {}
413 }
414#[doc = "Set this bit to zero to enable a normal DCP operation"]
415pub mod SFTRST {
416pub const offset: u32 = 31;
417pub const mask: u32 = 0x01 << offset;
418pub mod R {}
419pub mod W {}
420pub mod RW {}
421 }
422}
423#[doc = "DCP control register 0"]
424pub mod CTRL_TOG {
425#[doc = "Per-channel interrupt enable bit"]
426pub mod CHANNEL_INTERRUPT_ENABLE {
427pub const offset: u32 = 0;
428pub const mask: u32 = 0xff << offset;
429pub mod R {}
430pub mod W {}
431pub mod RW {
432#[doc = "CH0"]
433pub const CH0: u32 = 0x01;
434#[doc = "CH1"]
435pub const CH1: u32 = 0x02;
436#[doc = "CH2"]
437pub const CH2: u32 = 0x04;
438#[doc = "CH3"]
439pub const CH3: u32 = 0x08;
440 }
441 }
442#[doc = "Enable automatic context switching for the channels"]
443pub mod ENABLE_CONTEXT_SWITCHING {
444pub const offset: u32 = 21;
445pub const mask: u32 = 0x01 << offset;
446pub mod R {}
447pub mod W {}
448pub mod RW {}
449 }
450#[doc = "The software must set this bit to enable the caching of contexts between the operations"]
451pub mod ENABLE_CONTEXT_CACHING {
452pub const offset: u32 = 22;
453pub const mask: u32 = 0x01 << offset;
454pub mod R {}
455pub mod W {}
456pub mod RW {}
457 }
458#[doc = "The software must set this bit to enable the ragged writes to the unaligned buffers to be gathered between multiple write operations"]
459pub mod GATHER_RESIDUAL_WRITES {
460pub const offset: u32 = 23;
461pub const mask: u32 = 0x01 << offset;
462pub mod R {}
463pub mod W {}
464pub mod RW {}
465 }
466#[doc = "Indicates whether the SHA1/SHA2 functions are present."]
467pub mod PRESENT_SHA {
468pub const offset: u32 = 28;
469pub const mask: u32 = 0x01 << offset;
470pub mod R {}
471pub mod W {}
472pub mod RW {
473#[doc = "Absent"]
474pub const ABSENT: u32 = 0;
475#[doc = "Present"]
476pub const PRESENT: u32 = 0x01;
477 }
478 }
479#[doc = "Indicates whether the crypto (cipher/hash) functions are present."]
480pub mod PRESENT_CRYPTO {
481pub const offset: u32 = 29;
482pub const mask: u32 = 0x01 << offset;
483pub mod R {}
484pub mod W {}
485pub mod RW {
486#[doc = "Absent"]
487pub const ABSENT: u32 = 0;
488#[doc = "Present"]
489pub const PRESENT: u32 = 0x01;
490 }
491 }
492#[doc = "This bit must be set to zero for a normal operation"]
493pub mod CLKGATE {
494pub const offset: u32 = 30;
495pub const mask: u32 = 0x01 << offset;
496pub mod R {}
497pub mod W {}
498pub mod RW {}
499 }
500#[doc = "Set this bit to zero to enable a normal DCP operation"]
501pub mod SFTRST {
502pub const offset: u32 = 31;
503pub const mask: u32 = 0x01 << offset;
504pub mod R {}
505pub mod W {}
506pub mod RW {}
507 }
508}
509#[doc = "DCP status register"]
510pub mod STAT {
511#[doc = "Indicates which channels have pending interrupt requests"]
512pub mod IRQ {
513pub const offset: u32 = 0;
514pub const mask: u32 = 0x0f << offset;
515pub mod R {}
516pub mod W {}
517pub mod RW {}
518 }
519#[doc = "Indicates which channels are ready to proceed with a transfer (the active channel is also included)"]
520pub mod READY_CHANNELS {
521pub const offset: u32 = 16;
522pub const mask: u32 = 0xff << offset;
523pub mod R {}
524pub mod W {}
525pub mod RW {
526#[doc = "CH0"]
527pub const CH0: u32 = 0x01;
528#[doc = "CH1"]
529pub const CH1: u32 = 0x02;
530#[doc = "CH2"]
531pub const CH2: u32 = 0x04;
532#[doc = "CH3"]
533pub const CH3: u32 = 0x08;
534 }
535 }
536#[doc = "Current (active) channel (encoded)"]
537pub mod CUR_CHANNEL {
538pub const offset: u32 = 24;
539pub const mask: u32 = 0x0f << offset;
540pub mod R {}
541pub mod W {}
542pub mod RW {
543#[doc = "None"]
544pub const NONE: u32 = 0;
545#[doc = "CH0"]
546pub const CH0: u32 = 0x01;
547#[doc = "CH1"]
548pub const CH1: u32 = 0x02;
549#[doc = "CH2"]
550pub const CH2: u32 = 0x03;
551#[doc = "CH3"]
552pub const CH3: u32 = 0x04;
553 }
554 }
555#[doc = "When set, it indicates that the OTP key is shifted from the fuse block and is ready for use."]
556pub mod OTP_KEY_READY {
557pub const offset: u32 = 28;
558pub const mask: u32 = 0x01 << offset;
559pub mod R {}
560pub mod W {}
561pub mod RW {}
562 }
563}
564#[doc = "DCP status register"]
565pub mod STAT_SET {
566#[doc = "Indicates which channels have pending interrupt requests"]
567pub mod IRQ {
568pub const offset: u32 = 0;
569pub const mask: u32 = 0x0f << offset;
570pub mod R {}
571pub mod W {}
572pub mod RW {}
573 }
574#[doc = "Indicates which channels are ready to proceed with a transfer (the active channel is also included)"]
575pub mod READY_CHANNELS {
576pub const offset: u32 = 16;
577pub const mask: u32 = 0xff << offset;
578pub mod R {}
579pub mod W {}
580pub mod RW {
581#[doc = "CH0"]
582pub const CH0: u32 = 0x01;
583#[doc = "CH1"]
584pub const CH1: u32 = 0x02;
585#[doc = "CH2"]
586pub const CH2: u32 = 0x04;
587#[doc = "CH3"]
588pub const CH3: u32 = 0x08;
589 }
590 }
591#[doc = "Current (active) channel (encoded)"]
592pub mod CUR_CHANNEL {
593pub const offset: u32 = 24;
594pub const mask: u32 = 0x0f << offset;
595pub mod R {}
596pub mod W {}
597pub mod RW {
598#[doc = "None"]
599pub const NONE: u32 = 0;
600#[doc = "CH0"]
601pub const CH0: u32 = 0x01;
602#[doc = "CH1"]
603pub const CH1: u32 = 0x02;
604#[doc = "CH2"]
605pub const CH2: u32 = 0x03;
606#[doc = "CH3"]
607pub const CH3: u32 = 0x04;
608 }
609 }
610#[doc = "When set, it indicates that the OTP key is shifted from the fuse block and is ready for use."]
611pub mod OTP_KEY_READY {
612pub const offset: u32 = 28;
613pub const mask: u32 = 0x01 << offset;
614pub mod R {}
615pub mod W {}
616pub mod RW {}
617 }
618}
619#[doc = "DCP status register"]
620pub mod STAT_CLR {
621#[doc = "Indicates which channels have pending interrupt requests"]
622pub mod IRQ {
623pub const offset: u32 = 0;
624pub const mask: u32 = 0x0f << offset;
625pub mod R {}
626pub mod W {}
627pub mod RW {}
628 }
629#[doc = "Indicates which channels are ready to proceed with a transfer (the active channel is also included)"]
630pub mod READY_CHANNELS {
631pub const offset: u32 = 16;
632pub const mask: u32 = 0xff << offset;
633pub mod R {}
634pub mod W {}
635pub mod RW {
636#[doc = "CH0"]
637pub const CH0: u32 = 0x01;
638#[doc = "CH1"]
639pub const CH1: u32 = 0x02;
640#[doc = "CH2"]
641pub const CH2: u32 = 0x04;
642#[doc = "CH3"]
643pub const CH3: u32 = 0x08;
644 }
645 }
646#[doc = "Current (active) channel (encoded)"]
647pub mod CUR_CHANNEL {
648pub const offset: u32 = 24;
649pub const mask: u32 = 0x0f << offset;
650pub mod R {}
651pub mod W {}
652pub mod RW {
653#[doc = "None"]
654pub const NONE: u32 = 0;
655#[doc = "CH0"]
656pub const CH0: u32 = 0x01;
657#[doc = "CH1"]
658pub const CH1: u32 = 0x02;
659#[doc = "CH2"]
660pub const CH2: u32 = 0x03;
661#[doc = "CH3"]
662pub const CH3: u32 = 0x04;
663 }
664 }
665#[doc = "When set, it indicates that the OTP key is shifted from the fuse block and is ready for use."]
666pub mod OTP_KEY_READY {
667pub const offset: u32 = 28;
668pub const mask: u32 = 0x01 << offset;
669pub mod R {}
670pub mod W {}
671pub mod RW {}
672 }
673}
674#[doc = "DCP status register"]
675pub mod STAT_TOG {
676#[doc = "Indicates which channels have pending interrupt requests"]
677pub mod IRQ {
678pub const offset: u32 = 0;
679pub const mask: u32 = 0x0f << offset;
680pub mod R {}
681pub mod W {}
682pub mod RW {}
683 }
684#[doc = "Indicates which channels are ready to proceed with a transfer (the active channel is also included)"]
685pub mod READY_CHANNELS {
686pub const offset: u32 = 16;
687pub const mask: u32 = 0xff << offset;
688pub mod R {}
689pub mod W {}
690pub mod RW {
691#[doc = "CH0"]
692pub const CH0: u32 = 0x01;
693#[doc = "CH1"]
694pub const CH1: u32 = 0x02;
695#[doc = "CH2"]
696pub const CH2: u32 = 0x04;
697#[doc = "CH3"]
698pub const CH3: u32 = 0x08;
699 }
700 }
701#[doc = "Current (active) channel (encoded)"]
702pub mod CUR_CHANNEL {
703pub const offset: u32 = 24;
704pub const mask: u32 = 0x0f << offset;
705pub mod R {}
706pub mod W {}
707pub mod RW {
708#[doc = "None"]
709pub const NONE: u32 = 0;
710#[doc = "CH0"]
711pub const CH0: u32 = 0x01;
712#[doc = "CH1"]
713pub const CH1: u32 = 0x02;
714#[doc = "CH2"]
715pub const CH2: u32 = 0x03;
716#[doc = "CH3"]
717pub const CH3: u32 = 0x04;
718 }
719 }
720#[doc = "When set, it indicates that the OTP key is shifted from the fuse block and is ready for use."]
721pub mod OTP_KEY_READY {
722pub const offset: u32 = 28;
723pub const mask: u32 = 0x01 << offset;
724pub mod R {}
725pub mod W {}
726pub mod RW {}
727 }
728}
729#[doc = "DCP channel control register"]
730pub mod CHANNELCTRL {
731#[doc = "Setting a bit in this field enables the DMA channel associated with it"]
732pub mod ENABLE_CHANNEL {
733pub const offset: u32 = 0;
734pub const mask: u32 = 0xff << offset;
735pub mod R {}
736pub mod W {}
737pub mod RW {
738#[doc = "CH0"]
739pub const CH0: u32 = 0x01;
740#[doc = "CH1"]
741pub const CH1: u32 = 0x02;
742#[doc = "CH2"]
743pub const CH2: u32 = 0x04;
744#[doc = "CH3"]
745pub const CH3: u32 = 0x08;
746 }
747 }
748#[doc = "Setting a bit in this field causes the corresponding channel to have high-priority arbitration"]
749pub mod HIGH_PRIORITY_CHANNEL {
750pub const offset: u32 = 8;
751pub const mask: u32 = 0xff << offset;
752pub mod R {}
753pub mod W {}
754pub mod RW {
755#[doc = "CH0"]
756pub const CH0: u32 = 0x01;
757#[doc = "CH1"]
758pub const CH1: u32 = 0x02;
759#[doc = "CH2"]
760pub const CH2: u32 = 0x04;
761#[doc = "CH3"]
762pub const CH3: u32 = 0x08;
763 }
764 }
765#[doc = "Indicates that the interrupt for channel 0 must be merged with the other interrupts on the shared dcp_irq interrupt"]
766pub mod CH0_IRQ_MERGED {
767pub const offset: u32 = 16;
768pub const mask: u32 = 0x01 << offset;
769pub mod R {}
770pub mod W {}
771pub mod RW {}
772 }
773}
774#[doc = "DCP channel control register"]
775pub mod CHANNELCTRL_SET {
776#[doc = "Setting a bit in this field enables the DMA channel associated with it"]
777pub mod ENABLE_CHANNEL {
778pub const offset: u32 = 0;
779pub const mask: u32 = 0xff << offset;
780pub mod R {}
781pub mod W {}
782pub mod RW {
783#[doc = "CH0"]
784pub const CH0: u32 = 0x01;
785#[doc = "CH1"]
786pub const CH1: u32 = 0x02;
787#[doc = "CH2"]
788pub const CH2: u32 = 0x04;
789#[doc = "CH3"]
790pub const CH3: u32 = 0x08;
791 }
792 }
793#[doc = "Setting a bit in this field causes the corresponding channel to have high-priority arbitration"]
794pub mod HIGH_PRIORITY_CHANNEL {
795pub const offset: u32 = 8;
796pub const mask: u32 = 0xff << offset;
797pub mod R {}
798pub mod W {}
799pub mod RW {
800#[doc = "CH0"]
801pub const CH0: u32 = 0x01;
802#[doc = "CH1"]
803pub const CH1: u32 = 0x02;
804#[doc = "CH2"]
805pub const CH2: u32 = 0x04;
806#[doc = "CH3"]
807pub const CH3: u32 = 0x08;
808 }
809 }
810#[doc = "Indicates that the interrupt for channel 0 must be merged with the other interrupts on the shared dcp_irq interrupt"]
811pub mod CH0_IRQ_MERGED {
812pub const offset: u32 = 16;
813pub const mask: u32 = 0x01 << offset;
814pub mod R {}
815pub mod W {}
816pub mod RW {}
817 }
818}
819#[doc = "DCP channel control register"]
820pub mod CHANNELCTRL_CLR {
821#[doc = "Setting a bit in this field enables the DMA channel associated with it"]
822pub mod ENABLE_CHANNEL {
823pub const offset: u32 = 0;
824pub const mask: u32 = 0xff << offset;
825pub mod R {}
826pub mod W {}
827pub mod RW {
828#[doc = "CH0"]
829pub const CH0: u32 = 0x01;
830#[doc = "CH1"]
831pub const CH1: u32 = 0x02;
832#[doc = "CH2"]
833pub const CH2: u32 = 0x04;
834#[doc = "CH3"]
835pub const CH3: u32 = 0x08;
836 }
837 }
838#[doc = "Setting a bit in this field causes the corresponding channel to have high-priority arbitration"]
839pub mod HIGH_PRIORITY_CHANNEL {
840pub const offset: u32 = 8;
841pub const mask: u32 = 0xff << offset;
842pub mod R {}
843pub mod W {}
844pub mod RW {
845#[doc = "CH0"]
846pub const CH0: u32 = 0x01;
847#[doc = "CH1"]
848pub const CH1: u32 = 0x02;
849#[doc = "CH2"]
850pub const CH2: u32 = 0x04;
851#[doc = "CH3"]
852pub const CH3: u32 = 0x08;
853 }
854 }
855#[doc = "Indicates that the interrupt for channel 0 must be merged with the other interrupts on the shared dcp_irq interrupt"]
856pub mod CH0_IRQ_MERGED {
857pub const offset: u32 = 16;
858pub const mask: u32 = 0x01 << offset;
859pub mod R {}
860pub mod W {}
861pub mod RW {}
862 }
863}
864#[doc = "DCP channel control register"]
865pub mod CHANNELCTRL_TOG {
866#[doc = "Setting a bit in this field enables the DMA channel associated with it"]
867pub mod ENABLE_CHANNEL {
868pub const offset: u32 = 0;
869pub const mask: u32 = 0xff << offset;
870pub mod R {}
871pub mod W {}
872pub mod RW {
873#[doc = "CH0"]
874pub const CH0: u32 = 0x01;
875#[doc = "CH1"]
876pub const CH1: u32 = 0x02;
877#[doc = "CH2"]
878pub const CH2: u32 = 0x04;
879#[doc = "CH3"]
880pub const CH3: u32 = 0x08;
881 }
882 }
883#[doc = "Setting a bit in this field causes the corresponding channel to have high-priority arbitration"]
884pub mod HIGH_PRIORITY_CHANNEL {
885pub const offset: u32 = 8;
886pub const mask: u32 = 0xff << offset;
887pub mod R {}
888pub mod W {}
889pub mod RW {
890#[doc = "CH0"]
891pub const CH0: u32 = 0x01;
892#[doc = "CH1"]
893pub const CH1: u32 = 0x02;
894#[doc = "CH2"]
895pub const CH2: u32 = 0x04;
896#[doc = "CH3"]
897pub const CH3: u32 = 0x08;
898 }
899 }
900#[doc = "Indicates that the interrupt for channel 0 must be merged with the other interrupts on the shared dcp_irq interrupt"]
901pub mod CH0_IRQ_MERGED {
902pub const offset: u32 = 16;
903pub const mask: u32 = 0x01 << offset;
904pub mod R {}
905pub mod W {}
906pub mod RW {}
907 }
908}
909#[doc = "DCP capability 0 register"]
910pub mod CAPABILITY0 {
911#[doc = "Encoded value indicating the number of key-storage locations implemented in the design"]
912pub mod NUM_KEYS {
913pub const offset: u32 = 0;
914pub const mask: u32 = 0xff << offset;
915pub mod R {}
916pub mod W {}
917pub mod RW {}
918 }
919#[doc = "Encoded value indicating the number of channels implemented in the design"]
920pub mod NUM_CHANNELS {
921pub const offset: u32 = 8;
922pub const mask: u32 = 0x0f << offset;
923pub mod R {}
924pub mod W {}
925pub mod RW {}
926 }
927#[doc = "Write to a 1 to disable the per-device unique key"]
928pub mod DISABLE_UNIQUE_KEY {
929pub const offset: u32 = 29;
930pub const mask: u32 = 0x01 << offset;
931pub mod R {}
932pub mod W {}
933pub mod RW {}
934 }
935#[doc = "Write to 1 to disable the decryption"]
936pub mod DISABLE_DECRYPT {
937pub const offset: u32 = 31;
938pub const mask: u32 = 0x01 << offset;
939pub mod R {}
940pub mod W {}
941pub mod RW {}
942 }
943}
944#[doc = "DCP capability 1 register"]
945pub mod CAPABILITY1 {
946#[doc = "One-hot field indicating which cipher algorithms are available"]
947pub mod CIPHER_ALGORITHMS {
948pub const offset: u32 = 0;
949pub const mask: u32 = 0xffff << offset;
950pub mod R {}
951pub mod W {}
952pub mod RW {
953#[doc = "AES128"]
954pub const AES128: u32 = 0x01;
955 }
956 }
957#[doc = "One-hot field indicating which hashing features are implemented in the hardware"]
958pub mod HASH_ALGORITHMS {
959pub const offset: u32 = 16;
960pub const mask: u32 = 0xffff << offset;
961pub mod R {}
962pub mod W {}
963pub mod RW {
964#[doc = "SHA1"]
965pub const SHA1: u32 = 0x01;
966#[doc = "CRC32"]
967pub const CRC32: u32 = 0x02;
968#[doc = "SHA256"]
969pub const SHA256: u32 = 0x04;
970 }
971 }
972}
973#[doc = "DCP context buffer pointer"]
974pub mod CONTEXT {
975#[doc = "Context pointer address"]
976pub mod ADDR {
977pub const offset: u32 = 0;
978pub const mask: u32 = 0xffff_ffff << offset;
979pub mod R {}
980pub mod W {}
981pub mod RW {}
982 }
983}
984#[doc = "DCP key index"]
985pub mod KEY {
986#[doc = "Key subword pointer"]
987pub mod SUBWORD {
988pub const offset: u32 = 0;
989pub const mask: u32 = 0x03 << offset;
990pub mod R {}
991pub mod W {}
992pub mod RW {}
993 }
994#[doc = "Key index pointer. The valid indices are 0-\\[number_keys\\]."]
995pub mod INDEX {
996pub const offset: u32 = 4;
997pub const mask: u32 = 0x03 << offset;
998pub mod R {}
999pub mod W {}
1000pub mod RW {}
1001 }
1002}
1003#[doc = "DCP key data"]
1004pub mod KEYDATA {
1005#[doc = "Word 0 data for the key. This is the least-significant word."]
1006pub mod DATA {
1007pub const offset: u32 = 0;
1008pub const mask: u32 = 0xffff_ffff << offset;
1009pub mod R {}
1010pub mod W {}
1011pub mod RW {}
1012 }
1013}
1014#[doc = "DCP work packet 0 status register"]
1015pub mod PACKET0 {
1016#[doc = "Next pointer register"]
1017pub mod ADDR {
1018pub const offset: u32 = 0;
1019pub const mask: u32 = 0xffff_ffff << offset;
1020pub mod R {}
1021pub mod W {}
1022pub mod RW {}
1023 }
1024}
1025#[doc = "DCP work packet 1 status register"]
1026pub mod PACKET1 {
1027#[doc = "Reflects whether the channel must issue an interrupt upon the completion of the packet."]
1028pub mod INTERRUPT {
1029pub const offset: u32 = 0;
1030pub const mask: u32 = 0x01 << offset;
1031pub mod R {}
1032pub mod W {}
1033pub mod RW {}
1034 }
1035#[doc = "Reflects whether the channel's semaphore must be decremented at the end of the current operation"]
1036pub mod DECR_SEMAPHORE {
1037pub const offset: u32 = 1;
1038pub const mask: u32 = 0x01 << offset;
1039pub mod R {}
1040pub mod W {}
1041pub mod RW {}
1042 }
1043#[doc = "Reflects whether the next command pointer register must be loaded into the channel's current descriptor pointer"]
1044pub mod CHAIN {
1045pub const offset: u32 = 2;
1046pub const mask: u32 = 0x01 << offset;
1047pub mod R {}
1048pub mod W {}
1049pub mod RW {}
1050 }
1051#[doc = "Reflects whether the next packet's address is located following this packet's payload."]
1052pub mod CHAIN_CONTIGUOUS {
1053pub const offset: u32 = 3;
1054pub const mask: u32 = 0x01 << offset;
1055pub mod R {}
1056pub mod W {}
1057pub mod RW {}
1058 }
1059#[doc = "Reflects whether the selected hashing function should be enabled for this operation."]
1060pub mod ENABLE_MEMCOPY {
1061pub const offset: u32 = 4;
1062pub const mask: u32 = 0x01 << offset;
1063pub mod R {}
1064pub mod W {}
1065pub mod RW {}
1066 }
1067#[doc = "Reflects whether the selected cipher function must be enabled for this operation."]
1068pub mod ENABLE_CIPHER {
1069pub const offset: u32 = 5;
1070pub const mask: u32 = 0x01 << offset;
1071pub mod R {}
1072pub mod W {}
1073pub mod RW {}
1074 }
1075#[doc = "Reflects whether the selected hashing function must be enabled for this operation."]
1076pub mod ENABLE_HASH {
1077pub const offset: u32 = 6;
1078pub const mask: u32 = 0x01 << offset;
1079pub mod R {}
1080pub mod W {}
1081pub mod RW {}
1082 }
1083#[doc = "Reflects whether the DCP must perform a blit operation"]
1084pub mod ENABLE_BLIT {
1085pub const offset: u32 = 7;
1086pub const mask: u32 = 0x01 << offset;
1087pub mod R {}
1088pub mod W {}
1089pub mod RW {}
1090 }
1091#[doc = "When the cipher block is enabled, this bit indicates whether the operation is encryption or decryption"]
1092pub mod CIPHER_ENCRYPT {
1093pub const offset: u32 = 8;
1094pub const mask: u32 = 0x01 << offset;
1095pub mod R {}
1096pub mod W {}
1097pub mod RW {
1098#[doc = "DECRYPT"]
1099pub const DECRYPT: u32 = 0;
1100#[doc = "ENCRYPT"]
1101pub const ENCRYPT: u32 = 0x01;
1102 }
1103 }
1104#[doc = "Reflects whether the cipher block must load the initialization vector from the payload for this operation"]
1105pub mod CIPHER_INIT {
1106pub const offset: u32 = 9;
1107pub const mask: u32 = 0x01 << offset;
1108pub mod R {}
1109pub mod W {}
1110pub mod RW {}
1111 }
1112#[doc = "Reflects whether a hardware-based key must be used"]
1113pub mod OTP_KEY {
1114pub const offset: u32 = 10;
1115pub const mask: u32 = 0x01 << offset;
1116pub mod R {}
1117pub mod W {}
1118pub mod RW {}
1119 }
1120#[doc = "When set, it indicates the payload contains the key"]
1121pub mod PAYLOAD_KEY {
1122pub const offset: u32 = 11;
1123pub const mask: u32 = 0x01 << offset;
1124pub mod R {}
1125pub mod W {}
1126pub mod RW {}
1127 }
1128#[doc = "Reflects whether the current hashing block is the initial block in the hashing operation, so the hash registers must be initialized before the operation"]
1129pub mod HASH_INIT {
1130pub const offset: u32 = 12;
1131pub const mask: u32 = 0x01 << offset;
1132pub mod R {}
1133pub mod W {}
1134pub mod RW {}
1135 }
1136#[doc = "Reflects whether the current hashing block is the final block in the hashing operation, so the hash padding must be applied by the hardware"]
1137pub mod HASH_TERM {
1138pub const offset: u32 = 13;
1139pub const mask: u32 = 0x01 << offset;
1140pub mod R {}
1141pub mod W {}
1142pub mod RW {}
1143 }
1144#[doc = "Reflects whether the calculated hash value must be compared to the hash provided in the payload."]
1145pub mod CHECK_HASH {
1146pub const offset: u32 = 14;
1147pub const mask: u32 = 0x01 << offset;
1148pub mod R {}
1149pub mod W {}
1150pub mod RW {}
1151 }
1152#[doc = "When the hashing is enabled, this bit controls whether the input or output data is hashed."]
1153pub mod HASH_OUTPUT {
1154pub const offset: u32 = 15;
1155pub const mask: u32 = 0x01 << offset;
1156pub mod R {}
1157pub mod W {}
1158pub mod RW {
1159#[doc = "INPUT"]
1160pub const INPUT: u32 = 0;
1161#[doc = "OUTPUT"]
1162pub const OUTPUT: u32 = 0x01;
1163 }
1164 }
1165#[doc = "When this bit is set (MEMCOPY and BLIT modes only), the DCP simply fills the destination buffer with the value found in the source address field"]
1166pub mod CONSTANT_FILL {
1167pub const offset: u32 = 16;
1168pub const mask: u32 = 0x01 << offset;
1169pub mod R {}
1170pub mod W {}
1171pub mod RW {}
1172 }
1173#[doc = "This bit is used to test the channel semaphore transition to 0. FOR TEST USE ONLY!"]
1174pub mod TEST_SEMA_IRQ {
1175pub const offset: u32 = 17;
1176pub const mask: u32 = 0x01 << offset;
1177pub mod R {}
1178pub mod W {}
1179pub mod RW {}
1180 }
1181#[doc = "Reflects whether the DCP engine swaps the key bytes (big-endian key)."]
1182pub mod KEY_BYTESWAP {
1183pub const offset: u32 = 18;
1184pub const mask: u32 = 0x01 << offset;
1185pub mod R {}
1186pub mod W {}
1187pub mod RW {}
1188 }
1189#[doc = "Reflects whether the DCP engine swaps the key words (big-endian key)."]
1190pub mod KEY_WORDSWAP {
1191pub const offset: u32 = 19;
1192pub const mask: u32 = 0x01 << offset;
1193pub mod R {}
1194pub mod W {}
1195pub mod RW {}
1196 }
1197#[doc = "Reflects whether the DCP engine byteswaps the input data (big-endian data)."]
1198pub mod INPUT_BYTESWAP {
1199pub const offset: u32 = 20;
1200pub const mask: u32 = 0x01 << offset;
1201pub mod R {}
1202pub mod W {}
1203pub mod RW {}
1204 }
1205#[doc = "Reflects whether the DCP engine wordswaps the input data (big-endian data)."]
1206pub mod INPUT_WORDSWAP {
1207pub const offset: u32 = 21;
1208pub const mask: u32 = 0x01 << offset;
1209pub mod R {}
1210pub mod W {}
1211pub mod RW {}
1212 }
1213#[doc = "Reflects whether the DCP engine byteswaps the output data (big-endian data)."]
1214pub mod OUTPUT_BYTESWAP {
1215pub const offset: u32 = 22;
1216pub const mask: u32 = 0x01 << offset;
1217pub mod R {}
1218pub mod W {}
1219pub mod RW {}
1220 }
1221#[doc = "Reflects whether the DCP engine wordswaps the output data (big-endian data)."]
1222pub mod OUTPUT_WORDSWAP {
1223pub const offset: u32 = 23;
1224pub const mask: u32 = 0x01 << offset;
1225pub mod R {}
1226pub mod W {}
1227pub mod RW {}
1228 }
1229#[doc = "Packet Tag"]
1230pub mod TAG {
1231pub const offset: u32 = 24;
1232pub const mask: u32 = 0xff << offset;
1233pub mod R {}
1234pub mod W {}
1235pub mod RW {}
1236 }
1237}
1238#[doc = "DCP work packet 2 status register"]
1239pub mod PACKET2 {
1240#[doc = "Cipher selection field"]
1241pub mod CIPHER_SELECT {
1242pub const offset: u32 = 0;
1243pub const mask: u32 = 0x0f << offset;
1244pub mod R {}
1245pub mod W {}
1246pub mod RW {
1247#[doc = "AES128"]
1248pub const AES128: u32 = 0;
1249 }
1250 }
1251#[doc = "Cipher mode selection field. Reflects the mode of operation for the cipher operations."]
1252pub mod CIPHER_MODE {
1253pub const offset: u32 = 4;
1254pub const mask: u32 = 0x0f << offset;
1255pub mod R {}
1256pub mod W {}
1257pub mod RW {
1258#[doc = "ECB"]
1259pub const ECB: u32 = 0;
1260#[doc = "CBC"]
1261pub const CBC: u32 = 0x01;
1262 }
1263 }
1264#[doc = "Key selection field"]
1265pub mod KEY_SELECT {
1266pub const offset: u32 = 8;
1267pub const mask: u32 = 0xff << offset;
1268pub mod R {}
1269pub mod W {}
1270pub mod RW {
1271#[doc = "KEY0"]
1272pub const KEY0: u32 = 0;
1273#[doc = "KEY1"]
1274pub const KEY1: u32 = 0x01;
1275#[doc = "KEY2"]
1276pub const KEY2: u32 = 0x02;
1277#[doc = "KEY3"]
1278pub const KEY3: u32 = 0x03;
1279#[doc = "UNIQUE_KEY"]
1280pub const UNIQUE_KEY: u32 = 0xfe;
1281#[doc = "OTP_KEY"]
1282pub const OTP_KEY: u32 = 0xff;
1283 }
1284 }
1285#[doc = "Hash Selection Field"]
1286pub mod HASH_SELECT {
1287pub const offset: u32 = 16;
1288pub const mask: u32 = 0x0f << offset;
1289pub mod R {}
1290pub mod W {}
1291pub mod RW {
1292#[doc = "SHA1"]
1293pub const SHA1: u32 = 0;
1294#[doc = "CRC32"]
1295pub const CRC32: u32 = 0x01;
1296#[doc = "SHA256"]
1297pub const SHA256: u32 = 0x02;
1298 }
1299 }
1300#[doc = "Cipher configuration bits. Optional configuration bits are required for the ciphers."]
1301pub mod CIPHER_CFG {
1302pub const offset: u32 = 24;
1303pub const mask: u32 = 0xff << offset;
1304pub mod R {}
1305pub mod W {}
1306pub mod RW {}
1307 }
1308}
1309#[doc = "DCP work packet 3 status register"]
1310pub mod PACKET3 {
1311#[doc = "Source buffer address pointer"]
1312pub mod ADDR {
1313pub const offset: u32 = 0;
1314pub const mask: u32 = 0xffff_ffff << offset;
1315pub mod R {}
1316pub mod W {}
1317pub mod RW {}
1318 }
1319}
1320#[doc = "DCP work packet 4 status register"]
1321pub mod PACKET4 {
1322#[doc = "Destination buffer address pointer"]
1323pub mod ADDR {
1324pub const offset: u32 = 0;
1325pub const mask: u32 = 0xffff_ffff << offset;
1326pub mod R {}
1327pub mod W {}
1328pub mod RW {}
1329 }
1330}
1331#[doc = "DCP work packet 5 status register"]
1332pub mod PACKET5 {
1333#[doc = "Byte count register. This value is the working value and updates as the operation proceeds."]
1334pub mod COUNT {
1335pub const offset: u32 = 0;
1336pub const mask: u32 = 0xffff_ffff << offset;
1337pub mod R {}
1338pub mod W {}
1339pub mod RW {}
1340 }
1341}
1342#[doc = "DCP work packet 6 status register"]
1343pub mod PACKET6 {
1344#[doc = "This regiser reflects the payload pointer for the current control packet."]
1345pub mod ADDR {
1346pub const offset: u32 = 0;
1347pub const mask: u32 = 0xffff_ffff << offset;
1348pub mod R {}
1349pub mod W {}
1350pub mod RW {}
1351 }
1352}
1353#[doc = "DCP channel 0 command pointer address register"]
1354pub mod CH0CMDPTR {
1355#[doc = "Pointer to the descriptor structure to be processed for channel 0."]
1356pub mod ADDR {
1357pub const offset: u32 = 0;
1358pub const mask: u32 = 0xffff_ffff << offset;
1359pub mod R {}
1360pub mod W {}
1361pub mod RW {}
1362 }
1363}
1364#[doc = "DCP channel 0 semaphore register"]
1365pub mod CH0SEMA {
1366#[doc = "The value written to this field is added to the semaphore count in an atomic way such that the simultaneous software adds and DCP hardware substracts happening on the same clock are protected"]
1367pub mod INCREMENT {
1368pub const offset: u32 = 0;
1369pub const mask: u32 = 0xff << offset;
1370pub mod R {}
1371pub mod W {}
1372pub mod RW {}
1373 }
1374#[doc = "This read-only field shows the current (instantaneous) value of the semaphore counter."]
1375pub mod VALUE {
1376pub const offset: u32 = 16;
1377pub const mask: u32 = 0xff << offset;
1378pub mod R {}
1379pub mod W {}
1380pub mod RW {}
1381 }
1382}
1383#[doc = "DCP channel 0 status register"]
1384pub mod CH0STAT {
1385#[doc = "This bit indicates that a hashing check operation mismatched for the control packets that enable the HASH_CHECK bit"]
1386pub mod HASH_MISMATCH {
1387pub const offset: u32 = 1;
1388pub const mask: u32 = 0x01 << offset;
1389pub mod R {}
1390pub mod W {}
1391pub mod RW {}
1392 }
1393#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
1394pub mod ERROR_SETUP {
1395pub const offset: u32 = 2;
1396pub const mask: u32 = 0x01 << offset;
1397pub mod R {}
1398pub mod W {}
1399pub mod RW {}
1400 }
1401#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet payload"]
1402pub mod ERROR_PACKET {
1403pub const offset: u32 = 3;
1404pub const mask: u32 = 0x01 << offset;
1405pub mod R {}
1406pub mod W {}
1407pub mod RW {}
1408 }
1409#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
1410pub mod ERROR_SRC {
1411pub const offset: u32 = 4;
1412pub const mask: u32 = 0x01 << offset;
1413pub mod R {}
1414pub mod W {}
1415pub mod RW {}
1416 }
1417#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
1418pub mod ERROR_DST {
1419pub const offset: u32 = 5;
1420pub const mask: u32 = 0x01 << offset;
1421pub mod R {}
1422pub mod W {}
1423pub mod RW {}
1424 }
1425#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
1426pub mod ERROR_PAGEFAULT {
1427pub const offset: u32 = 6;
1428pub const mask: u32 = 0x01 << offset;
1429pub mod R {}
1430pub mod W {}
1431pub mod RW {}
1432 }
1433#[doc = "Indicates the additional error codes for some of the error conditions"]
1434pub mod ERROR_CODE {
1435pub const offset: u32 = 16;
1436pub const mask: u32 = 0xff << offset;
1437pub mod R {}
1438pub mod W {}
1439pub mod RW {
1440#[doc = "Error signalled because the next pointer is 0x00000000"]
1441pub const NEXT_CHAIN_IS_0: u32 = 0x01;
1442#[doc = "Error signalled because the semaphore is non-zero and neither chain bit is set"]
1443pub const NO_CHAIN: u32 = 0x02;
1444#[doc = "Error signalled because an error is reported reading/writing the context buffer"]
1445pub const CONTEXT_ERROR: u32 = 0x03;
1446#[doc = "Error signalled because an error is reported reading/writing the payload"]
1447pub const PAYLOAD_ERROR: u32 = 0x04;
1448#[doc = "Error signalled because the control packet specifies an invalid mode select (for instance, blit + hash)"]
1449pub const INVALID_MODE: u32 = 0x05;
1450 }
1451 }
1452#[doc = "Indicates the tag from the last completed packet in the command structure"]
1453pub mod TAG {
1454pub const offset: u32 = 24;
1455pub const mask: u32 = 0xff << offset;
1456pub mod R {}
1457pub mod W {}
1458pub mod RW {}
1459 }
1460}
1461#[doc = "DCP channel 0 status register"]
1462pub mod CH0STAT_SET {
1463#[doc = "This bit indicates that a hashing check operation mismatched for the control packets that enable the HASH_CHECK bit"]
1464pub mod HASH_MISMATCH {
1465pub const offset: u32 = 1;
1466pub const mask: u32 = 0x01 << offset;
1467pub mod R {}
1468pub mod W {}
1469pub mod RW {}
1470 }
1471#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
1472pub mod ERROR_SETUP {
1473pub const offset: u32 = 2;
1474pub const mask: u32 = 0x01 << offset;
1475pub mod R {}
1476pub mod W {}
1477pub mod RW {}
1478 }
1479#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet payload"]
1480pub mod ERROR_PACKET {
1481pub const offset: u32 = 3;
1482pub const mask: u32 = 0x01 << offset;
1483pub mod R {}
1484pub mod W {}
1485pub mod RW {}
1486 }
1487#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
1488pub mod ERROR_SRC {
1489pub const offset: u32 = 4;
1490pub const mask: u32 = 0x01 << offset;
1491pub mod R {}
1492pub mod W {}
1493pub mod RW {}
1494 }
1495#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
1496pub mod ERROR_DST {
1497pub const offset: u32 = 5;
1498pub const mask: u32 = 0x01 << offset;
1499pub mod R {}
1500pub mod W {}
1501pub mod RW {}
1502 }
1503#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
1504pub mod ERROR_PAGEFAULT {
1505pub const offset: u32 = 6;
1506pub const mask: u32 = 0x01 << offset;
1507pub mod R {}
1508pub mod W {}
1509pub mod RW {}
1510 }
1511#[doc = "Indicates the additional error codes for some of the error conditions"]
1512pub mod ERROR_CODE {
1513pub const offset: u32 = 16;
1514pub const mask: u32 = 0xff << offset;
1515pub mod R {}
1516pub mod W {}
1517pub mod RW {
1518#[doc = "Error signalled because the next pointer is 0x00000000"]
1519pub const NEXT_CHAIN_IS_0: u32 = 0x01;
1520#[doc = "Error signalled because the semaphore is non-zero and neither chain bit is set"]
1521pub const NO_CHAIN: u32 = 0x02;
1522#[doc = "Error signalled because an error is reported reading/writing the context buffer"]
1523pub const CONTEXT_ERROR: u32 = 0x03;
1524#[doc = "Error signalled because an error is reported reading/writing the payload"]
1525pub const PAYLOAD_ERROR: u32 = 0x04;
1526#[doc = "Error signalled because the control packet specifies an invalid mode select (for instance, blit + hash)"]
1527pub const INVALID_MODE: u32 = 0x05;
1528 }
1529 }
1530#[doc = "Indicates the tag from the last completed packet in the command structure"]
1531pub mod TAG {
1532pub const offset: u32 = 24;
1533pub const mask: u32 = 0xff << offset;
1534pub mod R {}
1535pub mod W {}
1536pub mod RW {}
1537 }
1538}
1539#[doc = "DCP channel 0 status register"]
1540pub mod CH0STAT_CLR {
1541#[doc = "This bit indicates that a hashing check operation mismatched for the control packets that enable the HASH_CHECK bit"]
1542pub mod HASH_MISMATCH {
1543pub const offset: u32 = 1;
1544pub const mask: u32 = 0x01 << offset;
1545pub mod R {}
1546pub mod W {}
1547pub mod RW {}
1548 }
1549#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
1550pub mod ERROR_SETUP {
1551pub const offset: u32 = 2;
1552pub const mask: u32 = 0x01 << offset;
1553pub mod R {}
1554pub mod W {}
1555pub mod RW {}
1556 }
1557#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet payload"]
1558pub mod ERROR_PACKET {
1559pub const offset: u32 = 3;
1560pub const mask: u32 = 0x01 << offset;
1561pub mod R {}
1562pub mod W {}
1563pub mod RW {}
1564 }
1565#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
1566pub mod ERROR_SRC {
1567pub const offset: u32 = 4;
1568pub const mask: u32 = 0x01 << offset;
1569pub mod R {}
1570pub mod W {}
1571pub mod RW {}
1572 }
1573#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
1574pub mod ERROR_DST {
1575pub const offset: u32 = 5;
1576pub const mask: u32 = 0x01 << offset;
1577pub mod R {}
1578pub mod W {}
1579pub mod RW {}
1580 }
1581#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
1582pub mod ERROR_PAGEFAULT {
1583pub const offset: u32 = 6;
1584pub const mask: u32 = 0x01 << offset;
1585pub mod R {}
1586pub mod W {}
1587pub mod RW {}
1588 }
1589#[doc = "Indicates the additional error codes for some of the error conditions"]
1590pub mod ERROR_CODE {
1591pub const offset: u32 = 16;
1592pub const mask: u32 = 0xff << offset;
1593pub mod R {}
1594pub mod W {}
1595pub mod RW {
1596#[doc = "Error signalled because the next pointer is 0x00000000"]
1597pub const NEXT_CHAIN_IS_0: u32 = 0x01;
1598#[doc = "Error signalled because the semaphore is non-zero and neither chain bit is set"]
1599pub const NO_CHAIN: u32 = 0x02;
1600#[doc = "Error signalled because an error is reported reading/writing the context buffer"]
1601pub const CONTEXT_ERROR: u32 = 0x03;
1602#[doc = "Error signalled because an error is reported reading/writing the payload"]
1603pub const PAYLOAD_ERROR: u32 = 0x04;
1604#[doc = "Error signalled because the control packet specifies an invalid mode select (for instance, blit + hash)"]
1605pub const INVALID_MODE: u32 = 0x05;
1606 }
1607 }
1608#[doc = "Indicates the tag from the last completed packet in the command structure"]
1609pub mod TAG {
1610pub const offset: u32 = 24;
1611pub const mask: u32 = 0xff << offset;
1612pub mod R {}
1613pub mod W {}
1614pub mod RW {}
1615 }
1616}
1617#[doc = "DCP channel 0 status register"]
1618pub mod CH0STAT_TOG {
1619#[doc = "This bit indicates that a hashing check operation mismatched for the control packets that enable the HASH_CHECK bit"]
1620pub mod HASH_MISMATCH {
1621pub const offset: u32 = 1;
1622pub const mask: u32 = 0x01 << offset;
1623pub mod R {}
1624pub mod W {}
1625pub mod RW {}
1626 }
1627#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
1628pub mod ERROR_SETUP {
1629pub const offset: u32 = 2;
1630pub const mask: u32 = 0x01 << offset;
1631pub mod R {}
1632pub mod W {}
1633pub mod RW {}
1634 }
1635#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet payload"]
1636pub mod ERROR_PACKET {
1637pub const offset: u32 = 3;
1638pub const mask: u32 = 0x01 << offset;
1639pub mod R {}
1640pub mod W {}
1641pub mod RW {}
1642 }
1643#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
1644pub mod ERROR_SRC {
1645pub const offset: u32 = 4;
1646pub const mask: u32 = 0x01 << offset;
1647pub mod R {}
1648pub mod W {}
1649pub mod RW {}
1650 }
1651#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
1652pub mod ERROR_DST {
1653pub const offset: u32 = 5;
1654pub const mask: u32 = 0x01 << offset;
1655pub mod R {}
1656pub mod W {}
1657pub mod RW {}
1658 }
1659#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
1660pub mod ERROR_PAGEFAULT {
1661pub const offset: u32 = 6;
1662pub const mask: u32 = 0x01 << offset;
1663pub mod R {}
1664pub mod W {}
1665pub mod RW {}
1666 }
1667#[doc = "Indicates the additional error codes for some of the error conditions"]
1668pub mod ERROR_CODE {
1669pub const offset: u32 = 16;
1670pub const mask: u32 = 0xff << offset;
1671pub mod R {}
1672pub mod W {}
1673pub mod RW {
1674#[doc = "Error signalled because the next pointer is 0x00000000"]
1675pub const NEXT_CHAIN_IS_0: u32 = 0x01;
1676#[doc = "Error signalled because the semaphore is non-zero and neither chain bit is set"]
1677pub const NO_CHAIN: u32 = 0x02;
1678#[doc = "Error signalled because an error is reported reading/writing the context buffer"]
1679pub const CONTEXT_ERROR: u32 = 0x03;
1680#[doc = "Error signalled because an error is reported reading/writing the payload"]
1681pub const PAYLOAD_ERROR: u32 = 0x04;
1682#[doc = "Error signalled because the control packet specifies an invalid mode select (for instance, blit + hash)"]
1683pub const INVALID_MODE: u32 = 0x05;
1684 }
1685 }
1686#[doc = "Indicates the tag from the last completed packet in the command structure"]
1687pub mod TAG {
1688pub const offset: u32 = 24;
1689pub const mask: u32 = 0xff << offset;
1690pub mod R {}
1691pub mod W {}
1692pub mod RW {}
1693 }
1694}
1695#[doc = "DCP channel 0 options register"]
1696pub mod CH0OPTS {
1697#[doc = "This field indicates the recovery time for the channel"]
1698pub mod RECOVERY_TIMER {
1699pub const offset: u32 = 0;
1700pub const mask: u32 = 0xffff << offset;
1701pub mod R {}
1702pub mod W {}
1703pub mod RW {}
1704 }
1705}
1706#[doc = "DCP channel 0 options register"]
1707pub mod CH0OPTS_SET {
1708#[doc = "This field indicates the recovery time for the channel"]
1709pub mod RECOVERY_TIMER {
1710pub const offset: u32 = 0;
1711pub const mask: u32 = 0xffff << offset;
1712pub mod R {}
1713pub mod W {}
1714pub mod RW {}
1715 }
1716}
1717#[doc = "DCP channel 0 options register"]
1718pub mod CH0OPTS_CLR {
1719#[doc = "This field indicates the recovery time for the channel"]
1720pub mod RECOVERY_TIMER {
1721pub const offset: u32 = 0;
1722pub const mask: u32 = 0xffff << offset;
1723pub mod R {}
1724pub mod W {}
1725pub mod RW {}
1726 }
1727}
1728#[doc = "DCP channel 0 options register"]
1729pub mod CH0OPTS_TOG {
1730#[doc = "This field indicates the recovery time for the channel"]
1731pub mod RECOVERY_TIMER {
1732pub const offset: u32 = 0;
1733pub const mask: u32 = 0xffff << offset;
1734pub mod R {}
1735pub mod W {}
1736pub mod RW {}
1737 }
1738}
1739#[doc = "DCP channel 1 command pointer address register"]
1740pub mod CH1CMDPTR {
1741#[doc = "Pointer to the descriptor structure to be processed for channel 1."]
1742pub mod ADDR {
1743pub const offset: u32 = 0;
1744pub const mask: u32 = 0xffff_ffff << offset;
1745pub mod R {}
1746pub mod W {}
1747pub mod RW {}
1748 }
1749}
1750#[doc = "DCP channel 1 semaphore register"]
1751pub mod CH1SEMA {
1752#[doc = "The value written to this field is added to the semaphore count in an atomic way, such that the simultaneous software adds and the DCP hardware substracts happening on the same clock are protected"]
1753pub mod INCREMENT {
1754pub const offset: u32 = 0;
1755pub const mask: u32 = 0xff << offset;
1756pub mod R {}
1757pub mod W {}
1758pub mod RW {}
1759 }
1760#[doc = "This read-only field shows the current (instantaneous) value of the semaphore counter."]
1761pub mod VALUE {
1762pub const offset: u32 = 16;
1763pub const mask: u32 = 0xff << offset;
1764pub mod R {}
1765pub mod W {}
1766pub mod RW {}
1767 }
1768}
1769#[doc = "DCP channel 1 status register"]
1770pub mod CH1STAT {
1771#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
1772pub mod HASH_MISMATCH {
1773pub const offset: u32 = 1;
1774pub const mask: u32 = 0x01 << offset;
1775pub mod R {}
1776pub mod W {}
1777pub mod RW {}
1778 }
1779#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
1780pub mod ERROR_SETUP {
1781pub const offset: u32 = 2;
1782pub const mask: u32 = 0x01 << offset;
1783pub mod R {}
1784pub mod W {}
1785pub mod RW {}
1786 }
1787#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet paylaod"]
1788pub mod ERROR_PACKET {
1789pub const offset: u32 = 3;
1790pub const mask: u32 = 0x01 << offset;
1791pub mod R {}
1792pub mod W {}
1793pub mod RW {}
1794 }
1795#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
1796pub mod ERROR_SRC {
1797pub const offset: u32 = 4;
1798pub const mask: u32 = 0x01 << offset;
1799pub mod R {}
1800pub mod W {}
1801pub mod RW {}
1802 }
1803#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
1804pub mod ERROR_DST {
1805pub const offset: u32 = 5;
1806pub const mask: u32 = 0x01 << offset;
1807pub mod R {}
1808pub mod W {}
1809pub mod RW {}
1810 }
1811#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
1812pub mod ERROR_PAGEFAULT {
1813pub const offset: u32 = 6;
1814pub const mask: u32 = 0x01 << offset;
1815pub mod R {}
1816pub mod W {}
1817pub mod RW {}
1818 }
1819#[doc = "Indicates the additional error codes for some of the error conditions."]
1820pub mod ERROR_CODE {
1821pub const offset: u32 = 16;
1822pub const mask: u32 = 0xff << offset;
1823pub mod R {}
1824pub mod W {}
1825pub mod RW {
1826#[doc = "Error is signalled because the next pointer is 0x00000000."]
1827pub const NEXT_CHAIN_IS_0: u32 = 0x01;
1828#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
1829pub const NO_CHAIN: u32 = 0x02;
1830#[doc = "Error is signalled because an error was reported when reading/writing the context buffer."]
1831pub const CONTEXT_ERROR: u32 = 0x03;
1832#[doc = "Error is signalled because an error was reported when reading/writing the payload."]
1833pub const PAYLOAD_ERROR: u32 = 0x04;
1834#[doc = "Error is signalled because the control packet specifies an invalid mode select (for example, blit + hash)."]
1835pub const INVALID_MODE: u32 = 0x05;
1836 }
1837 }
1838#[doc = "Indicates the tag from the last completed packet in the command structure."]
1839pub mod TAG {
1840pub const offset: u32 = 24;
1841pub const mask: u32 = 0xff << offset;
1842pub mod R {}
1843pub mod W {}
1844pub mod RW {}
1845 }
1846}
1847#[doc = "DCP channel 1 status register"]
1848pub mod CH1STAT_SET {
1849#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
1850pub mod HASH_MISMATCH {
1851pub const offset: u32 = 1;
1852pub const mask: u32 = 0x01 << offset;
1853pub mod R {}
1854pub mod W {}
1855pub mod RW {}
1856 }
1857#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
1858pub mod ERROR_SETUP {
1859pub const offset: u32 = 2;
1860pub const mask: u32 = 0x01 << offset;
1861pub mod R {}
1862pub mod W {}
1863pub mod RW {}
1864 }
1865#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet paylaod"]
1866pub mod ERROR_PACKET {
1867pub const offset: u32 = 3;
1868pub const mask: u32 = 0x01 << offset;
1869pub mod R {}
1870pub mod W {}
1871pub mod RW {}
1872 }
1873#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
1874pub mod ERROR_SRC {
1875pub const offset: u32 = 4;
1876pub const mask: u32 = 0x01 << offset;
1877pub mod R {}
1878pub mod W {}
1879pub mod RW {}
1880 }
1881#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
1882pub mod ERROR_DST {
1883pub const offset: u32 = 5;
1884pub const mask: u32 = 0x01 << offset;
1885pub mod R {}
1886pub mod W {}
1887pub mod RW {}
1888 }
1889#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
1890pub mod ERROR_PAGEFAULT {
1891pub const offset: u32 = 6;
1892pub const mask: u32 = 0x01 << offset;
1893pub mod R {}
1894pub mod W {}
1895pub mod RW {}
1896 }
1897#[doc = "Indicates the additional error codes for some of the error conditions."]
1898pub mod ERROR_CODE {
1899pub const offset: u32 = 16;
1900pub const mask: u32 = 0xff << offset;
1901pub mod R {}
1902pub mod W {}
1903pub mod RW {
1904#[doc = "Error is signalled because the next pointer is 0x00000000."]
1905pub const NEXT_CHAIN_IS_0: u32 = 0x01;
1906#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
1907pub const NO_CHAIN: u32 = 0x02;
1908#[doc = "Error is signalled because an error was reported when reading/writing the context buffer."]
1909pub const CONTEXT_ERROR: u32 = 0x03;
1910#[doc = "Error is signalled because an error was reported when reading/writing the payload."]
1911pub const PAYLOAD_ERROR: u32 = 0x04;
1912#[doc = "Error is signalled because the control packet specifies an invalid mode select (for example, blit + hash)."]
1913pub const INVALID_MODE: u32 = 0x05;
1914 }
1915 }
1916#[doc = "Indicates the tag from the last completed packet in the command structure."]
1917pub mod TAG {
1918pub const offset: u32 = 24;
1919pub const mask: u32 = 0xff << offset;
1920pub mod R {}
1921pub mod W {}
1922pub mod RW {}
1923 }
1924}
1925#[doc = "DCP channel 1 status register"]
1926pub mod CH1STAT_CLR {
1927#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
1928pub mod HASH_MISMATCH {
1929pub const offset: u32 = 1;
1930pub const mask: u32 = 0x01 << offset;
1931pub mod R {}
1932pub mod W {}
1933pub mod RW {}
1934 }
1935#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
1936pub mod ERROR_SETUP {
1937pub const offset: u32 = 2;
1938pub const mask: u32 = 0x01 << offset;
1939pub mod R {}
1940pub mod W {}
1941pub mod RW {}
1942 }
1943#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet paylaod"]
1944pub mod ERROR_PACKET {
1945pub const offset: u32 = 3;
1946pub const mask: u32 = 0x01 << offset;
1947pub mod R {}
1948pub mod W {}
1949pub mod RW {}
1950 }
1951#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
1952pub mod ERROR_SRC {
1953pub const offset: u32 = 4;
1954pub const mask: u32 = 0x01 << offset;
1955pub mod R {}
1956pub mod W {}
1957pub mod RW {}
1958 }
1959#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
1960pub mod ERROR_DST {
1961pub const offset: u32 = 5;
1962pub const mask: u32 = 0x01 << offset;
1963pub mod R {}
1964pub mod W {}
1965pub mod RW {}
1966 }
1967#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
1968pub mod ERROR_PAGEFAULT {
1969pub const offset: u32 = 6;
1970pub const mask: u32 = 0x01 << offset;
1971pub mod R {}
1972pub mod W {}
1973pub mod RW {}
1974 }
1975#[doc = "Indicates the additional error codes for some of the error conditions."]
1976pub mod ERROR_CODE {
1977pub const offset: u32 = 16;
1978pub const mask: u32 = 0xff << offset;
1979pub mod R {}
1980pub mod W {}
1981pub mod RW {
1982#[doc = "Error is signalled because the next pointer is 0x00000000."]
1983pub const NEXT_CHAIN_IS_0: u32 = 0x01;
1984#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
1985pub const NO_CHAIN: u32 = 0x02;
1986#[doc = "Error is signalled because an error was reported when reading/writing the context buffer."]
1987pub const CONTEXT_ERROR: u32 = 0x03;
1988#[doc = "Error is signalled because an error was reported when reading/writing the payload."]
1989pub const PAYLOAD_ERROR: u32 = 0x04;
1990#[doc = "Error is signalled because the control packet specifies an invalid mode select (for example, blit + hash)."]
1991pub const INVALID_MODE: u32 = 0x05;
1992 }
1993 }
1994#[doc = "Indicates the tag from the last completed packet in the command structure."]
1995pub mod TAG {
1996pub const offset: u32 = 24;
1997pub const mask: u32 = 0xff << offset;
1998pub mod R {}
1999pub mod W {}
2000pub mod RW {}
2001 }
2002}
2003#[doc = "DCP channel 1 status register"]
2004pub mod CH1STAT_TOG {
2005#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2006pub mod HASH_MISMATCH {
2007pub const offset: u32 = 1;
2008pub const mask: u32 = 0x01 << offset;
2009pub mod R {}
2010pub mod W {}
2011pub mod RW {}
2012 }
2013#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2014pub mod ERROR_SETUP {
2015pub const offset: u32 = 2;
2016pub const mask: u32 = 0x01 << offset;
2017pub mod R {}
2018pub mod W {}
2019pub mod RW {}
2020 }
2021#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet paylaod"]
2022pub mod ERROR_PACKET {
2023pub const offset: u32 = 3;
2024pub const mask: u32 = 0x01 << offset;
2025pub mod R {}
2026pub mod W {}
2027pub mod RW {}
2028 }
2029#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2030pub mod ERROR_SRC {
2031pub const offset: u32 = 4;
2032pub const mask: u32 = 0x01 << offset;
2033pub mod R {}
2034pub mod W {}
2035pub mod RW {}
2036 }
2037#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2038pub mod ERROR_DST {
2039pub const offset: u32 = 5;
2040pub const mask: u32 = 0x01 << offset;
2041pub mod R {}
2042pub mod W {}
2043pub mod RW {}
2044 }
2045#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2046pub mod ERROR_PAGEFAULT {
2047pub const offset: u32 = 6;
2048pub const mask: u32 = 0x01 << offset;
2049pub mod R {}
2050pub mod W {}
2051pub mod RW {}
2052 }
2053#[doc = "Indicates the additional error codes for some of the error conditions."]
2054pub mod ERROR_CODE {
2055pub const offset: u32 = 16;
2056pub const mask: u32 = 0xff << offset;
2057pub mod R {}
2058pub mod W {}
2059pub mod RW {
2060#[doc = "Error is signalled because the next pointer is 0x00000000."]
2061pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2062#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2063pub const NO_CHAIN: u32 = 0x02;
2064#[doc = "Error is signalled because an error was reported when reading/writing the context buffer."]
2065pub const CONTEXT_ERROR: u32 = 0x03;
2066#[doc = "Error is signalled because an error was reported when reading/writing the payload."]
2067pub const PAYLOAD_ERROR: u32 = 0x04;
2068#[doc = "Error is signalled because the control packet specifies an invalid mode select (for example, blit + hash)."]
2069pub const INVALID_MODE: u32 = 0x05;
2070 }
2071 }
2072#[doc = "Indicates the tag from the last completed packet in the command structure."]
2073pub mod TAG {
2074pub const offset: u32 = 24;
2075pub const mask: u32 = 0xff << offset;
2076pub mod R {}
2077pub mod W {}
2078pub mod RW {}
2079 }
2080}
2081#[doc = "DCP channel 1 options register"]
2082pub mod CH1OPTS {
2083#[doc = "This field indicates the recovery time for the channel"]
2084pub mod RECOVERY_TIMER {
2085pub const offset: u32 = 0;
2086pub const mask: u32 = 0xffff << offset;
2087pub mod R {}
2088pub mod W {}
2089pub mod RW {}
2090 }
2091}
2092#[doc = "DCP channel 1 options register"]
2093pub mod CH1OPTS_SET {
2094#[doc = "This field indicates the recovery time for the channel"]
2095pub mod RECOVERY_TIMER {
2096pub const offset: u32 = 0;
2097pub const mask: u32 = 0xffff << offset;
2098pub mod R {}
2099pub mod W {}
2100pub mod RW {}
2101 }
2102}
2103#[doc = "DCP channel 1 options register"]
2104pub mod CH1OPTS_CLR {
2105#[doc = "This field indicates the recovery time for the channel"]
2106pub mod RECOVERY_TIMER {
2107pub const offset: u32 = 0;
2108pub const mask: u32 = 0xffff << offset;
2109pub mod R {}
2110pub mod W {}
2111pub mod RW {}
2112 }
2113}
2114#[doc = "DCP channel 1 options register"]
2115pub mod CH1OPTS_TOG {
2116#[doc = "This field indicates the recovery time for the channel"]
2117pub mod RECOVERY_TIMER {
2118pub const offset: u32 = 0;
2119pub const mask: u32 = 0xffff << offset;
2120pub mod R {}
2121pub mod W {}
2122pub mod RW {}
2123 }
2124}
2125#[doc = "DCP channel 2 command pointer address register"]
2126pub mod CH2CMDPTR {
2127#[doc = "Pointer to the descriptor structure to be processed for channel 2."]
2128pub mod ADDR {
2129pub const offset: u32 = 0;
2130pub const mask: u32 = 0xffff_ffff << offset;
2131pub mod R {}
2132pub mod W {}
2133pub mod RW {}
2134 }
2135}
2136#[doc = "DCP channel 2 semaphore register"]
2137pub mod CH2SEMA {
2138#[doc = "The value written to this field is added to the semaphore count in an atomic way, such that the simultaneous software adds and DCP hardware substracts happening on the same clock are protected"]
2139pub mod INCREMENT {
2140pub const offset: u32 = 0;
2141pub const mask: u32 = 0xff << offset;
2142pub mod R {}
2143pub mod W {}
2144pub mod RW {}
2145 }
2146#[doc = "This read-only field shows the current (instantaneous) value of the semaphore counter."]
2147pub mod VALUE {
2148pub const offset: u32 = 16;
2149pub const mask: u32 = 0xff << offset;
2150pub mod R {}
2151pub mod W {}
2152pub mod RW {}
2153 }
2154}
2155#[doc = "DCP channel 2 status register"]
2156pub mod CH2STAT {
2157#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2158pub mod HASH_MISMATCH {
2159pub const offset: u32 = 1;
2160pub const mask: u32 = 0x01 << offset;
2161pub mod R {}
2162pub mod W {}
2163pub mod RW {}
2164 }
2165#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2166pub mod ERROR_SETUP {
2167pub const offset: u32 = 2;
2168pub const mask: u32 = 0x01 << offset;
2169pub mod R {}
2170pub mod W {}
2171pub mod RW {}
2172 }
2173#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet paylaod"]
2174pub mod ERROR_PACKET {
2175pub const offset: u32 = 3;
2176pub const mask: u32 = 0x01 << offset;
2177pub mod R {}
2178pub mod W {}
2179pub mod RW {}
2180 }
2181#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2182pub mod ERROR_SRC {
2183pub const offset: u32 = 4;
2184pub const mask: u32 = 0x01 << offset;
2185pub mod R {}
2186pub mod W {}
2187pub mod RW {}
2188 }
2189#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2190pub mod ERROR_DST {
2191pub const offset: u32 = 5;
2192pub const mask: u32 = 0x01 << offset;
2193pub mod R {}
2194pub mod W {}
2195pub mod RW {}
2196 }
2197#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2198pub mod ERROR_PAGEFAULT {
2199pub const offset: u32 = 6;
2200pub const mask: u32 = 0x01 << offset;
2201pub mod R {}
2202pub mod W {}
2203pub mod RW {}
2204 }
2205#[doc = "Indicates additional error codes for some of the error conditions."]
2206pub mod ERROR_CODE {
2207pub const offset: u32 = 16;
2208pub const mask: u32 = 0xff << offset;
2209pub mod R {}
2210pub mod W {}
2211pub mod RW {
2212#[doc = "Error is signalled because the next pointer is 0x00000000."]
2213pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2214#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2215pub const NO_CHAIN: u32 = 0x02;
2216#[doc = "Error is signalled because an error was reported while reading/writing the context buffer."]
2217pub const CONTEXT_ERROR: u32 = 0x03;
2218#[doc = "Error is signalled because an error was reported while reading/writing the payload."]
2219pub const PAYLOAD_ERROR: u32 = 0x04;
2220#[doc = "Error is signalled because the control packet specifies an invalid mode select (for instance, blit + hash)."]
2221pub const INVALID_MODE: u32 = 0x05;
2222 }
2223 }
2224#[doc = "Indicates the tag from the last completed packet in the command structure."]
2225pub mod TAG {
2226pub const offset: u32 = 24;
2227pub const mask: u32 = 0xff << offset;
2228pub mod R {}
2229pub mod W {}
2230pub mod RW {}
2231 }
2232}
2233#[doc = "DCP channel 2 status register"]
2234pub mod CH2STAT_SET {
2235#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2236pub mod HASH_MISMATCH {
2237pub const offset: u32 = 1;
2238pub const mask: u32 = 0x01 << offset;
2239pub mod R {}
2240pub mod W {}
2241pub mod RW {}
2242 }
2243#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2244pub mod ERROR_SETUP {
2245pub const offset: u32 = 2;
2246pub const mask: u32 = 0x01 << offset;
2247pub mod R {}
2248pub mod W {}
2249pub mod RW {}
2250 }
2251#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet paylaod"]
2252pub mod ERROR_PACKET {
2253pub const offset: u32 = 3;
2254pub const mask: u32 = 0x01 << offset;
2255pub mod R {}
2256pub mod W {}
2257pub mod RW {}
2258 }
2259#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2260pub mod ERROR_SRC {
2261pub const offset: u32 = 4;
2262pub const mask: u32 = 0x01 << offset;
2263pub mod R {}
2264pub mod W {}
2265pub mod RW {}
2266 }
2267#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2268pub mod ERROR_DST {
2269pub const offset: u32 = 5;
2270pub const mask: u32 = 0x01 << offset;
2271pub mod R {}
2272pub mod W {}
2273pub mod RW {}
2274 }
2275#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2276pub mod ERROR_PAGEFAULT {
2277pub const offset: u32 = 6;
2278pub const mask: u32 = 0x01 << offset;
2279pub mod R {}
2280pub mod W {}
2281pub mod RW {}
2282 }
2283#[doc = "Indicates additional error codes for some of the error conditions."]
2284pub mod ERROR_CODE {
2285pub const offset: u32 = 16;
2286pub const mask: u32 = 0xff << offset;
2287pub mod R {}
2288pub mod W {}
2289pub mod RW {
2290#[doc = "Error is signalled because the next pointer is 0x00000000."]
2291pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2292#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2293pub const NO_CHAIN: u32 = 0x02;
2294#[doc = "Error is signalled because an error was reported while reading/writing the context buffer."]
2295pub const CONTEXT_ERROR: u32 = 0x03;
2296#[doc = "Error is signalled because an error was reported while reading/writing the payload."]
2297pub const PAYLOAD_ERROR: u32 = 0x04;
2298#[doc = "Error is signalled because the control packet specifies an invalid mode select (for instance, blit + hash)."]
2299pub const INVALID_MODE: u32 = 0x05;
2300 }
2301 }
2302#[doc = "Indicates the tag from the last completed packet in the command structure."]
2303pub mod TAG {
2304pub const offset: u32 = 24;
2305pub const mask: u32 = 0xff << offset;
2306pub mod R {}
2307pub mod W {}
2308pub mod RW {}
2309 }
2310}
2311#[doc = "DCP channel 2 status register"]
2312pub mod CH2STAT_CLR {
2313#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2314pub mod HASH_MISMATCH {
2315pub const offset: u32 = 1;
2316pub const mask: u32 = 0x01 << offset;
2317pub mod R {}
2318pub mod W {}
2319pub mod RW {}
2320 }
2321#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2322pub mod ERROR_SETUP {
2323pub const offset: u32 = 2;
2324pub const mask: u32 = 0x01 << offset;
2325pub mod R {}
2326pub mod W {}
2327pub mod RW {}
2328 }
2329#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet paylaod"]
2330pub mod ERROR_PACKET {
2331pub const offset: u32 = 3;
2332pub const mask: u32 = 0x01 << offset;
2333pub mod R {}
2334pub mod W {}
2335pub mod RW {}
2336 }
2337#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2338pub mod ERROR_SRC {
2339pub const offset: u32 = 4;
2340pub const mask: u32 = 0x01 << offset;
2341pub mod R {}
2342pub mod W {}
2343pub mod RW {}
2344 }
2345#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2346pub mod ERROR_DST {
2347pub const offset: u32 = 5;
2348pub const mask: u32 = 0x01 << offset;
2349pub mod R {}
2350pub mod W {}
2351pub mod RW {}
2352 }
2353#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2354pub mod ERROR_PAGEFAULT {
2355pub const offset: u32 = 6;
2356pub const mask: u32 = 0x01 << offset;
2357pub mod R {}
2358pub mod W {}
2359pub mod RW {}
2360 }
2361#[doc = "Indicates additional error codes for some of the error conditions."]
2362pub mod ERROR_CODE {
2363pub const offset: u32 = 16;
2364pub const mask: u32 = 0xff << offset;
2365pub mod R {}
2366pub mod W {}
2367pub mod RW {
2368#[doc = "Error is signalled because the next pointer is 0x00000000."]
2369pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2370#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2371pub const NO_CHAIN: u32 = 0x02;
2372#[doc = "Error is signalled because an error was reported while reading/writing the context buffer."]
2373pub const CONTEXT_ERROR: u32 = 0x03;
2374#[doc = "Error is signalled because an error was reported while reading/writing the payload."]
2375pub const PAYLOAD_ERROR: u32 = 0x04;
2376#[doc = "Error is signalled because the control packet specifies an invalid mode select (for instance, blit + hash)."]
2377pub const INVALID_MODE: u32 = 0x05;
2378 }
2379 }
2380#[doc = "Indicates the tag from the last completed packet in the command structure."]
2381pub mod TAG {
2382pub const offset: u32 = 24;
2383pub const mask: u32 = 0xff << offset;
2384pub mod R {}
2385pub mod W {}
2386pub mod RW {}
2387 }
2388}
2389#[doc = "DCP channel 2 status register"]
2390pub mod CH2STAT_TOG {
2391#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2392pub mod HASH_MISMATCH {
2393pub const offset: u32 = 1;
2394pub const mask: u32 = 0x01 << offset;
2395pub mod R {}
2396pub mod W {}
2397pub mod RW {}
2398 }
2399#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2400pub mod ERROR_SETUP {
2401pub const offset: u32 = 2;
2402pub const mask: u32 = 0x01 << offset;
2403pub mod R {}
2404pub mod W {}
2405pub mod RW {}
2406 }
2407#[doc = "This bit indicates that a bus error occurred when reading the packet or payload, or when writing the status back to the packet paylaod"]
2408pub mod ERROR_PACKET {
2409pub const offset: u32 = 3;
2410pub const mask: u32 = 0x01 << offset;
2411pub mod R {}
2412pub mod W {}
2413pub mod RW {}
2414 }
2415#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2416pub mod ERROR_SRC {
2417pub const offset: u32 = 4;
2418pub const mask: u32 = 0x01 << offset;
2419pub mod R {}
2420pub mod W {}
2421pub mod RW {}
2422 }
2423#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2424pub mod ERROR_DST {
2425pub const offset: u32 = 5;
2426pub const mask: u32 = 0x01 << offset;
2427pub mod R {}
2428pub mod W {}
2429pub mod RW {}
2430 }
2431#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2432pub mod ERROR_PAGEFAULT {
2433pub const offset: u32 = 6;
2434pub const mask: u32 = 0x01 << offset;
2435pub mod R {}
2436pub mod W {}
2437pub mod RW {}
2438 }
2439#[doc = "Indicates additional error codes for some of the error conditions."]
2440pub mod ERROR_CODE {
2441pub const offset: u32 = 16;
2442pub const mask: u32 = 0xff << offset;
2443pub mod R {}
2444pub mod W {}
2445pub mod RW {
2446#[doc = "Error is signalled because the next pointer is 0x00000000."]
2447pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2448#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2449pub const NO_CHAIN: u32 = 0x02;
2450#[doc = "Error is signalled because an error was reported while reading/writing the context buffer."]
2451pub const CONTEXT_ERROR: u32 = 0x03;
2452#[doc = "Error is signalled because an error was reported while reading/writing the payload."]
2453pub const PAYLOAD_ERROR: u32 = 0x04;
2454#[doc = "Error is signalled because the control packet specifies an invalid mode select (for instance, blit + hash)."]
2455pub const INVALID_MODE: u32 = 0x05;
2456 }
2457 }
2458#[doc = "Indicates the tag from the last completed packet in the command structure."]
2459pub mod TAG {
2460pub const offset: u32 = 24;
2461pub const mask: u32 = 0xff << offset;
2462pub mod R {}
2463pub mod W {}
2464pub mod RW {}
2465 }
2466}
2467#[doc = "DCP channel 2 options register"]
2468pub mod CH2OPTS {
2469#[doc = "This field indicates the recovery time for the channel"]
2470pub mod RECOVERY_TIMER {
2471pub const offset: u32 = 0;
2472pub const mask: u32 = 0xffff << offset;
2473pub mod R {}
2474pub mod W {}
2475pub mod RW {}
2476 }
2477}
2478#[doc = "DCP channel 2 options register"]
2479pub mod CH2OPTS_SET {
2480#[doc = "This field indicates the recovery time for the channel"]
2481pub mod RECOVERY_TIMER {
2482pub const offset: u32 = 0;
2483pub const mask: u32 = 0xffff << offset;
2484pub mod R {}
2485pub mod W {}
2486pub mod RW {}
2487 }
2488}
2489#[doc = "DCP channel 2 options register"]
2490pub mod CH2OPTS_CLR {
2491#[doc = "This field indicates the recovery time for the channel"]
2492pub mod RECOVERY_TIMER {
2493pub const offset: u32 = 0;
2494pub const mask: u32 = 0xffff << offset;
2495pub mod R {}
2496pub mod W {}
2497pub mod RW {}
2498 }
2499}
2500#[doc = "DCP channel 2 options register"]
2501pub mod CH2OPTS_TOG {
2502#[doc = "This field indicates the recovery time for the channel"]
2503pub mod RECOVERY_TIMER {
2504pub const offset: u32 = 0;
2505pub const mask: u32 = 0xffff << offset;
2506pub mod R {}
2507pub mod W {}
2508pub mod RW {}
2509 }
2510}
2511#[doc = "DCP channel 3 command pointer address register"]
2512pub mod CH3CMDPTR {
2513#[doc = "Pointer to the descriptor structure to be processed for channel 3."]
2514pub mod ADDR {
2515pub const offset: u32 = 0;
2516pub const mask: u32 = 0xffff_ffff << offset;
2517pub mod R {}
2518pub mod W {}
2519pub mod RW {}
2520 }
2521}
2522#[doc = "DCP channel 3 semaphore register"]
2523pub mod CH3SEMA {
2524#[doc = "The value written to this field is added to the semaphore count in an atomic way, such that the simultaneous software adds and DCP hardware substracts happening on the same clock are protected"]
2525pub mod INCREMENT {
2526pub const offset: u32 = 0;
2527pub const mask: u32 = 0xff << offset;
2528pub mod R {}
2529pub mod W {}
2530pub mod RW {}
2531 }
2532#[doc = "This read-only field shows the current (instantaneous) value of the semaphore counter."]
2533pub mod VALUE {
2534pub const offset: u32 = 16;
2535pub const mask: u32 = 0xff << offset;
2536pub mod R {}
2537pub mod W {}
2538pub mod RW {}
2539 }
2540}
2541#[doc = "DCP channel 3 status register"]
2542pub mod CH3STAT {
2543#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2544pub mod HASH_MISMATCH {
2545pub const offset: u32 = 1;
2546pub const mask: u32 = 0x01 << offset;
2547pub mod R {}
2548pub mod W {}
2549pub mod RW {}
2550 }
2551#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2552pub mod ERROR_SETUP {
2553pub const offset: u32 = 2;
2554pub const mask: u32 = 0x01 << offset;
2555pub mod R {}
2556pub mod W {}
2557pub mod RW {}
2558 }
2559#[doc = "This bit indicates that a bus error occurred when reading the packet or payload or when writing the status back to the packet paylaod"]
2560pub mod ERROR_PACKET {
2561pub const offset: u32 = 3;
2562pub const mask: u32 = 0x01 << offset;
2563pub mod R {}
2564pub mod W {}
2565pub mod RW {}
2566 }
2567#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2568pub mod ERROR_SRC {
2569pub const offset: u32 = 4;
2570pub const mask: u32 = 0x01 << offset;
2571pub mod R {}
2572pub mod W {}
2573pub mod RW {}
2574 }
2575#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2576pub mod ERROR_DST {
2577pub const offset: u32 = 5;
2578pub const mask: u32 = 0x01 << offset;
2579pub mod R {}
2580pub mod W {}
2581pub mod RW {}
2582 }
2583#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2584pub mod ERROR_PAGEFAULT {
2585pub const offset: u32 = 6;
2586pub const mask: u32 = 0x01 << offset;
2587pub mod R {}
2588pub mod W {}
2589pub mod RW {}
2590 }
2591#[doc = "Indicates additional error codes for some of the error conditions."]
2592pub mod ERROR_CODE {
2593pub const offset: u32 = 16;
2594pub const mask: u32 = 0xff << offset;
2595pub mod R {}
2596pub mod W {}
2597pub mod RW {
2598#[doc = "Error is signalled because the next pointer is 0x00000000."]
2599pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2600#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2601pub const NO_CHAIN: u32 = 0x02;
2602#[doc = "Error is signalled because an error was reported while reading/writing the context buffer."]
2603pub const CONTEXT_ERROR: u32 = 0x03;
2604#[doc = "Error is signalled because an error was reported while reading/writing the payload."]
2605pub const PAYLOAD_ERROR: u32 = 0x04;
2606#[doc = "Error is signalled because the control packet specifies an invalid mode select (for example, blit + hash)."]
2607pub const INVALID_MODE: u32 = 0x05;
2608 }
2609 }
2610#[doc = "Indicates the tag from the last completed packet in the command structure."]
2611pub mod TAG {
2612pub const offset: u32 = 24;
2613pub const mask: u32 = 0xff << offset;
2614pub mod R {}
2615pub mod W {}
2616pub mod RW {}
2617 }
2618}
2619#[doc = "DCP channel 3 status register"]
2620pub mod CH3STAT_SET {
2621#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2622pub mod HASH_MISMATCH {
2623pub const offset: u32 = 1;
2624pub const mask: u32 = 0x01 << offset;
2625pub mod R {}
2626pub mod W {}
2627pub mod RW {}
2628 }
2629#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2630pub mod ERROR_SETUP {
2631pub const offset: u32 = 2;
2632pub const mask: u32 = 0x01 << offset;
2633pub mod R {}
2634pub mod W {}
2635pub mod RW {}
2636 }
2637#[doc = "This bit indicates that a bus error occurred when reading the packet or payload or when writing the status back to the packet paylaod"]
2638pub mod ERROR_PACKET {
2639pub const offset: u32 = 3;
2640pub const mask: u32 = 0x01 << offset;
2641pub mod R {}
2642pub mod W {}
2643pub mod RW {}
2644 }
2645#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2646pub mod ERROR_SRC {
2647pub const offset: u32 = 4;
2648pub const mask: u32 = 0x01 << offset;
2649pub mod R {}
2650pub mod W {}
2651pub mod RW {}
2652 }
2653#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2654pub mod ERROR_DST {
2655pub const offset: u32 = 5;
2656pub const mask: u32 = 0x01 << offset;
2657pub mod R {}
2658pub mod W {}
2659pub mod RW {}
2660 }
2661#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2662pub mod ERROR_PAGEFAULT {
2663pub const offset: u32 = 6;
2664pub const mask: u32 = 0x01 << offset;
2665pub mod R {}
2666pub mod W {}
2667pub mod RW {}
2668 }
2669#[doc = "Indicates additional error codes for some of the error conditions."]
2670pub mod ERROR_CODE {
2671pub const offset: u32 = 16;
2672pub const mask: u32 = 0xff << offset;
2673pub mod R {}
2674pub mod W {}
2675pub mod RW {
2676#[doc = "Error is signalled because the next pointer is 0x00000000."]
2677pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2678#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2679pub const NO_CHAIN: u32 = 0x02;
2680#[doc = "Error is signalled because an error was reported while reading/writing the context buffer."]
2681pub const CONTEXT_ERROR: u32 = 0x03;
2682#[doc = "Error is signalled because an error was reported while reading/writing the payload."]
2683pub const PAYLOAD_ERROR: u32 = 0x04;
2684#[doc = "Error is signalled because the control packet specifies an invalid mode select (for example, blit + hash)."]
2685pub const INVALID_MODE: u32 = 0x05;
2686 }
2687 }
2688#[doc = "Indicates the tag from the last completed packet in the command structure."]
2689pub mod TAG {
2690pub const offset: u32 = 24;
2691pub const mask: u32 = 0xff << offset;
2692pub mod R {}
2693pub mod W {}
2694pub mod RW {}
2695 }
2696}
2697#[doc = "DCP channel 3 status register"]
2698pub mod CH3STAT_CLR {
2699#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2700pub mod HASH_MISMATCH {
2701pub const offset: u32 = 1;
2702pub const mask: u32 = 0x01 << offset;
2703pub mod R {}
2704pub mod W {}
2705pub mod RW {}
2706 }
2707#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2708pub mod ERROR_SETUP {
2709pub const offset: u32 = 2;
2710pub const mask: u32 = 0x01 << offset;
2711pub mod R {}
2712pub mod W {}
2713pub mod RW {}
2714 }
2715#[doc = "This bit indicates that a bus error occurred when reading the packet or payload or when writing the status back to the packet paylaod"]
2716pub mod ERROR_PACKET {
2717pub const offset: u32 = 3;
2718pub const mask: u32 = 0x01 << offset;
2719pub mod R {}
2720pub mod W {}
2721pub mod RW {}
2722 }
2723#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2724pub mod ERROR_SRC {
2725pub const offset: u32 = 4;
2726pub const mask: u32 = 0x01 << offset;
2727pub mod R {}
2728pub mod W {}
2729pub mod RW {}
2730 }
2731#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2732pub mod ERROR_DST {
2733pub const offset: u32 = 5;
2734pub const mask: u32 = 0x01 << offset;
2735pub mod R {}
2736pub mod W {}
2737pub mod RW {}
2738 }
2739#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2740pub mod ERROR_PAGEFAULT {
2741pub const offset: u32 = 6;
2742pub const mask: u32 = 0x01 << offset;
2743pub mod R {}
2744pub mod W {}
2745pub mod RW {}
2746 }
2747#[doc = "Indicates additional error codes for some of the error conditions."]
2748pub mod ERROR_CODE {
2749pub const offset: u32 = 16;
2750pub const mask: u32 = 0xff << offset;
2751pub mod R {}
2752pub mod W {}
2753pub mod RW {
2754#[doc = "Error is signalled because the next pointer is 0x00000000."]
2755pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2756#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2757pub const NO_CHAIN: u32 = 0x02;
2758#[doc = "Error is signalled because an error was reported while reading/writing the context buffer."]
2759pub const CONTEXT_ERROR: u32 = 0x03;
2760#[doc = "Error is signalled because an error was reported while reading/writing the payload."]
2761pub const PAYLOAD_ERROR: u32 = 0x04;
2762#[doc = "Error is signalled because the control packet specifies an invalid mode select (for example, blit + hash)."]
2763pub const INVALID_MODE: u32 = 0x05;
2764 }
2765 }
2766#[doc = "Indicates the tag from the last completed packet in the command structure."]
2767pub mod TAG {
2768pub const offset: u32 = 24;
2769pub const mask: u32 = 0xff << offset;
2770pub mod R {}
2771pub mod W {}
2772pub mod RW {}
2773 }
2774}
2775#[doc = "DCP channel 3 status register"]
2776pub mod CH3STAT_TOG {
2777#[doc = "This bit indicates that a hashing check operation is mismatched for the control packets that enable the HASH_CHECK bit"]
2778pub mod HASH_MISMATCH {
2779pub const offset: u32 = 1;
2780pub const mask: u32 = 0x01 << offset;
2781pub mod R {}
2782pub mod W {}
2783pub mod RW {}
2784 }
2785#[doc = "This bit indicates that the hardware detected an invalid programming configuration (such as a buffer length that is not a multiple of the natural data size for the operation)"]
2786pub mod ERROR_SETUP {
2787pub const offset: u32 = 2;
2788pub const mask: u32 = 0x01 << offset;
2789pub mod R {}
2790pub mod W {}
2791pub mod RW {}
2792 }
2793#[doc = "This bit indicates that a bus error occurred when reading the packet or payload or when writing the status back to the packet paylaod"]
2794pub mod ERROR_PACKET {
2795pub const offset: u32 = 3;
2796pub const mask: u32 = 0x01 << offset;
2797pub mod R {}
2798pub mod W {}
2799pub mod RW {}
2800 }
2801#[doc = "This bit indicates that a bus error occurred when reading from the source buffer"]
2802pub mod ERROR_SRC {
2803pub const offset: u32 = 4;
2804pub const mask: u32 = 0x01 << offset;
2805pub mod R {}
2806pub mod W {}
2807pub mod RW {}
2808 }
2809#[doc = "This bit indicates that a bus error occurred when storing to the destination buffer"]
2810pub mod ERROR_DST {
2811pub const offset: u32 = 5;
2812pub const mask: u32 = 0x01 << offset;
2813pub mod R {}
2814pub mod W {}
2815pub mod RW {}
2816 }
2817#[doc = "This bit indicates that a page fault occurred while converting a virtual address to a physical address"]
2818pub mod ERROR_PAGEFAULT {
2819pub const offset: u32 = 6;
2820pub const mask: u32 = 0x01 << offset;
2821pub mod R {}
2822pub mod W {}
2823pub mod RW {}
2824 }
2825#[doc = "Indicates additional error codes for some of the error conditions."]
2826pub mod ERROR_CODE {
2827pub const offset: u32 = 16;
2828pub const mask: u32 = 0xff << offset;
2829pub mod R {}
2830pub mod W {}
2831pub mod RW {
2832#[doc = "Error is signalled because the next pointer is 0x00000000."]
2833pub const NEXT_CHAIN_IS_0: u32 = 0x01;
2834#[doc = "Error is signalled because the semaphore is of a non-zero value and neither of the chain bits is set."]
2835pub const NO_CHAIN: u32 = 0x02;
2836#[doc = "Error is signalled because an error was reported while reading/writing the context buffer."]
2837pub const CONTEXT_ERROR: u32 = 0x03;
2838#[doc = "Error is signalled because an error was reported while reading/writing the payload."]
2839pub const PAYLOAD_ERROR: u32 = 0x04;
2840#[doc = "Error is signalled because the control packet specifies an invalid mode select (for example, blit + hash)."]
2841pub const INVALID_MODE: u32 = 0x05;
2842 }
2843 }
2844#[doc = "Indicates the tag from the last completed packet in the command structure."]
2845pub mod TAG {
2846pub const offset: u32 = 24;
2847pub const mask: u32 = 0xff << offset;
2848pub mod R {}
2849pub mod W {}
2850pub mod RW {}
2851 }
2852}
2853#[doc = "DCP channel 3 options register"]
2854pub mod CH3OPTS {
2855#[doc = "This field indicates the recovery time for the channel"]
2856pub mod RECOVERY_TIMER {
2857pub const offset: u32 = 0;
2858pub const mask: u32 = 0xffff << offset;
2859pub mod R {}
2860pub mod W {}
2861pub mod RW {}
2862 }
2863}
2864#[doc = "DCP channel 3 options register"]
2865pub mod CH3OPTS_SET {
2866#[doc = "This field indicates the recovery time for the channel"]
2867pub mod RECOVERY_TIMER {
2868pub const offset: u32 = 0;
2869pub const mask: u32 = 0xffff << offset;
2870pub mod R {}
2871pub mod W {}
2872pub mod RW {}
2873 }
2874}
2875#[doc = "DCP channel 3 options register"]
2876pub mod CH3OPTS_CLR {
2877#[doc = "This field indicates the recovery time for the channel"]
2878pub mod RECOVERY_TIMER {
2879pub const offset: u32 = 0;
2880pub const mask: u32 = 0xffff << offset;
2881pub mod R {}
2882pub mod W {}
2883pub mod RW {}
2884 }
2885}
2886#[doc = "DCP channel 3 options register"]
2887pub mod CH3OPTS_TOG {
2888#[doc = "This field indicates the recovery time for the channel"]
2889pub mod RECOVERY_TIMER {
2890pub const offset: u32 = 0;
2891pub const mask: u32 = 0xffff << offset;
2892pub mod R {}
2893pub mod W {}
2894pub mod RW {}
2895 }
2896}
2897#[doc = "DCP debug select register"]
2898pub mod DBGSELECT {
2899#[doc = "Selects a value to read via the debug data register."]
2900pub mod INDEX {
2901pub const offset: u32 = 0;
2902pub const mask: u32 = 0xff << offset;
2903pub mod R {}
2904pub mod W {}
2905pub mod RW {
2906#[doc = "CONTROL"]
2907pub const CONTROL: u32 = 0x01;
2908#[doc = "OTPKEY0"]
2909pub const OTPKEY0: u32 = 0x10;
2910#[doc = "OTPKEY1"]
2911pub const OTPKEY1: u32 = 0x11;
2912#[doc = "OTPKEY2"]
2913pub const OTPKEY2: u32 = 0x12;
2914#[doc = "OTPKEY3"]
2915pub const OTPKEY3: u32 = 0x13;
2916 }
2917 }
2918}
2919#[doc = "DCP debug data register"]
2920pub mod DBGDATA {
2921#[doc = "Debug data"]
2922pub mod DATA {
2923pub const offset: u32 = 0;
2924pub const mask: u32 = 0xffff_ffff << offset;
2925pub mod R {}
2926pub mod W {}
2927pub mod RW {}
2928 }
2929}
2930#[doc = "DCP page table register"]
2931pub mod PAGETABLE {
2932#[doc = "Page table enable control"]
2933pub mod ENABLE {
2934pub const offset: u32 = 0;
2935pub const mask: u32 = 0x01 << offset;
2936pub mod R {}
2937pub mod W {}
2938pub mod RW {}
2939 }
2940#[doc = "Page table flush control. To flush the TLB, write this bit to 1 and then back to 0."]
2941pub mod FLUSH {
2942pub const offset: u32 = 1;
2943pub const mask: u32 = 0x01 << offset;
2944pub mod R {}
2945pub mod W {}
2946pub mod RW {}
2947 }
2948#[doc = "Page table base address"]
2949pub mod BASE {
2950pub const offset: u32 = 2;
2951pub const mask: u32 = 0x3fff_ffff << offset;
2952pub mod R {}
2953pub mod W {}
2954pub mod RW {}
2955 }
2956}
2957#[doc = "DCP version register"]
2958pub mod VERSION {
2959#[doc = "Fixed read-only value reflecting the stepping of the version of the design implementation."]
2960pub mod STEP {
2961pub const offset: u32 = 0;
2962pub const mask: u32 = 0xffff << offset;
2963pub mod R {}
2964pub mod W {}
2965pub mod RW {}
2966 }
2967#[doc = "Fixed read-only value reflecting the MINOR version of the design implementation."]
2968pub mod MINOR {
2969pub const offset: u32 = 16;
2970pub const mask: u32 = 0xff << offset;
2971pub mod R {}
2972pub mod W {}
2973pub mod RW {}
2974 }
2975#[doc = "Fixed read-only value reflecting the MAJOR version of the design implementation."]
2976pub mod MAJOR {
2977pub const offset: u32 = 24;
2978pub const mask: u32 = 0xff << offset;
2979pub mod R {}
2980pub mod W {}
2981pub mod RW {}
2982 }
2983}