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