xref: /openbmc/u-boot/cmd/otp_info.h (revision 0dc9a440)
10cee9a95SJohnny Huang /*
20cee9a95SJohnny Huang  * Generated by info2header.py
30cee9a95SJohnny Huang  * Do not edit it.
40cee9a95SJohnny Huang  */
50cee9a95SJohnny Huang 
6*0dc9a440SJohnny Huang #define OTP_INFO_VER		"2.0.0"
70cee9a95SJohnny Huang #define OTP_REG_RESERVED	-1
80cee9a95SJohnny Huang #define OTP_REG_VALUE		-2
90cee9a95SJohnny Huang #define OTP_REG_VALID_BIT	-3
100cee9a95SJohnny Huang 
110cee9a95SJohnny Huang struct otpstrap_info {
122e151c2bSJohnny Huang 	signed char bit_offset;
132e151c2bSJohnny Huang 	signed char length;
142e151c2bSJohnny Huang 	signed char value;
15*0dc9a440SJohnny Huang 	const 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;
23*0dc9a440SJohnny Huang 	const char *information;
24*0dc9a440SJohnny Huang };
25*0dc9a440SJohnny Huang 
26*0dc9a440SJohnny Huang struct scu_info {
27*0dc9a440SJohnny Huang 	signed char bit_offset;
28*0dc9a440SJohnny Huang 	signed char length;
29*0dc9a440SJohnny Huang 	const char *information;
300cee9a95SJohnny Huang };
310cee9a95SJohnny Huang 
320cee9a95SJohnny Huang static const struct otpstrap_info a0_strap_info[] = {
330cee9a95SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
340cee9a95SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
350cee9a95SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
360cee9a95SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
370cee9a95SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
380cee9a95SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
390cee9a95SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
400cee9a95SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
410cee9a95SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
420cee9a95SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
430cee9a95SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
440cee9a95SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
450cee9a95SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
460cee9a95SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
470cee9a95SJohnny Huang 	{ 7, 2, 0, "CPU Frequency : 1GHz" },
480cee9a95SJohnny Huang 	{ 7, 2, 1, "CPU Frequency : 800MHz" },
490cee9a95SJohnny Huang 	{ 7, 2, 2, "CPU Frequency : 1.2GHz" },
500cee9a95SJohnny Huang 	{ 7, 2, 3, "CPU Frequency : 1.4GHz" },
51513af504SJohnny Huang 	{ 10, 2, 0, "HCLK ratio AXI:AHB = default" },
520cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
530cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
540cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
550cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
560cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
570cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
580cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
590cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
600cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
610cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
620cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
6364b66712SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
6464b66712SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
650cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
660cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
670cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
680cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
690cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
700cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
710cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
720cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
730cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
740cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
750cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
760cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
770cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
780cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
790cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
800cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
810cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
820cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
830cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
840cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
850cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
860cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
870cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
880cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
890cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
900cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
910cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
920cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
930cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
940cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
950cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
960cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
970cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
980cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
990cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
1000cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
1010cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
1020cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
1030cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
1040cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
1050cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
1060cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
1070cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
1080cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
1090cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
1100cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
1110cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
1120cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
1130cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
1140cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
1150cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
1160cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
1170cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
1180cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
1190cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
1200cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
1210cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
1220cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
1230cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
1240cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
1250cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
1260cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
1270cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
1280cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
1290cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
1300cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
1310cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
1320cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
1330cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
1340cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
1350cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
1360cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
1370cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
1380cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
1390cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
1400cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
1410cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
1420cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
1430cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
1440cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
1450cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
1460cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
1470cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
1480cee9a95SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" }
1490cee9a95SJohnny Huang };
1500cee9a95SJohnny Huang 
1510cee9a95SJohnny Huang static const struct otpstrap_info a1_strap_info[] = {
1520cee9a95SJohnny Huang 	{ 0, 1, 0, "Disable Secure Boot" },
1530cee9a95SJohnny Huang 	{ 0, 1, 1, "Enable Secure Boot" },
1540cee9a95SJohnny Huang 	{ 1, 1, 0, "Disable boot from eMMC" },
1550cee9a95SJohnny Huang 	{ 1, 1, 1, "Enable boot from eMMC" },
1560cee9a95SJohnny Huang 	{ 2, 1, 0, "Disable Boot from debug SPI" },
1570cee9a95SJohnny Huang 	{ 2, 1, 1, "Enable Boot from debug SPI" },
1580cee9a95SJohnny Huang 	{ 3, 1, 0, "Enable ARM CM3" },
1590cee9a95SJohnny Huang 	{ 3, 1, 1, "Disable ARM CM3" },
1600cee9a95SJohnny Huang 	{ 4, 1, 0, "No VGA BIOS ROM, VGA BIOS is merged in the system BIOS" },
1610cee9a95SJohnny Huang 	{ 4, 1, 1, "Enable dedicated VGA BIOS ROM" },
1620cee9a95SJohnny Huang 	{ 5, 1, 0, "MAC 1 : RMII/NCSI" },
1630cee9a95SJohnny Huang 	{ 5, 1, 1, "MAC 1 : RGMII" },
1640cee9a95SJohnny Huang 	{ 6, 1, 0, "MAC 2 : RMII/NCSI" },
1650cee9a95SJohnny Huang 	{ 6, 1, 1, "MAC 2 : RGMII" },
1660cee9a95SJohnny Huang 	{ 7, 3, 0, "CPU Frequency : 1.2GHz" },
167b63af886SJohnny Huang 	{ 7, 3, 1, "CPU Frequency : 1.6GHz" },
1680cee9a95SJohnny Huang 	{ 7, 3, 2, "CPU Frequency : 1.2GHz" },
1690cee9a95SJohnny Huang 	{ 7, 3, 3, "CPU Frequency : 1.6GHz" },
1700cee9a95SJohnny Huang 	{ 7, 3, 4, "CPU Frequency : 800MHz" },
1710cee9a95SJohnny Huang 	{ 7, 3, 5, "CPU Frequency : 800MHz" },
1720cee9a95SJohnny Huang 	{ 7, 3, 6, "CPU Frequency : 800MHz" },
1730cee9a95SJohnny Huang 	{ 7, 3, 7, "CPU Frequency : 800MHz" },
174513af504SJohnny Huang 	{ 10, 2, 0, "HCLK ratio AXI:AHB = default" },
1750cee9a95SJohnny Huang 	{ 10, 2, 1, "HCLK ratio AXI:AHB = 2:1" },
1760cee9a95SJohnny Huang 	{ 10, 2, 2, "HCLK ratio AXI:AHB = 3:1" },
1770cee9a95SJohnny Huang 	{ 10, 2, 3, "HCLK ratio AXI:AHB = 4:1" },
1780cee9a95SJohnny Huang 	{ 12, 2, 0, "VGA memory size : 8MB" },
1790cee9a95SJohnny Huang 	{ 12, 2, 1, "VGA memory size : 16MB" },
1800cee9a95SJohnny Huang 	{ 12, 2, 2, "VGA memory size : 32MB" },
1810cee9a95SJohnny Huang 	{ 12, 2, 3, "VGA memory size : 64MB" },
1827adec5f6SJohnny Huang 	{ 14, 1, OTP_REG_RESERVED, "Reserved" },
1830cee9a95SJohnny Huang 	{ 15, 1, 0, "CPU/AXI clock ratio : 2:1" },
1840cee9a95SJohnny Huang 	{ 15, 1, 1, "CPU/AXI clock ratio : 1:1" },
1850cee9a95SJohnny Huang 	{ 16, 1, 0, "Enable ARM JTAG debug" },
1860cee9a95SJohnny Huang 	{ 16, 1, 1, "Disable ARM JTAG debug" },
18764b66712SJohnny Huang 	{ 17, 1, 0, "VGA class code : vga_device" },
18864b66712SJohnny Huang 	{ 17, 1, 1, "VGA class code : video_device" },
1890cee9a95SJohnny Huang 	{ 18, 1, 0, "Enable debug interfaces 0" },
1900cee9a95SJohnny Huang 	{ 18, 1, 1, "Disable debug interfaces 0" },
1910cee9a95SJohnny Huang 	{ 19, 1, 0, "Boot from eMMC speed mode : normal" },
1920cee9a95SJohnny Huang 	{ 19, 1, 1, "Boot from eMMC speed mode : high" },
1930cee9a95SJohnny Huang 	{ 20, 1, 0, "Disable Pcie EHCI device" },
1940cee9a95SJohnny Huang 	{ 20, 1, 1, "Enable Pcie EHCI device" },
1950cee9a95SJohnny Huang 	{ 21, 1, 0, "Enable ARM JTAG trust world debug" },
1960cee9a95SJohnny Huang 	{ 21, 1, 1, "Disable ARM JTAG trust world debug" },
1970cee9a95SJohnny Huang 	{ 22, 1, 0, "Normal BMC mode" },
1980cee9a95SJohnny Huang 	{ 22, 1, 1, "Disable dedicated BMC functions for non-BMC application" },
1990cee9a95SJohnny Huang 	{ 23, 1, 0, "SSPRST# pin is for secondary processor dedicated reset pin" },
2000cee9a95SJohnny Huang 	{ 23, 1, 1, "SSPRST# pin is for PCIE root complex dedicated reset pin" },
2010cee9a95SJohnny Huang 	{ 24, 1, 0, "Enable watchdog to reset full chip" },
2020cee9a95SJohnny Huang 	{ 24, 1, 1, "Disable watchdog to reset full chip" },
2030cee9a95SJohnny Huang 	{ 25, 2, 0, "Internal bridge speed selection : 1x" },
2040cee9a95SJohnny Huang 	{ 25, 2, 1, "Internal bridge speed selection : 1/2x" },
2050cee9a95SJohnny Huang 	{ 25, 2, 2, "Internal bridge speed selection : 1/4x" },
2060cee9a95SJohnny Huang 	{ 25, 2, 3, "Internal bridge speed selection : 1/8x" },
2077adec5f6SJohnny Huang 	{ 27, 2, 0, "Reset Source of eMMC part : GPIOY3" },
2087adec5f6SJohnny Huang 	{ 27, 2, 1, "Reset Source of eMMC part : GPIO18A2" },
2097adec5f6SJohnny Huang 	{ 27, 2, 2, "Reset Source of eMMC part : GPIO18B6" },
2107adec5f6SJohnny Huang 	{ 27, 2, 3, "Reset Source of eMMC part : GPIO18A2" },
2110cee9a95SJohnny Huang 	{ 29, 1, 0, "Enable RVAS function" },
2120cee9a95SJohnny Huang 	{ 29, 1, 1, "Disable RVAS function" },
2137adec5f6SJohnny Huang 	{ 30, 2, OTP_REG_RESERVED, "Reserved" },
2140cee9a95SJohnny Huang 	{ 32, 1, 0, "MAC 3 : RMII/NCSI" },
2150cee9a95SJohnny Huang 	{ 32, 1, 1, "MAC 3 : RGMII" },
2160cee9a95SJohnny Huang 	{ 33, 1, 0, "MAC 4 : RMII/NCSI" },
2170cee9a95SJohnny Huang 	{ 33, 1, 1, "MAC 4 : RGMII" },
2180cee9a95SJohnny Huang 	{ 34, 1, 0, "SuperIO configuration address : 0x2e" },
2190cee9a95SJohnny Huang 	{ 34, 1, 1, "SuperIO configuration address : 0x4e" },
2200cee9a95SJohnny Huang 	{ 35, 1, 0, "Enable LPC to decode SuperIO" },
2210cee9a95SJohnny Huang 	{ 35, 1, 1, "Disable LPC to decode SuperIO" },
2220cee9a95SJohnny Huang 	{ 36, 1, 0, "Enable debug interfaces 1" },
2230cee9a95SJohnny Huang 	{ 36, 1, 1, "Disable debug interfaces 1" },
2240cee9a95SJohnny Huang 	{ 37, 1, 0, "Disable ACPI function" },
2250cee9a95SJohnny Huang 	{ 37, 1, 1, "Enable ACPI function" },
2260cee9a95SJohnny Huang 	{ 38, 1, 0, "Select LPC/eSPI : eSPI" },
2270cee9a95SJohnny Huang 	{ 38, 1, 1, "Select LPC/eSPI : LPC" },
2280cee9a95SJohnny Huang 	{ 39, 1, 0, "Disable SAFS mode" },
2290cee9a95SJohnny Huang 	{ 39, 1, 1, "Enable SAFS mode" },
2300cee9a95SJohnny Huang 	{ 40, 1, 0, "Disable boot from uart5" },
2310cee9a95SJohnny Huang 	{ 40, 1, 1, "Enable boot from uart5" },
2320cee9a95SJohnny Huang 	{ 41, 1, 0, "Disable boot SPI 3B address mode auto-clear" },
2330cee9a95SJohnny Huang 	{ 41, 1, 1, "Enable boot SPI 3B address mode auto-clear" },
2340cee9a95SJohnny Huang 	{ 42, 1, 0, "Disable boot SPI 3B/4B address mode auto detection" },
2350cee9a95SJohnny Huang 	{ 42, 1, 1, "Enable boot SPI 3B/4B address mode auto detection" },
2360cee9a95SJohnny Huang 	{ 43, 1, 0, "Disable boot SPI or eMMC ABR" },
2370cee9a95SJohnny Huang 	{ 43, 1, 1, "Enable boot SPI or eMMC ABR" },
2380cee9a95SJohnny Huang 	{ 44, 1, 0, "Boot SPI ABR Mode : dual" },
2390cee9a95SJohnny Huang 	{ 44, 1, 1, "Boot SPI ABR Mode : single" },
2400cee9a95SJohnny Huang 	{ 45, 3, 0, "Boot SPI flash size : 0MB" },
2410cee9a95SJohnny Huang 	{ 45, 3, 1, "Boot SPI flash size : 2MB" },
2420cee9a95SJohnny Huang 	{ 45, 3, 2, "Boot SPI flash size : 4MB" },
2430cee9a95SJohnny Huang 	{ 45, 3, 3, "Boot SPI flash size : 8MB" },
2440cee9a95SJohnny Huang 	{ 45, 3, 4, "Boot SPI flash size : 16MB" },
2450cee9a95SJohnny Huang 	{ 45, 3, 5, "Boot SPI flash size : 32MB" },
2460cee9a95SJohnny Huang 	{ 45, 3, 6, "Boot SPI flash size : 64MB" },
2470cee9a95SJohnny Huang 	{ 45, 3, 7, "Boot SPI flash size : 128MB" },
2480cee9a95SJohnny Huang 	{ 48, 1, 0, "Disable host SPI ABR" },
2490cee9a95SJohnny Huang 	{ 48, 1, 1, "Enable host SPI ABR" },
2500cee9a95SJohnny Huang 	{ 49, 1, 0, "Disable host SPI ABR mode select pin" },
2510cee9a95SJohnny Huang 	{ 49, 1, 1, "Enable host SPI ABR mode select pin" },
2520cee9a95SJohnny Huang 	{ 50, 1, 0, "Host SPI ABR mode : dual" },
2530cee9a95SJohnny Huang 	{ 50, 1, 1, "Host SPI ABR mode : single" },
2540cee9a95SJohnny Huang 	{ 51, 3, 0, "Host SPI flash size : 0MB" },
2550cee9a95SJohnny Huang 	{ 51, 3, 1, "Host SPI flash size : 2MB" },
2560cee9a95SJohnny Huang 	{ 51, 3, 2, "Host SPI flash size : 4MB" },
2570cee9a95SJohnny Huang 	{ 51, 3, 3, "Host SPI flash size : 8MB" },
2580cee9a95SJohnny Huang 	{ 51, 3, 4, "Host SPI flash size : 16MB" },
2590cee9a95SJohnny Huang 	{ 51, 3, 5, "Host SPI flash size : 32MB" },
2600cee9a95SJohnny Huang 	{ 51, 3, 6, "Host SPI flash size : 64MB" },
2610cee9a95SJohnny Huang 	{ 51, 3, 7, "Host SPI flash size : 128MB" },
2620cee9a95SJohnny Huang 	{ 54, 1, 0, "Disable boot SPI auxiliary control pins" },
2630cee9a95SJohnny Huang 	{ 54, 1, 1, "Enable boot SPI auxiliary control pins" },
2640cee9a95SJohnny Huang 	{ 55, 2, 0, "Boot SPI CRTM size : 0KB" },
2650cee9a95SJohnny Huang 	{ 55, 2, 1, "Boot SPI CRTM size : 256KB" },
2660cee9a95SJohnny Huang 	{ 55, 2, 2, "Boot SPI CRTM size : 512KB" },
2670cee9a95SJohnny Huang 	{ 55, 2, 3, "Boot SPI CRTM size : 1024KB" },
2680cee9a95SJohnny Huang 	{ 57, 2, 0, "Host SPI CRTM size : 0KB" },
2690cee9a95SJohnny Huang 	{ 57, 2, 1, "Host SPI CRTM size : 1024KB" },
2700cee9a95SJohnny Huang 	{ 57, 2, 2, "Host SPI CRTM size : 2048KB" },
2710cee9a95SJohnny Huang 	{ 57, 2, 3, "Host SPI CRTM size : 4096KB" },
2720cee9a95SJohnny Huang 	{ 59, 1, 0, "Disable host SPI auxiliary control pins" },
2730cee9a95SJohnny Huang 	{ 59, 1, 1, "Enable host SPI auxiliary control pins" },
2740cee9a95SJohnny Huang 	{ 60, 1, 0, "Disable GPIO pass through" },
2750cee9a95SJohnny Huang 	{ 60, 1, 1, "Enable GPIO pass through" },
2767adec5f6SJohnny Huang 	{ 61, 1, OTP_REG_RESERVED, "Reserved" },
2770cee9a95SJohnny Huang 	{ 62, 1, 0, "Disable dedicate GPIO strap pins" },
2787adec5f6SJohnny Huang 	{ 62, 1, 1, "Enable dedicate GPIO strap pins" },
2797adec5f6SJohnny Huang 	{ 63, 1, OTP_REG_RESERVED, "Reserved" }
2800cee9a95SJohnny Huang };
2810cee9a95SJohnny Huang 
2820cee9a95SJohnny Huang static const struct otpconf_info a0_conf_info[] = {
2830cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
2840cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
2850cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
2860cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
2870cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
2880cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
2890cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
2900cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
2910cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
2920cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
2930cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
2940cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
2950cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
2960cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
2970cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
2980cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
2990cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
3000cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
3010cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
3020cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
3036d6e9c94SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
3046d6e9c94SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
3050cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
3060cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
3070cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
3080cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
3090cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
3100cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
3110cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
3120cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
3130cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
3140cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
3150cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
3160cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
3170cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
3180cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
3190cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
3200cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
3210cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
3220cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
3230cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
3240cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
3250cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
3260cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
3270cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
3280cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
3290cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
3300cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
3310cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
3320cee9a95SJohnny Huang };
3330cee9a95SJohnny Huang 
3340cee9a95SJohnny Huang static const struct otpconf_info a1_conf_info[] = {
3350cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
3360cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
3370cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
3380cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
3390cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
3400cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
3410cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
3420cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
3430cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
3440cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
3450cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
3460cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
3470cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
3480cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
3490cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
3500cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
3510cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
3520cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
3530cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
3540cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
35564b66712SJohnny Huang 	{ 0, 14, 1, 0, "Disable patch code" },
35664b66712SJohnny Huang 	{ 0, 14, 1, 1, "Enable patch code" },
3570cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
3580cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
3590cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
3600cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
3610cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
3620cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
3630cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
3640cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
3650cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
3660cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
3670cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
3680cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
3690cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
3700cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
3710cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
3720cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
3730cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
3740cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
3750cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
3760cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
3770cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
3780cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
3790cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
3800cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
3810cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
382ebf52524SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
383ebf52524SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
384ebf52524SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
385ebf52524SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
3860cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
3870cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
3880cee9a95SJohnny Huang };
3890cee9a95SJohnny Huang 
3900cee9a95SJohnny Huang static const struct otpconf_info a2_conf_info[] = {
39164b66712SJohnny Huang 	{ 0, 0, 1, 0, "Enable OTP Memory BIST Mode" },
39264b66712SJohnny Huang 	{ 0, 0, 1, 1, "Disable OTP Memory BIST Mode" },
3930cee9a95SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
3940cee9a95SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
3950cee9a95SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
3960cee9a95SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
3970cee9a95SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
3980cee9a95SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
3990cee9a95SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
4000cee9a95SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
4010cee9a95SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
4020cee9a95SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
4030cee9a95SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
4040cee9a95SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
405bf5810ffSJohnny Huang 	{ 0, 9, 1, 0, "ROM code will dump boot messages" },
406bf5810ffSJohnny Huang 	{ 0, 9, 1, 1, "ROM code message is disabled" },
4070cee9a95SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
4080cee9a95SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
4090cee9a95SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
4100cee9a95SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
4110cee9a95SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
4120cee9a95SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
4130cee9a95SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
4140cee9a95SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
4156d6e9c94SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
4166d6e9c94SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
4170cee9a95SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
4180cee9a95SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
4190cee9a95SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
4200cee9a95SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
4210cee9a95SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
4220cee9a95SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
4230cee9a95SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
4240cee9a95SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
4250cee9a95SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
4260cee9a95SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
4270cee9a95SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
4280cee9a95SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
4290cee9a95SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
4300cee9a95SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
4310cee9a95SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
432ebf52524SJohnny Huang 	{ 0, 28, 1, 0, "Enable Flash Patch Code" },
433ebf52524SJohnny Huang 	{ 0, 28, 1, 1, "Disable Flash Patch Code" },
4340cee9a95SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
4350cee9a95SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
436bf5810ffSJohnny Huang 	{ 0, 30, 1, 0, "Boot from UART/VUART when normal boot is fail" },
437bf5810ffSJohnny Huang 	{ 0, 30, 1, 1, "Disable auto UART/VUART boot option" },
4380cee9a95SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
4390cee9a95SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
4400cee9a95SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
4410cee9a95SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
4420cee9a95SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
443bf5810ffSJohnny Huang 	{ 3, 16, 1, 0, "Boot from UART using: UART5" },
444bf5810ffSJohnny Huang 	{ 3, 16, 1, 1, "Boot from UART using: UART1" },
445b63af886SJohnny Huang 	{ 3, 17, 1, 0, "Enable Auto Boot from UART" },
446b63af886SJohnny Huang 	{ 3, 17, 1, 1, "Disable Auto Boot from UART" },
447bf5810ffSJohnny Huang 	{ 3, 18, 1, 0, "Enable Auto Boot from VUART2 over PCIE" },
448bf5810ffSJohnny Huang 	{ 3, 18, 1, 1, "Disable Auto Boot from VUART2 over PCIE" },
449bf5810ffSJohnny Huang 	{ 3, 19, 1, 0, "Enable Auto Boot from VUART2 over LPC" },
450bf5810ffSJohnny Huang 	{ 3, 19, 1, 1, "Disable Auto Boot from VUART2 over LPC" },
451bf5810ffSJohnny Huang 	{ 3, 20, 1, 0, "Enable ROM code based programming control" },
452bf5810ffSJohnny Huang 	{ 3, 20, 1, 1, "Disable ROM code based programming control" },
453bf5810ffSJohnny Huang 	{ 3, 21, 3, OTP_REG_VALUE, "Rollback prevention shift bit : 0x%x" },
454bf5810ffSJohnny Huang 	{ 3, 24, 6, OTP_REG_VALUE, "Extra Data Write Protection Region size (DW): 0x%x" },
455bf5810ffSJohnny Huang 	{ 3, 30, 1, 0, "Do not erase signature data after secure boot check" },
456bf5810ffSJohnny Huang 	{ 3, 30, 1, 1, "Erase signature data after secure boot check" },
457bf5810ffSJohnny Huang 	{ 3, 31, 1, 0, "Do not erase RSA public key after secure boot check" },
458bf5810ffSJohnny Huang 	{ 3, 31, 1, 1, "Erase RSA public key after secure boot check" },
4590cee9a95SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
4600cee9a95SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
4610cee9a95SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
462ebf52524SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
463ebf52524SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
464ebf52524SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
465ebf52524SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
4660cee9a95SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
4670cee9a95SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
4680cee9a95SJohnny Huang };
4690cee9a95SJohnny Huang 
470b63af886SJohnny Huang static const struct otpconf_info a3_conf_info[] = {
471b63af886SJohnny Huang 	{ 0, 0, 1, 0, "Enable OTP Memory BIST Mode" },
472b63af886SJohnny Huang 	{ 0, 0, 1, 1, "Disable OTP Memory BIST Mode" },
473b63af886SJohnny Huang 	{ 0, 1, 1, 0, "Disable Secure Boot" },
474b63af886SJohnny Huang 	{ 0, 1, 1, 1, "Enable Secure Boot" },
475b63af886SJohnny Huang 	{ 0, 3, 1, 0, "User region ECC disable" },
476b63af886SJohnny Huang 	{ 0, 3, 1, 1, "User region ECC enable" },
477b63af886SJohnny Huang 	{ 0, 4, 1, 0, "Secure Region ECC disable" },
478b63af886SJohnny Huang 	{ 0, 4, 1, 1, "Secure Region ECC enable" },
479b63af886SJohnny Huang 	{ 0, 5, 1, 0, "Enable low security key" },
480b63af886SJohnny Huang 	{ 0, 5, 1, 1, "Disable low security key" },
481b63af886SJohnny Huang 	{ 0, 6, 1, 0, "Do not ignore Secure Boot hardware strap" },
482b63af886SJohnny Huang 	{ 0, 6, 1, 1, "Ignore Secure Boot hardware strap" },
483b63af886SJohnny Huang 	{ 0, 7, 1, 0, "Secure Boot Mode: Mode_GCM" },
484b63af886SJohnny Huang 	{ 0, 7, 1, 1, "Secure Boot Mode: Mode_2" },
485b63af886SJohnny Huang 	{ 0, 9, 1, 0, "ROM code will dump boot messages" },
486b63af886SJohnny Huang 	{ 0, 9, 1, 1, "ROM code message is disabled" },
487b63af886SJohnny Huang 	{ 0, 10, 2, 0, "RSA mode : RSA1024" },
488b63af886SJohnny Huang 	{ 0, 10, 2, 1, "RSA mode : RSA2048" },
489b63af886SJohnny Huang 	{ 0, 10, 2, 2, "RSA mode : RSA3072" },
490b63af886SJohnny Huang 	{ 0, 10, 2, 3, "RSA mode : RSA4096" },
491b63af886SJohnny Huang 	{ 0, 12, 2, 0, "SHA mode : SHA224" },
492b63af886SJohnny Huang 	{ 0, 12, 2, 1, "SHA mode : SHA256" },
493b63af886SJohnny Huang 	{ 0, 12, 2, 2, "SHA mode : SHA384" },
494b63af886SJohnny Huang 	{ 0, 12, 2, 3, "SHA mode : SHA512" },
495b63af886SJohnny Huang 	{ 0, 14, 1, 0, "Enable patch code" },
496b63af886SJohnny Huang 	{ 0, 14, 1, 1, "Disable patch code" },
497b63af886SJohnny Huang 	{ 0, 15, 1, 0, "Enable Boot from Uart" },
498b63af886SJohnny Huang 	{ 0, 15, 1, 1, "Disable Boot from Uart" },
499b63af886SJohnny Huang 	{ 0, 16, 6, OTP_REG_VALUE, "Secure Region size (DW): 0x%x" },
500b63af886SJohnny Huang 	{ 0, 22, 1, 0, "Secure Region : Writable" },
501b63af886SJohnny Huang 	{ 0, 22, 1, 1, "Secure Region : Write Protect" },
502b63af886SJohnny Huang 	{ 0, 23, 1, 0, "User Region : Writable" },
503b63af886SJohnny Huang 	{ 0, 23, 1, 1, "User Region : Write Protect" },
504b63af886SJohnny Huang 	{ 0, 24, 1, 0, "Configure Region : Writable" },
505b63af886SJohnny Huang 	{ 0, 24, 1, 1, "Configure Region : Write Protect" },
506b63af886SJohnny Huang 	{ 0, 25, 1, 0, "OTP strap Region : Writable" },
507b63af886SJohnny Huang 	{ 0, 25, 1, 1, "OTP strap Region : Write Protect" },
508b63af886SJohnny Huang 	{ 0, 26, 1, 0, "Disable Copy Boot Image to Internal SRAM" },
509b63af886SJohnny Huang 	{ 0, 26, 1, 1, "Copy Boot Image to Internal SRAM" },
510b63af886SJohnny Huang 	{ 0, 27, 1, 0, "Disable image encryption" },
511b63af886SJohnny Huang 	{ 0, 27, 1, 1, "Enable image encryption" },
512b63af886SJohnny Huang 	{ 0, 28, 1, 0, "Enable Flash Patch Code" },
513b63af886SJohnny Huang 	{ 0, 28, 1, 1, "Disable Flash Patch Code" },
514b63af886SJohnny Huang 	{ 0, 29, 1, 0, "OTP key retire Region : Writable" },
515b63af886SJohnny Huang 	{ 0, 29, 1, 1, "OTP key retire Region : Write Protect" },
516b63af886SJohnny Huang 	{ 0, 30, 1, 0, "Boot from UART/VUART when normal boot is fail" },
517b63af886SJohnny Huang 	{ 0, 30, 1, 1, "Disable auto UART/VUART boot option" },
518b63af886SJohnny Huang 	{ 0, 31, 1, 0, "OTP memory lock disable" },
519b63af886SJohnny Huang 	{ 0, 31, 1, 1, "OTP memory lock enable" },
520b63af886SJohnny Huang 	{ 2, 0, 16, OTP_REG_VALUE, "Vender ID : 0x%x" },
521b63af886SJohnny Huang 	{ 2, 16, 16, OTP_REG_VALUE, "Key Revision : 0x%x" },
522b63af886SJohnny Huang 	{ 3, 0, 16, OTP_REG_VALUE, "Secure boot header offset : 0x%x" },
523b63af886SJohnny Huang 	{ 3, 16, 1, 0, "Boot from UART using: UART5" },
524b63af886SJohnny Huang 	{ 3, 16, 1, 1, "Boot from UART using: UART1" },
525b63af886SJohnny Huang 	{ 3, 17, 1, 0, "Enable Auto Boot from UART" },
526b63af886SJohnny Huang 	{ 3, 17, 1, 1, "Disable Auto Boot from UART" },
527b63af886SJohnny Huang 	{ 3, 18, 1, 0, "Enable Auto Boot from VUART2 over PCIE" },
528b63af886SJohnny Huang 	{ 3, 18, 1, 1, "Disable Auto Boot from VUART2 over PCIE" },
529b63af886SJohnny Huang 	{ 3, 19, 1, 0, "Enable Auto Boot from VUART2 over LPC" },
530b63af886SJohnny Huang 	{ 3, 19, 1, 1, "Disable Auto Boot from VUART2 over LPC" },
531b63af886SJohnny Huang 	{ 3, 20, 1, 0, "Enable ROM code based programming control" },
532b63af886SJohnny Huang 	{ 3, 20, 1, 1, "Disable ROM code based programming control" },
533b63af886SJohnny Huang 	{ 3, 21, 3, OTP_REG_VALUE, "Rollback prevention shift bit : 0x%x" },
534b63af886SJohnny Huang 	{ 3, 24, 6, OTP_REG_VALUE, "Extra Data Write Protection Region size (DW): 0x%x" },
535b63af886SJohnny Huang 	{ 3, 30, 1, 0, "Do not erase signature data after secure boot check" },
536b63af886SJohnny Huang 	{ 3, 30, 1, 1, "Erase signature data after secure boot check" },
537b63af886SJohnny Huang 	{ 3, 31, 1, 0, "Do not erase RSA public key after secure boot check" },
538b63af886SJohnny Huang 	{ 3, 31, 1, 1, "Erase RSA public key after secure boot check" },
539b63af886SJohnny Huang 	{ 4, 0, 8, OTP_REG_VALID_BIT, "Keys retire : %s" },
540b63af886SJohnny Huang 	{ 5, 0, 32, OTP_REG_VALUE, "User define data, random number low : 0x%x" },
541b63af886SJohnny Huang 	{ 6, 0, 32, OTP_REG_VALUE, "User define data, random number high : 0x%x" },
542b63af886SJohnny Huang 	{ 7, 0, 15, OTP_REG_VALUE, "SCU0C8[14:0] auto setting : 0x%x" },
543b63af886SJohnny Huang 	{ 7, 15, 1, 0, "Disable write protection for SCU0C8 and SCU0D8" },
544b63af886SJohnny Huang 	{ 7, 15, 1, 1, "Enable write protection for SCU0C8 and SCU0D8" },
545b63af886SJohnny Huang 	{ 7, 16, 15, OTP_REG_VALUE, "SCU0D8[14:0] auto setting : 0x%x" },
546b63af886SJohnny Huang 	{ 7, 31, 1, 0, "Disable chip security setting" },
547b63af886SJohnny Huang 	{ 7, 31, 1, 1, "Enable chip security setting" },
548b63af886SJohnny Huang 	{ 14, 0, 11, OTP_REG_VALUE, "Patch code location (DW): 0x%x" },
549b63af886SJohnny Huang 	{ 14, 11, 6, OTP_REG_VALUE, "Patch code size (DW): 0x%x" }
550b63af886SJohnny Huang };
551b63af886SJohnny Huang 
552*0dc9a440SJohnny Huang static const struct scu_info a1_scu_info[] = {
553*0dc9a440SJohnny Huang 	{ 0, 1, "Disable ARM CA7 CPU boot (TXD5)" },
554*0dc9a440SJohnny Huang 	{ 1, 1, "Reserved0" },
555*0dc9a440SJohnny Huang 	{ 2, 1, "Enable boot from eMMC" },
556*0dc9a440SJohnny Huang 	{ 3, 1, "Boot from debug SPI" },
557*0dc9a440SJohnny Huang 	{ 4, 1, "Disable ARM CM3" },
558*0dc9a440SJohnny Huang 	{ 5, 1, "Enable dedicated VGA BIOS ROM" },
559*0dc9a440SJohnny Huang 	{ 6, 1, "MAC 1 RMII mode" },
560*0dc9a440SJohnny Huang 	{ 7, 1, "MAC 2 RMII mode" },
561*0dc9a440SJohnny Huang 	{ 8, 3, "CPU frequency" },
562*0dc9a440SJohnny Huang 	{ 11, 2, "HCLK ratio" },
563*0dc9a440SJohnny Huang 	{ 13, 2, "VGA memory size" },
564*0dc9a440SJohnny Huang 	{ 15, 1, "OTPSTRAP[14] Reserved" },
565*0dc9a440SJohnny Huang 	{ 16, 1, "CPU/AXI clock ratio" },
566*0dc9a440SJohnny Huang 	{ 17, 1, "Disable ARM JTAG debug" },
567*0dc9a440SJohnny Huang 	{ 18, 1, "VGA class code" },
568*0dc9a440SJohnny Huang 	{ 19, 1, "Disable debug 0" },
569*0dc9a440SJohnny Huang 	{ 20, 1, "Boot from eMMC speed mode" },
570*0dc9a440SJohnny Huang 	{ 21, 1, "Enable PCIe EHCI" },
571*0dc9a440SJohnny Huang 	{ 22, 1, "Disable ARM JTAG trust world debug" },
572*0dc9a440SJohnny Huang 	{ 23, 1, "Disable dedicated BMC function" },
573*0dc9a440SJohnny Huang 	{ 24, 1, "Enable dedicate PCIe RC reset" },
574*0dc9a440SJohnny Huang 	{ 25, 1, "Disable watchdog to reset full chip" },
575*0dc9a440SJohnny Huang 	{ 26, 2, "Internal bridge speed selection" },
576*0dc9a440SJohnny Huang 	{ 28, 2, "Select Reset Source of eMMC part" },
577*0dc9a440SJohnny Huang 	{ 30, 1, "Disable RVAS function" },
578*0dc9a440SJohnny Huang 	{ 31, 1, "Enable boot SPI auxiliary control pins(mirror)" },
579*0dc9a440SJohnny Huang 	{ 32, 1, "MAC 3 RMII mode" },
580*0dc9a440SJohnny Huang 	{ 33, 1, "MAC 4 RMII mode" },
581*0dc9a440SJohnny Huang 	{ 34, 1, "SuperIO configuration address selection" },
582*0dc9a440SJohnny Huang 	{ 35, 1, "Disable LPC to decode SuperIO" },
583*0dc9a440SJohnny Huang 	{ 36, 1, "Disable debug 1" },
584*0dc9a440SJohnny Huang 	{ 37, 1, "Enable ACPI" },
585*0dc9a440SJohnny Huang 	{ 38, 1, "Select LPC/eSPI" },
586*0dc9a440SJohnny Huang 	{ 39, 1, "Enable SAFS" },
587*0dc9a440SJohnny Huang 	{ 40, 1, "Enable boot from uart5" },
588*0dc9a440SJohnny Huang 	{ 41, 1, "Enable boot SPI 3B address mode auto-clear" },
589*0dc9a440SJohnny Huang 	{ 42, 1, "Enable SPI 3B/4B address mode auto detection" },
590*0dc9a440SJohnny Huang 	{ 43, 1, "Enable boot SPI or eMMC ABR" },
591*0dc9a440SJohnny Huang 	{ 44, 1, "Boot SPI ABR Mode" },
592*0dc9a440SJohnny Huang 	{ 45, 3, "Boot SPI flash size" },
593*0dc9a440SJohnny Huang 	{ 48, 1, "Enable host SPI ABR" },
594*0dc9a440SJohnny Huang 	{ 49, 1, "Enable host SPI ABR mode select pin" },
595*0dc9a440SJohnny Huang 	{ 50, 1, "Host SPI ABR Mode" },
596*0dc9a440SJohnny Huang 	{ 51, 3, "Host SPI flash size" },
597*0dc9a440SJohnny Huang 	{ 54, 1, "Enable boot SPI auxiliary control pins" },
598*0dc9a440SJohnny Huang 	{ 55, 2, "Boot SPI CRTM size" },
599*0dc9a440SJohnny Huang 	{ 57, 2, "Host SPI CRTM size" },
600*0dc9a440SJohnny Huang 	{ 59, 1, "Enable host SPI auxiliary control pins" },
601*0dc9a440SJohnny Huang 	{ 60, 1, "Enable GPIO Pass Through" },
602*0dc9a440SJohnny Huang 	{ 61, 1, "OTPSTRAP[3D] Reserved" },
603*0dc9a440SJohnny Huang 	{ 62, 1, "Enable Dedicate GPIO Strap Pins" },
604*0dc9a440SJohnny Huang 	{ 63, 1, "OTPSTRAP[3F] Reserved" }
605*0dc9a440SJohnny Huang };
606*0dc9a440SJohnny Huang 
607