xref: /openbmc/u-boot/cmd/otp_info.h (revision 2e151c2bef4d77a74ab9091ebe5a8eb60ef648f3)
10cee9a95SJohnny Huang /*
20cee9a95SJohnny Huang * Generated by info2header.py
30cee9a95SJohnny Huang * Do not edit it.
40cee9a95SJohnny Huang */
50cee9a95SJohnny Huang 
60cee9a95SJohnny Huang #define OTP_INFO_VER		"1.0.0"
70cee9a95SJohnny Huang #define OTP_REG_RESERVED	-1
80cee9a95SJohnny Huang #define OTP_REG_VALUE		-2
90cee9a95SJohnny Huang #define OTP_REG_VALID_BIT	-3
100cee9a95SJohnny Huang 
110cee9a95SJohnny Huang struct otpstrap_info {
12*2e151c2bSJohnny Huang 	signed char bit_offset;
13*2e151c2bSJohnny Huang 	signed char length;
14*2e151c2bSJohnny Huang 	signed char value;
150cee9a95SJohnny Huang 	char *information;
160cee9a95SJohnny Huang };
170cee9a95SJohnny Huang 
180cee9a95SJohnny Huang struct otpconf_info {
19*2e151c2bSJohnny Huang 	signed char dw_offset;
20*2e151c2bSJohnny Huang 	signed char bit_offset;
21*2e151c2bSJohnny Huang 	signed char length;
22*2e151c2bSJohnny Huang 	signed char value;
230cee9a95SJohnny Huang 	char *information;
240cee9a95SJohnny Huang };
250cee9a95SJohnny Huang 
260cee9a95SJohnny Huang static const struct otpstrap_info a0_strap_info[] = {
270cee9a95SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
280cee9a95SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
290cee9a95SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
300cee9a95SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
310cee9a95SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
320cee9a95SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
330cee9a95SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
340cee9a95SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
350cee9a95SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
360cee9a95SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
370cee9a95SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
380cee9a95SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
390cee9a95SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
400cee9a95SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
410cee9a95SJohnny Huang 	{ 7, 2, 0, "CPU Frequency : 1GHz" },
420cee9a95SJohnny Huang 	{ 7, 2, 1, "CPU Frequency : 800MHz" },
430cee9a95SJohnny Huang 	{ 7, 2, 2, "CPU Frequency : 1.2GHz" },
440cee9a95SJohnny Huang 	{ 7, 2, 3, "CPU Frequency : 1.4GHz" },
450cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
460cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
470cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
480cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
490cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
500cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
510cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
520cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
530cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
540cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
550cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
560cee9a95SJohnny Huang 	{ 17, 1, 0, "VGA class code : video_device" },
570cee9a95SJohnny Huang 	{ 17, 1, 1, "VGA class code : vga_device" },
580cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
590cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
600cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
610cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
620cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
630cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
640cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
650cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
660cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
670cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
680cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
690cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
700cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
710cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
720cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
730cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
740cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
750cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
760cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
770cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
780cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
790cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
800cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
810cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
820cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
830cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
840cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
850cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
860cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
870cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
880cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
890cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
900cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
910cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
920cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
930cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
940cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
950cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
960cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
970cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
980cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
990cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
1000cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
1010cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
1020cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
1030cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
1040cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
1050cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
1060cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
1070cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
1080cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
1090cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
1100cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
1110cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
1120cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
1130cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
1140cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
1150cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
1160cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
1170cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
1180cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
1190cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
1200cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
1210cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
1220cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
1230cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
1240cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
1250cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
1260cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
1270cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
1280cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
1290cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
1300cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
1310cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
1320cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
1330cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
1340cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
1350cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
1360cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
1370cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
1380cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
1390cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
1400cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
1410cee9a95SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" }
1420cee9a95SJohnny Huang };
1430cee9a95SJohnny Huang 
1440cee9a95SJohnny Huang static const struct otpstrap_info a1_strap_info[] = {
1450cee9a95SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
1460cee9a95SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
1470cee9a95SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
1480cee9a95SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
1490cee9a95SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
1500cee9a95SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
1510cee9a95SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
1520cee9a95SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
1530cee9a95SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
1540cee9a95SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
1550cee9a95SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
1560cee9a95SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
1570cee9a95SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
1580cee9a95SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
1590cee9a95SJohnny Huang 	{ 7, 3, 0, "CPU Frequency : 1.2GHz" },
1600cee9a95SJohnny Huang 	{ 7, 3, 1, "CPU Frequency : 1.6MHz" },
1610cee9a95SJohnny Huang 	{ 7, 3, 2, "CPU Frequency : 1.2GHz" },
1620cee9a95SJohnny Huang 	{ 7, 3, 3, "CPU Frequency : 1.6GHz" },
1630cee9a95SJohnny Huang 	{ 7, 3, 4, "CPU Frequency : 800MHz" },
1640cee9a95SJohnny Huang 	{ 7, 3, 5, "CPU Frequency : 800MHz" },
1650cee9a95SJohnny Huang 	{ 7, 3, 6, "CPU Frequency : 800MHz" },
1660cee9a95SJohnny Huang 	{ 7, 3, 7, "CPU Frequency : 800MHz" },
1670cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
1680cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
1690cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
1700cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
1710cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
1720cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
1730cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
1740cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
1750cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
1760cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
1770cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
1780cee9a95SJohnny Huang 	{ 17, 1, 0, "VGA class code : video_device" },
1790cee9a95SJohnny Huang 	{ 17, 1, 1, "VGA class code : vga_device" },
1800cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
1810cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
1820cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
1830cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
1840cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
1850cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
1860cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
1870cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
1880cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
1890cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
1900cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
1910cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
1920cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
1930cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
1940cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
1950cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
1960cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
1970cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
1980cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
1990cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
2000cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
2010cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
2020cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
2030cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
2040cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
2050cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
2060cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
2070cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
2080cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
2090cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
2100cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
2110cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
2120cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
2130cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
2140cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
2150cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
2160cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
2170cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
2180cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
2190cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
2200cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
2210cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
2220cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
2230cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
2240cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
2250cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
2260cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
2270cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
2280cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
2290cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
2300cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
2310cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
2320cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
2330cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
2340cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
2350cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
2360cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
2370cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
2380cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
2390cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
2400cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
2410cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
2420cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
2430cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
2440cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
2450cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
2460cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
2470cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
2480cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
2490cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
2500cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
2510cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
2520cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
2530cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
2540cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
2550cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
2560cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
2570cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
2580cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
2590cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
2600cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
2610cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
2620cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
2630cee9a95SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" }
2640cee9a95SJohnny Huang };
2650cee9a95SJohnny Huang 
2660cee9a95SJohnny Huang static const struct otpstrap_info a2_strap_info[] = {
2670cee9a95SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
2680cee9a95SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
2690cee9a95SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
2700cee9a95SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
2710cee9a95SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
2720cee9a95SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
2730cee9a95SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
2740cee9a95SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
2750cee9a95SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
2760cee9a95SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
2770cee9a95SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
2780cee9a95SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
2790cee9a95SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
2800cee9a95SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
2810cee9a95SJohnny Huang 	{ 7, 3, 0, "CPU Frequency : 1.2GHz" },
2820cee9a95SJohnny Huang 	{ 7, 3, 1, "CPU Frequency : 1.6MHz" },
2830cee9a95SJohnny Huang 	{ 7, 3, 2, "CPU Frequency : 1.2GHz" },
2840cee9a95SJohnny Huang 	{ 7, 3, 3, "CPU Frequency : 1.6GHz" },
2850cee9a95SJohnny Huang 	{ 7, 3, 4, "CPU Frequency : 800MHz" },
2860cee9a95SJohnny Huang 	{ 7, 3, 5, "CPU Frequency : 800MHz" },
2870cee9a95SJohnny Huang 	{ 7, 3, 6, "CPU Frequency : 800MHz" },
2880cee9a95SJohnny Huang 	{ 7, 3, 7, "CPU Frequency : 800MHz" },
2890cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
2900cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
2910cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
2920cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
2930cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
2940cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
2950cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
2960cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
2970cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
2980cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
2990cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
3000cee9a95SJohnny Huang 	{ 17, 1, 0, "VGA class code : video_device" },
3010cee9a95SJohnny Huang 	{ 17, 1, 1, "VGA class code : vga_device" },
3020cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
3030cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
3040cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
3050cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
3060cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
3070cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
3080cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
3090cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
3100cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
3110cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
3120cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
3130cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
3140cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
3150cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
3160cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
3170cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
3180cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
3190cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
3200cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
3210cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
3220cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
3230cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
3240cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
3250cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
3260cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
3270cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
3280cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
3290cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
3300cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
3310cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
3320cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
3330cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
3340cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
3350cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
3360cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
3370cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
3380cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
3390cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
3400cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
3410cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
3420cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
3430cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
3440cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
3450cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
3460cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
3470cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
3480cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
3490cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
3500cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
3510cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
3520cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
3530cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
3540cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
3550cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
3560cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
3570cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
3580cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
3590cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
3600cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
3610cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
3620cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
3630cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
3640cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
3650cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
3660cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
3670cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
3680cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
3690cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
3700cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
3710cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
3720cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
3730cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
3740cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
3750cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
3760cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
3770cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
3780cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
3790cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
3800cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
3810cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
3820cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
3830cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
3840cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
3850cee9a95SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" }
3860cee9a95SJohnny Huang };
3870cee9a95SJohnny Huang 
3880cee9a95SJohnny Huang static const struct otpconf_info a0_conf_info[] = {
3890cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
3900cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
3910cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
3920cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
3930cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
3940cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
3950cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
3960cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
3970cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
3980cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
3990cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
4000cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
4010cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
4020cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
4030cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
4040cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
4050cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
4060cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
4070cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
4080cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
4090cee9a95SJohnny Huang 	{ 0, 14, 1, 0, "Disable patch code" },
4100cee9a95SJohnny Huang 	{ 0, 14, 1, 1, "Enable patch code" },
4110cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
4120cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
4130cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
4140cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
4150cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
4160cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
4170cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
4180cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
4190cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
4200cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
4210cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
4220cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
4230cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
4240cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
4250cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
4260cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
4270cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
4280cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
4290cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
4300cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
4310cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
4320cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
4330cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
4340cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
4350cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
4360cee9a95SJohnny Huang 	{ 10, 0, 64, OTP_REG_VALID_BIT, "Manifest ID : %s" },
4370cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
4380cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
4390cee9a95SJohnny Huang };
4400cee9a95SJohnny Huang 
4410cee9a95SJohnny Huang static const struct otpconf_info a1_conf_info[] = {
4420cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
4430cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
4440cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
4450cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
4460cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
4470cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
4480cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
4490cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
4500cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
4510cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
4520cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
4530cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
4540cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
4550cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
4560cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
4570cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
4580cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
4590cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
4600cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
4610cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
4620cee9a95SJohnny Huang 	{ 0, 14, 1, 0, "Disable patch code" },
4630cee9a95SJohnny Huang 	{ 0, 14, 1, 1, "Enable patch code" },
4640cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
4650cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
4660cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
4670cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
4680cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
4690cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
4700cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
4710cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
4720cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
4730cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
4740cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
4750cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
4760cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
4770cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
4780cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
4790cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
4800cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
4810cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
4820cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
4830cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
4840cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
4850cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
4860cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
4870cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
4880cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
4890cee9a95SJohnny Huang 	{ 10, 0, 64, OTP_REG_VALID_BIT, "Manifest ID : %s" },
4900cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
4910cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
4920cee9a95SJohnny Huang };
4930cee9a95SJohnny Huang 
4940cee9a95SJohnny Huang static const struct otpconf_info a2_conf_info[] = {
4950cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
4960cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
4970cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
4980cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
4990cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
5000cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
5010cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
5020cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
5030cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
5040cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
5050cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
5060cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
5070cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
5080cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
5090cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
5100cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
5110cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
5120cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
5130cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
5140cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
5150cee9a95SJohnny Huang 	{ 0, 14, 1, 0, "Disable patch code" },
5160cee9a95SJohnny Huang 	{ 0, 14, 1, 1, "Enable patch code" },
5170cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
5180cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
5190cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
5200cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
5210cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
5220cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
5230cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
5240cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
5250cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
5260cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
5270cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
5280cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
5290cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
5300cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
5310cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
5320cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
5330cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
5340cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
5350cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
5360cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
5370cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
5380cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
5390cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
5400cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
5410cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
5420cee9a95SJohnny Huang 	{ 10, 0, 64, OTP_REG_VALID_BIT, "Manifest ID : %s" },
5430cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
5440cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
5450cee9a95SJohnny Huang };
5460cee9a95SJohnny Huang 
547