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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
#[doc = r" Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - PUF Control register"]
    pub ctrl: CTRL,
    #[doc = "0x04 - PUF Key Index register"]
    pub keyindex: KEYINDEX,
    #[doc = "0x08 - PUF Key Size register"]
    pub keysize: KEYSIZE,
    _reserved0: [u8; 20usize],
    #[doc = "0x20 - PUF Status register"]
    pub stat: STAT,
    _reserved1: [u8; 4usize],
    #[doc = "0x28 - PUF Allow register"]
    pub allow: ALLOW,
    _reserved2: [u8; 20usize],
    #[doc = "0x40 - PUF Key Input register"]
    pub keyinput: KEYINPUT,
    #[doc = "0x44 - PUF Code Input register"]
    pub codeinput: CODEINPUT,
    #[doc = "0x48 - PUF Code Output register"]
    pub codeoutput: CODEOUTPUT,
    _reserved3: [u8; 20usize],
    #[doc = "0x60 - PUF Key Output Index register"]
    pub keyoutindex: KEYOUTINDEX,
    #[doc = "0x64 - PUF Key Output register"]
    pub keyoutput: KEYOUTPUT,
    _reserved4: [u8; 116usize],
    #[doc = "0xdc - PUF Interface Status and clear register"]
    pub ifstat: IFSTAT,
    _reserved5: [u8; 28usize],
    #[doc = "0xfc - PUF version register."]
    pub version: VERSION,
    #[doc = "0x100 - PUF Interrupt Enable"]
    pub inten: INTEN,
    #[doc = "0x104 - PUF interrupt status"]
    pub intstat: INTSTAT,
    #[doc = "0x108 - PUF RAM Power Control"]
    pub pwrctrl: PWRCTRL,
    #[doc = "0x10c - PUF config register for block bits"]
    pub cfg: CFG,
    _reserved6: [u8; 240usize],
    #[doc = "0x200 - Only reset in case of full IC reset"]
    pub keylock: KEYLOCK,
    #[doc = "0x204 - no description available"]
    pub keyenable: KEYENABLE,
    #[doc = "0x208 - Reinitialize Keys shift registers counters"]
    pub keyreset: KEYRESET,
    #[doc = "0x20c - no description available"]
    pub idxblk_l: IDXBLK_L,
    #[doc = "0x210 - no description available"]
    pub idxblk_h_dp: IDXBLK_H_DP,
    #[doc = "0x214 - Only reset in case of full IC reset"]
    pub keymask: [KEYMASK; 4],
    _reserved7: [u8; 48usize],
    #[doc = "0x254 - no description available"]
    pub idxblk_h: IDXBLK_H,
    #[doc = "0x258 - no description available"]
    pub idxblk_l_dp: IDXBLK_L_DP,
    #[doc = "0x25c - no description available"]
    pub shift_status: SHIFT_STATUS,
}
#[doc = "PUF Control register"]
pub struct CTRL {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Control register"]
pub mod ctrl;
#[doc = "PUF Key Index register"]
pub struct KEYINDEX {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Key Index register"]
pub mod keyindex;
#[doc = "PUF Key Size register"]
pub struct KEYSIZE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Key Size register"]
pub mod keysize;
#[doc = "PUF Status register"]
pub struct STAT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Status register"]
pub mod stat;
#[doc = "PUF Allow register"]
pub struct ALLOW {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Allow register"]
pub mod allow;
#[doc = "PUF Key Input register"]
pub struct KEYINPUT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Key Input register"]
pub mod keyinput;
#[doc = "PUF Code Input register"]
pub struct CODEINPUT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Code Input register"]
pub mod codeinput;
#[doc = "PUF Code Output register"]
pub struct CODEOUTPUT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Code Output register"]
pub mod codeoutput;
#[doc = "PUF Key Output Index register"]
pub struct KEYOUTINDEX {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Key Output Index register"]
pub mod keyoutindex;
#[doc = "PUF Key Output register"]
pub struct KEYOUTPUT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Key Output register"]
pub mod keyoutput;
#[doc = "PUF Interface Status and clear register"]
pub struct IFSTAT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Interface Status and clear register"]
pub mod ifstat;
#[doc = "PUF version register."]
pub struct VERSION {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF version register."]
pub mod version;
#[doc = "PUF Interrupt Enable"]
pub struct INTEN {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF Interrupt Enable"]
pub mod inten;
#[doc = "PUF interrupt status"]
pub struct INTSTAT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF interrupt status"]
pub mod intstat;
#[doc = "PUF RAM Power Control"]
pub struct PWRCTRL {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF RAM Power Control"]
pub mod pwrctrl;
#[doc = "PUF config register for block bits"]
pub struct CFG {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "PUF config register for block bits"]
pub mod cfg;
#[doc = "Only reset in case of full IC reset"]
pub struct KEYLOCK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Only reset in case of full IC reset"]
pub mod keylock;
#[doc = "no description available"]
pub struct KEYENABLE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "no description available"]
pub mod keyenable;
#[doc = "Reinitialize Keys shift registers counters"]
pub struct KEYRESET {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Reinitialize Keys shift registers counters"]
pub mod keyreset;
#[doc = "no description available"]
pub struct IDXBLK_L {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "no description available"]
pub mod idxblk_l;
#[doc = "no description available"]
pub struct IDXBLK_H_DP {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "no description available"]
pub mod idxblk_h_dp;
#[doc = "Only reset in case of full IC reset"]
pub struct KEYMASK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Only reset in case of full IC reset"]
pub mod keymask;
#[doc = "no description available"]
pub struct IDXBLK_H {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "no description available"]
pub mod idxblk_h;
#[doc = "no description available"]
pub struct IDXBLK_L_DP {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "no description available"]
pub mod idxblk_l_dp;
#[doc = "no description available"]
pub struct SHIFT_STATUS {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "no description available"]
pub mod shift_status;