1#[doc = "SRC"]
2#[repr(C)]
3pub struct RegisterBlock {
4#[doc = "SRC Control Register"]
5pub SCR: crate::RWRegister<u32>,
6#[doc = "SRC Boot Mode Register 1"]
7pub SBMR1: crate::RORegister<u32>,
8#[doc = "SRC Reset Status Register"]
9pub SRSR: crate::RWRegister<u32>,
10 _reserved0: [u8; 0x10],
11#[doc = "SRC Boot Mode Register 2"]
12pub SBMR2: crate::RORegister<u32>,
13#[doc = "SRC General Purpose Register 1"]
14pub GPR1: crate::RWRegister<u32>,
15#[doc = "SRC General Purpose Register 2"]
16pub GPR2: crate::RWRegister<u32>,
17#[doc = "SRC General Purpose Register 3"]
18pub GPR3: crate::RWRegister<u32>,
19#[doc = "SRC General Purpose Register 4"]
20pub GPR4: crate::RWRegister<u32>,
21#[doc = "SRC General Purpose Register 5"]
22pub GPR5: crate::RWRegister<u32>,
23#[doc = "SRC General Purpose Register 6"]
24pub GPR6: crate::RWRegister<u32>,
25#[doc = "SRC General Purpose Register 7"]
26pub GPR7: crate::RWRegister<u32>,
27#[doc = "SRC General Purpose Register 8"]
28pub GPR8: crate::RWRegister<u32>,
29#[doc = "SRC General Purpose Register 9"]
30pub GPR9: crate::RORegister<u32>,
31#[doc = "SRC General Purpose Register 10"]
32pub GPR10: crate::RWRegister<u32>,
33}
34#[doc = "SRC Control Register"]
35pub mod SCR {
36#[doc = "lockup reset enable bit"]
37pub mod LOCKUP_RST {
38pub const offset: u32 = 4;
39pub const mask: u32 = 0x01 << offset;
40pub mod R {}
41pub mod W {}
42pub mod RW {
43#[doc = "disabled"]
44pub const LOCKUP_RST_0: u32 = 0;
45#[doc = "enabled"]
46pub const LOCKUP_RST_1: u32 = 0x01;
47 }
48 }
49#[doc = "Mask wdog_rst_b source"]
50pub mod MASK_WDOG_RST {
51pub const offset: u32 = 7;
52pub const mask: u32 = 0x0f << offset;
53pub mod R {}
54pub mod W {}
55pub mod RW {
56#[doc = "wdog_rst_b is masked"]
57pub const MASK_WDOG_RST_5: u32 = 0x05;
58#[doc = "wdog_rst_b is not masked (default)"]
59pub const MASK_WDOG_RST_10: u32 = 0x0a;
60 }
61 }
62#[doc = "Software reset for core0 only"]
63pub mod CORE0_RST {
64pub const offset: u32 = 13;
65pub const mask: u32 = 0x01 << offset;
66pub mod R {}
67pub mod W {}
68pub mod RW {
69#[doc = "do not assert core0 reset"]
70pub const CORE0_RST_0: u32 = 0;
71#[doc = "assert core0 reset"]
72pub const CORE0_RST_1: u32 = 0x01;
73 }
74 }
75#[doc = "Software reset for core0 debug only"]
76pub mod CORE0_DBG_RST {
77pub const offset: u32 = 17;
78pub const mask: u32 = 0x01 << offset;
79pub mod R {}
80pub mod W {}
81pub mod RW {
82#[doc = "do not assert core0 debug reset"]
83pub const CORE0_DBG_RST_0: u32 = 0;
84#[doc = "assert core0 debug reset"]
85pub const CORE0_DBG_RST_1: u32 = 0x01;
86 }
87 }
88#[doc = "Do not assert debug resets after power gating event of core"]
89pub mod DBG_RST_MSK_PG {
90pub const offset: u32 = 25;
91pub const mask: u32 = 0x01 << offset;
92pub mod R {}
93pub mod W {}
94pub mod RW {
95#[doc = "do not mask core debug resets (debug resets will be asserted after power gating event)"]
96pub const DBG_RST_MSK_PG_0: u32 = 0;
97#[doc = "mask core debug resets (debug resets won't be asserted after power gating event)"]
98pub const DBG_RST_MSK_PG_1: u32 = 0x01;
99 }
100 }
101#[doc = "Mask wdog3_rst_b source"]
102pub mod MASK_WDOG3_RST {
103pub const offset: u32 = 28;
104pub const mask: u32 = 0x0f << offset;
105pub mod R {}
106pub mod W {}
107pub mod RW {
108#[doc = "wdog3_rst_b is masked"]
109pub const MASK_WDOG3_RST_5: u32 = 0x05;
110#[doc = "wdog3_rst_b is not masked"]
111pub const MASK_WDOG3_RST_10: u32 = 0x0a;
112 }
113 }
114}
115#[doc = "SRC Boot Mode Register 1"]
116pub mod SBMR1 {
117#[doc = "Refer to fusemap."]
118pub mod BOOT_CFG1 {
119pub const offset: u32 = 0;
120pub const mask: u32 = 0xff << offset;
121pub mod R {}
122pub mod W {}
123pub mod RW {}
124 }
125#[doc = "Refer to fusemap."]
126pub mod BOOT_CFG2 {
127pub const offset: u32 = 8;
128pub const mask: u32 = 0xff << offset;
129pub mod R {}
130pub mod W {}
131pub mod RW {}
132 }
133#[doc = "Refer to fusemap."]
134pub mod BOOT_CFG3 {
135pub const offset: u32 = 16;
136pub const mask: u32 = 0xff << offset;
137pub mod R {}
138pub mod W {}
139pub mod RW {}
140 }
141#[doc = "Refer to fusemap."]
142pub mod BOOT_CFG4 {
143pub const offset: u32 = 24;
144pub const mask: u32 = 0xff << offset;
145pub mod R {}
146pub mod W {}
147pub mod RW {}
148 }
149}
150#[doc = "SRC Reset Status Register"]
151pub mod SRSR {
152#[doc = "Indicates whether reset was the result of ipp_reset_b pin (Power-up sequence)"]
153pub mod IPP_RESET_B {
154pub const offset: u32 = 0;
155pub const mask: u32 = 0x01 << offset;
156pub mod R {}
157pub mod W {}
158pub mod RW {
159#[doc = "Reset is not a result of ipp_reset_b pin."]
160pub const IPP_RESET_B_0: u32 = 0;
161#[doc = "Reset is a result of ipp_reset_b pin."]
162pub const IPP_RESET_B_1: u32 = 0x01;
163 }
164 }
165#[doc = "Indicates a reset has been caused by CPU lockup."]
166 #[deprecated(since = "0.5.1", note = "Use LOCKUP_SYSRESETREQ")]
167pub mod LOCKUP {
168pub use super::LOCKUP_SYSRESETREQ::*;
169 }
170#[doc = "Indicates a reset has been caused by CPU lockup."]
171pub mod LOCKUP_SYSRESETREQ {
172pub const offset: u32 = 1;
173pub const mask: u32 = 0x01 << offset;
174pub mod R {}
175pub mod W {}
176pub mod RW {
177#[doc = "Reset is not a result of the mentioned case."]
178pub const LOCKUP_0: u32 = 0;
179#[doc = "Reset is a result of the mentioned case."]
180pub const LOCKUP_1: u32 = 0x01;
181 }
182 }
183#[doc = "Indicates whether the reset was the result of the csu_reset_b input."]
184pub mod CSU_RESET_B {
185pub const offset: u32 = 2;
186pub const mask: u32 = 0x01 << offset;
187pub mod R {}
188pub mod W {}
189pub mod RW {
190#[doc = "Reset is not a result of the csu_reset_b event."]
191pub const CSU_RESET_B_0: u32 = 0;
192#[doc = "Reset is a result of the csu_reset_b event."]
193pub const CSU_RESET_B_1: u32 = 0x01;
194 }
195 }
196#[doc = "Indicates whether the reset was the result of the ipp_user_reset_b qualified reset."]
197pub mod IPP_USER_RESET_B {
198pub const offset: u32 = 3;
199pub const mask: u32 = 0x01 << offset;
200pub mod R {}
201pub mod W {}
202pub mod RW {
203#[doc = "Reset is not a result of the ipp_user_reset_b qualified as COLD reset event."]
204pub const IPP_USER_RESET_B_0: u32 = 0;
205#[doc = "Reset is a result of the ipp_user_reset_b qualified as COLD reset event."]
206pub const IPP_USER_RESET_B_1: u32 = 0x01;
207 }
208 }
209#[doc = "IC Watchdog Time-out reset"]
210pub mod WDOG_RST_B {
211pub const offset: u32 = 4;
212pub const mask: u32 = 0x01 << offset;
213pub mod R {}
214pub mod W {}
215pub mod RW {
216#[doc = "Reset is not a result of the watchdog time-out event."]
217pub const WDOG_RST_B_0: u32 = 0;
218#[doc = "Reset is a result of the watchdog time-out event."]
219pub const WDOG_RST_B_1: u32 = 0x01;
220 }
221 }
222#[doc = "HIGH - Z JTAG reset. Indicates whether the reset was the result of HIGH-Z reset from JTAG."]
223pub mod JTAG_RST_B {
224pub const offset: u32 = 5;
225pub const mask: u32 = 0x01 << offset;
226pub mod R {}
227pub mod W {}
228pub mod RW {
229#[doc = "Reset is not a result of HIGH-Z reset from JTAG."]
230pub const JTAG_RST_B_0: u32 = 0;
231#[doc = "Reset is a result of HIGH-Z reset from JTAG."]
232pub const JTAG_RST_B_1: u32 = 0x01;
233 }
234 }
235#[doc = "JTAG software reset"]
236pub mod JTAG_SW_RST {
237pub const offset: u32 = 6;
238pub const mask: u32 = 0x01 << offset;
239pub mod R {}
240pub mod W {}
241pub mod RW {
242#[doc = "Reset is not a result of the mentioned case."]
243pub const JTAG_SW_RST_0: u32 = 0;
244#[doc = "Reset is not a result of the mentioned case."]
245pub const JTAG_SW_RST_1: u32 = 0x01;
246 }
247 }
248#[doc = "IC Watchdog3 Time-out reset"]
249pub mod WDOG3_RST_B {
250pub const offset: u32 = 7;
251pub const mask: u32 = 0x01 << offset;
252pub mod R {}
253pub mod W {}
254pub mod RW {
255#[doc = "Reset is not a result of the watchdog3 time-out event."]
256pub const WDOG3_RST_B_0: u32 = 0;
257#[doc = "Reset is a result of the watchdog3 time-out event."]
258pub const WDOG3_RST_B_1: u32 = 0x01;
259 }
260 }
261#[doc = "Temper Sensor software reset"]
262pub mod TEMPSENSE_RST_B {
263pub const offset: u32 = 8;
264pub const mask: u32 = 0x01 << offset;
265pub mod R {}
266pub mod W {}
267pub mod RW {
268#[doc = "Reset is not a result of software reset from Temperature Sensor."]
269pub const TEMPSENSE_RST_B_0: u32 = 0;
270#[doc = "Reset is a result of software reset from Temperature Sensor."]
271pub const TEMPSENSE_RST_B_1: u32 = 0x01;
272 }
273 }
274}
275#[doc = "SRC Boot Mode Register 2"]
276pub mod SBMR2 {
277#[doc = "SECONFIG\\[1\\] shows the state of the SECONFIG\\[1\\] fuse"]
278pub mod SEC_CONFIG {
279pub const offset: u32 = 0;
280pub const mask: u32 = 0x03 << offset;
281pub mod R {}
282pub mod W {}
283pub mod RW {}
284 }
285#[doc = "DIR_BT_DIS shows the state of the DIR_BT_DIS fuse"]
286pub mod DIR_BT_DIS {
287pub const offset: u32 = 3;
288pub const mask: u32 = 0x01 << offset;
289pub mod R {}
290pub mod W {}
291pub mod RW {}
292 }
293#[doc = "BT_FUSE_SEL (connected to gpio bt_fuse_sel) shows the state of the BT_FUSE_SEL fuse"]
294pub mod BT_FUSE_SEL {
295pub const offset: u32 = 4;
296pub const mask: u32 = 0x01 << offset;
297pub mod R {}
298pub mod W {}
299pub mod RW {}
300 }
301#[doc = "BMOD\\[1:0\\] shows the latched state of the BOOT_MODE1 and BOOT_MODE0 signals on the rising edge of POR_B"]
302pub mod BMOD {
303pub const offset: u32 = 24;
304pub const mask: u32 = 0x03 << offset;
305pub mod R {}
306pub mod W {}
307pub mod RW {}
308 }
309}
310#[doc = "SRC General Purpose Register 1"]
311pub mod GPR1 {
312#[doc = "Holds entry function for core0 for waking-up from low power mode"]
313pub mod PERSISTENT_ENTRY0 {
314pub const offset: u32 = 0;
315pub const mask: u32 = 0xffff_ffff << offset;
316pub mod R {}
317pub mod W {}
318pub mod RW {}
319 }
320}
321#[doc = "SRC General Purpose Register 2"]
322pub mod GPR2 {
323#[doc = "Holds argument of entry function for core0 for waking-up from low power mode"]
324pub mod PERSISTENT_ARG0 {
325pub const offset: u32 = 0;
326pub const mask: u32 = 0xffff_ffff << offset;
327pub mod R {}
328pub mod W {}
329pub mod RW {}
330 }
331}
332#[doc = "SRC General Purpose Register 10"]
333pub mod GPR10 {
334#[doc = "This field identifies which image must be used - 0/1/2/3"]
335pub mod PERSIST_REDUNDANT_BOOT {
336pub const offset: u32 = 26;
337pub const mask: u32 = 0x03 << offset;
338pub mod R {}
339pub mod W {}
340pub mod RW {}
341 }
342#[doc = "This bit identifies which image must be used - primary and secondary"]
343pub mod PERSIST_SECONDARY_BOOT {
344pub const offset: u32 = 30;
345pub const mask: u32 = 0x01 << offset;
346pub mod R {}
347pub mod W {}
348pub mod RW {}
349 }
350}