xref: /openbmc/u-boot/cmd/otp_info.h (revision b63af886c84a32a1be311e9f2a19e5254ea0c6c8)
10cee9a95SJohnny Huang /*
20cee9a95SJohnny Huang  * Generated by info2header.py
30cee9a95SJohnny Huang  * Do not edit it.
40cee9a95SJohnny Huang  */
50cee9a95SJohnny Huang 
6*b63af886SJohnny Huang #define OTP_INFO_VER		"1.0.5"
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 {
122e151c2bSJohnny Huang 	signed char bit_offset;
132e151c2bSJohnny Huang 	signed char length;
142e151c2bSJohnny Huang 	signed char value;
150cee9a95SJohnny Huang 	char *information;
160cee9a95SJohnny Huang };
170cee9a95SJohnny Huang 
180cee9a95SJohnny Huang struct otpconf_info {
192e151c2bSJohnny Huang 	signed char dw_offset;
202e151c2bSJohnny Huang 	signed char bit_offset;
212e151c2bSJohnny Huang 	signed char length;
222e151c2bSJohnny 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" },
45513af504SJohnny Huang 	{ 10, 2, 0, "HCLK ratio AXI:AHB = default" },
460cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
470cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
480cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
490cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
500cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
510cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
520cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
530cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
540cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
550cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
560cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
5764b66712SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
5864b66712SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
590cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
600cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
610cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
620cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
630cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
640cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
650cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
660cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
670cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
680cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
690cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
700cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
710cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
720cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
730cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
740cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
750cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
760cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
770cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
780cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
790cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
800cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
810cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
820cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
830cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
840cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
850cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
860cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
870cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
880cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
890cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
900cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
910cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
920cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
930cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
940cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
950cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
960cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
970cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
980cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
990cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
1000cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
1010cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
1020cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
1030cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
1040cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
1050cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
1060cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
1070cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
1080cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
1090cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
1100cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
1110cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
1120cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
1130cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
1140cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
1150cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
1160cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
1170cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
1180cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
1190cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
1200cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
1210cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
1220cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
1230cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
1240cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
1250cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
1260cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
1270cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
1280cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
1290cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
1300cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
1310cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
1320cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
1330cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
1340cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
1350cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
1360cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
1370cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
1380cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
1390cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
1400cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
1410cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
1420cee9a95SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" }
1430cee9a95SJohnny Huang };
1440cee9a95SJohnny Huang 
1450cee9a95SJohnny Huang static const struct otpstrap_info a1_strap_info[] = {
1460cee9a95SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
1470cee9a95SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
1480cee9a95SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
1490cee9a95SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
1500cee9a95SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
1510cee9a95SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
1520cee9a95SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
1530cee9a95SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
1540cee9a95SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
1550cee9a95SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
1560cee9a95SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
1570cee9a95SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
1580cee9a95SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
1590cee9a95SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
1600cee9a95SJohnny Huang 	{ 7, 3, 0, "CPU Frequency : 1.2GHz" },
161*b63af886SJohnny Huang 	{ 7, 3, 1, "CPU Frequency : 1.6GHz" },
1620cee9a95SJohnny Huang 	{ 7, 3, 2, "CPU Frequency : 1.2GHz" },
1630cee9a95SJohnny Huang 	{ 7, 3, 3, "CPU Frequency : 1.6GHz" },
1640cee9a95SJohnny Huang 	{ 7, 3, 4, "CPU Frequency : 800MHz" },
1650cee9a95SJohnny Huang 	{ 7, 3, 5, "CPU Frequency : 800MHz" },
1660cee9a95SJohnny Huang 	{ 7, 3, 6, "CPU Frequency : 800MHz" },
1670cee9a95SJohnny Huang 	{ 7, 3, 7, "CPU Frequency : 800MHz" },
168513af504SJohnny Huang 	{ 10, 2, 0, "HCLK ratio AXI:AHB = default" },
1690cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
1700cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
1710cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
1720cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
1730cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
1740cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
1750cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
1760cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
1770cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
1780cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
1790cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
18064b66712SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
18164b66712SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
1820cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
1830cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
1840cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
1850cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
1860cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
1870cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
1880cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
1890cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
1900cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
1910cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
1920cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
1930cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
1940cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
1950cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
1960cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
1970cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
1980cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
1990cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
2000cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
2010cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
2020cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
2030cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
2040cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
2050cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
2060cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
2070cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
2080cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
2090cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
2100cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
2110cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
2120cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
2130cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
2140cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
2150cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
2160cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
2170cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
2180cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
2190cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
2200cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
2210cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
2220cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
2230cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
2240cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
2250cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
2260cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
2270cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
2280cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
2290cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
2300cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
2310cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
2320cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
2330cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
2340cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
2350cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
2360cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
2370cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
2380cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
2390cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
2400cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
2410cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
2420cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
2430cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
2440cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
2450cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
2460cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
2470cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
2480cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
2490cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
2500cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
2510cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
2520cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
2530cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
2540cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
2550cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
2560cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
2570cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
2580cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
2590cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
2600cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
2610cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
2620cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
2630cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
2640cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
2650cee9a95SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" }
2660cee9a95SJohnny Huang };
2670cee9a95SJohnny Huang 
2680cee9a95SJohnny Huang static const struct otpstrap_info a2_strap_info[] = {
2690cee9a95SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
2700cee9a95SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
2710cee9a95SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
2720cee9a95SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
2730cee9a95SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
2740cee9a95SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
2750cee9a95SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
2760cee9a95SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
2770cee9a95SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
2780cee9a95SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
2790cee9a95SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
2800cee9a95SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
2810cee9a95SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
2820cee9a95SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
2830cee9a95SJohnny Huang 	{ 7, 3, 0, "CPU Frequency : 1.2GHz" },
284*b63af886SJohnny Huang 	{ 7, 3, 1, "CPU Frequency : 1.6GHz" },
285*b63af886SJohnny Huang 	{ 7, 3, 2, "CPU Frequency : 1.2GHz" },
286*b63af886SJohnny Huang 	{ 7, 3, 3, "CPU Frequency : 1.6GHz" },
287*b63af886SJohnny Huang 	{ 7, 3, 4, "CPU Frequency : 800MHz" },
288*b63af886SJohnny Huang 	{ 7, 3, 5, "CPU Frequency : 800MHz" },
289*b63af886SJohnny Huang 	{ 7, 3, 6, "CPU Frequency : 800MHz" },
290*b63af886SJohnny Huang 	{ 7, 3, 7, "CPU Frequency : 800MHz" },
291*b63af886SJohnny Huang 	{ 10, 2, 0, "HCLK ratio AXI:AHB = default" },
292*b63af886SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
293*b63af886SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
294*b63af886SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
295*b63af886SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
296*b63af886SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
297*b63af886SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
298*b63af886SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
299*b63af886SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
300*b63af886SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
301*b63af886SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
302*b63af886SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
303*b63af886SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
304*b63af886SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
305*b63af886SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
306*b63af886SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
307*b63af886SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
308*b63af886SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
309*b63af886SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
310*b63af886SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
311*b63af886SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
312*b63af886SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
313*b63af886SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
314*b63af886SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
315*b63af886SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
316*b63af886SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
317*b63af886SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
318*b63af886SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
319*b63af886SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
320*b63af886SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
321*b63af886SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
322*b63af886SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
323*b63af886SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
324*b63af886SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
325*b63af886SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
326*b63af886SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
327*b63af886SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
328*b63af886SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
329*b63af886SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
330*b63af886SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
331*b63af886SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
332*b63af886SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
333*b63af886SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
334*b63af886SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
335*b63af886SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
336*b63af886SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
337*b63af886SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
338*b63af886SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
339*b63af886SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
340*b63af886SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
341*b63af886SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
342*b63af886SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
343*b63af886SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
344*b63af886SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
345*b63af886SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
346*b63af886SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
347*b63af886SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
348*b63af886SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
349*b63af886SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
350*b63af886SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
351*b63af886SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
352*b63af886SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
353*b63af886SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
354*b63af886SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
355*b63af886SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
356*b63af886SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
357*b63af886SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
358*b63af886SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
359*b63af886SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
360*b63af886SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
361*b63af886SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
362*b63af886SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
363*b63af886SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
364*b63af886SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
365*b63af886SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
366*b63af886SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
367*b63af886SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
368*b63af886SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
369*b63af886SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
370*b63af886SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
371*b63af886SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
372*b63af886SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
373*b63af886SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
374*b63af886SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
375*b63af886SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
376*b63af886SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
377*b63af886SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
378*b63af886SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
379*b63af886SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
380*b63af886SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
381*b63af886SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
382*b63af886SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
383*b63af886SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
384*b63af886SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
385*b63af886SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
386*b63af886SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
387*b63af886SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
388*b63af886SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" }
389*b63af886SJohnny Huang };
390*b63af886SJohnny Huang 
391*b63af886SJohnny Huang static const struct otpstrap_info a3_strap_info[] = {
392*b63af886SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
393*b63af886SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
394*b63af886SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
395*b63af886SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
396*b63af886SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
397*b63af886SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
398*b63af886SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
399*b63af886SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
400*b63af886SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
401*b63af886SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
402*b63af886SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
403*b63af886SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
404*b63af886SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
405*b63af886SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
406*b63af886SJohnny Huang 	{ 7, 3, 0, "CPU Frequency : 1.2GHz" },
407*b63af886SJohnny Huang 	{ 7, 3, 1, "CPU Frequency : 1.6GHz" },
4080cee9a95SJohnny Huang 	{ 7, 3, 2, "CPU Frequency : 1.2GHz" },
4090cee9a95SJohnny Huang 	{ 7, 3, 3, "CPU Frequency : 1.6GHz" },
4100cee9a95SJohnny Huang 	{ 7, 3, 4, "CPU Frequency : 800MHz" },
4110cee9a95SJohnny Huang 	{ 7, 3, 5, "CPU Frequency : 800MHz" },
4120cee9a95SJohnny Huang 	{ 7, 3, 6, "CPU Frequency : 800MHz" },
4130cee9a95SJohnny Huang 	{ 7, 3, 7, "CPU Frequency : 800MHz" },
414513af504SJohnny Huang 	{ 10, 2, 0, "HCLK ratio AXI:AHB = default" },
4150cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
4160cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
4170cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
4180cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
4190cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
4200cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
4210cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
4220cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
4230cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
4240cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
4250cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
42664b66712SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
42764b66712SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
4280cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
4290cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
4300cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
4310cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
4320cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
4330cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
4340cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
4350cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
4360cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
4370cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
4380cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
4390cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
4400cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
4410cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
4420cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
4430cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
4440cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
4450cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
4460cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
4470cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
4480cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
4490cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
4500cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
4510cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
4520cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
4530cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
4540cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
4550cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
4560cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
4570cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
4580cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
4590cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
4600cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
4610cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
4620cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
4630cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
4640cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
4650cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
4660cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
4670cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
4680cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
4690cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
4700cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
4710cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
4720cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
4730cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
4740cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
4750cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
4760cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
4770cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
4780cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
4790cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
4800cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
4810cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
4820cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
4830cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
4840cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
4850cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
4860cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
4870cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
4880cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
4890cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
4900cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
4910cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
4920cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
4930cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
4940cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
4950cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
4960cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
4970cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
4980cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
4990cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
5000cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
5010cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
5020cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
5030cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
5040cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
5050cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
5060cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
5070cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
5080cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
5090cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
5100cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
5110cee9a95SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" }
5120cee9a95SJohnny Huang };
5130cee9a95SJohnny Huang 
5140cee9a95SJohnny Huang static const struct otpconf_info a0_conf_info[] = {
5150cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
5160cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
5170cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
5180cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
5190cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
5200cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
5210cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
5220cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
5230cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
5240cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
5250cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
5260cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
5270cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
5280cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
5290cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
5300cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
5310cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
5320cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
5330cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
5340cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
5356d6e9c94SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
5366d6e9c94SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
5370cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
5380cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
5390cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
5400cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
5410cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
5420cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
5430cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
5440cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
5450cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
5460cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
5470cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
5480cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
5490cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
5500cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
5510cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
5520cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
5530cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
5540cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
5550cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
5560cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
5570cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
5580cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
5590cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
5600cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
5610cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
5620cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
5630cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
5640cee9a95SJohnny Huang };
5650cee9a95SJohnny Huang 
5660cee9a95SJohnny Huang static const struct otpconf_info a1_conf_info[] = {
5670cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
5680cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
5690cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
5700cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
5710cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
5720cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
5730cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
5740cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
5750cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
5760cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
5770cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
5780cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
5790cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
5800cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
5810cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
5820cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
5830cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
5840cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
5850cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
5860cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
58764b66712SJohnny Huang 	{ 0, 14, 1, 0, "Disable patch code" },
58864b66712SJohnny Huang 	{ 0, 14, 1, 1, "Enable patch code" },
5890cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
5900cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
5910cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
5920cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
5930cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
5940cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
5950cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
5960cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
5970cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
5980cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
5990cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
6000cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
6010cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
6020cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
6030cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
6040cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
6050cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
6060cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
6070cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
6080cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
6090cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
6100cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
6110cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
6120cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
6130cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
614ebf52524SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
615ebf52524SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
616ebf52524SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
617ebf52524SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
6180cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
6190cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
6200cee9a95SJohnny Huang };
6210cee9a95SJohnny Huang 
6220cee9a95SJohnny Huang static const struct otpconf_info a2_conf_info[] = {
62364b66712SJohnny Huang 	{ 0, 0, 1, 0, "Enable OTP Memory BIST Mode" },
62464b66712SJohnny Huang 	{ 0, 0, 1, 1, "Disable OTP Memory BIST Mode" },
6250cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
6260cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
6270cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
6280cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
6290cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
6300cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
6310cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
6320cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
6330cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
6340cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
6350cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
6360cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
637bf5810ffSJohnny Huang 	{ 0, 9, 1, 0, "ROM code will dump boot messages" },
638bf5810ffSJohnny Huang 	{ 0, 9, 1, 1, "ROM code message is disabled" },
6390cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
6400cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
6410cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
6420cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
6430cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
6440cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
6450cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
6460cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
6476d6e9c94SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
6486d6e9c94SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
6490cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
6500cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
6510cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
6520cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
6530cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
6540cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
6550cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
6560cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
6570cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
6580cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
6590cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
6600cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
6610cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
6620cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
6630cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
664ebf52524SJohnny Huang 	{ 0, 28, 1, 0, "Enable Flash Patch Code" },
665ebf52524SJohnny Huang 	{ 0, 28, 1, 1, "Disable Flash Patch Code" },
6660cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
6670cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
668bf5810ffSJohnny Huang 	{ 0, 30, 1, 0, "Boot from UART/VUART when normal boot is fail" },
669bf5810ffSJohnny Huang 	{ 0, 30, 1, 1, "Disable auto UART/VUART boot option" },
6700cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
6710cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
6720cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
6730cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
6740cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
675bf5810ffSJohnny Huang 	{ 3, 16, 1, 0, "Boot from UART using: UART5" },
676bf5810ffSJohnny Huang 	{ 3, 16, 1, 1, "Boot from UART using: UART1" },
677*b63af886SJohnny Huang 	{ 3, 17, 1, 0, "Enable Auto Boot from UART" },
678*b63af886SJohnny Huang 	{ 3, 17, 1, 1, "Disable Auto Boot from UART" },
679bf5810ffSJohnny Huang 	{ 3, 18, 1, 0, "Enable Auto Boot from VUART2 over PCIE" },
680bf5810ffSJohnny Huang 	{ 3, 18, 1, 1, "Disable Auto Boot from VUART2 over PCIE" },
681bf5810ffSJohnny Huang 	{ 3, 19, 1, 0, "Enable Auto Boot from VUART2 over LPC" },
682bf5810ffSJohnny Huang 	{ 3, 19, 1, 1, "Disable Auto Boot from VUART2 over LPC" },
683bf5810ffSJohnny Huang 	{ 3, 20, 1, 0, "Enable ROM code based programming control" },
684bf5810ffSJohnny Huang 	{ 3, 20, 1, 1, "Disable ROM code based programming control" },
685bf5810ffSJohnny Huang 	{ 3, 21, 3, OTP_REG_VALUE, "Rollback prevention shift bit : 0x%x" },
686bf5810ffSJohnny Huang 	{ 3, 24, 6, OTP_REG_VALUE, "Extra Data Write Protection Region size (DW): 0x%x" },
687bf5810ffSJohnny Huang 	{ 3, 30, 1, 0, "Do not erase signature data after secure boot check" },
688bf5810ffSJohnny Huang 	{ 3, 30, 1, 1, "Erase signature data after secure boot check" },
689bf5810ffSJohnny Huang 	{ 3, 31, 1, 0, "Do not erase RSA public key after secure boot check" },
690bf5810ffSJohnny Huang 	{ 3, 31, 1, 1, "Erase RSA public key after secure boot check" },
6910cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
6920cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
6930cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
694ebf52524SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
695ebf52524SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
696ebf52524SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
697ebf52524SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
6980cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
6990cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
7000cee9a95SJohnny Huang };
7010cee9a95SJohnny Huang 
702*b63af886SJohnny Huang static const struct otpconf_info a3_conf_info[] = {
703*b63af886SJohnny Huang 	{ 0, 0, 1, 0, "Enable OTP Memory BIST Mode" },
704*b63af886SJohnny Huang 	{ 0, 0, 1, 1, "Disable OTP Memory BIST Mode" },
705*b63af886SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
706*b63af886SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
707*b63af886SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
708*b63af886SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
709*b63af886SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
710*b63af886SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
711*b63af886SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
712*b63af886SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
713*b63af886SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
714*b63af886SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
715*b63af886SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
716*b63af886SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
717*b63af886SJohnny Huang 	{ 0, 9, 1, 0, "ROM code will dump boot messages" },
718*b63af886SJohnny Huang 	{ 0, 9, 1, 1, "ROM code message is disabled" },
719*b63af886SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
720*b63af886SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
721*b63af886SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
722*b63af886SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
723*b63af886SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
724*b63af886SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
725*b63af886SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
726*b63af886SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
727*b63af886SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
728*b63af886SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
729*b63af886SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
730*b63af886SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
731*b63af886SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
732*b63af886SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
733*b63af886SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
734*b63af886SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
735*b63af886SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
736*b63af886SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
737*b63af886SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
738*b63af886SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
739*b63af886SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
740*b63af886SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
741*b63af886SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
742*b63af886SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
743*b63af886SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
744*b63af886SJohnny Huang 	{ 0, 28, 1, 0, "Enable Flash Patch Code" },
745*b63af886SJohnny Huang 	{ 0, 28, 1, 1, "Disable Flash Patch Code" },
746*b63af886SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
747*b63af886SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
748*b63af886SJohnny Huang 	{ 0, 30, 1, 0, "Boot from UART/VUART when normal boot is fail" },
749*b63af886SJohnny Huang 	{ 0, 30, 1, 1, "Disable auto UART/VUART boot option" },
750*b63af886SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
751*b63af886SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
752*b63af886SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
753*b63af886SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
754*b63af886SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
755*b63af886SJohnny Huang 	{ 3, 16, 1, 0, "Boot from UART using: UART5" },
756*b63af886SJohnny Huang 	{ 3, 16, 1, 1, "Boot from UART using: UART1" },
757*b63af886SJohnny Huang 	{ 3, 17, 1, 0, "Enable Auto Boot from UART" },
758*b63af886SJohnny Huang 	{ 3, 17, 1, 1, "Disable Auto Boot from UART" },
759*b63af886SJohnny Huang 	{ 3, 18, 1, 0, "Enable Auto Boot from VUART2 over PCIE" },
760*b63af886SJohnny Huang 	{ 3, 18, 1, 1, "Disable Auto Boot from VUART2 over PCIE" },
761*b63af886SJohnny Huang 	{ 3, 19, 1, 0, "Enable Auto Boot from VUART2 over LPC" },
762*b63af886SJohnny Huang 	{ 3, 19, 1, 1, "Disable Auto Boot from VUART2 over LPC" },
763*b63af886SJohnny Huang 	{ 3, 20, 1, 0, "Enable ROM code based programming control" },
764*b63af886SJohnny Huang 	{ 3, 20, 1, 1, "Disable ROM code based programming control" },
765*b63af886SJohnny Huang 	{ 3, 21, 3, OTP_REG_VALUE, "Rollback prevention shift bit : 0x%x" },
766*b63af886SJohnny Huang 	{ 3, 24, 6, OTP_REG_VALUE, "Extra Data Write Protection Region size (DW): 0x%x" },
767*b63af886SJohnny Huang 	{ 3, 30, 1, 0, "Do not erase signature data after secure boot check" },
768*b63af886SJohnny Huang 	{ 3, 30, 1, 1, "Erase signature data after secure boot check" },
769*b63af886SJohnny Huang 	{ 3, 31, 1, 0, "Do not erase RSA public key after secure boot check" },
770*b63af886SJohnny Huang 	{ 3, 31, 1, 1, "Erase RSA public key after secure boot check" },
771*b63af886SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
772*b63af886SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
773*b63af886SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
774*b63af886SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
775*b63af886SJohnny Huang 	{ 7, 15, 1, 0, "Disable write protection for SCU0C8 and SCU0D8" },
776*b63af886SJohnny Huang 	{ 7, 15, 1, 1, "Enable write protection for SCU0C8 and SCU0D8" },
777*b63af886SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
778*b63af886SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
779*b63af886SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
780*b63af886SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
781*b63af886SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
782*b63af886SJohnny Huang };
783*b63af886SJohnny Huang 
784