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