1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<device xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="1.1" xs:noNamespaceSchemaLocation="svd_schema.xsd">
3  <peripheral>
4    <name>TRNG</name>
5    <description>Random Number Generator.</description>
6    <baseAddress>0x4004D000</baseAddress>
7    <addressBlock>
8      <offset>0x00</offset>
9      <size>0x1000</size>
10      <usage>registers</usage>
11    </addressBlock>
12    <interrupt>
13      <name>TRNG</name>
14      <description>TRNG interrupt.</description>
15      <value>4</value>
16    </interrupt>
17    <registers>
18      <register>
19        <name>CTRL</name>
20        <description>TRNG Control Register.</description>
21        <addressOffset>0x00</addressOffset>
22        <resetValue>0x00000003</resetValue>
23        <fields>
24          <field>
25            <name>OD_HEALTH</name>
26            <description>Start On-Demand health test.</description>
27            <bitOffset>0</bitOffset>
28            <bitWidth>1</bitWidth>
29          </field>
30          <field>
31            <name>RND_IE</name>
32            <description>To enable IRQ generation when a new 32-bit Random number is ready.</description>
33            <bitOffset>1</bitOffset>
34            <bitWidth>1</bitWidth>
35            <enumeratedValues>
36              <enumeratedValue>
37                <name>disable</name>
38                <description>Disable</description>
39                <value>0</value>
40              </enumeratedValue>
41              <enumeratedValue>
42                <name>enable</name>
43                <description>Enable</description>
44                <value>1</value>
45              </enumeratedValue>
46            </enumeratedValues>
47          </field>
48          <field>
49            <name>HEALTH_IE</name>
50            <description>Enable IRQ generation when a health test fails.</description>
51            <bitOffset>2</bitOffset>
52            <bitWidth>1</bitWidth>
53          </field>
54          <field>
55            <name>MEU_KEYGEN</name>
56            <description>If set to 1, the TRNG generates the 256-bit AES MEU keys.</description>
57            <bitOffset>3</bitOffset>
58            <bitWidth>1</bitWidth>
59          </field>
60          <field>
61            <name>XIP_KEYGEN</name>
62            <description>If set to 1, the TRNG generates the 128-bit QSPI (XIP) keys.</description>
63            <bitOffset>4</bitOffset>
64            <bitWidth>1</bitWidth>
65          </field>
66          <field>
67            <name>OD_ROMON</name>
68            <description>Start ring oscillator monitor on demand test.</description>
69            <bitOffset>6</bitOffset>
70            <bitWidth>1</bitWidth>
71          </field>
72          <field>
73            <name>OD_EE</name>
74            <description>Start entropy estimator on demand test.</description>
75            <bitOffset>7</bitOffset>
76            <bitWidth>1</bitWidth>
77          </field>
78          <field>
79            <name>ROMON_EE_FOE</name>
80            <description>Ring Oscillator Monitors and Entropy Estimator Freeze on Error.</description>
81            <bitOffset>8</bitOffset>
82            <bitWidth>1</bitWidth>
83          </field>
84          <field>
85            <name>ROMON_EE_FOD</name>
86            <description>Ring Oscillator Monitors and Entropy Estimator Freeze on Done.</description>
87            <bitOffset>9</bitOffset>
88            <bitWidth>1</bitWidth>
89          </field>
90          <field>
91            <name>EBLS</name>
92            <description>Entropy Bit Load Select.</description>
93            <bitOffset>10</bitOffset>
94            <bitWidth>1</bitWidth>
95          </field>
96          <field>
97            <name>KEYWIPE</name>
98            <description>To wipe the Battery Backed key.</description>
99            <bitOffset>15</bitOffset>
100            <bitWidth>1</bitWidth>
101          </field>
102          <field>
103            <name>GET_TERO_CNT</name>
104            <description>Get Tero Count.</description>
105            <bitOffset>16</bitOffset>
106            <bitWidth>1</bitWidth>
107          </field>
108          <field>
109            <name>EE_DONE_IE</name>
110            <description>Entropy Estimator Done Interrupt Enable.</description>
111            <bitOffset>23</bitOffset>
112            <bitWidth>1</bitWidth>
113          </field>
114          <field>
115            <name>ROMON_DIS</name>
116            <description>Ring Oscillator Disable.</description>
117            <bitOffset>24</bitOffset>
118            <bitWidth>3</bitWidth>
119            <enumeratedValues>
120              <enumeratedValue>
121                <name>RO_0</name>
122                <description>Ring Oscillator 0.</description>
123                <value>1</value>
124              </enumeratedValue>
125              <enumeratedValue>
126                <name>RO_1</name>
127                <description>Ring Oscillator 1.</description>
128                <value>2</value>
129              </enumeratedValue>
130              <enumeratedValue>
131                <name>RO_2</name>
132                <description>Ring Oscillator 2.</description>
133                <value>4</value>
134              </enumeratedValue>
135            </enumeratedValues>
136          </field>
137        </fields>
138      </register>
139      <register>
140        <name>STATUS</name>
141        <description>Data. The content of this register is valid only when RNG_IS = 1. When TRNG is disabled, read returns 0x0000 0000.</description>
142        <addressOffset>0x04</addressOffset>
143        <fields>
144          <field>
145            <name>RDY</name>
146            <description>32-bit random data is ready to read from TRNG_DATA register. Reading TRNG_DATA when RND_RDY=0 will return all 0's. IRQ is generated when RND_RDY=1 if TRNG_CN.RND_IRQ_EN=1.</description>
147            <bitOffset>0</bitOffset>
148            <bitWidth>1</bitWidth>
149            <enumeratedValues>
150              <enumeratedValue>
151                <name>Busy</name>
152                <description>TRNG Busy</description>
153                <value>0</value>
154              </enumeratedValue>
155              <enumeratedValue>
156                <name>Ready</name>
157                <description>32 bit random data is ready</description>
158                <value>1</value>
159              </enumeratedValue>
160            </enumeratedValues>
161          </field>
162          <field>
163            <name>OD_HEALTH</name>
164            <description>On-Demand health test status.</description>
165            <bitOffset>1</bitOffset>
166            <bitWidth>1</bitWidth>
167          </field>
168          <field>
169            <name>HEALTH</name>
170            <description>Health test status.</description>
171            <bitOffset>2</bitOffset>
172            <bitWidth>1</bitWidth>
173          </field>
174          <field>
175            <name>SRCFAIL</name>
176            <description>Entropy source has failed.</description>
177            <bitOffset>3</bitOffset>
178            <bitWidth>1</bitWidth>
179          </field>
180          <field>
181            <name>AES_KEYGEN</name>
182            <description>AESKGD.</description>
183            <bitOffset>4</bitOffset>
184            <bitWidth>1</bitWidth>
185          </field>
186          <field>
187            <name>OD_ROMON</name>
188            <description>On demand ring oscillator test status.</description>
189            <bitOffset>6</bitOffset>
190            <bitWidth>1</bitWidth>
191          </field>
192          <field>
193            <name>OD_EE</name>
194            <description>On demand entropy estimator status.</description>
195            <bitOffset>7</bitOffset>
196            <bitWidth>1</bitWidth>
197          </field>
198          <field>
199            <name>PP_ERR</name>
200            <description>Post process error.</description>
201            <bitOffset>8</bitOffset>
202            <bitWidth>1</bitWidth>
203          </field>
204          <field>
205            <name>ROMON_0_ERR</name>
206            <description>Ring Oscillator 0 Monitor Error.</description>
207            <bitOffset>9</bitOffset>
208            <bitWidth>1</bitWidth>
209          </field>
210          <field>
211            <name>ROMON_1_ERR</name>
212            <description>Ring Oscillator 1 Monitor Error.</description>
213            <bitOffset>10</bitOffset>
214            <bitWidth>1</bitWidth>
215          </field>
216          <field>
217            <name>ROMON_2_ERR</name>
218            <description>Ring Oscillator 2 Monitor Error.</description>
219            <bitOffset>11</bitOffset>
220            <bitWidth>1</bitWidth>
221          </field>
222          <field>
223            <name>EE_ERR_THR</name>
224            <description>Entropy Estimator Threshold Error.</description>
225            <bitOffset>12</bitOffset>
226            <bitWidth>1</bitWidth>
227          </field>
228          <field>
229            <name>EE_ERR_OOB</name>
230            <description>Entropy Estimator Out of Bounds Error..</description>
231            <bitOffset>13</bitOffset>
232            <bitWidth>1</bitWidth>
233          </field>
234          <field>
235            <name>EE_ERR_LOCK</name>
236            <description>Entropy Estimator Lock Error.</description>
237            <bitOffset>14</bitOffset>
238            <bitWidth>1</bitWidth>
239          </field>
240          <field>
241            <name>TERO_CNT_RDY</name>
242            <description>TERO Count Ready.</description>
243            <bitOffset>16</bitOffset>
244            <bitWidth>1</bitWidth>
245          </field>
246          <field>
247            <name>RC_ERR</name>
248            <description>Repetition Count Error.</description>
249            <bitOffset>17</bitOffset>
250            <bitWidth>1</bitWidth>
251          </field>
252          <field>
253            <name>AP_ERR</name>
254            <description>Adaptive Proportion Error.</description>
255            <bitOffset>18</bitOffset>
256            <bitWidth>1</bitWidth>
257          </field>
258          <field>
259            <name>DATA_DONE</name>
260            <description>Data register has been loaded with at least 32 new entropy bits.</description>
261            <bitOffset>19</bitOffset>
262            <bitWidth>1</bitWidth>
263          </field>
264          <field>
265            <name>DATA_NIST_DONE</name>
266            <description>Data NIST register has been loaded with at least 32 new entropy bits.</description>
267            <bitOffset>20</bitOffset>
268            <bitWidth>1</bitWidth>
269          </field>
270          <field>
271            <name>HEALTH_DONE</name>
272            <description>Health Test Done.</description>
273            <bitOffset>21</bitOffset>
274            <bitWidth>1</bitWidth>
275          </field>
276          <field>
277            <name>ROMON_DONE</name>
278            <description>Ring Oscillator Monitor Test Done.</description>
279            <bitOffset>22</bitOffset>
280            <bitWidth>1</bitWidth>
281          </field>
282          <field>
283            <name>EE_DONE</name>
284            <description>Entropy Estimator Test Done.</description>
285            <bitOffset>23</bitOffset>
286            <bitWidth>1</bitWidth>
287          </field>
288        </fields>
289      </register>
290      <register>
291        <name>DATA</name>
292        <description>Data. The content of this register is valid only when RNG_IS = 1. When TRNG is disabled, read returns 0x0000 0000.</description>
293        <addressOffset>0x08</addressOffset>
294        <access>read-only</access>
295        <fields>
296          <field>
297            <name>DATA</name>
298            <description>Data. The content of this register is valid only when RNG_IS =1. When TNRG is disabled, read returns 0x0000 0000.</description>
299            <bitOffset>0</bitOffset>
300            <bitWidth>32</bitWidth>
301          </field>
302        </fields>
303      </register>
304      <register>
305        <name>DATA_NIST</name>
306        <description>Data NIST Register.</description>
307        <addressOffset>0x38</addressOffset>
308        <fields>
309          <field>
310            <name>DATA</name>
311            <description>Ring Oscillator 1 Monitor Last Ring Oscillator Count.</description>
312            <bitOffset>0</bitOffset>
313            <bitWidth>32</bitWidth>
314          </field>
315        </fields>
316      </register>
317    </registers>
318  </peripheral>
319  <!-- TRNG:Random Number Generator              -->
320</device>