1 /**
2  * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
3  *
4  *  SPDX-License-Identifier: Apache-2.0
5  */
6 #pragma once
7 
8 #include <stdint.h>
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /** Group: PGM Data Register */
14 /** Type of pgm_data0 register
15  *  Register 0 that stores data to be programmed.
16  */
17 typedef union {
18     struct {
19         /** pgm_data_0 : R/W; bitpos: [31:0]; default: 0;
20          *  The content of the 0th 32-bit data to be programmed.
21          */
22         uint32_t pgm_data_0:32;
23     };
24     uint32_t val;
25 } efuse_pgm_data0_reg_t;
26 
27 /** Type of pgm_data1 register
28  *  Register 1 that stores data to be programmed.
29  */
30 typedef union {
31     struct {
32         /** pgm_data_1 : R/W; bitpos: [31:0]; default: 0;
33          *  The content of the 1st 32-bit data to be programmed.
34          */
35         uint32_t pgm_data_1:32;
36     };
37     uint32_t val;
38 } efuse_pgm_data1_reg_t;
39 
40 /** Type of pgm_data2 register
41  *  Register 2 that stores data to be programmed.
42  */
43 typedef union {
44     struct {
45         /** pgm_data_2 : R/W; bitpos: [31:0]; default: 0;
46          *  The content of the 2nd 32-bit data to be programmed.
47          */
48         uint32_t pgm_data_2:32;
49     };
50     uint32_t val;
51 } efuse_pgm_data2_reg_t;
52 
53 /** Type of pgm_data3 register
54  *  Register 3 that stores data to be programmed.
55  */
56 typedef union {
57     struct {
58         /** pgm_data_3 : R/W; bitpos: [31:0]; default: 0;
59          *  The content of the 3rd 32-bit data to be programmed.
60          */
61         uint32_t pgm_data_3:32;
62     };
63     uint32_t val;
64 } efuse_pgm_data3_reg_t;
65 
66 /** Type of pgm_data4 register
67  *  Register 4 that stores data to be programmed.
68  */
69 typedef union {
70     struct {
71         /** pgm_data_4 : R/W; bitpos: [31:0]; default: 0;
72          *  The content of the 4th 32-bit data to be programmed.
73          */
74         uint32_t pgm_data_4:32;
75     };
76     uint32_t val;
77 } efuse_pgm_data4_reg_t;
78 
79 /** Type of pgm_data5 register
80  *  Register 5 that stores data to be programmed.
81  */
82 typedef union {
83     struct {
84         /** pgm_data_5 : R/W; bitpos: [31:0]; default: 0;
85          *  The content of the 5th 32-bit data to be programmed.
86          */
87         uint32_t pgm_data_5:32;
88     };
89     uint32_t val;
90 } efuse_pgm_data5_reg_t;
91 
92 /** Type of pgm_data6 register
93  *  Register 6 that stores data to be programmed.
94  */
95 typedef union {
96     struct {
97         /** pgm_data_6 : R/W; bitpos: [31:0]; default: 0;
98          *  The content of the 6th 32-bit data to be programmed.
99          */
100         uint32_t pgm_data_6:32;
101     };
102     uint32_t val;
103 } efuse_pgm_data6_reg_t;
104 
105 /** Type of pgm_data7 register
106  *  Register 7 that stores data to be programmed.
107  */
108 typedef union {
109     struct {
110         /** pgm_data_7 : R/W; bitpos: [31:0]; default: 0;
111          *  The content of the 7th 32-bit data to be programmed.
112          */
113         uint32_t pgm_data_7:32;
114     };
115     uint32_t val;
116 } efuse_pgm_data7_reg_t;
117 
118 /** Type of pgm_check_value0 register
119  *  Register 0 that stores the RS code to be programmed.
120  */
121 typedef union {
122     struct {
123         /** pgm_rs_data_0 : R/W; bitpos: [31:0]; default: 0;
124          *  The content of the 0th 32-bit RS code to be programmed.
125          */
126         uint32_t pgm_rs_data_0:32;
127     };
128     uint32_t val;
129 } efuse_pgm_check_value0_reg_t;
130 
131 /** Type of pgm_check_value1 register
132  *  Register 1 that stores the RS code to be programmed.
133  */
134 typedef union {
135     struct {
136         /** pgm_rs_data_1 : R/W; bitpos: [31:0]; default: 0;
137          *  The content of the 1st 32-bit RS code to be programmed.
138          */
139         uint32_t pgm_rs_data_1:32;
140     };
141     uint32_t val;
142 } efuse_pgm_check_value1_reg_t;
143 
144 /** Type of pgm_check_value2 register
145  *  Register 2 that stores the RS code to be programmed.
146  */
147 typedef union {
148     struct {
149         /** pgm_rs_data_2 : R/W; bitpos: [31:0]; default: 0;
150          *  The content of the 2nd 32-bit RS code to be programmed.
151          */
152         uint32_t pgm_rs_data_2:32;
153     };
154     uint32_t val;
155 } efuse_pgm_check_value2_reg_t;
156 
157 
158 /** Group: Read Data Register */
159 /** Type of rd_wr_dis register
160  *  BLOCK0 data register 0.
161  */
162 typedef union {
163     struct {
164         /** wr_dis : RO; bitpos: [31:0]; default: 0;
165          *  Disable programming of individual eFuses.
166          */
167         uint32_t wr_dis:32;
168     };
169     uint32_t val;
170 } efuse_rd_wr_dis_reg_t;
171 
172 /** Type of rd_repeat_data0 register
173  *  BLOCK0 data register 1.
174  */
175 typedef union {
176     struct {
177         /** rd_dis : RO; bitpos: [6:0]; default: 0;
178          *  Set this bit to disable reading from BlOCK4-10.
179          */
180         uint32_t rd_dis:7;
181         /** dis_rtc_ram_boot : RO; bitpos: [7]; default: 0;
182          *  Set this bit to disable boot from RTC RAM.
183          */
184         uint32_t dis_rtc_ram_boot:1;
185         /** dis_icache : RO; bitpos: [8]; default: 0;
186          *  Set this bit to disable Icache.
187          */
188         uint32_t dis_icache:1;
189         /** dis_usb_jtag : RO; bitpos: [9]; default: 0;
190          *  Set this bit to disable function of usb switch to jtag in module of usb device.
191          */
192         uint32_t dis_usb_jtag:1;
193         /** dis_download_icache : RO; bitpos: [10]; default: 0;
194          *  Set this bit to disable Icache in download mode (boot_mode[3:0] is 0, 1, 2, 3, 6,
195          *  7).
196          */
197         uint32_t dis_download_icache:1;
198         /** dis_usb_serial_jtag : RO; bitpos: [11]; default: 0;
199          *  Represents whether USB-Serial-JTAG is disabled. 1: Disabled. 0: Enabled
200          */
201         uint32_t dis_usb_serial_jtag:1;
202         /** dis_force_download : RO; bitpos: [12]; default: 0;
203          *  Set this bit to disable the function that forces chip into download mode.
204          */
205         uint32_t dis_force_download:1;
206         /** rpt4_reserved6 : RO; bitpos: [13]; default: 0;
207          *  Reserved (used for four backups method).
208          */
209         uint32_t rpt4_reserved6:1;
210         /** dis_twai : RO; bitpos: [14]; default: 0;
211          *  Set this bit to disable CAN function.
212          */
213         uint32_t dis_twai:1;
214         /** jtag_sel_enable : RO; bitpos: [15]; default: 0;
215          *  Set this bit to enable selection between usb_to_jtag and pad_to_jtag through
216          *  strapping gpio10 when both reg_dis_usb_jtag and reg_dis_pad_jtag are equal to 0.
217          */
218         uint32_t jtag_sel_enable:1;
219         /** soft_dis_jtag : RO; bitpos: [18:16]; default: 0;
220          *  Set these bits to disable JTAG in the soft way (odd number 1 means disable ). JTAG
221          *  can be enabled in HMAC module.
222          */
223         uint32_t soft_dis_jtag:3;
224         /** dis_pad_jtag : RO; bitpos: [19]; default: 0;
225          *  Set this bit to disable JTAG in the hard way. JTAG is disabled permanently.
226          */
227         uint32_t dis_pad_jtag:1;
228         /** dis_download_manual_encrypt : RO; bitpos: [20]; default: 0;
229          *  Set this bit to disable flash encryption when in download boot modes.
230          */
231         uint32_t dis_download_manual_encrypt:1;
232         /** usb_drefh : RO; bitpos: [22:21]; default: 0;
233          *  Controls single-end input threshold vrefh, 1.76 V to 2 V with step of 80 mV, stored
234          *  in eFuse.
235          */
236         uint32_t usb_drefh:2;
237         /** usb_drefl : RO; bitpos: [24:23]; default: 0;
238          *  Controls single-end input threshold vrefl, 0.8 V to 1.04 V with step of 80 mV,
239          *  stored in eFuse.
240          */
241         uint32_t usb_drefl:2;
242         /** usb_exchg_pins : RO; bitpos: [25]; default: 0;
243          *  Set this bit to exchange USB D+ and D- pins.
244          */
245         uint32_t usb_exchg_pins:1;
246         /** vdd_spi_as_gpio : RO; bitpos: [26]; default: 0;
247          *  Set this bit to vdd spi pin function as gpio.
248          */
249         uint32_t vdd_spi_as_gpio:1;
250         /** btlc_gpio_enable : RO; bitpos: [28:27]; default: 0;
251          *  Enable btlc gpio.
252          */
253         uint32_t btlc_gpio_enable:2;
254         /** powerglitch_en : RO; bitpos: [29]; default: 0;
255          *  Set this bit to enable power glitch function.
256          */
257         uint32_t powerglitch_en:1;
258         /** power_glitch_dsense : RO; bitpos: [31:30]; default: 0;
259          *  Sample delay configuration of power glitch.
260          */
261         uint32_t power_glitch_dsense:2;
262     };
263     uint32_t val;
264 } efuse_rd_repeat_data0_reg_t;
265 
266 /** Type of rd_repeat_data1 register
267  *  BLOCK0 data register 2.
268  */
269 typedef union {
270     struct {
271         /** rpt4_reserved2 : RO; bitpos: [15:0]; default: 0;
272          *  Reserved (used for four backups method).
273          */
274         uint32_t rpt4_reserved2:16;
275         /** wdt_delay_sel : RO; bitpos: [17:16]; default: 0;
276          *  Selects RTC watchdog timeout threshold, in unit of slow clock cycle. 0: 40000. 1:
277          *  80000. 2: 160000. 3:320000.
278          */
279         uint32_t wdt_delay_sel:2;
280         /** spi_boot_crypt_cnt : RO; bitpos: [20:18]; default: 0;
281          *  Set this bit to enable SPI boot encrypt/decrypt. Odd number of 1: enable. even
282          *  number of 1: disable.
283          */
284         uint32_t spi_boot_crypt_cnt:3;
285         /** secure_boot_key_revoke0 : RO; bitpos: [21]; default: 0;
286          *  Set this bit to enable revoking first secure boot key.
287          */
288         uint32_t secure_boot_key_revoke0:1;
289         /** secure_boot_key_revoke1 : RO; bitpos: [22]; default: 0;
290          *  Set this bit to enable revoking second secure boot key.
291          */
292         uint32_t secure_boot_key_revoke1:1;
293         /** secure_boot_key_revoke2 : RO; bitpos: [23]; default: 0;
294          *  Set this bit to enable revoking third secure boot key.
295          */
296         uint32_t secure_boot_key_revoke2:1;
297         /** key_purpose_0 : RO; bitpos: [27:24]; default: 0;
298          *  Purpose of Key0.
299          */
300         uint32_t key_purpose_0:4;
301         /** key_purpose_1 : RO; bitpos: [31:28]; default: 0;
302          *  Purpose of Key1.
303          */
304         uint32_t key_purpose_1:4;
305     };
306     uint32_t val;
307 } efuse_rd_repeat_data1_reg_t;
308 
309 /** Type of rd_repeat_data2 register
310  *  BLOCK0 data register 3.
311  */
312 typedef union {
313     struct {
314         /** key_purpose_2 : RO; bitpos: [3:0]; default: 0;
315          *  Purpose of Key2.
316          */
317         uint32_t key_purpose_2:4;
318         /** key_purpose_3 : RO; bitpos: [7:4]; default: 0;
319          *  Purpose of Key3.
320          */
321         uint32_t key_purpose_3:4;
322         /** key_purpose_4 : RO; bitpos: [11:8]; default: 0;
323          *  Purpose of Key4.
324          */
325         uint32_t key_purpose_4:4;
326         /** key_purpose_5 : RO; bitpos: [15:12]; default: 0;
327          *  Purpose of Key5.
328          */
329         uint32_t key_purpose_5:4;
330         /** rpt4_reserved3 : RO; bitpos: [19:16]; default: 0;
331          *  Reserved (used for four backups method).
332          */
333         uint32_t rpt4_reserved3:4;
334         /** secure_boot_en : RO; bitpos: [20]; default: 0;
335          *  Set this bit to enable secure boot.
336          */
337         uint32_t secure_boot_en:1;
338         /** secure_boot_aggressive_revoke : RO; bitpos: [21]; default: 0;
339          *  Set this bit to enable revoking aggressive secure boot.
340          */
341         uint32_t secure_boot_aggressive_revoke:1;
342         /** rpt4_reserved0 : RO; bitpos: [27:22]; default: 0;
343          *  Reserved (used for four backups method).
344          */
345         uint32_t rpt4_reserved0:6;
346         /** flash_tpuw : RO; bitpos: [31:28]; default: 0;
347          *  Configures flash waiting time after power-up, in unit of ms. If the value is less
348          *  than 15, the waiting time is the configurable value; Otherwise, the waiting time is
349          *  twice the configurable value.
350          */
351         uint32_t flash_tpuw:4;
352     };
353     uint32_t val;
354 } efuse_rd_repeat_data2_reg_t;
355 
356 /** Type of rd_repeat_data3 register
357  *  BLOCK0 data register 4.
358  */
359 typedef union {
360     struct {
361         /** dis_download_mode : RO; bitpos: [0]; default: 0;
362          *  Set this bit to disable download mode (boot_mode[3:0] = 0, 1, 2, 3, 6, 7).
363          */
364         uint32_t dis_download_mode:1;
365         /** dis_direct_boot : RO; bitpos: [1]; default: 0;
366          *  Disable direct boot mode
367          */
368         uint32_t dis_direct_boot:1;
369         /** dis_usb_serial_jtag_rom_print : RO; bitpos: [2]; default: 0;
370          *  Represents whether USB printing is disabled or enabled. 1: Disabled. 0: Enabled
371          */
372         uint32_t dis_usb_serial_jtag_rom_print:1;
373         /** flash_ecc_mode : RO; bitpos: [3]; default: 0;
374          *  Set ECC mode in ROM, 0: ROM would Enable Flash ECC 16to18 byte mode. 1:ROM would
375          *  use 16to17 byte mode.
376          */
377         uint32_t flash_ecc_mode:1;
378         /** dis_usb_serial_jtag_download_mode : RO; bitpos: [4]; default: 0;
379          *  Disable UART download mode through USB-Serial-JTAG
380          */
381         uint32_t dis_usb_serial_jtag_download_mode:1;
382         /** enable_security_download : RO; bitpos: [5]; default: 0;
383          *  Set this bit to enable secure UART download mode.
384          */
385         uint32_t enable_security_download:1;
386         /** uart_print_control : RO; bitpos: [7:6]; default: 0;
387          *  Set the default UARTboot message output mode. 00: Enabled. 01: Enabled when GPIO8
388          *  is low at reset. 10: Enabled when GPIO8 is high at reset. 11:disabled.
389          */
390         uint32_t uart_print_control:2;
391         /** pin_power_selection : RO; bitpos: [8]; default: 0;
392          *  GPIO33-GPIO37 power supply selection in ROM code. 0: VDD3P3_CPU. 1: VDD_SPI.
393          */
394         uint32_t pin_power_selection:1;
395         /** flash_type : RO; bitpos: [9]; default: 0;
396          *  Set the maximum lines of SPI flash. 0: four lines. 1: eight lines.
397          */
398         uint32_t flash_type:1;
399         /** flash_page_size : RO; bitpos: [11:10]; default: 0;
400          *  Set Flash page size.
401          */
402         uint32_t flash_page_size:2;
403         /** flash_ecc_en : RO; bitpos: [12]; default: 0;
404          *  Set 1 to enable ECC for flash boot.
405          */
406         uint32_t flash_ecc_en:1;
407         /** force_send_resume : RO; bitpos: [13]; default: 0;
408          *  Set this bit to force ROM code to send a resume command during SPI boot.
409          */
410         uint32_t force_send_resume:1;
411         /** secure_version : RO; bitpos: [29:14]; default: 0;
412          *  Secure version (used by ESP-IDF anti-rollback feature).
413          */
414         uint32_t secure_version:16;
415         /** reserved_0_158 : R; bitpos: [30]; default: 0;
416          *  reserved
417          */
418         uint32_t reserved_0_158:1;
419         /** err_rst_enable : R; bitpos: [31]; default: 0;
420          *  Use BLOCK0 to check error record registers
421          */
422         uint32_t err_rst_enable:1;
423     };
424     uint32_t val;
425 } efuse_rd_repeat_data3_reg_t;
426 
427 /** Type of rd_repeat_data4 register
428  *  BLOCK0 data register 5.
429  */
430 typedef union {
431     struct {
432         /** disable_wafer_version_major : R; bitpos: [0]; default: 0;
433          *  Disables check of wafer version major
434          */
435         uint32_t disable_wafer_version_major:1;
436         /** disable_blk_version_major : R; bitpos: [1]; default: 0;
437          *  Disables check of blk version major
438          */
439         uint32_t disable_blk_version_major:1;
440         /** reserved_0_162 : R; bitpos: [23:2]; default: 0;
441          *  reserved
442          */
443         uint32_t reserved_0_162:22;
444         uint32_t reserved_24:8;
445     };
446     uint32_t val;
447 } efuse_rd_repeat_data4_reg_t;
448 
449 /** Type of rd_mac_spi_sys_0 register
450  *  BLOCK1 data register 0.
451  */
452 typedef union {
453     struct {
454         /** mac_0 : RO; bitpos: [31:0]; default: 0;
455          *  Stores the low 32 bits of MAC address.
456          */
457         uint32_t mac_0:32;
458     };
459     uint32_t val;
460 } efuse_rd_mac_spi_sys_0_reg_t;
461 
462 /** Type of rd_mac_spi_sys_1 register
463  *  BLOCK1 data register 1.
464  */
465 typedef union {
466     struct {
467         /** mac_1 : RO; bitpos: [15:0]; default: 0;
468          *  Stores the high 16 bits of MAC address.
469          */
470         uint32_t mac_1:16;
471         /** spi_pad_config_clk : R; bitpos: [21:16]; default: 0;
472          *  SPI PAD CLK
473          */
474         uint32_t spi_pad_config_clk:6;
475         /** spi_pad_config_q : R; bitpos: [27:22]; default: 0;
476          *  SPI PAD Q(D1)
477          */
478         uint32_t spi_pad_config_q:6;
479         /** spi_pad_config_d : R; bitpos: [31:28]; default: 0;
480          *  SPI PAD D(D0)
481          */
482         uint32_t spi_pad_config_d:4;
483     };
484     uint32_t val;
485 } efuse_rd_mac_spi_sys_1_reg_t;
486 
487 /** Type of rd_mac_spi_sys_2 register
488  *  BLOCK1 data register 2.
489  */
490 typedef union {
491     struct {
492         /** spi_pad_config_d_1 : R; bitpos: [1:0]; default: 0;
493          *  SPI PAD D(D0)
494          */
495         uint32_t spi_pad_config_d_1:2;
496         /** spi_pad_config_cs : R; bitpos: [7:2]; default: 0;
497          *  SPI PAD CS
498          */
499         uint32_t spi_pad_config_cs:6;
500         /** spi_pad_config_hd : R; bitpos: [13:8]; default: 0;
501          *  SPI PAD HD(D3)
502          */
503         uint32_t spi_pad_config_hd:6;
504         /** spi_pad_config_wp : R; bitpos: [19:14]; default: 0;
505          *  SPI PAD WP(D2)
506          */
507         uint32_t spi_pad_config_wp:6;
508         /** spi_pad_config_dqs : R; bitpos: [25:20]; default: 0;
509          *  SPI PAD DQS
510          */
511         uint32_t spi_pad_config_dqs:6;
512         /** spi_pad_config_d4 : R; bitpos: [31:26]; default: 0;
513          *  SPI PAD D4
514          */
515         uint32_t spi_pad_config_d4:6;
516     };
517     uint32_t val;
518 } efuse_rd_mac_spi_sys_2_reg_t;
519 
520 /** Type of rd_mac_spi_sys_3 register
521  *  BLOCK1 data register 3.
522  */
523 typedef union {
524     struct {
525         /** spi_pad_config_d5 : R; bitpos: [5:0]; default: 0;
526          *  SPI PAD D5
527          */
528         uint32_t spi_pad_config_d5:6;
529         /** spi_pad_config_d6 : R; bitpos: [11:6]; default: 0;
530          *  SPI PAD D6
531          */
532         uint32_t spi_pad_config_d6:6;
533         /** spi_pad_config_d7 : R; bitpos: [17:12]; default: 0;
534          *  SPI PAD D7
535          */
536         uint32_t spi_pad_config_d7:6;
537         /** wafer_version_minor_lo : R; bitpos: [20:18]; default: 0;
538          *  WAFER_VERSION_MINOR least significant bits
539          */
540         uint32_t wafer_version_minor_lo:3;
541         /** pkg_version : R; bitpos: [23:21]; default: 0;
542          *  Package version
543          */
544         uint32_t pkg_version:3;
545         /** blk_version_minor : R; bitpos: [26:24]; default: 0;
546          *  BLK_VERSION_MINOR
547          */
548         uint32_t blk_version_minor:3;
549         /** reserved_1_123 : R; bitpos: [31:27]; default: 0;
550          *  reserved
551          */
552         uint32_t reserved_1_123:5;
553     };
554     uint32_t val;
555 } efuse_rd_mac_spi_sys_3_reg_t;
556 
557 /** Type of rd_mac_spi_sys_4 register
558  *  BLOCK1 data register 4.
559  */
560 typedef union {
561     struct {
562         /** reserved_1_128 : R; bitpos: [6:0]; default: 0;
563          *  reserved
564          */
565         uint32_t reserved_1_128:7;
566         /** k_rtc_ldo : R; bitpos: [13:7]; default: 0;
567          *  BLOCK1 K_RTC_LDO
568          */
569         uint32_t k_rtc_ldo:7;
570         /** k_dig_ldo : R; bitpos: [20:14]; default: 0;
571          *  BLOCK1 K_DIG_LDO
572          */
573         uint32_t k_dig_ldo:7;
574         /** v_rtc_dbias20 : R; bitpos: [28:21]; default: 0;
575          *  BLOCK1 voltage of rtc dbias20
576          */
577         uint32_t v_rtc_dbias20:8;
578         /** v_dig_dbias20 : R; bitpos: [31:29]; default: 0;
579          *  BLOCK1 voltage of digital dbias20
580          */
581         uint32_t v_dig_dbias20:3;
582     };
583     uint32_t val;
584 } efuse_rd_mac_spi_sys_4_reg_t;
585 
586 /** Type of rd_mac_spi_sys_5 register
587  *  BLOCK1 data register 5.
588  */
589 typedef union {
590     struct {
591         /** v_dig_dbias20_1 : R; bitpos: [4:0]; default: 0;
592          *  BLOCK1 voltage of digital dbias20
593          */
594         uint32_t v_dig_dbias20_1:5;
595         /** dig_dbias_hvt : R; bitpos: [9:5]; default: 0;
596          *  BLOCK1 digital dbias when hvt
597          */
598         uint32_t dig_dbias_hvt:5;
599         /** thres_hvt : R; bitpos: [19:10]; default: 0;
600          *  BLOCK1 pvt threshold when hvt
601          */
602         uint32_t thres_hvt:10;
603         /** reserved_1_180 : R; bitpos: [22:20]; default: 0;
604          *  reserved
605          */
606         uint32_t reserved_1_180:3;
607         /** wafer_version_minor_hi : R; bitpos: [23]; default: 0;
608          *  WAFER_VERSION_MINOR most significant bit
609          */
610         uint32_t wafer_version_minor_hi:1;
611         /** wafer_version_major : R; bitpos: [25:24]; default: 0;
612          *  WAFER_VERSION_MAJOR
613          */
614         uint32_t wafer_version_major:2;
615         /** reserved_1_186 : R; bitpos: [31:26]; default: 0;
616          *  reserved
617          */
618         uint32_t reserved_1_186:6;
619     };
620     uint32_t val;
621 } efuse_rd_mac_spi_sys_5_reg_t;
622 
623 /** Type of rd_sys_part1_data0 register
624  *  Register 0 of BLOCK2 (system).
625  */
626 typedef union {
627     struct {
628         /** optional_unique_id : R; bitpos: [31:0]; default: 0;
629          *  Optional unique 128-bit ID
630          */
631         uint32_t optional_unique_id:32;
632     };
633     uint32_t val;
634 } efuse_rd_sys_part1_data0_reg_t;
635 
636 /** Type of rd_sys_part1_data1 register
637  *  Register 1 of BLOCK2 (system).
638  */
639 typedef union {
640     struct {
641         /** optional_unique_id_1 : R; bitpos: [31:0]; default: 0;
642          *  Optional unique 128-bit ID
643          */
644         uint32_t optional_unique_id_1:32;
645     };
646     uint32_t val;
647 } efuse_rd_sys_part1_data1_reg_t;
648 
649 /** Type of rd_sys_part1_data2 register
650  *  Register 2 of BLOCK2 (system).
651  */
652 typedef union {
653     struct {
654         /** optional_unique_id_2 : R; bitpos: [31:0]; default: 0;
655          *  Optional unique 128-bit ID
656          */
657         uint32_t optional_unique_id_2:32;
658     };
659     uint32_t val;
660 } efuse_rd_sys_part1_data2_reg_t;
661 
662 /** Type of rd_sys_part1_data3 register
663  *  Register 3 of BLOCK2 (system).
664  */
665 typedef union {
666     struct {
667         /** optional_unique_id_3 : R; bitpos: [31:0]; default: 0;
668          *  Optional unique 128-bit ID
669          */
670         uint32_t optional_unique_id_3:32;
671     };
672     uint32_t val;
673 } efuse_rd_sys_part1_data3_reg_t;
674 
675 /** Type of rd_sys_part1_data4 register
676  *  Register 4 of BLOCK2 (system).
677  */
678 typedef union {
679     struct {
680         /** blk_version_major : R; bitpos: [1:0]; default: 0;
681          *  BLK_VERSION_MAJOR of BLOCK2
682          */
683         uint32_t blk_version_major:2;
684         /** reserved_2_130 : R; bitpos: [2]; default: 0;
685          *  reserved
686          */
687         uint32_t reserved_2_130:1;
688         /** temp_calib : R; bitpos: [11:3]; default: 0;
689          *  Temperature calibration data
690          */
691         uint32_t temp_calib:9;
692         /** ocode : R; bitpos: [19:12]; default: 0;
693          *  ADC OCode
694          */
695         uint32_t ocode:8;
696         /** adc1_init_code_atten0 : R; bitpos: [29:20]; default: 0;
697          *  ADC1 init code at atten0
698          */
699         uint32_t adc1_init_code_atten0:10;
700         /** adc1_init_code_atten1 : R; bitpos: [31:30]; default: 0;
701          *  ADC1 init code at atten1
702          */
703         uint32_t adc1_init_code_atten1:2;
704     };
705     uint32_t val;
706 } efuse_rd_sys_part1_data4_reg_t;
707 
708 /** Type of rd_sys_part1_data5 register
709  *  Register 5 of BLOCK2 (system).
710  */
711 typedef union {
712     struct {
713         /** adc1_init_code_atten1_1 : R; bitpos: [7:0]; default: 0;
714          *  ADC1 init code at atten1
715          */
716         uint32_t adc1_init_code_atten1_1:8;
717         /** adc1_init_code_atten2 : R; bitpos: [17:8]; default: 0;
718          *  ADC1 init code at atten2
719          */
720         uint32_t adc1_init_code_atten2:10;
721         /** adc1_init_code_atten3 : R; bitpos: [27:18]; default: 0;
722          *  ADC1 init code at atten3
723          */
724         uint32_t adc1_init_code_atten3:10;
725         /** adc1_cal_vol_atten0 : R; bitpos: [31:28]; default: 0;
726          *  ADC1 calibration voltage at atten0
727          */
728         uint32_t adc1_cal_vol_atten0:4;
729     };
730     uint32_t val;
731 } efuse_rd_sys_part1_data5_reg_t;
732 
733 /** Type of rd_sys_part1_data6 register
734  *  Register 6 of BLOCK2 (system).
735  */
736 typedef union {
737     struct {
738         /** adc1_cal_vol_atten0_1 : R; bitpos: [5:0]; default: 0;
739          *  ADC1 calibration voltage at atten0
740          */
741         uint32_t adc1_cal_vol_atten0_1:6;
742         /** adc1_cal_vol_atten1 : R; bitpos: [15:6]; default: 0;
743          *  ADC1 calibration voltage at atten1
744          */
745         uint32_t adc1_cal_vol_atten1:10;
746         /** adc1_cal_vol_atten2 : R; bitpos: [25:16]; default: 0;
747          *  ADC1 calibration voltage at atten2
748          */
749         uint32_t adc1_cal_vol_atten2:10;
750         /** adc1_cal_vol_atten3 : R; bitpos: [31:26]; default: 0;
751          *  ADC1 calibration voltage at atten3
752          */
753         uint32_t adc1_cal_vol_atten3:6;
754     };
755     uint32_t val;
756 } efuse_rd_sys_part1_data6_reg_t;
757 
758 /** Type of rd_sys_part1_data7 register
759  *  Register 7 of BLOCK2 (system).
760  */
761 typedef union {
762     struct {
763         /** adc1_cal_vol_atten3_1 : R; bitpos: [3:0]; default: 0;
764          *  ADC1 calibration voltage at atten3
765          */
766         uint32_t adc1_cal_vol_atten3_1:4;
767         /** reserved_2_228 : R; bitpos: [31:4]; default: 0;
768          *  reserved
769          */
770         uint32_t reserved_2_228:28;
771     };
772     uint32_t val;
773 } efuse_rd_sys_part1_data7_reg_t;
774 
775 /** Type of rd_usr_data0 register
776  *  Register 0 of BLOCK3 (user).
777  */
778 typedef union {
779     struct {
780         /** usr_data0 : RO; bitpos: [31:0]; default: 0;
781          *  Stores the zeroth 32 bits of BLOCK3 (user).
782          */
783         uint32_t usr_data0:32;
784     };
785     uint32_t val;
786 } efuse_rd_usr_data0_reg_t;
787 
788 /** Type of rd_usr_data1 register
789  *  Register 1 of BLOCK3 (user).
790  */
791 typedef union {
792     struct {
793         /** usr_data1 : RO; bitpos: [31:0]; default: 0;
794          *  Stores the first 32 bits of BLOCK3 (user).
795          */
796         uint32_t usr_data1:32;
797     };
798     uint32_t val;
799 } efuse_rd_usr_data1_reg_t;
800 
801 /** Type of rd_usr_data2 register
802  *  Register 2 of BLOCK3 (user).
803  */
804 typedef union {
805     struct {
806         /** usr_data2 : RO; bitpos: [31:0]; default: 0;
807          *  Stores the second 32 bits of BLOCK3 (user).
808          */
809         uint32_t usr_data2:32;
810     };
811     uint32_t val;
812 } efuse_rd_usr_data2_reg_t;
813 
814 /** Type of rd_usr_data3 register
815  *  Register 3 of BLOCK3 (user).
816  */
817 typedef union {
818     struct {
819         /** usr_data3 : RO; bitpos: [31:0]; default: 0;
820          *  Stores the third 32 bits of BLOCK3 (user).
821          */
822         uint32_t usr_data3:32;
823     };
824     uint32_t val;
825 } efuse_rd_usr_data3_reg_t;
826 
827 /** Type of rd_usr_data4 register
828  *  Register 4 of BLOCK3 (user).
829  */
830 typedef union {
831     struct {
832         /** usr_data4 : RO; bitpos: [31:0]; default: 0;
833          *  Stores the fourth 32 bits of BLOCK3 (user).
834          */
835         uint32_t usr_data4:32;
836     };
837     uint32_t val;
838 } efuse_rd_usr_data4_reg_t;
839 
840 /** Type of rd_usr_data5 register
841  *  Register 5 of BLOCK3 (user).
842  */
843 typedef union {
844     struct {
845         /** usr_data5 : RO; bitpos: [31:0]; default: 0;
846          *  Stores the fifth 32 bits of BLOCK3 (user).
847          */
848         uint32_t usr_data5:32;
849     };
850     uint32_t val;
851 } efuse_rd_usr_data5_reg_t;
852 
853 /** Type of rd_usr_data6 register
854  *  Register 6 of BLOCK3 (user).
855  */
856 typedef union {
857     struct {
858         /** reserved_3_192 : R; bitpos: [7:0]; default: 0;
859          *  reserved
860          */
861         uint32_t reserved_3_192:8;
862         /** custom_mac : R; bitpos: [31:8]; default: 0;
863          *  Custom MAC address
864          */
865         uint32_t custom_mac:24;
866     };
867     uint32_t val;
868 } efuse_rd_usr_data6_reg_t;
869 
870 /** Type of rd_usr_data7 register
871  *  Register 7 of BLOCK3 (user).
872  */
873 typedef union {
874     struct {
875         /** custom_mac_1 : R; bitpos: [23:0]; default: 0;
876          *  Custom MAC address
877          */
878         uint32_t custom_mac_1:24;
879         /** reserved_3_248 : R; bitpos: [31:24]; default: 0;
880          *  reserved
881          */
882         uint32_t reserved_3_248:8;
883     };
884     uint32_t val;
885 } efuse_rd_usr_data7_reg_t;
886 
887 /** Type of rd_key0_data0 register
888  *  Register 0 of BLOCK4 (KEY0).
889  */
890 typedef union {
891     struct {
892         /** key0_data0 : RO; bitpos: [31:0]; default: 0;
893          *  Stores the zeroth 32 bits of KEY0.
894          */
895         uint32_t key0_data0:32;
896     };
897     uint32_t val;
898 } efuse_rd_key0_data0_reg_t;
899 
900 /** Type of rd_key0_data1 register
901  *  Register 1 of BLOCK4 (KEY0).
902  */
903 typedef union {
904     struct {
905         /** key0_data1 : RO; bitpos: [31:0]; default: 0;
906          *  Stores the first 32 bits of KEY0.
907          */
908         uint32_t key0_data1:32;
909     };
910     uint32_t val;
911 } efuse_rd_key0_data1_reg_t;
912 
913 /** Type of rd_key0_data2 register
914  *  Register 2 of BLOCK4 (KEY0).
915  */
916 typedef union {
917     struct {
918         /** key0_data2 : RO; bitpos: [31:0]; default: 0;
919          *  Stores the second 32 bits of KEY0.
920          */
921         uint32_t key0_data2:32;
922     };
923     uint32_t val;
924 } efuse_rd_key0_data2_reg_t;
925 
926 /** Type of rd_key0_data3 register
927  *  Register 3 of BLOCK4 (KEY0).
928  */
929 typedef union {
930     struct {
931         /** key0_data3 : RO; bitpos: [31:0]; default: 0;
932          *  Stores the third 32 bits of KEY0.
933          */
934         uint32_t key0_data3:32;
935     };
936     uint32_t val;
937 } efuse_rd_key0_data3_reg_t;
938 
939 /** Type of rd_key0_data4 register
940  *  Register 4 of BLOCK4 (KEY0).
941  */
942 typedef union {
943     struct {
944         /** key0_data4 : RO; bitpos: [31:0]; default: 0;
945          *  Stores the fourth 32 bits of KEY0.
946          */
947         uint32_t key0_data4:32;
948     };
949     uint32_t val;
950 } efuse_rd_key0_data4_reg_t;
951 
952 /** Type of rd_key0_data5 register
953  *  Register 5 of BLOCK4 (KEY0).
954  */
955 typedef union {
956     struct {
957         /** key0_data5 : RO; bitpos: [31:0]; default: 0;
958          *  Stores the fifth 32 bits of KEY0.
959          */
960         uint32_t key0_data5:32;
961     };
962     uint32_t val;
963 } efuse_rd_key0_data5_reg_t;
964 
965 /** Type of rd_key0_data6 register
966  *  Register 6 of BLOCK4 (KEY0).
967  */
968 typedef union {
969     struct {
970         /** key0_data6 : RO; bitpos: [31:0]; default: 0;
971          *  Stores the sixth 32 bits of KEY0.
972          */
973         uint32_t key0_data6:32;
974     };
975     uint32_t val;
976 } efuse_rd_key0_data6_reg_t;
977 
978 /** Type of rd_key0_data7 register
979  *  Register 7 of BLOCK4 (KEY0).
980  */
981 typedef union {
982     struct {
983         /** key0_data7 : RO; bitpos: [31:0]; default: 0;
984          *  Stores the seventh 32 bits of KEY0.
985          */
986         uint32_t key0_data7:32;
987     };
988     uint32_t val;
989 } efuse_rd_key0_data7_reg_t;
990 
991 /** Type of rd_key1_data0 register
992  *  Register 0 of BLOCK5 (KEY1).
993  */
994 typedef union {
995     struct {
996         /** key1_data0 : RO; bitpos: [31:0]; default: 0;
997          *  Stores the zeroth 32 bits of KEY1.
998          */
999         uint32_t key1_data0:32;
1000     };
1001     uint32_t val;
1002 } efuse_rd_key1_data0_reg_t;
1003 
1004 /** Type of rd_key1_data1 register
1005  *  Register 1 of BLOCK5 (KEY1).
1006  */
1007 typedef union {
1008     struct {
1009         /** key1_data1 : RO; bitpos: [31:0]; default: 0;
1010          *  Stores the first 32 bits of KEY1.
1011          */
1012         uint32_t key1_data1:32;
1013     };
1014     uint32_t val;
1015 } efuse_rd_key1_data1_reg_t;
1016 
1017 /** Type of rd_key1_data2 register
1018  *  Register 2 of BLOCK5 (KEY1).
1019  */
1020 typedef union {
1021     struct {
1022         /** key1_data2 : RO; bitpos: [31:0]; default: 0;
1023          *  Stores the second 32 bits of KEY1.
1024          */
1025         uint32_t key1_data2:32;
1026     };
1027     uint32_t val;
1028 } efuse_rd_key1_data2_reg_t;
1029 
1030 /** Type of rd_key1_data3 register
1031  *  Register 3 of BLOCK5 (KEY1).
1032  */
1033 typedef union {
1034     struct {
1035         /** key1_data3 : RO; bitpos: [31:0]; default: 0;
1036          *  Stores the third 32 bits of KEY1.
1037          */
1038         uint32_t key1_data3:32;
1039     };
1040     uint32_t val;
1041 } efuse_rd_key1_data3_reg_t;
1042 
1043 /** Type of rd_key1_data4 register
1044  *  Register 4 of BLOCK5 (KEY1).
1045  */
1046 typedef union {
1047     struct {
1048         /** key1_data4 : RO; bitpos: [31:0]; default: 0;
1049          *  Stores the fourth 32 bits of KEY1.
1050          */
1051         uint32_t key1_data4:32;
1052     };
1053     uint32_t val;
1054 } efuse_rd_key1_data4_reg_t;
1055 
1056 /** Type of rd_key1_data5 register
1057  *  Register 5 of BLOCK5 (KEY1).
1058  */
1059 typedef union {
1060     struct {
1061         /** key1_data5 : RO; bitpos: [31:0]; default: 0;
1062          *  Stores the fifth 32 bits of KEY1.
1063          */
1064         uint32_t key1_data5:32;
1065     };
1066     uint32_t val;
1067 } efuse_rd_key1_data5_reg_t;
1068 
1069 /** Type of rd_key1_data6 register
1070  *  Register 6 of BLOCK5 (KEY1).
1071  */
1072 typedef union {
1073     struct {
1074         /** key1_data6 : RO; bitpos: [31:0]; default: 0;
1075          *  Stores the sixth 32 bits of KEY1.
1076          */
1077         uint32_t key1_data6:32;
1078     };
1079     uint32_t val;
1080 } efuse_rd_key1_data6_reg_t;
1081 
1082 /** Type of rd_key1_data7 register
1083  *  Register 7 of BLOCK5 (KEY1).
1084  */
1085 typedef union {
1086     struct {
1087         /** key1_data7 : RO; bitpos: [31:0]; default: 0;
1088          *  Stores the seventh 32 bits of KEY1.
1089          */
1090         uint32_t key1_data7:32;
1091     };
1092     uint32_t val;
1093 } efuse_rd_key1_data7_reg_t;
1094 
1095 /** Type of rd_key2_data0 register
1096  *  Register 0 of BLOCK6 (KEY2).
1097  */
1098 typedef union {
1099     struct {
1100         /** key2_data0 : RO; bitpos: [31:0]; default: 0;
1101          *  Stores the zeroth 32 bits of KEY2.
1102          */
1103         uint32_t key2_data0:32;
1104     };
1105     uint32_t val;
1106 } efuse_rd_key2_data0_reg_t;
1107 
1108 /** Type of rd_key2_data1 register
1109  *  Register 1 of BLOCK6 (KEY2).
1110  */
1111 typedef union {
1112     struct {
1113         /** key2_data1 : RO; bitpos: [31:0]; default: 0;
1114          *  Stores the first 32 bits of KEY2.
1115          */
1116         uint32_t key2_data1:32;
1117     };
1118     uint32_t val;
1119 } efuse_rd_key2_data1_reg_t;
1120 
1121 /** Type of rd_key2_data2 register
1122  *  Register 2 of BLOCK6 (KEY2).
1123  */
1124 typedef union {
1125     struct {
1126         /** key2_data2 : RO; bitpos: [31:0]; default: 0;
1127          *  Stores the second 32 bits of KEY2.
1128          */
1129         uint32_t key2_data2:32;
1130     };
1131     uint32_t val;
1132 } efuse_rd_key2_data2_reg_t;
1133 
1134 /** Type of rd_key2_data3 register
1135  *  Register 3 of BLOCK6 (KEY2).
1136  */
1137 typedef union {
1138     struct {
1139         /** key2_data3 : RO; bitpos: [31:0]; default: 0;
1140          *  Stores the third 32 bits of KEY2.
1141          */
1142         uint32_t key2_data3:32;
1143     };
1144     uint32_t val;
1145 } efuse_rd_key2_data3_reg_t;
1146 
1147 /** Type of rd_key2_data4 register
1148  *  Register 4 of BLOCK6 (KEY2).
1149  */
1150 typedef union {
1151     struct {
1152         /** key2_data4 : RO; bitpos: [31:0]; default: 0;
1153          *  Stores the fourth 32 bits of KEY2.
1154          */
1155         uint32_t key2_data4:32;
1156     };
1157     uint32_t val;
1158 } efuse_rd_key2_data4_reg_t;
1159 
1160 /** Type of rd_key2_data5 register
1161  *  Register 5 of BLOCK6 (KEY2).
1162  */
1163 typedef union {
1164     struct {
1165         /** key2_data5 : RO; bitpos: [31:0]; default: 0;
1166          *  Stores the fifth 32 bits of KEY2.
1167          */
1168         uint32_t key2_data5:32;
1169     };
1170     uint32_t val;
1171 } efuse_rd_key2_data5_reg_t;
1172 
1173 /** Type of rd_key2_data6 register
1174  *  Register 6 of BLOCK6 (KEY2).
1175  */
1176 typedef union {
1177     struct {
1178         /** key2_data6 : RO; bitpos: [31:0]; default: 0;
1179          *  Stores the sixth 32 bits of KEY2.
1180          */
1181         uint32_t key2_data6:32;
1182     };
1183     uint32_t val;
1184 } efuse_rd_key2_data6_reg_t;
1185 
1186 /** Type of rd_key2_data7 register
1187  *  Register 7 of BLOCK6 (KEY2).
1188  */
1189 typedef union {
1190     struct {
1191         /** key2_data7 : RO; bitpos: [31:0]; default: 0;
1192          *  Stores the seventh 32 bits of KEY2.
1193          */
1194         uint32_t key2_data7:32;
1195     };
1196     uint32_t val;
1197 } efuse_rd_key2_data7_reg_t;
1198 
1199 /** Type of rd_key3_data0 register
1200  *  Register 0 of BLOCK7 (KEY3).
1201  */
1202 typedef union {
1203     struct {
1204         /** key3_data0 : RO; bitpos: [31:0]; default: 0;
1205          *  Stores the zeroth 32 bits of KEY3.
1206          */
1207         uint32_t key3_data0:32;
1208     };
1209     uint32_t val;
1210 } efuse_rd_key3_data0_reg_t;
1211 
1212 /** Type of rd_key3_data1 register
1213  *  Register 1 of BLOCK7 (KEY3).
1214  */
1215 typedef union {
1216     struct {
1217         /** key3_data1 : RO; bitpos: [31:0]; default: 0;
1218          *  Stores the first 32 bits of KEY3.
1219          */
1220         uint32_t key3_data1:32;
1221     };
1222     uint32_t val;
1223 } efuse_rd_key3_data1_reg_t;
1224 
1225 /** Type of rd_key3_data2 register
1226  *  Register 2 of BLOCK7 (KEY3).
1227  */
1228 typedef union {
1229     struct {
1230         /** key3_data2 : RO; bitpos: [31:0]; default: 0;
1231          *  Stores the second 32 bits of KEY3.
1232          */
1233         uint32_t key3_data2:32;
1234     };
1235     uint32_t val;
1236 } efuse_rd_key3_data2_reg_t;
1237 
1238 /** Type of rd_key3_data3 register
1239  *  Register 3 of BLOCK7 (KEY3).
1240  */
1241 typedef union {
1242     struct {
1243         /** key3_data3 : RO; bitpos: [31:0]; default: 0;
1244          *  Stores the third 32 bits of KEY3.
1245          */
1246         uint32_t key3_data3:32;
1247     };
1248     uint32_t val;
1249 } efuse_rd_key3_data3_reg_t;
1250 
1251 /** Type of rd_key3_data4 register
1252  *  Register 4 of BLOCK7 (KEY3).
1253  */
1254 typedef union {
1255     struct {
1256         /** key3_data4 : RO; bitpos: [31:0]; default: 0;
1257          *  Stores the fourth 32 bits of KEY3.
1258          */
1259         uint32_t key3_data4:32;
1260     };
1261     uint32_t val;
1262 } efuse_rd_key3_data4_reg_t;
1263 
1264 /** Type of rd_key3_data5 register
1265  *  Register 5 of BLOCK7 (KEY3).
1266  */
1267 typedef union {
1268     struct {
1269         /** key3_data5 : RO; bitpos: [31:0]; default: 0;
1270          *  Stores the fifth 32 bits of KEY3.
1271          */
1272         uint32_t key3_data5:32;
1273     };
1274     uint32_t val;
1275 } efuse_rd_key3_data5_reg_t;
1276 
1277 /** Type of rd_key3_data6 register
1278  *  Register 6 of BLOCK7 (KEY3).
1279  */
1280 typedef union {
1281     struct {
1282         /** key3_data6 : RO; bitpos: [31:0]; default: 0;
1283          *  Stores the sixth 32 bits of KEY3.
1284          */
1285         uint32_t key3_data6:32;
1286     };
1287     uint32_t val;
1288 } efuse_rd_key3_data6_reg_t;
1289 
1290 /** Type of rd_key3_data7 register
1291  *  Register 7 of BLOCK7 (KEY3).
1292  */
1293 typedef union {
1294     struct {
1295         /** key3_data7 : RO; bitpos: [31:0]; default: 0;
1296          *  Stores the seventh 32 bits of KEY3.
1297          */
1298         uint32_t key3_data7:32;
1299     };
1300     uint32_t val;
1301 } efuse_rd_key3_data7_reg_t;
1302 
1303 /** Type of rd_key4_data0 register
1304  *  Register 0 of BLOCK8 (KEY4).
1305  */
1306 typedef union {
1307     struct {
1308         /** key4_data0 : RO; bitpos: [31:0]; default: 0;
1309          *  Stores the zeroth 32 bits of KEY4.
1310          */
1311         uint32_t key4_data0:32;
1312     };
1313     uint32_t val;
1314 } efuse_rd_key4_data0_reg_t;
1315 
1316 /** Type of rd_key4_data1 register
1317  *  Register 1 of BLOCK8 (KEY4).
1318  */
1319 typedef union {
1320     struct {
1321         /** key4_data1 : RO; bitpos: [31:0]; default: 0;
1322          *  Stores the first 32 bits of KEY4.
1323          */
1324         uint32_t key4_data1:32;
1325     };
1326     uint32_t val;
1327 } efuse_rd_key4_data1_reg_t;
1328 
1329 /** Type of rd_key4_data2 register
1330  *  Register 2 of BLOCK8 (KEY4).
1331  */
1332 typedef union {
1333     struct {
1334         /** key4_data2 : RO; bitpos: [31:0]; default: 0;
1335          *  Stores the second 32 bits of KEY4.
1336          */
1337         uint32_t key4_data2:32;
1338     };
1339     uint32_t val;
1340 } efuse_rd_key4_data2_reg_t;
1341 
1342 /** Type of rd_key4_data3 register
1343  *  Register 3 of BLOCK8 (KEY4).
1344  */
1345 typedef union {
1346     struct {
1347         /** key4_data3 : RO; bitpos: [31:0]; default: 0;
1348          *  Stores the third 32 bits of KEY4.
1349          */
1350         uint32_t key4_data3:32;
1351     };
1352     uint32_t val;
1353 } efuse_rd_key4_data3_reg_t;
1354 
1355 /** Type of rd_key4_data4 register
1356  *  Register 4 of BLOCK8 (KEY4).
1357  */
1358 typedef union {
1359     struct {
1360         /** key4_data4 : RO; bitpos: [31:0]; default: 0;
1361          *  Stores the fourth 32 bits of KEY4.
1362          */
1363         uint32_t key4_data4:32;
1364     };
1365     uint32_t val;
1366 } efuse_rd_key4_data4_reg_t;
1367 
1368 /** Type of rd_key4_data5 register
1369  *  Register 5 of BLOCK8 (KEY4).
1370  */
1371 typedef union {
1372     struct {
1373         /** key4_data5 : RO; bitpos: [31:0]; default: 0;
1374          *  Stores the fifth 32 bits of KEY4.
1375          */
1376         uint32_t key4_data5:32;
1377     };
1378     uint32_t val;
1379 } efuse_rd_key4_data5_reg_t;
1380 
1381 /** Type of rd_key4_data6 register
1382  *  Register 6 of BLOCK8 (KEY4).
1383  */
1384 typedef union {
1385     struct {
1386         /** key4_data6 : RO; bitpos: [31:0]; default: 0;
1387          *  Stores the sixth 32 bits of KEY4.
1388          */
1389         uint32_t key4_data6:32;
1390     };
1391     uint32_t val;
1392 } efuse_rd_key4_data6_reg_t;
1393 
1394 /** Type of rd_key4_data7 register
1395  *  Register 7 of BLOCK8 (KEY4).
1396  */
1397 typedef union {
1398     struct {
1399         /** key4_data7 : RO; bitpos: [31:0]; default: 0;
1400          *  Stores the seventh 32 bits of KEY4.
1401          */
1402         uint32_t key4_data7:32;
1403     };
1404     uint32_t val;
1405 } efuse_rd_key4_data7_reg_t;
1406 
1407 /** Type of rd_key5_data0 register
1408  *  Register 0 of BLOCK9 (KEY5).
1409  */
1410 typedef union {
1411     struct {
1412         /** key5_data0 : RO; bitpos: [31:0]; default: 0;
1413          *  Stores the zeroth 32 bits of KEY5.
1414          */
1415         uint32_t key5_data0:32;
1416     };
1417     uint32_t val;
1418 } efuse_rd_key5_data0_reg_t;
1419 
1420 /** Type of rd_key5_data1 register
1421  *  Register 1 of BLOCK9 (KEY5).
1422  */
1423 typedef union {
1424     struct {
1425         /** key5_data1 : RO; bitpos: [31:0]; default: 0;
1426          *  Stores the first 32 bits of KEY5.
1427          */
1428         uint32_t key5_data1:32;
1429     };
1430     uint32_t val;
1431 } efuse_rd_key5_data1_reg_t;
1432 
1433 /** Type of rd_key5_data2 register
1434  *  Register 2 of BLOCK9 (KEY5).
1435  */
1436 typedef union {
1437     struct {
1438         /** key5_data2 : RO; bitpos: [31:0]; default: 0;
1439          *  Stores the second 32 bits of KEY5.
1440          */
1441         uint32_t key5_data2:32;
1442     };
1443     uint32_t val;
1444 } efuse_rd_key5_data2_reg_t;
1445 
1446 /** Type of rd_key5_data3 register
1447  *  Register 3 of BLOCK9 (KEY5).
1448  */
1449 typedef union {
1450     struct {
1451         /** key5_data3 : RO; bitpos: [31:0]; default: 0;
1452          *  Stores the third 32 bits of KEY5.
1453          */
1454         uint32_t key5_data3:32;
1455     };
1456     uint32_t val;
1457 } efuse_rd_key5_data3_reg_t;
1458 
1459 /** Type of rd_key5_data4 register
1460  *  Register 4 of BLOCK9 (KEY5).
1461  */
1462 typedef union {
1463     struct {
1464         /** key5_data4 : RO; bitpos: [31:0]; default: 0;
1465          *  Stores the fourth 32 bits of KEY5.
1466          */
1467         uint32_t key5_data4:32;
1468     };
1469     uint32_t val;
1470 } efuse_rd_key5_data4_reg_t;
1471 
1472 /** Type of rd_key5_data5 register
1473  *  Register 5 of BLOCK9 (KEY5).
1474  */
1475 typedef union {
1476     struct {
1477         /** key5_data5 : RO; bitpos: [31:0]; default: 0;
1478          *  Stores the fifth 32 bits of KEY5.
1479          */
1480         uint32_t key5_data5:32;
1481     };
1482     uint32_t val;
1483 } efuse_rd_key5_data5_reg_t;
1484 
1485 /** Type of rd_key5_data6 register
1486  *  Register 6 of BLOCK9 (KEY5).
1487  */
1488 typedef union {
1489     struct {
1490         /** key5_data6 : RO; bitpos: [31:0]; default: 0;
1491          *  Stores the sixth 32 bits of KEY5.
1492          */
1493         uint32_t key5_data6:32;
1494     };
1495     uint32_t val;
1496 } efuse_rd_key5_data6_reg_t;
1497 
1498 /** Type of rd_key5_data7 register
1499  *  Register 7 of BLOCK9 (KEY5).
1500  */
1501 typedef union {
1502     struct {
1503         /** key5_data7 : RO; bitpos: [31:0]; default: 0;
1504          *  Stores the seventh 32 bits of KEY5.
1505          */
1506         uint32_t key5_data7:32;
1507     };
1508     uint32_t val;
1509 } efuse_rd_key5_data7_reg_t;
1510 
1511 /** Type of rd_sys_part2_data0 register
1512  *  Register 0 of BLOCK10 (system).
1513  */
1514 typedef union {
1515     struct {
1516         /** sys_data_part2_0 : RO; bitpos: [31:0]; default: 0;
1517          *  Stores the 0th 32 bits of the 2nd part of system data.
1518          */
1519         uint32_t sys_data_part2_0:32;
1520     };
1521     uint32_t val;
1522 } efuse_rd_sys_part2_data0_reg_t;
1523 
1524 /** Type of rd_sys_part2_data1 register
1525  *  Register 1 of BLOCK9 (KEY5).
1526  */
1527 typedef union {
1528     struct {
1529         /** sys_data_part2_1 : RO; bitpos: [31:0]; default: 0;
1530          *  Stores the 1st 32 bits of the 2nd part of system data.
1531          */
1532         uint32_t sys_data_part2_1:32;
1533     };
1534     uint32_t val;
1535 } efuse_rd_sys_part2_data1_reg_t;
1536 
1537 /** Type of rd_sys_part2_data2 register
1538  *  Register 2 of BLOCK10 (system).
1539  */
1540 typedef union {
1541     struct {
1542         /** sys_data_part2_2 : RO; bitpos: [31:0]; default: 0;
1543          *  Stores the 2nd 32 bits of the 2nd part of system data.
1544          */
1545         uint32_t sys_data_part2_2:32;
1546     };
1547     uint32_t val;
1548 } efuse_rd_sys_part2_data2_reg_t;
1549 
1550 /** Type of rd_sys_part2_data3 register
1551  *  Register 3 of BLOCK10 (system).
1552  */
1553 typedef union {
1554     struct {
1555         /** sys_data_part2_3 : RO; bitpos: [31:0]; default: 0;
1556          *  Stores the 3rd 32 bits of the 2nd part of system data.
1557          */
1558         uint32_t sys_data_part2_3:32;
1559     };
1560     uint32_t val;
1561 } efuse_rd_sys_part2_data3_reg_t;
1562 
1563 /** Type of rd_sys_part2_data4 register
1564  *  Register 4 of BLOCK10 (system).
1565  */
1566 typedef union {
1567     struct {
1568         /** sys_data_part2_4 : RO; bitpos: [31:0]; default: 0;
1569          *  Stores the 4th 32 bits of the 2nd part of system data.
1570          */
1571         uint32_t sys_data_part2_4:32;
1572     };
1573     uint32_t val;
1574 } efuse_rd_sys_part2_data4_reg_t;
1575 
1576 /** Type of rd_sys_part2_data5 register
1577  *  Register 5 of BLOCK10 (system).
1578  */
1579 typedef union {
1580     struct {
1581         /** sys_data_part2_5 : RO; bitpos: [31:0]; default: 0;
1582          *  Stores the 5th 32 bits of the 2nd part of system data.
1583          */
1584         uint32_t sys_data_part2_5:32;
1585     };
1586     uint32_t val;
1587 } efuse_rd_sys_part2_data5_reg_t;
1588 
1589 /** Type of rd_sys_part2_data6 register
1590  *  Register 6 of BLOCK10 (system).
1591  */
1592 typedef union {
1593     struct {
1594         /** sys_data_part2_6 : RO; bitpos: [31:0]; default: 0;
1595          *  Stores the 6th 32 bits of the 2nd part of system data.
1596          */
1597         uint32_t sys_data_part2_6:32;
1598     };
1599     uint32_t val;
1600 } efuse_rd_sys_part2_data6_reg_t;
1601 
1602 /** Type of rd_sys_part2_data7 register
1603  *  Register 7 of BLOCK10 (system).
1604  */
1605 typedef union {
1606     struct {
1607         /** sys_data_part2_7 : RO; bitpos: [31:0]; default: 0;
1608          *  Stores the 7th 32 bits of the 2nd part of system data.
1609          */
1610         uint32_t sys_data_part2_7:32;
1611     };
1612     uint32_t val;
1613 } efuse_rd_sys_part2_data7_reg_t;
1614 
1615 
1616 /** Group: Report Register */
1617 /** Type of rd_repeat_err0 register
1618  *  Programming error record register 0 of BLOCK0.
1619  */
1620 typedef union {
1621     struct {
1622         /** rd_dis_err : RO; bitpos: [6:0]; default: 0;
1623          *  If any bit in RD_DIS is 1, then it indicates a programming error.
1624          */
1625         uint32_t rd_dis_err:7;
1626         /** dis_rtc_ram_boot_err : RO; bitpos: [7]; default: 0;
1627          *  If DIS_RTC_RAM_BOOT is 1, then it indicates a programming error.
1628          */
1629         uint32_t dis_rtc_ram_boot_err:1;
1630         /** dis_icache_err : RO; bitpos: [8]; default: 0;
1631          *  If DIS_ICACHE is 1, then it indicates a programming error.
1632          */
1633         uint32_t dis_icache_err:1;
1634         /** dis_usb_jtag_err : RO; bitpos: [9]; default: 0;
1635          *  If DIS_USB_JTAG is 1, then it indicates a programming error.
1636          */
1637         uint32_t dis_usb_jtag_err:1;
1638         /** dis_download_icache_err : RO; bitpos: [10]; default: 0;
1639          *  If DIS_DOWNLOAD_ICACHE is 1, then it indicates a programming error.
1640          */
1641         uint32_t dis_download_icache_err:1;
1642         /** dis_usb_device_err : RO; bitpos: [11]; default: 0;
1643          *  If DIS_USB_DEVICE is 1, then it indicates a programming error.
1644          */
1645         uint32_t dis_usb_device_err:1;
1646         /** dis_force_download_err : RO; bitpos: [12]; default: 0;
1647          *  If DIS_FORCE_DOWNLOAD is 1, then it indicates a programming error.
1648          */
1649         uint32_t dis_force_download_err:1;
1650         /** rpt4_reserved6_err : RO; bitpos: [13]; default: 0;
1651          *  Reserved.
1652          */
1653         uint32_t rpt4_reserved6_err:1;
1654         /** dis_can_err : RO; bitpos: [14]; default: 0;
1655          *  If DIS_CAN is 1, then it indicates a programming error.
1656          */
1657         uint32_t dis_can_err:1;
1658         /** jtag_sel_enable_err : RO; bitpos: [15]; default: 0;
1659          *  If JTAG_SEL_ENABLE is 1, then it indicates a programming error.
1660          */
1661         uint32_t jtag_sel_enable_err:1;
1662         /** soft_dis_jtag_err : RO; bitpos: [18:16]; default: 0;
1663          *  If SOFT_DIS_JTAG is 1, then it indicates a programming error.
1664          */
1665         uint32_t soft_dis_jtag_err:3;
1666         /** dis_pad_jtag_err : RO; bitpos: [19]; default: 0;
1667          *  If DIS_PAD_JTAG is 1, then it indicates a programming error.
1668          */
1669         uint32_t dis_pad_jtag_err:1;
1670         /** dis_download_manual_encrypt_err : RO; bitpos: [20]; default: 0;
1671          *  If DIS_DOWNLOAD_MANUAL_ENCRYPT is 1, then it indicates a programming error.
1672          */
1673         uint32_t dis_download_manual_encrypt_err:1;
1674         /** usb_drefh_err : RO; bitpos: [22:21]; default: 0;
1675          *  If any bit in USB_DREFH is 1, then it indicates a programming error.
1676          */
1677         uint32_t usb_drefh_err:2;
1678         /** usb_drefl_err : RO; bitpos: [24:23]; default: 0;
1679          *  If any bit in USB_DREFL is 1, then it indicates a programming error.
1680          */
1681         uint32_t usb_drefl_err:2;
1682         /** usb_exchg_pins_err : RO; bitpos: [25]; default: 0;
1683          *  If USB_EXCHG_PINS is 1, then it indicates a programming error.
1684          */
1685         uint32_t usb_exchg_pins_err:1;
1686         /** vdd_spi_as_gpio_err : RO; bitpos: [26]; default: 0;
1687          *  If VDD_SPI_AS_GPIO is 1, then it indicates a programming error.
1688          */
1689         uint32_t vdd_spi_as_gpio_err:1;
1690         /** btlc_gpio_enable_err : RO; bitpos: [28:27]; default: 0;
1691          *  If any bit in BTLC_GPIO_ENABLE is 1, then it indicates a programming error.
1692          */
1693         uint32_t btlc_gpio_enable_err:2;
1694         /** powerglitch_en_err : RO; bitpos: [29]; default: 0;
1695          *  If POWERGLITCH_EN is 1, then it indicates a programming error.
1696          */
1697         uint32_t powerglitch_en_err:1;
1698         /** power_glitch_dsense_err : RO; bitpos: [31:30]; default: 0;
1699          *  If any bit in POWER_GLITCH_DSENSE is 1, then it indicates a programming error.
1700          */
1701         uint32_t power_glitch_dsense_err:2;
1702     };
1703     uint32_t val;
1704 } efuse_rd_repeat_err0_reg_t;
1705 
1706 /** Type of rd_repeat_err1 register
1707  *  Programming error record register 1 of BLOCK0.
1708  */
1709 typedef union {
1710     struct {
1711         /** rpt4_reserved2_err : RO; bitpos: [15:0]; default: 0;
1712          *  Reserved.
1713          */
1714         uint32_t rpt4_reserved2_err:16;
1715         /** wdt_delay_sel_err : RO; bitpos: [17:16]; default: 0;
1716          *  If any bit in WDT_DELAY_SEL is 1, then it indicates a programming error.
1717          */
1718         uint32_t wdt_delay_sel_err:2;
1719         /** spi_boot_crypt_cnt_err : RO; bitpos: [20:18]; default: 0;
1720          *  If any bit in SPI_BOOT_CRYPT_CNT is 1, then it indicates a programming error.
1721          */
1722         uint32_t spi_boot_crypt_cnt_err:3;
1723         /** secure_boot_key_revoke0_err : RO; bitpos: [21]; default: 0;
1724          *  If SECURE_BOOT_KEY_REVOKE0 is 1, then it indicates a programming error.
1725          */
1726         uint32_t secure_boot_key_revoke0_err:1;
1727         /** secure_boot_key_revoke1_err : RO; bitpos: [22]; default: 0;
1728          *  If SECURE_BOOT_KEY_REVOKE1 is 1, then it indicates a programming error.
1729          */
1730         uint32_t secure_boot_key_revoke1_err:1;
1731         /** secure_boot_key_revoke2_err : RO; bitpos: [23]; default: 0;
1732          *  If SECURE_BOOT_KEY_REVOKE2 is 1, then it indicates a programming error.
1733          */
1734         uint32_t secure_boot_key_revoke2_err:1;
1735         /** key_purpose_0_err : RO; bitpos: [27:24]; default: 0;
1736          *  If any bit in KEY_PURPOSE_0 is 1, then it indicates a programming error.
1737          */
1738         uint32_t key_purpose_0_err:4;
1739         /** key_purpose_1_err : RO; bitpos: [31:28]; default: 0;
1740          *  If any bit in KEY_PURPOSE_1 is 1, then it indicates a programming error.
1741          */
1742         uint32_t key_purpose_1_err:4;
1743     };
1744     uint32_t val;
1745 } efuse_rd_repeat_err1_reg_t;
1746 
1747 /** Type of rd_repeat_err2 register
1748  *  Programming error record register 2 of BLOCK0.
1749  */
1750 typedef union {
1751     struct {
1752         /** key_purpose_2_err : RO; bitpos: [3:0]; default: 0;
1753          *  If any bit in KEY_PURPOSE_2 is 1, then it indicates a programming error.
1754          */
1755         uint32_t key_purpose_2_err:4;
1756         /** key_purpose_3_err : RO; bitpos: [7:4]; default: 0;
1757          *  If any bit in KEY_PURPOSE_3 is 1, then it indicates a programming error.
1758          */
1759         uint32_t key_purpose_3_err:4;
1760         /** key_purpose_4_err : RO; bitpos: [11:8]; default: 0;
1761          *  If any bit in KEY_PURPOSE_4 is 1, then it indicates a programming error.
1762          */
1763         uint32_t key_purpose_4_err:4;
1764         /** key_purpose_5_err : RO; bitpos: [15:12]; default: 0;
1765          *  If any bit in KEY_PURPOSE_5 is 1, then it indicates a programming error.
1766          */
1767         uint32_t key_purpose_5_err:4;
1768         /** rpt4_reserved3_err : RO; bitpos: [19:16]; default: 0;
1769          *  Reserved.
1770          */
1771         uint32_t rpt4_reserved3_err:4;
1772         /** secure_boot_en_err : RO; bitpos: [20]; default: 0;
1773          *  If SECURE_BOOT_EN is 1, then it indicates a programming error.
1774          */
1775         uint32_t secure_boot_en_err:1;
1776         /** secure_boot_aggressive_revoke_err : RO; bitpos: [21]; default: 0;
1777          *  If SECURE_BOOT_AGGRESSIVE_REVOKE is 1, then it indicates a programming error.
1778          */
1779         uint32_t secure_boot_aggressive_revoke_err:1;
1780         /** rpt4_reserved0_err : RO; bitpos: [27:22]; default: 0;
1781          *  Reserved.
1782          */
1783         uint32_t rpt4_reserved0_err:6;
1784         /** flash_tpuw_err : RO; bitpos: [31:28]; default: 0;
1785          *  If any bit in FLASH_TPUM is 1, then it indicates a programming error.
1786          */
1787         uint32_t flash_tpuw_err:4;
1788     };
1789     uint32_t val;
1790 } efuse_rd_repeat_err2_reg_t;
1791 
1792 /** Type of rd_repeat_err3 register
1793  *  Programming error record register 3 of BLOCK0.
1794  */
1795 typedef union {
1796     struct {
1797         /** dis_download_mode_err : RO; bitpos: [0]; default: 0;
1798          *  If DIS_DOWNLOAD_MODE is 1, then it indicates a programming error.
1799          */
1800         uint32_t dis_download_mode_err:1;
1801         /** dis_legacy_spi_boot_err : RO; bitpos: [1]; default: 0;
1802          *  If DIS_LEGACY_SPI_BOOT is 1, then it indicates a programming error.
1803          */
1804         uint32_t dis_legacy_spi_boot_err:1;
1805         /** uart_print_channel_err : RO; bitpos: [2]; default: 0;
1806          *  If UART_PRINT_CHANNEL is 1, then it indicates a programming error.
1807          */
1808         uint32_t uart_print_channel_err:1;
1809         /** flash_ecc_mode_err : RO; bitpos: [3]; default: 0;
1810          *  If FLASH_ECC_MODE is 1, then it indicates a programming error.
1811          */
1812         uint32_t flash_ecc_mode_err:1;
1813         /** dis_usb_download_mode_err : RO; bitpos: [4]; default: 0;
1814          *  If DIS_USB_DOWNLOAD_MODE is 1, then it indicates a programming error.
1815          */
1816         uint32_t dis_usb_download_mode_err:1;
1817         /** enable_security_download_err : RO; bitpos: [5]; default: 0;
1818          *  If ENABLE_SECURITY_DOWNLOAD is 1, then it indicates a programming error.
1819          */
1820         uint32_t enable_security_download_err:1;
1821         /** uart_print_control_err : RO; bitpos: [7:6]; default: 0;
1822          *  If any bit in UART_PRINT_CONTROL is 1, then it indicates a programming error.
1823          */
1824         uint32_t uart_print_control_err:2;
1825         /** pin_power_selection_err : RO; bitpos: [8]; default: 0;
1826          *  If PIN_POWER_SELECTION is 1, then it indicates a programming error.
1827          */
1828         uint32_t pin_power_selection_err:1;
1829         /** flash_type_err : RO; bitpos: [9]; default: 0;
1830          *  If FLASH_TYPE is 1, then it indicates a programming error.
1831          */
1832         uint32_t flash_type_err:1;
1833         /** flash_page_size_err : RO; bitpos: [11:10]; default: 0;
1834          *  If any bits in FLASH_PAGE_SIZE is 1, then it indicates a programming error.
1835          */
1836         uint32_t flash_page_size_err:2;
1837         /** flash_ecc_en_err : RO; bitpos: [12]; default: 0;
1838          *  If FLASH_ECC_EN_ERR is 1, then it indicates a programming error.
1839          */
1840         uint32_t flash_ecc_en_err:1;
1841         /** force_send_resume_err : RO; bitpos: [13]; default: 0;
1842          *  If FORCE_SEND_RESUME is 1, then it indicates a programming error.
1843          */
1844         uint32_t force_send_resume_err:1;
1845         /** secure_version_err : RO; bitpos: [29:14]; default: 0;
1846          *  If any bit in SECURE_VERSION is 1, then it indicates a programming error.
1847          */
1848         uint32_t secure_version_err:16;
1849         /** rpt4_reserved1_err : RO; bitpos: [31:30]; default: 0;
1850          *  Reserved.
1851          */
1852         uint32_t rpt4_reserved1_err:2;
1853     };
1854     uint32_t val;
1855 } efuse_rd_repeat_err3_reg_t;
1856 
1857 /** Type of rd_repeat_err4 register
1858  *  Programming error record register 4 of BLOCK0.
1859  */
1860 typedef union {
1861     struct {
1862         /** rpt4_reserved4_err : RO; bitpos: [23:0]; default: 0;
1863          *  Reserved.
1864          */
1865         uint32_t rpt4_reserved4_err:24;
1866         uint32_t reserved_24:8;
1867     };
1868     uint32_t val;
1869 } efuse_rd_repeat_err4_reg_t;
1870 
1871 /** Type of rd_rs_err0 register
1872  *  Programming error record register 0 of BLOCK1-10.
1873  */
1874 typedef union {
1875     struct {
1876         /** mac_spi_8m_err_num : RO; bitpos: [2:0]; default: 0;
1877          *  The value of this signal means the number of error bytes.
1878          */
1879         uint32_t mac_spi_8m_err_num:3;
1880         /** reserved_fail : RO; bitpos: [3]; default: 0;
1881          *  0: Means no failure and that the data of MAC_SPI_8M is reliable 1: Means that
1882          *  programming user data failed and the number of error bytes is over 6.
1883          */
1884         uint32_t reserved_fail:1;
1885         /** sys_part1_num : RO; bitpos: [6:4]; default: 0;
1886          *  The value of this signal means the number of error bytes.
1887          */
1888         uint32_t sys_part1_num:3;
1889         /** mac_spi_8m_fail : RO; bitpos: [7]; default: 0;
1890          *  0: Means no failure and that the data of system part1 is reliable 1: Means that
1891          *  programming user data failed and the number of error bytes is over 6.
1892          */
1893         uint32_t mac_spi_8m_fail:1;
1894         /** usr_data_err_num : RO; bitpos: [10:8]; default: 0;
1895          *  The value of this signal means the number of error bytes.
1896          */
1897         uint32_t usr_data_err_num:3;
1898         /** sys_part1_fail : RO; bitpos: [11]; default: 0;
1899          *  0: Means no failure and that the user data is reliable 1: Means that programming
1900          *  user data failed and the number of error bytes is over 6.
1901          */
1902         uint32_t sys_part1_fail:1;
1903         /** key0_err_num : RO; bitpos: [14:12]; default: 0;
1904          *  The value of this signal means the number of error bytes.
1905          */
1906         uint32_t key0_err_num:3;
1907         /** usr_data_fail : RO; bitpos: [15]; default: 0;
1908          *  0: Means no failure and that the data of key0 is reliable 1: Means that programming
1909          *  key0 failed and the number of error bytes is over 6.
1910          */
1911         uint32_t usr_data_fail:1;
1912         /** key1_err_num : RO; bitpos: [18:16]; default: 0;
1913          *  The value of this signal means the number of error bytes.
1914          */
1915         uint32_t key1_err_num:3;
1916         /** key0_fail : RO; bitpos: [19]; default: 0;
1917          *  0: Means no failure and that the data of key1 is reliable 1: Means that programming
1918          *  key1 failed and the number of error bytes is over 6.
1919          */
1920         uint32_t key0_fail:1;
1921         /** key2_err_num : RO; bitpos: [22:20]; default: 0;
1922          *  The value of this signal means the number of error bytes.
1923          */
1924         uint32_t key2_err_num:3;
1925         /** key1_fail : RO; bitpos: [23]; default: 0;
1926          *  0: Means no failure and that the data of key2 is reliable 1: Means that programming
1927          *  key2 failed and the number of error bytes is over 6.
1928          */
1929         uint32_t key1_fail:1;
1930         /** key3_err_num : RO; bitpos: [26:24]; default: 0;
1931          *  The value of this signal means the number of error bytes.
1932          */
1933         uint32_t key3_err_num:3;
1934         /** key2_fail : RO; bitpos: [27]; default: 0;
1935          *  0: Means no failure and that the data of key3 is reliable 1: Means that programming
1936          *  key3 failed and the number of error bytes is over 6.
1937          */
1938         uint32_t key2_fail:1;
1939         /** key4_err_num : RO; bitpos: [30:28]; default: 0;
1940          *  The value of this signal means the number of error bytes.
1941          */
1942         uint32_t key4_err_num:3;
1943         /** key3_fail : RO; bitpos: [31]; default: 0;
1944          *  0: Means no failure and that the data of key4 is reliable 1: Means that programming
1945          *  key4 failed and the number of error bytes is over 6.
1946          */
1947         uint32_t key3_fail:1;
1948     };
1949     uint32_t val;
1950 } efuse_rd_rs_err0_reg_t;
1951 
1952 /** Type of rd_rs_err1 register
1953  *  Programming error record register 1 of BLOCK1-10.
1954  */
1955 typedef union {
1956     struct {
1957         /** key5_err_num : RO; bitpos: [2:0]; default: 0;
1958          *  The value of this signal means the number of error bytes.
1959          */
1960         uint32_t key5_err_num:3;
1961         /** key4_fail : RO; bitpos: [3]; default: 0;
1962          *  0: Means no failure and that the data of KEY5 is reliable 1: Means that programming
1963          *  user data failed and the number of error bytes is over 6.
1964          */
1965         uint32_t key4_fail:1;
1966         /** sys_part2_err_num : RO; bitpos: [6:4]; default: 0;
1967          *  The value of this signal means the number of error bytes.
1968          */
1969         uint32_t sys_part2_err_num:3;
1970         /** key5_fail : RO; bitpos: [7]; default: 0;
1971          *  0: Means no failure and that the data of system part2 is reliable 1: Means that
1972          *  programming user data failed and the number of error bytes is over 6.
1973          */
1974         uint32_t key5_fail:1;
1975         uint32_t reserved_8:24;
1976     };
1977     uint32_t val;
1978 } efuse_rd_rs_err1_reg_t;
1979 
1980 
1981 /** Group: Configuration Register */
1982 /** Type of clk register
1983  *  eFuse clcok configuration register.
1984  */
1985 typedef union {
1986     struct {
1987         /** efuse_mem_force_pd : R/W; bitpos: [0]; default: 0;
1988          *  Set this bit to force eFuse SRAM into power-saving mode.
1989          */
1990         uint32_t efuse_mem_force_pd:1;
1991         /** mem_clk_force_on : R/W; bitpos: [1]; default: 1;
1992          *  Set this bit and force to activate clock signal of eFuse SRAM.
1993          */
1994         uint32_t mem_clk_force_on:1;
1995         /** efuse_mem_force_pu : R/W; bitpos: [2]; default: 0;
1996          *  Set this bit to force eFuse SRAM into working mode.
1997          */
1998         uint32_t efuse_mem_force_pu:1;
1999         uint32_t reserved_3:13;
2000         /** clk_en : R/W; bitpos: [16]; default: 0;
2001          *  Set this bit and force to enable clock signal of eFuse memory.
2002          */
2003         uint32_t clk_en:1;
2004         uint32_t reserved_17:15;
2005     };
2006     uint32_t val;
2007 } efuse_clk_reg_t;
2008 
2009 /** Type of conf register
2010  *  eFuse operation mode configuraiton register;
2011  */
2012 typedef union {
2013     struct {
2014         /** op_code : R/W; bitpos: [15:0]; default: 0;
2015          *  0x5A5A: Operate programming command 0x5AA5: Operate read command.
2016          */
2017         uint32_t op_code:16;
2018         uint32_t reserved_16:16;
2019     };
2020     uint32_t val;
2021 } efuse_conf_reg_t;
2022 
2023 /** Type of cmd register
2024  *  eFuse command register.
2025  */
2026 typedef union {
2027     struct {
2028         /** read_cmd : R/WS/SC; bitpos: [0]; default: 0;
2029          *  Set this bit to send read command.
2030          */
2031         uint32_t read_cmd:1;
2032         /** pgm_cmd : R/WS/SC; bitpos: [1]; default: 0;
2033          *  Set this bit to send programming command.
2034          */
2035         uint32_t pgm_cmd:1;
2036         /** blk_num : R/W; bitpos: [5:2]; default: 0;
2037          *  The serial number of the block to be programmed. Value 0-10 corresponds to block
2038          *  number 0-10, respectively.
2039          */
2040         uint32_t blk_num:4;
2041         uint32_t reserved_6:26;
2042     };
2043     uint32_t val;
2044 } efuse_cmd_reg_t;
2045 
2046 /** Type of dac_conf register
2047  *  Controls the eFuse programming voltage.
2048  */
2049 typedef union {
2050     struct {
2051         /** dac_clk_div : R/W; bitpos: [7:0]; default: 28;
2052          *  Controls the division factor of the rising clock of the programming voltage.
2053          */
2054         uint32_t dac_clk_div:8;
2055         /** dac_clk_pad_sel : R/W; bitpos: [8]; default: 0;
2056          *  Don't care.
2057          */
2058         uint32_t dac_clk_pad_sel:1;
2059         /** dac_num : R/W; bitpos: [16:9]; default: 255;
2060          *  Controls the rising period of the programming voltage.
2061          */
2062         uint32_t dac_num:8;
2063         /** oe_clr : R/W; bitpos: [17]; default: 0;
2064          *  Reduces the power supply of the programming voltage.
2065          */
2066         uint32_t oe_clr:1;
2067         uint32_t reserved_18:14;
2068     };
2069     uint32_t val;
2070 } efuse_dac_conf_reg_t;
2071 
2072 /** Type of rd_tim_conf register
2073  *  Configures read timing parameters.
2074  */
2075 typedef union {
2076     struct {
2077         uint32_t reserved_0:24;
2078         /** read_init_num : R/W; bitpos: [31:24]; default: 18;
2079          *  Configures the initial read time of eFuse.
2080          */
2081         uint32_t read_init_num:8;
2082     };
2083     uint32_t val;
2084 } efuse_rd_tim_conf_reg_t;
2085 
2086 /** Type of wr_tim_conf1 register
2087  *  Configurarion register 1 of eFuse programming timing parameters.
2088  */
2089 typedef union {
2090     struct {
2091         uint32_t reserved_0:8;
2092         /** pwr_on_num : R/W; bitpos: [23:8]; default: 10368;
2093          *  Configures the power up time for VDDQ.
2094          */
2095         uint32_t pwr_on_num:16;
2096         uint32_t reserved_24:8;
2097     };
2098     uint32_t val;
2099 } efuse_wr_tim_conf1_reg_t;
2100 
2101 /** Type of wr_tim_conf2 register
2102  *  Configurarion register 2 of eFuse programming timing parameters.
2103  */
2104 typedef union {
2105     struct {
2106         /** pwr_off_num : R/W; bitpos: [15:0]; default: 400;
2107          *  Configures the power outage time for VDDQ.
2108          */
2109         uint32_t pwr_off_num:16;
2110         uint32_t reserved_16:16;
2111     };
2112     uint32_t val;
2113 } efuse_wr_tim_conf2_reg_t;
2114 
2115 
2116 /** Group: Status Register */
2117 /** Type of status register
2118  *  eFuse status register.
2119  */
2120 typedef union {
2121     struct {
2122         /** state : RO; bitpos: [3:0]; default: 0;
2123          *  Indicates the state of the eFuse state machine.
2124          */
2125         uint32_t state:4;
2126         /** otp_load_sw : RO; bitpos: [4]; default: 0;
2127          *  The value of OTP_LOAD_SW.
2128          */
2129         uint32_t otp_load_sw:1;
2130         /** otp_vddq_c_sync2 : RO; bitpos: [5]; default: 0;
2131          *  The value of OTP_VDDQ_C_SYNC2.
2132          */
2133         uint32_t otp_vddq_c_sync2:1;
2134         /** otp_strobe_sw : RO; bitpos: [6]; default: 0;
2135          *  The value of OTP_STROBE_SW.
2136          */
2137         uint32_t otp_strobe_sw:1;
2138         /** otp_csb_sw : RO; bitpos: [7]; default: 0;
2139          *  The value of OTP_CSB_SW.
2140          */
2141         uint32_t otp_csb_sw:1;
2142         /** otp_pgenb_sw : RO; bitpos: [8]; default: 0;
2143          *  The value of OTP_PGENB_SW.
2144          */
2145         uint32_t otp_pgenb_sw:1;
2146         /** otp_vddq_is_sw : RO; bitpos: [9]; default: 0;
2147          *  The value of OTP_VDDQ_IS_SW.
2148          */
2149         uint32_t otp_vddq_is_sw:1;
2150         /** repeat_err_cnt : RO; bitpos: [17:10]; default: 0;
2151          *  Indicates the number of error bits during programming BLOCK0.
2152          */
2153         uint32_t repeat_err_cnt:8;
2154         uint32_t reserved_18:14;
2155     };
2156     uint32_t val;
2157 } efuse_status_reg_t;
2158 
2159 
2160 /** Group: Interrupt Register */
2161 /** Type of int_raw register
2162  *  eFuse raw interrupt register.
2163  */
2164 typedef union {
2165     struct {
2166         /** read_done_int_raw : R/WC/SS; bitpos: [0]; default: 0;
2167          *  The raw bit signal for read_done interrupt.
2168          */
2169         uint32_t read_done_int_raw:1;
2170         /** pgm_done_int_raw : R/WC/SS; bitpos: [1]; default: 0;
2171          *  The raw bit signal for pgm_done interrupt.
2172          */
2173         uint32_t pgm_done_int_raw:1;
2174         uint32_t reserved_2:30;
2175     };
2176     uint32_t val;
2177 } efuse_int_raw_reg_t;
2178 
2179 /** Type of int_st register
2180  *  eFuse interrupt status register.
2181  */
2182 typedef union {
2183     struct {
2184         /** read_done_int_st : RO; bitpos: [0]; default: 0;
2185          *  The status signal for read_done interrupt.
2186          */
2187         uint32_t read_done_int_st:1;
2188         /** pgm_done_int_st : RO; bitpos: [1]; default: 0;
2189          *  The status signal for pgm_done interrupt.
2190          */
2191         uint32_t pgm_done_int_st:1;
2192         uint32_t reserved_2:30;
2193     };
2194     uint32_t val;
2195 } efuse_int_st_reg_t;
2196 
2197 /** Type of int_ena register
2198  *  eFuse interrupt enable register.
2199  */
2200 typedef union {
2201     struct {
2202         /** read_done_int_ena : R/W; bitpos: [0]; default: 0;
2203          *  The enable signal for read_done interrupt.
2204          */
2205         uint32_t read_done_int_ena:1;
2206         /** pgm_done_int_ena : R/W; bitpos: [1]; default: 0;
2207          *  The enable signal for pgm_done interrupt.
2208          */
2209         uint32_t pgm_done_int_ena:1;
2210         uint32_t reserved_2:30;
2211     };
2212     uint32_t val;
2213 } efuse_int_ena_reg_t;
2214 
2215 /** Type of int_clr register
2216  *  eFuse interrupt clear register.
2217  */
2218 typedef union {
2219     struct {
2220         /** read_done_int_clr : WO; bitpos: [0]; default: 0;
2221          *  The clear signal for read_done interrupt.
2222          */
2223         uint32_t read_done_int_clr:1;
2224         /** pgm_done_int_clr : WO; bitpos: [1]; default: 0;
2225          *  The clear signal for pgm_done interrupt.
2226          */
2227         uint32_t pgm_done_int_clr:1;
2228         uint32_t reserved_2:30;
2229     };
2230     uint32_t val;
2231 } efuse_int_clr_reg_t;
2232 
2233 
2234 /** Group: Version Register */
2235 /** Type of date register
2236  *  eFuse version register.
2237  */
2238 typedef union {
2239     struct {
2240         /** date : R/W; bitpos: [27:0]; default: 33583616;
2241          *  Stores eFuse version.
2242          */
2243         uint32_t date:28;
2244         uint32_t reserved_28:4;
2245     };
2246     uint32_t val;
2247 } efuse_date_reg_t;
2248 
2249 
2250 typedef struct {
2251     volatile efuse_pgm_data0_reg_t pgm_data0;
2252     volatile efuse_pgm_data1_reg_t pgm_data1;
2253     volatile efuse_pgm_data2_reg_t pgm_data2;
2254     volatile efuse_pgm_data3_reg_t pgm_data3;
2255     volatile efuse_pgm_data4_reg_t pgm_data4;
2256     volatile efuse_pgm_data5_reg_t pgm_data5;
2257     volatile efuse_pgm_data6_reg_t pgm_data6;
2258     volatile efuse_pgm_data7_reg_t pgm_data7;
2259     volatile efuse_pgm_check_value0_reg_t pgm_check_value0;
2260     volatile efuse_pgm_check_value1_reg_t pgm_check_value1;
2261     volatile efuse_pgm_check_value2_reg_t pgm_check_value2;
2262     volatile efuse_rd_wr_dis_reg_t rd_wr_dis;
2263     volatile efuse_rd_repeat_data0_reg_t rd_repeat_data0;
2264     volatile efuse_rd_repeat_data1_reg_t rd_repeat_data1;
2265     volatile efuse_rd_repeat_data2_reg_t rd_repeat_data2;
2266     volatile efuse_rd_repeat_data3_reg_t rd_repeat_data3;
2267     volatile efuse_rd_repeat_data4_reg_t rd_repeat_data4;
2268     volatile efuse_rd_mac_spi_sys_0_reg_t rd_mac_spi_sys_0;
2269     volatile efuse_rd_mac_spi_sys_1_reg_t rd_mac_spi_sys_1;
2270     volatile efuse_rd_mac_spi_sys_2_reg_t rd_mac_spi_sys_2;
2271     volatile efuse_rd_mac_spi_sys_3_reg_t rd_mac_spi_sys_3;
2272     volatile efuse_rd_mac_spi_sys_4_reg_t rd_mac_spi_sys_4;
2273     volatile efuse_rd_mac_spi_sys_5_reg_t rd_mac_spi_sys_5;
2274     volatile efuse_rd_sys_part1_data0_reg_t rd_sys_part1_data0;
2275     volatile efuse_rd_sys_part1_data1_reg_t rd_sys_part1_data1;
2276     volatile efuse_rd_sys_part1_data2_reg_t rd_sys_part1_data2;
2277     volatile efuse_rd_sys_part1_data3_reg_t rd_sys_part1_data3;
2278     volatile efuse_rd_sys_part1_data4_reg_t rd_sys_part1_data4;
2279     volatile efuse_rd_sys_part1_data5_reg_t rd_sys_part1_data5;
2280     volatile efuse_rd_sys_part1_data6_reg_t rd_sys_part1_data6;
2281     volatile efuse_rd_sys_part1_data7_reg_t rd_sys_part1_data7;
2282     volatile efuse_rd_usr_data0_reg_t rd_usr_data0;
2283     volatile efuse_rd_usr_data1_reg_t rd_usr_data1;
2284     volatile efuse_rd_usr_data2_reg_t rd_usr_data2;
2285     volatile efuse_rd_usr_data3_reg_t rd_usr_data3;
2286     volatile efuse_rd_usr_data4_reg_t rd_usr_data4;
2287     volatile efuse_rd_usr_data5_reg_t rd_usr_data5;
2288     volatile efuse_rd_usr_data6_reg_t rd_usr_data6;
2289     volatile efuse_rd_usr_data7_reg_t rd_usr_data7;
2290     volatile efuse_rd_key0_data0_reg_t rd_key0_data0;
2291     volatile efuse_rd_key0_data1_reg_t rd_key0_data1;
2292     volatile efuse_rd_key0_data2_reg_t rd_key0_data2;
2293     volatile efuse_rd_key0_data3_reg_t rd_key0_data3;
2294     volatile efuse_rd_key0_data4_reg_t rd_key0_data4;
2295     volatile efuse_rd_key0_data5_reg_t rd_key0_data5;
2296     volatile efuse_rd_key0_data6_reg_t rd_key0_data6;
2297     volatile efuse_rd_key0_data7_reg_t rd_key0_data7;
2298     volatile efuse_rd_key1_data0_reg_t rd_key1_data0;
2299     volatile efuse_rd_key1_data1_reg_t rd_key1_data1;
2300     volatile efuse_rd_key1_data2_reg_t rd_key1_data2;
2301     volatile efuse_rd_key1_data3_reg_t rd_key1_data3;
2302     volatile efuse_rd_key1_data4_reg_t rd_key1_data4;
2303     volatile efuse_rd_key1_data5_reg_t rd_key1_data5;
2304     volatile efuse_rd_key1_data6_reg_t rd_key1_data6;
2305     volatile efuse_rd_key1_data7_reg_t rd_key1_data7;
2306     volatile efuse_rd_key2_data0_reg_t rd_key2_data0;
2307     volatile efuse_rd_key2_data1_reg_t rd_key2_data1;
2308     volatile efuse_rd_key2_data2_reg_t rd_key2_data2;
2309     volatile efuse_rd_key2_data3_reg_t rd_key2_data3;
2310     volatile efuse_rd_key2_data4_reg_t rd_key2_data4;
2311     volatile efuse_rd_key2_data5_reg_t rd_key2_data5;
2312     volatile efuse_rd_key2_data6_reg_t rd_key2_data6;
2313     volatile efuse_rd_key2_data7_reg_t rd_key2_data7;
2314     volatile efuse_rd_key3_data0_reg_t rd_key3_data0;
2315     volatile efuse_rd_key3_data1_reg_t rd_key3_data1;
2316     volatile efuse_rd_key3_data2_reg_t rd_key3_data2;
2317     volatile efuse_rd_key3_data3_reg_t rd_key3_data3;
2318     volatile efuse_rd_key3_data4_reg_t rd_key3_data4;
2319     volatile efuse_rd_key3_data5_reg_t rd_key3_data5;
2320     volatile efuse_rd_key3_data6_reg_t rd_key3_data6;
2321     volatile efuse_rd_key3_data7_reg_t rd_key3_data7;
2322     volatile efuse_rd_key4_data0_reg_t rd_key4_data0;
2323     volatile efuse_rd_key4_data1_reg_t rd_key4_data1;
2324     volatile efuse_rd_key4_data2_reg_t rd_key4_data2;
2325     volatile efuse_rd_key4_data3_reg_t rd_key4_data3;
2326     volatile efuse_rd_key4_data4_reg_t rd_key4_data4;
2327     volatile efuse_rd_key4_data5_reg_t rd_key4_data5;
2328     volatile efuse_rd_key4_data6_reg_t rd_key4_data6;
2329     volatile efuse_rd_key4_data7_reg_t rd_key4_data7;
2330     volatile efuse_rd_key5_data0_reg_t rd_key5_data0;
2331     volatile efuse_rd_key5_data1_reg_t rd_key5_data1;
2332     volatile efuse_rd_key5_data2_reg_t rd_key5_data2;
2333     volatile efuse_rd_key5_data3_reg_t rd_key5_data3;
2334     volatile efuse_rd_key5_data4_reg_t rd_key5_data4;
2335     volatile efuse_rd_key5_data5_reg_t rd_key5_data5;
2336     volatile efuse_rd_key5_data6_reg_t rd_key5_data6;
2337     volatile efuse_rd_key5_data7_reg_t rd_key5_data7;
2338     volatile efuse_rd_sys_part2_data0_reg_t rd_sys_part2_data0;
2339     volatile efuse_rd_sys_part2_data1_reg_t rd_sys_part2_data1;
2340     volatile efuse_rd_sys_part2_data2_reg_t rd_sys_part2_data2;
2341     volatile efuse_rd_sys_part2_data3_reg_t rd_sys_part2_data3;
2342     volatile efuse_rd_sys_part2_data4_reg_t rd_sys_part2_data4;
2343     volatile efuse_rd_sys_part2_data5_reg_t rd_sys_part2_data5;
2344     volatile efuse_rd_sys_part2_data6_reg_t rd_sys_part2_data6;
2345     volatile efuse_rd_sys_part2_data7_reg_t rd_sys_part2_data7;
2346     volatile efuse_rd_repeat_err0_reg_t rd_repeat_err0;
2347     volatile efuse_rd_repeat_err1_reg_t rd_repeat_err1;
2348     volatile efuse_rd_repeat_err2_reg_t rd_repeat_err2;
2349     volatile efuse_rd_repeat_err3_reg_t rd_repeat_err3;
2350     uint32_t reserved_18c;
2351     volatile efuse_rd_repeat_err4_reg_t rd_repeat_err4;
2352     uint32_t reserved_194[11];
2353     volatile efuse_rd_rs_err0_reg_t rd_rs_err0;
2354     volatile efuse_rd_rs_err1_reg_t rd_rs_err1;
2355     volatile efuse_clk_reg_t clk;
2356     volatile efuse_conf_reg_t conf;
2357     volatile efuse_status_reg_t status;
2358     volatile efuse_cmd_reg_t cmd;
2359     volatile efuse_int_raw_reg_t int_raw;
2360     volatile efuse_int_st_reg_t int_st;
2361     volatile efuse_int_ena_reg_t int_ena;
2362     volatile efuse_int_clr_reg_t int_clr;
2363     volatile efuse_dac_conf_reg_t dac_conf;
2364     volatile efuse_rd_tim_conf_reg_t rd_tim_conf;
2365     volatile efuse_wr_tim_conf1_reg_t wr_tim_conf1;
2366     volatile efuse_wr_tim_conf2_reg_t wr_tim_conf2;
2367     uint32_t reserved_1f8;
2368     volatile efuse_date_reg_t date;
2369 } efuse_dev_t;
2370 extern efuse_dev_t EFUSE;
2371 
2372 #ifndef __cplusplus
2373 _Static_assert(sizeof(efuse_dev_t) == 0x200, "Invalid size of efuse_dev_t structure");
2374 #endif
2375 
2376 #ifdef __cplusplus
2377 }
2378 #endif
2379