1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#[doc = "Register `RD_REPEAT_DATA0` reader"]
pub struct R(crate::R<RD_REPEAT_DATA0_SPEC>);
impl core::ops::Deref for R {
type Target = crate::R<RD_REPEAT_DATA0_SPEC>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl From<crate::R<RD_REPEAT_DATA0_SPEC>> for R {
#[inline(always)]
fn from(reader: crate::R<RD_REPEAT_DATA0_SPEC>) -> Self {
R(reader)
}
}
#[doc = "Field `RD_DIS` reader - The bit be set to disable software read high/low 128-bit of BLK3."]
pub type RD_DIS_R = crate::FieldReader<u8, u8>;
#[doc = "Field `WDT_DELAY_SEL` reader - Selects RTC watchdog timeout threshold, in unit of slow clock cycle. 0: 40000. 1: 80000. 2: 160000. 3:320000."]
pub type WDT_DELAY_SEL_R = crate::FieldReader<u8, u8>;
#[doc = "Field `DIS_PAD_JTAG` reader - Set this bit to disable pad jtag."]
pub type DIS_PAD_JTAG_R = crate::BitReader<bool>;
#[doc = "Field `DIS_DOWNLOAD_ICACHE` reader - The bit be set to disable icache in download mode."]
pub type DIS_DOWNLOAD_ICACHE_R = crate::BitReader<bool>;
#[doc = "Field `DIS_DOWNLOAD_MANUAL_ENCRYPT` reader - The bit be set to disable manual encryption."]
pub type DIS_DOWNLOAD_MANUAL_ENCRYPT_R = crate::BitReader<bool>;
#[doc = "Field `SPI_BOOT_ENCRYPT_DECRYPT_CNT` reader - These bits be set to enable SPI boot encrypt/decrypt. Odd number of 1: enable. even number of 1: disable."]
pub type SPI_BOOT_ENCRYPT_DECRYPT_CNT_R = crate::FieldReader<u8, u8>;
#[doc = "Field `XTS_KEY_LENGTH_256` reader - The bit be set means XTS_AES use the whole 256-bit efuse data in BLOCK3. Otherwise, XTS_AES use 128-bit eFuse data in BLOCK3."]
pub type XTS_KEY_LENGTH_256_R = crate::BitReader<bool>;
#[doc = "Field `UART_PRINT_CONTROL` reader - Set this bit to disable usb printing."]
pub type UART_PRINT_CONTROL_R = crate::FieldReader<u8, u8>;
#[doc = "Field `FORCE_SEND_RESUME` reader - Set this bit to force ROM code to send a resume command during SPI boot."]
pub type FORCE_SEND_RESUME_R = crate::BitReader<bool>;
#[doc = "Field `DIS_DOWNLOAD_MODE` reader - Set this bit to disable download mode (boot_mode\\[3:0\\] = 0, 1, 2, 4, 5, 6, 7)."]
pub type DIS_DOWNLOAD_MODE_R = crate::BitReader<bool>;
#[doc = "Field `DIS_DIRECT_BOOT` reader - This bit set means disable direct_boot mode."]
pub type DIS_DIRECT_BOOT_R = crate::BitReader<bool>;
#[doc = "Field `ENABLE_SECURITY_DOWNLOAD` reader - Set this bit to enable secure UART download mode."]
pub type ENABLE_SECURITY_DOWNLOAD_R = crate::BitReader<bool>;
#[doc = "Field `FLASH_TPUW` reader - Configures flash waiting time after power-up, in unit of ms. If the value is less than 15, the waiting time is the configurable value. Otherwise, the waiting time is twice the configurable value."]
pub type FLASH_TPUW_R = crate::FieldReader<u8, u8>;
#[doc = "Field `SECURE_BOOT_EN` reader - The bit be set to enable secure boot."]
pub type SECURE_BOOT_EN_R = crate::BitReader<bool>;
#[doc = "Field `RPT4_RESERVED` reader - Reserved (used for four backups method)."]
pub type RPT4_RESERVED_R = crate::FieldReader<u16, u16>;
impl R {
#[doc = "Bits 0:1 - The bit be set to disable software read high/low 128-bit of BLK3."]
#[inline(always)]
pub fn rd_dis(&self) -> RD_DIS_R {
RD_DIS_R::new((self.bits & 3) as u8)
}
#[doc = "Bits 2:3 - Selects RTC watchdog timeout threshold, in unit of slow clock cycle. 0: 40000. 1: 80000. 2: 160000. 3:320000."]
#[inline(always)]
pub fn wdt_delay_sel(&self) -> WDT_DELAY_SEL_R {
WDT_DELAY_SEL_R::new(((self.bits >> 2) & 3) as u8)
}
#[doc = "Bit 4 - Set this bit to disable pad jtag."]
#[inline(always)]
pub fn dis_pad_jtag(&self) -> DIS_PAD_JTAG_R {
DIS_PAD_JTAG_R::new(((self.bits >> 4) & 1) != 0)
}
#[doc = "Bit 5 - The bit be set to disable icache in download mode."]
#[inline(always)]
pub fn dis_download_icache(&self) -> DIS_DOWNLOAD_ICACHE_R {
DIS_DOWNLOAD_ICACHE_R::new(((self.bits >> 5) & 1) != 0)
}
#[doc = "Bit 6 - The bit be set to disable manual encryption."]
#[inline(always)]
pub fn dis_download_manual_encrypt(&self) -> DIS_DOWNLOAD_MANUAL_ENCRYPT_R {
DIS_DOWNLOAD_MANUAL_ENCRYPT_R::new(((self.bits >> 6) & 1) != 0)
}
#[doc = "Bits 7:9 - These bits be set to enable SPI boot encrypt/decrypt. Odd number of 1: enable. even number of 1: disable."]
#[inline(always)]
pub fn spi_boot_encrypt_decrypt_cnt(&self) -> SPI_BOOT_ENCRYPT_DECRYPT_CNT_R {
SPI_BOOT_ENCRYPT_DECRYPT_CNT_R::new(((self.bits >> 7) & 7) as u8)
}
#[doc = "Bit 10 - The bit be set means XTS_AES use the whole 256-bit efuse data in BLOCK3. Otherwise, XTS_AES use 128-bit eFuse data in BLOCK3."]
#[inline(always)]
pub fn xts_key_length_256(&self) -> XTS_KEY_LENGTH_256_R {
XTS_KEY_LENGTH_256_R::new(((self.bits >> 10) & 1) != 0)
}
#[doc = "Bits 11:12 - Set this bit to disable usb printing."]
#[inline(always)]
pub fn uart_print_control(&self) -> UART_PRINT_CONTROL_R {
UART_PRINT_CONTROL_R::new(((self.bits >> 11) & 3) as u8)
}
#[doc = "Bit 13 - Set this bit to force ROM code to send a resume command during SPI boot."]
#[inline(always)]
pub fn force_send_resume(&self) -> FORCE_SEND_RESUME_R {
FORCE_SEND_RESUME_R::new(((self.bits >> 13) & 1) != 0)
}
#[doc = "Bit 14 - Set this bit to disable download mode (boot_mode\\[3:0\\] = 0, 1, 2, 4, 5, 6, 7)."]
#[inline(always)]
pub fn dis_download_mode(&self) -> DIS_DOWNLOAD_MODE_R {
DIS_DOWNLOAD_MODE_R::new(((self.bits >> 14) & 1) != 0)
}
#[doc = "Bit 15 - This bit set means disable direct_boot mode."]
#[inline(always)]
pub fn dis_direct_boot(&self) -> DIS_DIRECT_BOOT_R {
DIS_DIRECT_BOOT_R::new(((self.bits >> 15) & 1) != 0)
}
#[doc = "Bit 16 - Set this bit to enable secure UART download mode."]
#[inline(always)]
pub fn enable_security_download(&self) -> ENABLE_SECURITY_DOWNLOAD_R {
ENABLE_SECURITY_DOWNLOAD_R::new(((self.bits >> 16) & 1) != 0)
}
#[doc = "Bits 17:20 - Configures flash waiting time after power-up, in unit of ms. If the value is less than 15, the waiting time is the configurable value. Otherwise, the waiting time is twice the configurable value."]
#[inline(always)]
pub fn flash_tpuw(&self) -> FLASH_TPUW_R {
FLASH_TPUW_R::new(((self.bits >> 17) & 0x0f) as u8)
}
#[doc = "Bit 21 - The bit be set to enable secure boot."]
#[inline(always)]
pub fn secure_boot_en(&self) -> SECURE_BOOT_EN_R {
SECURE_BOOT_EN_R::new(((self.bits >> 21) & 1) != 0)
}
#[doc = "Bits 22:31 - Reserved (used for four backups method)."]
#[inline(always)]
pub fn rpt4_reserved(&self) -> RPT4_RESERVED_R {
RPT4_RESERVED_R::new(((self.bits >> 22) & 0x03ff) as u16)
}
}
#[doc = "BLOCK0 data register 1.\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [rd_repeat_data0](index.html) module"]
pub struct RD_REPEAT_DATA0_SPEC;
impl crate::RegisterSpec for RD_REPEAT_DATA0_SPEC {
type Ux = u32;
}
#[doc = "`read()` method returns [rd_repeat_data0::R](R) reader structure"]
impl crate::Readable for RD_REPEAT_DATA0_SPEC {
type Reader = R;
}
#[doc = "`reset()` method sets RD_REPEAT_DATA0 to value 0"]
impl crate::Resettable for RD_REPEAT_DATA0_SPEC {
const RESET_VALUE: Self::Ux = 0;
}