esp32s3/
rsa.rs

1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5    m_mem: [M_MEM; 128],
6    z_mem: [Z_MEM; 128],
7    y_mem: [Y_MEM; 128],
8    x_mem: [X_MEM; 128],
9    m_prime: M_PRIME,
10    mode: MODE,
11    clean: CLEAN,
12    modexp_start: MODEXP_START,
13    modmult_start: MODMULT_START,
14    mult_start: MULT_START,
15    idle: IDLE,
16    int_clr: INT_CLR,
17    constant_time: CONSTANT_TIME,
18    search_enable: SEARCH_ENABLE,
19    search_pos: SEARCH_POS,
20    int_ena: INT_ENA,
21    date: DATE,
22}
23impl RegisterBlock {
24    #[doc = "0x00..0x200 - Memory M"]
25    #[inline(always)]
26    pub const fn m_mem(&self, n: usize) -> &M_MEM {
27        &self.m_mem[n]
28    }
29    #[doc = "Iterator for array of:"]
30    #[doc = "0x00..0x200 - Memory M"]
31    #[inline(always)]
32    pub fn m_mem_iter(&self) -> impl Iterator<Item = &M_MEM> {
33        self.m_mem.iter()
34    }
35    #[doc = "0x200..0x400 - Memory Z"]
36    #[inline(always)]
37    pub const fn z_mem(&self, n: usize) -> &Z_MEM {
38        &self.z_mem[n]
39    }
40    #[doc = "Iterator for array of:"]
41    #[doc = "0x200..0x400 - Memory Z"]
42    #[inline(always)]
43    pub fn z_mem_iter(&self) -> impl Iterator<Item = &Z_MEM> {
44        self.z_mem.iter()
45    }
46    #[doc = "0x400..0x600 - Memory Y"]
47    #[inline(always)]
48    pub const fn y_mem(&self, n: usize) -> &Y_MEM {
49        &self.y_mem[n]
50    }
51    #[doc = "Iterator for array of:"]
52    #[doc = "0x400..0x600 - Memory Y"]
53    #[inline(always)]
54    pub fn y_mem_iter(&self) -> impl Iterator<Item = &Y_MEM> {
55        self.y_mem.iter()
56    }
57    #[doc = "0x600..0x800 - Memory X"]
58    #[inline(always)]
59    pub const fn x_mem(&self, n: usize) -> &X_MEM {
60        &self.x_mem[n]
61    }
62    #[doc = "Iterator for array of:"]
63    #[doc = "0x600..0x800 - Memory X"]
64    #[inline(always)]
65    pub fn x_mem_iter(&self) -> impl Iterator<Item = &X_MEM> {
66        self.x_mem.iter()
67    }
68    #[doc = "0x800 - RSA M' register"]
69    #[inline(always)]
70    pub const fn m_prime(&self) -> &M_PRIME {
71        &self.m_prime
72    }
73    #[doc = "0x804 - RSA length mode register"]
74    #[inline(always)]
75    pub const fn mode(&self) -> &MODE {
76        &self.mode
77    }
78    #[doc = "0x808 - RSA clean register"]
79    #[inline(always)]
80    pub const fn clean(&self) -> &CLEAN {
81        &self.clean
82    }
83    #[doc = "0x80c - Modular exponentiation trigger register."]
84    #[inline(always)]
85    pub const fn modexp_start(&self) -> &MODEXP_START {
86        &self.modexp_start
87    }
88    #[doc = "0x810 - Modular multiplication trigger register."]
89    #[inline(always)]
90    pub const fn modmult_start(&self) -> &MODMULT_START {
91        &self.modmult_start
92    }
93    #[doc = "0x814 - Normal multiplication trigger register."]
94    #[inline(always)]
95    pub const fn mult_start(&self) -> &MULT_START {
96        &self.mult_start
97    }
98    #[doc = "0x818 - RSA idle register"]
99    #[inline(always)]
100    pub const fn idle(&self) -> &IDLE {
101        &self.idle
102    }
103    #[doc = "0x81c - RSA interrupt clear register"]
104    #[inline(always)]
105    pub const fn int_clr(&self) -> &INT_CLR {
106        &self.int_clr
107    }
108    #[doc = "0x820 - CONSTANT_TIME option control register"]
109    #[inline(always)]
110    pub const fn constant_time(&self) -> &CONSTANT_TIME {
111        &self.constant_time
112    }
113    #[doc = "0x824 - SEARCH option enable register"]
114    #[inline(always)]
115    pub const fn search_enable(&self) -> &SEARCH_ENABLE {
116        &self.search_enable
117    }
118    #[doc = "0x828 - RSA search position configure register"]
119    #[inline(always)]
120    pub const fn search_pos(&self) -> &SEARCH_POS {
121        &self.search_pos
122    }
123    #[doc = "0x82c - RSA interrupt enable register"]
124    #[inline(always)]
125    pub const fn int_ena(&self) -> &INT_ENA {
126        &self.int_ena
127    }
128    #[doc = "0x830 - RSA version control register"]
129    #[inline(always)]
130    pub const fn date(&self) -> &DATE {
131        &self.date
132    }
133}
134#[doc = "M_MEM (w) register accessor: Memory M\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`m_mem::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@m_mem`] module"]
135pub type M_MEM = crate::Reg<m_mem::M_MEM_SPEC>;
136#[doc = "Memory M"]
137pub mod m_mem;
138#[doc = "Z_MEM (rw) register accessor: Memory Z\n\nYou can [`read`](crate::Reg::read) this register and get [`z_mem::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`z_mem::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@z_mem`] module"]
139pub type Z_MEM = crate::Reg<z_mem::Z_MEM_SPEC>;
140#[doc = "Memory Z"]
141pub mod z_mem;
142#[doc = "Y_MEM (w) register accessor: Memory Y\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`y_mem::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@y_mem`] module"]
143pub type Y_MEM = crate::Reg<y_mem::Y_MEM_SPEC>;
144#[doc = "Memory Y"]
145pub mod y_mem;
146#[doc = "X_MEM (w) register accessor: Memory X\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`x_mem::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@x_mem`] module"]
147pub type X_MEM = crate::Reg<x_mem::X_MEM_SPEC>;
148#[doc = "Memory X"]
149pub mod x_mem;
150#[doc = "M_PRIME (rw) register accessor: RSA M' register\n\nYou can [`read`](crate::Reg::read) this register and get [`m_prime::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`m_prime::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@m_prime`] module"]
151pub type M_PRIME = crate::Reg<m_prime::M_PRIME_SPEC>;
152#[doc = "RSA M' register"]
153pub mod m_prime;
154#[doc = "MODE (rw) register accessor: RSA length mode register\n\nYou can [`read`](crate::Reg::read) this register and get [`mode::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mode::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mode`] module"]
155pub type MODE = crate::Reg<mode::MODE_SPEC>;
156#[doc = "RSA length mode register"]
157pub mod mode;
158#[doc = "CLEAN (r) register accessor: RSA clean register\n\nYou can [`read`](crate::Reg::read) this register and get [`clean::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clean`] module"]
159pub type CLEAN = crate::Reg<clean::CLEAN_SPEC>;
160#[doc = "RSA clean register"]
161pub mod clean;
162#[doc = "MODEXP_START (w) register accessor: Modular exponentiation trigger register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`modexp_start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@modexp_start`] module"]
163pub type MODEXP_START = crate::Reg<modexp_start::MODEXP_START_SPEC>;
164#[doc = "Modular exponentiation trigger register."]
165pub mod modexp_start;
166#[doc = "MODMULT_START (w) register accessor: Modular multiplication trigger register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`modmult_start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@modmult_start`] module"]
167pub type MODMULT_START = crate::Reg<modmult_start::MODMULT_START_SPEC>;
168#[doc = "Modular multiplication trigger register."]
169pub mod modmult_start;
170#[doc = "MULT_START (w) register accessor: Normal multiplication trigger register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mult_start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mult_start`] module"]
171pub type MULT_START = crate::Reg<mult_start::MULT_START_SPEC>;
172#[doc = "Normal multiplication trigger register."]
173pub mod mult_start;
174#[doc = "IDLE (r) register accessor: RSA idle register\n\nYou can [`read`](crate::Reg::read) this register and get [`idle::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@idle`] module"]
175pub type IDLE = crate::Reg<idle::IDLE_SPEC>;
176#[doc = "RSA idle register"]
177pub mod idle;
178#[doc = "INT_CLR (rw) register accessor: RSA interrupt clear register\n\nYou can [`read`](crate::Reg::read) this register and get [`int_clr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`int_clr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_clr`] module"]
179pub type INT_CLR = crate::Reg<int_clr::INT_CLR_SPEC>;
180#[doc = "RSA interrupt clear register"]
181pub mod int_clr;
182#[doc = "CONSTANT_TIME (rw) register accessor: CONSTANT_TIME option control register\n\nYou can [`read`](crate::Reg::read) this register and get [`constant_time::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`constant_time::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@constant_time`] module"]
183pub type CONSTANT_TIME = crate::Reg<constant_time::CONSTANT_TIME_SPEC>;
184#[doc = "CONSTANT_TIME option control register"]
185pub mod constant_time;
186#[doc = "SEARCH_ENABLE (rw) register accessor: SEARCH option enable register\n\nYou can [`read`](crate::Reg::read) this register and get [`search_enable::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`search_enable::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@search_enable`] module"]
187pub type SEARCH_ENABLE = crate::Reg<search_enable::SEARCH_ENABLE_SPEC>;
188#[doc = "SEARCH option enable register"]
189pub mod search_enable;
190#[doc = "SEARCH_POS (rw) register accessor: RSA search position configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`search_pos::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`search_pos::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@search_pos`] module"]
191pub type SEARCH_POS = crate::Reg<search_pos::SEARCH_POS_SPEC>;
192#[doc = "RSA search position configure register"]
193pub mod search_pos;
194#[doc = "INT_ENA (rw) register accessor: RSA interrupt enable register\n\nYou can [`read`](crate::Reg::read) this register and get [`int_ena::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`int_ena::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_ena`] module"]
195pub type INT_ENA = crate::Reg<int_ena::INT_ENA_SPEC>;
196#[doc = "RSA interrupt enable register"]
197pub mod int_ena;
198#[doc = "DATE (rw) register accessor: RSA version control register\n\nYou can [`read`](crate::Reg::read) this register and get [`date::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`date::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@date`] module"]
199pub type DATE = crate::Reg<date::DATE_SPEC>;
200#[doc = "RSA version control register"]
201pub mod date;