xref: /openbmc/u-boot/cmd/otp_info.h (revision 7adec5f6bfb43e3959c3bda5aae48097cc160e87)
10cee9a95SJohnny Huang /*
20cee9a95SJohnny Huang  * Generated by info2header.py
30cee9a95SJohnny Huang  * Do not edit it.
40cee9a95SJohnny Huang  */
50cee9a95SJohnny Huang 
6*7adec5f6SJohnny Huang #define OTP_INFO_VER		"1.1.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 {
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" },
161b63af886SJohnny 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" },
176*7adec5f6SJohnny Huang 	{ 14, 1, OTP_REG_RESERVED, "Reserved" },
1770cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
1780cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
1790cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
1800cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
18164b66712SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
18264b66712SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
1830cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
1840cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
1850cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
1860cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
1870cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
1880cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
1890cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
1900cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
1910cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
1920cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
1930cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
1940cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
1950cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
1960cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
1970cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
1980cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
1990cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
2000cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
201*7adec5f6SJohnny Huang 	{ 27, 2, 0, "Reset Source of eMMC part : GPIOY3" },
202*7adec5f6SJohnny Huang 	{ 27, 2, 1, "Reset Source of eMMC part : GPIO18A2" },
203*7adec5f6SJohnny Huang 	{ 27, 2, 2, "Reset Source of eMMC part : GPIO18B6" },
204*7adec5f6SJohnny Huang 	{ 27, 2, 3, "Reset Source of eMMC part : GPIO18A2" },
2050cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
2060cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
207*7adec5f6SJohnny Huang 	{ 30, 2, OTP_REG_RESERVED, "Reserved" },
2080cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
2090cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
2100cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
2110cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
2120cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
2130cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
2140cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
2150cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
2160cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
2170cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
2180cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
2190cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
2200cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
2210cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
2220cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
2230cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
2240cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
2250cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
2260cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
2270cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
2280cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
2290cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
2300cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
2310cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
2320cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
2330cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
2340cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
2350cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
2360cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
2370cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
2380cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
2390cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
2400cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
2410cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
2420cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
2430cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
2440cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
2450cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
2460cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
2470cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
2480cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
2490cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
2500cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
2510cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
2520cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
2530cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
2540cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
2550cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
2560cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
2570cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
2580cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
2590cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
2600cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
2610cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
2620cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
2630cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
2640cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
2650cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
2660cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
2670cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
2680cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
2690cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
270*7adec5f6SJohnny Huang 	{ 61, 1, OTP_REG_RESERVED, "Reserved" },
2710cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
272*7adec5f6SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" },
273*7adec5f6SJohnny Huang 	{ 63, 1, OTP_REG_RESERVED, "Reserved" }
2740cee9a95SJohnny Huang };
2750cee9a95SJohnny Huang 
2760cee9a95SJohnny Huang static const struct otpstrap_info a2_strap_info[] = {
2770cee9a95SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
2780cee9a95SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
2790cee9a95SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
2800cee9a95SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
2810cee9a95SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
2820cee9a95SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
2830cee9a95SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
2840cee9a95SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
2850cee9a95SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
2860cee9a95SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
2870cee9a95SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
2880cee9a95SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
2890cee9a95SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
2900cee9a95SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
2910cee9a95SJohnny Huang 	{ 7, 3, 0, "CPU Frequency : 1.2GHz" },
292b63af886SJohnny Huang 	{ 7, 3, 1, "CPU Frequency : 1.6GHz" },
293b63af886SJohnny Huang 	{ 7, 3, 2, "CPU Frequency : 1.2GHz" },
294b63af886SJohnny Huang 	{ 7, 3, 3, "CPU Frequency : 1.6GHz" },
295b63af886SJohnny Huang 	{ 7, 3, 4, "CPU Frequency : 800MHz" },
296b63af886SJohnny Huang 	{ 7, 3, 5, "CPU Frequency : 800MHz" },
297b63af886SJohnny Huang 	{ 7, 3, 6, "CPU Frequency : 800MHz" },
298b63af886SJohnny Huang 	{ 7, 3, 7, "CPU Frequency : 800MHz" },
299b63af886SJohnny Huang 	{ 10, 2, 0, "HCLK ratio AXI:AHB = default" },
300b63af886SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
301b63af886SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
302b63af886SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
303b63af886SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
304b63af886SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
305b63af886SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
306b63af886SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
307*7adec5f6SJohnny Huang 	{ 14, 1, OTP_REG_RESERVED, "Reserved" },
308b63af886SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
309b63af886SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
310b63af886SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
311b63af886SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
312b63af886SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
313b63af886SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
314b63af886SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
315b63af886SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
316b63af886SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
317b63af886SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
318b63af886SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
319b63af886SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
320b63af886SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
321b63af886SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
322b63af886SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
323b63af886SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
324b63af886SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
325b63af886SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
326b63af886SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
327b63af886SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
328b63af886SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
329b63af886SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
330b63af886SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
331b63af886SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
332*7adec5f6SJohnny Huang 	{ 27, 2, 0, "Reset Source of eMMC part : GPIOY3" },
333*7adec5f6SJohnny Huang 	{ 27, 2, 1, "Reset Source of eMMC part : GPIO18A2" },
334*7adec5f6SJohnny Huang 	{ 27, 2, 2, "Reset Source of eMMC part : GPIO18B6" },
335*7adec5f6SJohnny Huang 	{ 27, 2, 3, "Reset Source of eMMC part : GPIO18A2" },
336b63af886SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
337b63af886SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
338*7adec5f6SJohnny Huang 	{ 30, 2, OTP_REG_RESERVED, "Reserved" },
339b63af886SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
340b63af886SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
341b63af886SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
342b63af886SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
343b63af886SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
344b63af886SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
345b63af886SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
346b63af886SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
347b63af886SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
348b63af886SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
349b63af886SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
350b63af886SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
351b63af886SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
352b63af886SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
353b63af886SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
354b63af886SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
355b63af886SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
356b63af886SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
357b63af886SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
358b63af886SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
359b63af886SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
360b63af886SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
361b63af886SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
362b63af886SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
363b63af886SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
364b63af886SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
365b63af886SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
366b63af886SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
367b63af886SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
368b63af886SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
369b63af886SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
370b63af886SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
371b63af886SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
372b63af886SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
373b63af886SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
374b63af886SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
375b63af886SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
376b63af886SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
377b63af886SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
378b63af886SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
379b63af886SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
380b63af886SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
381b63af886SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
382b63af886SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
383b63af886SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
384b63af886SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
385b63af886SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
386b63af886SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
387b63af886SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
388b63af886SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
389b63af886SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
390b63af886SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
391b63af886SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
392b63af886SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
393b63af886SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
394b63af886SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
395b63af886SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
396b63af886SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
397b63af886SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
398b63af886SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
399b63af886SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
400b63af886SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
401*7adec5f6SJohnny Huang 	{ 61, 1, OTP_REG_RESERVED, "Reserved" },
402b63af886SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
403*7adec5f6SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" },
404*7adec5f6SJohnny Huang 	{ 63, 1, OTP_REG_RESERVED, "Reserved" }
405b63af886SJohnny Huang };
406b63af886SJohnny Huang 
407b63af886SJohnny Huang static const struct otpstrap_info a3_strap_info[] = {
408b63af886SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
409b63af886SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
410b63af886SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
411b63af886SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
412b63af886SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
413b63af886SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
414b63af886SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
415b63af886SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
416b63af886SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
417b63af886SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
418b63af886SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
419b63af886SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
420b63af886SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
421b63af886SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
422b63af886SJohnny Huang 	{ 7, 3, 0, "CPU Frequency : 1.2GHz" },
423b63af886SJohnny Huang 	{ 7, 3, 1, "CPU Frequency : 1.6GHz" },
4240cee9a95SJohnny Huang 	{ 7, 3, 2, "CPU Frequency : 1.2GHz" },
4250cee9a95SJohnny Huang 	{ 7, 3, 3, "CPU Frequency : 1.6GHz" },
4260cee9a95SJohnny Huang 	{ 7, 3, 4, "CPU Frequency : 800MHz" },
4270cee9a95SJohnny Huang 	{ 7, 3, 5, "CPU Frequency : 800MHz" },
4280cee9a95SJohnny Huang 	{ 7, 3, 6, "CPU Frequency : 800MHz" },
4290cee9a95SJohnny Huang 	{ 7, 3, 7, "CPU Frequency : 800MHz" },
430513af504SJohnny Huang 	{ 10, 2, 0, "HCLK ratio AXI:AHB = default" },
4310cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
4320cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
4330cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
4340cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
4350cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
4360cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
4370cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
438*7adec5f6SJohnny Huang 	{ 14, 1, OTP_REG_RESERVED, "Reserved" },
4390cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
4400cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
4410cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
4420cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
44364b66712SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
44464b66712SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
4450cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
4460cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
4470cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
4480cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
4490cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
4500cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
4510cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
4520cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
4530cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
4540cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
4550cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
4560cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
4570cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
4580cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
4590cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
4600cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
4610cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
4620cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
463*7adec5f6SJohnny Huang 	{ 27, 2, 0, "Reset Source of eMMC part : GPIOY3" },
464*7adec5f6SJohnny Huang 	{ 27, 2, 1, "Reset Source of eMMC part : GPIO18A2" },
465*7adec5f6SJohnny Huang 	{ 27, 2, 2, "Reset Source of eMMC part : GPIO18B6" },
466*7adec5f6SJohnny Huang 	{ 27, 2, 3, "Reset Source of eMMC part : GPIO18A2" },
4670cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
4680cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
469*7adec5f6SJohnny Huang 	{ 30, 2, OTP_REG_RESERVED, "Reserved" },
4700cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
4710cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
4720cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
4730cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
4740cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
4750cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
4760cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
4770cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
4780cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
4790cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
4800cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
4810cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
4820cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
4830cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
4840cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
4850cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
4860cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
4870cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
4880cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
4890cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
4900cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
4910cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
4920cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
4930cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
4940cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
4950cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
4960cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
4970cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
4980cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
4990cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
5000cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
5010cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
5020cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
5030cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
5040cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
5050cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
5060cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
5070cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
5080cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
5090cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
5100cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
5110cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
5120cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
5130cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
5140cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
5150cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
5160cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
5170cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
5180cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
5190cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
5200cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
5210cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
5220cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
5230cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
5240cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
5250cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
5260cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
5270cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
5280cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
5290cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
5300cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
5310cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
532*7adec5f6SJohnny Huang 	{ 61, 1, OTP_REG_RESERVED, "Reserved" },
5330cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
534*7adec5f6SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" },
535*7adec5f6SJohnny Huang 	{ 63, 1, OTP_REG_RESERVED, "Reserved" }
5360cee9a95SJohnny Huang };
5370cee9a95SJohnny Huang 
5380cee9a95SJohnny Huang static const struct otpconf_info a0_conf_info[] = {
5390cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
5400cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
5410cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
5420cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
5430cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
5440cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
5450cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
5460cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
5470cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
5480cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
5490cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
5500cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
5510cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
5520cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
5530cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
5540cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
5550cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
5560cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
5570cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
5580cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
5596d6e9c94SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
5606d6e9c94SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
5610cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
5620cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
5630cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
5640cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
5650cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
5660cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
5670cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
5680cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
5690cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
5700cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
5710cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
5720cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
5730cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
5740cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
5750cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
5760cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
5770cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
5780cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
5790cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
5800cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
5810cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
5820cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
5830cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
5840cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
5850cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
5860cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
5870cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
5880cee9a95SJohnny Huang };
5890cee9a95SJohnny Huang 
5900cee9a95SJohnny Huang static const struct otpconf_info a1_conf_info[] = {
5910cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
5920cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
5930cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
5940cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
5950cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
5960cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
5970cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
5980cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
5990cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
6000cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
6010cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
6020cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
6030cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
6040cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
6050cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
6060cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
6070cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
6080cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
6090cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
6100cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
61164b66712SJohnny Huang 	{ 0, 14, 1, 0, "Disable patch code" },
61264b66712SJohnny Huang 	{ 0, 14, 1, 1, "Enable patch code" },
6130cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
6140cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
6150cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
6160cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
6170cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
6180cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
6190cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
6200cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
6210cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
6220cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
6230cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
6240cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
6250cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
6260cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
6270cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
6280cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
6290cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
6300cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
6310cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
6320cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
6330cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
6340cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
6350cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
6360cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
6370cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
638ebf52524SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
639ebf52524SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
640ebf52524SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
641ebf52524SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
6420cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
6430cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
6440cee9a95SJohnny Huang };
6450cee9a95SJohnny Huang 
6460cee9a95SJohnny Huang static const struct otpconf_info a2_conf_info[] = {
64764b66712SJohnny Huang 	{ 0, 0, 1, 0, "Enable OTP Memory BIST Mode" },
64864b66712SJohnny Huang 	{ 0, 0, 1, 1, "Disable OTP Memory BIST Mode" },
6490cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
6500cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
6510cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
6520cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
6530cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
6540cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
6550cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
6560cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
6570cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
6580cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
6590cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
6600cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
661bf5810ffSJohnny Huang 	{ 0, 9, 1, 0, "ROM code will dump boot messages" },
662bf5810ffSJohnny Huang 	{ 0, 9, 1, 1, "ROM code message is disabled" },
6630cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
6640cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
6650cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
6660cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
6670cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
6680cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
6690cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
6700cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
6716d6e9c94SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
6726d6e9c94SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
6730cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
6740cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
6750cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
6760cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
6770cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
6780cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
6790cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
6800cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
6810cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
6820cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
6830cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
6840cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
6850cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
6860cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
6870cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
688ebf52524SJohnny Huang 	{ 0, 28, 1, 0, "Enable Flash Patch Code" },
689ebf52524SJohnny Huang 	{ 0, 28, 1, 1, "Disable Flash Patch Code" },
6900cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
6910cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
692bf5810ffSJohnny Huang 	{ 0, 30, 1, 0, "Boot from UART/VUART when normal boot is fail" },
693bf5810ffSJohnny Huang 	{ 0, 30, 1, 1, "Disable auto UART/VUART boot option" },
6940cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
6950cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
6960cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
6970cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
6980cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
699bf5810ffSJohnny Huang 	{ 3, 16, 1, 0, "Boot from UART using: UART5" },
700bf5810ffSJohnny Huang 	{ 3, 16, 1, 1, "Boot from UART using: UART1" },
701b63af886SJohnny Huang 	{ 3, 17, 1, 0, "Enable Auto Boot from UART" },
702b63af886SJohnny Huang 	{ 3, 17, 1, 1, "Disable Auto Boot from UART" },
703bf5810ffSJohnny Huang 	{ 3, 18, 1, 0, "Enable Auto Boot from VUART2 over PCIE" },
704bf5810ffSJohnny Huang 	{ 3, 18, 1, 1, "Disable Auto Boot from VUART2 over PCIE" },
705bf5810ffSJohnny Huang 	{ 3, 19, 1, 0, "Enable Auto Boot from VUART2 over LPC" },
706bf5810ffSJohnny Huang 	{ 3, 19, 1, 1, "Disable Auto Boot from VUART2 over LPC" },
707bf5810ffSJohnny Huang 	{ 3, 20, 1, 0, "Enable ROM code based programming control" },
708bf5810ffSJohnny Huang 	{ 3, 20, 1, 1, "Disable ROM code based programming control" },
709bf5810ffSJohnny Huang 	{ 3, 21, 3, OTP_REG_VALUE, "Rollback prevention shift bit : 0x%x" },
710bf5810ffSJohnny Huang 	{ 3, 24, 6, OTP_REG_VALUE, "Extra Data Write Protection Region size (DW): 0x%x" },
711bf5810ffSJohnny Huang 	{ 3, 30, 1, 0, "Do not erase signature data after secure boot check" },
712bf5810ffSJohnny Huang 	{ 3, 30, 1, 1, "Erase signature data after secure boot check" },
713bf5810ffSJohnny Huang 	{ 3, 31, 1, 0, "Do not erase RSA public key after secure boot check" },
714bf5810ffSJohnny Huang 	{ 3, 31, 1, 1, "Erase RSA public key after secure boot check" },
7150cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
7160cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
7170cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
718ebf52524SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
719ebf52524SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
720ebf52524SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
721ebf52524SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
7220cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
7230cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
7240cee9a95SJohnny Huang };
7250cee9a95SJohnny Huang 
726b63af886SJohnny Huang static const struct otpconf_info a3_conf_info[] = {
727b63af886SJohnny Huang 	{ 0, 0, 1, 0, "Enable OTP Memory BIST Mode" },
728b63af886SJohnny Huang 	{ 0, 0, 1, 1, "Disable OTP Memory BIST Mode" },
729b63af886SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
730b63af886SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
731b63af886SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
732b63af886SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
733b63af886SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
734b63af886SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
735b63af886SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
736b63af886SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
737b63af886SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
738b63af886SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
739b63af886SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
740b63af886SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
741b63af886SJohnny Huang 	{ 0, 9, 1, 0, "ROM code will dump boot messages" },
742b63af886SJohnny Huang 	{ 0, 9, 1, 1, "ROM code message is disabled" },
743b63af886SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
744b63af886SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
745b63af886SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
746b63af886SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
747b63af886SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
748b63af886SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
749b63af886SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
750b63af886SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
751b63af886SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
752b63af886SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
753b63af886SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
754b63af886SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
755b63af886SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
756b63af886SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
757b63af886SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
758b63af886SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
759b63af886SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
760b63af886SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
761b63af886SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
762b63af886SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
763b63af886SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
764b63af886SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
765b63af886SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
766b63af886SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
767b63af886SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
768b63af886SJohnny Huang 	{ 0, 28, 1, 0, "Enable Flash Patch Code" },
769b63af886SJohnny Huang 	{ 0, 28, 1, 1, "Disable Flash Patch Code" },
770b63af886SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
771b63af886SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
772b63af886SJohnny Huang 	{ 0, 30, 1, 0, "Boot from UART/VUART when normal boot is fail" },
773b63af886SJohnny Huang 	{ 0, 30, 1, 1, "Disable auto UART/VUART boot option" },
774b63af886SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
775b63af886SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
776b63af886SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
777b63af886SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
778b63af886SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
779b63af886SJohnny Huang 	{ 3, 16, 1, 0, "Boot from UART using: UART5" },
780b63af886SJohnny Huang 	{ 3, 16, 1, 1, "Boot from UART using: UART1" },
781b63af886SJohnny Huang 	{ 3, 17, 1, 0, "Enable Auto Boot from UART" },
782b63af886SJohnny Huang 	{ 3, 17, 1, 1, "Disable Auto Boot from UART" },
783b63af886SJohnny Huang 	{ 3, 18, 1, 0, "Enable Auto Boot from VUART2 over PCIE" },
784b63af886SJohnny Huang 	{ 3, 18, 1, 1, "Disable Auto Boot from VUART2 over PCIE" },
785b63af886SJohnny Huang 	{ 3, 19, 1, 0, "Enable Auto Boot from VUART2 over LPC" },
786b63af886SJohnny Huang 	{ 3, 19, 1, 1, "Disable Auto Boot from VUART2 over LPC" },
787b63af886SJohnny Huang 	{ 3, 20, 1, 0, "Enable ROM code based programming control" },
788b63af886SJohnny Huang 	{ 3, 20, 1, 1, "Disable ROM code based programming control" },
789b63af886SJohnny Huang 	{ 3, 21, 3, OTP_REG_VALUE, "Rollback prevention shift bit : 0x%x" },
790b63af886SJohnny Huang 	{ 3, 24, 6, OTP_REG_VALUE, "Extra Data Write Protection Region size (DW): 0x%x" },
791b63af886SJohnny Huang 	{ 3, 30, 1, 0, "Do not erase signature data after secure boot check" },
792b63af886SJohnny Huang 	{ 3, 30, 1, 1, "Erase signature data after secure boot check" },
793b63af886SJohnny Huang 	{ 3, 31, 1, 0, "Do not erase RSA public key after secure boot check" },
794b63af886SJohnny Huang 	{ 3, 31, 1, 1, "Erase RSA public key after secure boot check" },
795b63af886SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
796b63af886SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
797b63af886SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
798b63af886SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
799b63af886SJohnny Huang 	{ 7, 15, 1, 0, "Disable write protection for SCU0C8 and SCU0D8" },
800b63af886SJohnny Huang 	{ 7, 15, 1, 1, "Enable write protection for SCU0C8 and SCU0D8" },
801b63af886SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
802b63af886SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
803b63af886SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
804b63af886SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
805b63af886SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
806b63af886SJohnny Huang };
807b63af886SJohnny Huang 
808