esp32p4/
ecdsa.rs

1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5    _reserved0: [u8; 0x04],
6    conf: CONF,
7    clk: CLK,
8    int_raw: INT_RAW,
9    int_st: INT_ST,
10    int_ena: INT_ENA,
11    int_clr: INT_CLR,
12    start: START,
13    state: STATE,
14    result: RESULT,
15    _reserved9: [u8; 0xd4],
16    date: DATE,
17    _reserved10: [u8; 0x0100],
18    sha_mode: SHA_MODE,
19    _reserved11: [u8; 0x0c],
20    sha_start: SHA_START,
21    sha_continue: SHA_CONTINUE,
22    sha_busy: SHA_BUSY,
23    _reserved14: [u8; 0x64],
24    message_mem: [MESSAGE_MEM; 8],
25    _reserved15: [u8; 0x0760],
26    r_mem: [R_MEM; 8],
27    s_mem: [S_MEM; 8],
28    z_mem: [Z_MEM; 8],
29    qax_mem: [QAX_MEM; 8],
30    qay_mem: [QAY_MEM; 8],
31}
32impl RegisterBlock {
33    #[doc = "0x04 - ECDSA configure register"]
34    #[inline(always)]
35    pub const fn conf(&self) -> &CONF {
36        &self.conf
37    }
38    #[doc = "0x08 - ECDSA clock gate register"]
39    #[inline(always)]
40    pub const fn clk(&self) -> &CLK {
41        &self.clk
42    }
43    #[doc = "0x0c - ECDSA interrupt raw register, valid in level."]
44    #[inline(always)]
45    pub const fn int_raw(&self) -> &INT_RAW {
46        &self.int_raw
47    }
48    #[doc = "0x10 - ECDSA interrupt status register."]
49    #[inline(always)]
50    pub const fn int_st(&self) -> &INT_ST {
51        &self.int_st
52    }
53    #[doc = "0x14 - ECDSA interrupt enable register."]
54    #[inline(always)]
55    pub const fn int_ena(&self) -> &INT_ENA {
56        &self.int_ena
57    }
58    #[doc = "0x18 - ECDSA interrupt clear register."]
59    #[inline(always)]
60    pub const fn int_clr(&self) -> &INT_CLR {
61        &self.int_clr
62    }
63    #[doc = "0x1c - ECDSA start register"]
64    #[inline(always)]
65    pub const fn start(&self) -> &START {
66        &self.start
67    }
68    #[doc = "0x20 - ECDSA status register"]
69    #[inline(always)]
70    pub const fn state(&self) -> &STATE {
71        &self.state
72    }
73    #[doc = "0x24 - ECDSA result register"]
74    #[inline(always)]
75    pub const fn result(&self) -> &RESULT {
76        &self.result
77    }
78    #[doc = "0xfc - Version control register"]
79    #[inline(always)]
80    pub const fn date(&self) -> &DATE {
81        &self.date
82    }
83    #[doc = "0x200 - ECDSA control SHA register"]
84    #[inline(always)]
85    pub const fn sha_mode(&self) -> &SHA_MODE {
86        &self.sha_mode
87    }
88    #[doc = "0x210 - ECDSA control SHA register"]
89    #[inline(always)]
90    pub const fn sha_start(&self) -> &SHA_START {
91        &self.sha_start
92    }
93    #[doc = "0x214 - ECDSA control SHA register"]
94    #[inline(always)]
95    pub const fn sha_continue(&self) -> &SHA_CONTINUE {
96        &self.sha_continue
97    }
98    #[doc = "0x218 - ECDSA status register"]
99    #[inline(always)]
100    pub const fn sha_busy(&self) -> &SHA_BUSY {
101        &self.sha_busy
102    }
103    #[doc = "0x280..0x2a0 - The memory that stores message."]
104    #[inline(always)]
105    pub const fn message_mem(&self, n: usize) -> &MESSAGE_MEM {
106        &self.message_mem[n]
107    }
108    #[doc = "Iterator for array of:"]
109    #[doc = "0x280..0x2a0 - The memory that stores message."]
110    #[inline(always)]
111    pub fn message_mem_iter(&self) -> impl Iterator<Item = &MESSAGE_MEM> {
112        self.message_mem.iter()
113    }
114    #[doc = "0xa00..0xa20 - The memory that stores r."]
115    #[inline(always)]
116    pub const fn r_mem(&self, n: usize) -> &R_MEM {
117        &self.r_mem[n]
118    }
119    #[doc = "Iterator for array of:"]
120    #[doc = "0xa00..0xa20 - The memory that stores r."]
121    #[inline(always)]
122    pub fn r_mem_iter(&self) -> impl Iterator<Item = &R_MEM> {
123        self.r_mem.iter()
124    }
125    #[doc = "0xa20..0xa40 - The memory that stores s."]
126    #[inline(always)]
127    pub const fn s_mem(&self, n: usize) -> &S_MEM {
128        &self.s_mem[n]
129    }
130    #[doc = "Iterator for array of:"]
131    #[doc = "0xa20..0xa40 - The memory that stores s."]
132    #[inline(always)]
133    pub fn s_mem_iter(&self) -> impl Iterator<Item = &S_MEM> {
134        self.s_mem.iter()
135    }
136    #[doc = "0xa40..0xa60 - The memory that stores software written z."]
137    #[inline(always)]
138    pub const fn z_mem(&self, n: usize) -> &Z_MEM {
139        &self.z_mem[n]
140    }
141    #[doc = "Iterator for array of:"]
142    #[doc = "0xa40..0xa60 - The memory that stores software written z."]
143    #[inline(always)]
144    pub fn z_mem_iter(&self) -> impl Iterator<Item = &Z_MEM> {
145        self.z_mem.iter()
146    }
147    #[doc = "0xa60..0xa80 - The memory that stores x coordinates of QA or software written k."]
148    #[inline(always)]
149    pub const fn qax_mem(&self, n: usize) -> &QAX_MEM {
150        &self.qax_mem[n]
151    }
152    #[doc = "Iterator for array of:"]
153    #[doc = "0xa60..0xa80 - The memory that stores x coordinates of QA or software written k."]
154    #[inline(always)]
155    pub fn qax_mem_iter(&self) -> impl Iterator<Item = &QAX_MEM> {
156        self.qax_mem.iter()
157    }
158    #[doc = "0xa80..0xaa0 - The memory that stores y coordinates of QA."]
159    #[inline(always)]
160    pub const fn qay_mem(&self, n: usize) -> &QAY_MEM {
161        &self.qay_mem[n]
162    }
163    #[doc = "Iterator for array of:"]
164    #[doc = "0xa80..0xaa0 - The memory that stores y coordinates of QA."]
165    #[inline(always)]
166    pub fn qay_mem_iter(&self) -> impl Iterator<Item = &QAY_MEM> {
167        self.qay_mem.iter()
168    }
169}
170#[doc = "CONF (rw) register accessor: ECDSA configure register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`conf::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`conf::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@conf`] module"]
171pub type CONF = crate::Reg<conf::CONF_SPEC>;
172#[doc = "ECDSA configure register"]
173pub mod conf;
174#[doc = "CLK (rw) register accessor: ECDSA clock gate register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`clk::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`clk::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clk`] module"]
175pub type CLK = crate::Reg<clk::CLK_SPEC>;
176#[doc = "ECDSA clock gate register"]
177pub mod clk;
178#[doc = "INT_RAW (r) register accessor: ECDSA interrupt raw register, valid in level.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_raw::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_raw`] module"]
179pub type INT_RAW = crate::Reg<int_raw::INT_RAW_SPEC>;
180#[doc = "ECDSA interrupt raw register, valid in level."]
181pub mod int_raw;
182#[doc = "INT_ST (r) register accessor: ECDSA interrupt status register.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_st::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_st`] module"]
183pub type INT_ST = crate::Reg<int_st::INT_ST_SPEC>;
184#[doc = "ECDSA interrupt status register."]
185pub mod int_st;
186#[doc = "INT_ENA (rw) register accessor: ECDSA interrupt enable register.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_ena::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`int_ena::W`]. You can also [`modify`](crate::generic::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"]
187pub type INT_ENA = crate::Reg<int_ena::INT_ENA_SPEC>;
188#[doc = "ECDSA interrupt enable register."]
189pub mod int_ena;
190#[doc = "INT_CLR (w) register accessor: ECDSA interrupt clear register.\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`int_clr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_clr`] module"]
191pub type INT_CLR = crate::Reg<int_clr::INT_CLR_SPEC>;
192#[doc = "ECDSA interrupt clear register."]
193pub mod int_clr;
194#[doc = "START (w) register accessor: ECDSA start register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@start`] module"]
195pub type START = crate::Reg<start::START_SPEC>;
196#[doc = "ECDSA start register"]
197pub mod start;
198#[doc = "STATE (r) register accessor: ECDSA status register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`state::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@state`] module"]
199pub type STATE = crate::Reg<state::STATE_SPEC>;
200#[doc = "ECDSA status register"]
201pub mod state;
202#[doc = "RESULT (r) register accessor: ECDSA result register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`result::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@result`] module"]
203pub type RESULT = crate::Reg<result::RESULT_SPEC>;
204#[doc = "ECDSA result register"]
205pub mod result;
206#[doc = "DATE (rw) register accessor: Version control register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`date::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`date::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@date`] module"]
207pub type DATE = crate::Reg<date::DATE_SPEC>;
208#[doc = "Version control register"]
209pub mod date;
210#[doc = "SHA_MODE (rw) register accessor: ECDSA control SHA register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`sha_mode::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`sha_mode::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sha_mode`] module"]
211pub type SHA_MODE = crate::Reg<sha_mode::SHA_MODE_SPEC>;
212#[doc = "ECDSA control SHA register"]
213pub mod sha_mode;
214#[doc = "SHA_START (w) register accessor: ECDSA control SHA register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`sha_start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sha_start`] module"]
215pub type SHA_START = crate::Reg<sha_start::SHA_START_SPEC>;
216#[doc = "ECDSA control SHA register"]
217pub mod sha_start;
218#[doc = "SHA_CONTINUE (w) register accessor: ECDSA control SHA register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`sha_continue::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sha_continue`] module"]
219pub type SHA_CONTINUE = crate::Reg<sha_continue::SHA_CONTINUE_SPEC>;
220#[doc = "ECDSA control SHA register"]
221pub mod sha_continue;
222#[doc = "SHA_BUSY (r) register accessor: ECDSA status register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`sha_busy::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sha_busy`] module"]
223pub type SHA_BUSY = crate::Reg<sha_busy::SHA_BUSY_SPEC>;
224#[doc = "ECDSA status register"]
225pub mod sha_busy;
226#[doc = "MESSAGE_MEM (rw) register accessor: The memory that stores message.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`message_mem::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`message_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@message_mem`] module"]
227pub type MESSAGE_MEM = crate::Reg<message_mem::MESSAGE_MEM_SPEC>;
228#[doc = "The memory that stores message."]
229pub mod message_mem;
230#[doc = "R_MEM (rw) register accessor: The memory that stores r.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`r_mem::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`r_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@r_mem`] module"]
231pub type R_MEM = crate::Reg<r_mem::R_MEM_SPEC>;
232#[doc = "The memory that stores r."]
233pub mod r_mem;
234#[doc = "S_MEM (rw) register accessor: The memory that stores s.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`s_mem::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`s_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@s_mem`] module"]
235pub type S_MEM = crate::Reg<s_mem::S_MEM_SPEC>;
236#[doc = "The memory that stores s."]
237pub mod s_mem;
238#[doc = "Z_MEM (rw) register accessor: The memory that stores software written z.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`z_mem::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`z_mem::W`]. You can also [`modify`](crate::generic::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"]
239pub type Z_MEM = crate::Reg<z_mem::Z_MEM_SPEC>;
240#[doc = "The memory that stores software written z."]
241pub mod z_mem;
242#[doc = "QAX_MEM (rw) register accessor: The memory that stores x coordinates of QA or software written k.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`qax_mem::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`qax_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@qax_mem`] module"]
243pub type QAX_MEM = crate::Reg<qax_mem::QAX_MEM_SPEC>;
244#[doc = "The memory that stores x coordinates of QA or software written k."]
245pub mod qax_mem;
246#[doc = "QAY_MEM (rw) register accessor: The memory that stores y coordinates of QA.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`qay_mem::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`qay_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@qay_mem`] module"]
247pub type QAY_MEM = crate::Reg<qay_mem::QAY_MEM_SPEC>;
248#[doc = "The memory that stores y coordinates of QA."]
249pub mod qay_mem;