stm32mp: stm32prog: add otp update support
[oweals/u-boot.git] / arch / arm / mach-stm32mp / Kconfig
1 if ARCH_STM32MP
2
3 config SPL
4         select SPL_BOARD_INIT
5         select SPL_CLK
6         select SPL_DM
7         select SPL_DM_SEQ_ALIAS
8         select SPL_DRIVERS_MISC_SUPPORT
9         select SPL_FRAMEWORK
10         select SPL_GPIO_SUPPORT
11         select SPL_LIBCOMMON_SUPPORT
12         select SPL_LIBGENERIC_SUPPORT
13         select SPL_OF_CONTROL
14         select SPL_OF_TRANSLATE
15         select SPL_PINCTRL
16         select SPL_REGMAP
17         select SPL_DM_RESET
18         select SPL_SERIAL_SUPPORT
19         select SPL_SPI_LOAD
20         select SPL_SYSCON
21         select SPL_WATCHDOG_SUPPORT if WATCHDOG
22         imply BOOTSTAGE_STASH if SPL_BOOTSTAGE
23         imply SPL_BOOTSTAGE if BOOTSTAGE
24         imply SPL_DISPLAY_PRINT
25         imply SPL_LIBDISK_SUPPORT
26
27 config SYS_SOC
28         default "stm32mp"
29
30 config SYS_MALLOC_LEN
31         default 0x2000000
32
33 config ENV_SIZE
34         default 0x2000
35
36 config STM32MP15x
37         bool "Support STMicroelectronics STM32MP15x Soc"
38         select ARCH_SUPPORT_PSCI if !TFABOOT
39         select ARM_SMCCC if TFABOOT
40         select CPU_V7A
41         select CPU_V7_HAS_NONSEC if !TFABOOT
42         select CPU_V7_HAS_VIRT
43         select OF_BOARD_SETUP
44         select PINCTRL_STM32
45         select STM32_RCC
46         select STM32_RESET
47         select STM32_SERIAL
48         select SYS_ARCH_TIMER
49         imply SYSRESET_PSCI if TFABOOT
50         imply SYSRESET_SYSCON if !TFABOOT
51         help
52                 support of STMicroelectronics SOC STM32MP15x family
53                 STM32MP157, STM32MP153 or STM32MP151
54                 STMicroelectronics MPU with core ARMv7
55                 dual core A7 for STM32MP157/3, monocore for STM32MP151
56                 target all the STMicroelectronics board with SOC STM32MP1 family
57
58 choice
59         prompt "STM32MP15x board select"
60         optional
61
62 config TARGET_ST_STM32MP15x
63         bool "STMicroelectronics STM32MP15x boards"
64         select STM32MP15x
65         imply BOOTCOUNT_LIMIT
66         imply BOOTSTAGE
67         imply CMD_BOOTCOUNT
68         imply CMD_BOOTSTAGE
69         imply CMD_CLS if CMD_BMP
70         imply DISABLE_CONSOLE
71         imply PRE_CONSOLE_BUFFER
72         imply SILENT_CONSOLE
73         help
74                 target the STMicroelectronics board with SOC STM32MP15x
75                 managed by board/st/stm32mp1:
76                 Evalulation board (EV1) or Discovery board (DK1 and DK2).
77                 The difference between board are managed with devicetree
78
79 config TARGET_DH_STM32MP1_PDK2
80         bool "DH STM32MP1 PDK2"
81         select STM32MP15x
82         imply BOOTCOUNT_LIMIT
83         imply CMD_BOOTCOUNT
84         help
85                 Target the DH PDK2 development kit with STM32MP15x SoM.
86
87 endchoice
88
89 config SYS_TEXT_BASE
90         default 0xC0100000
91
92 config NR_DRAM_BANKS
93         default 1
94
95 config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_MMC2
96         hex "Partition on MMC2 to use to load U-Boot from"
97         depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
98         default 1
99         help
100           Partition on the second MMC to load U-Boot from when the MMC is being
101           used in raw mode
102
103 config STM32_ETZPC
104         bool "STM32 Extended TrustZone Protection"
105         depends on STM32MP15x
106         default y
107         help
108           Say y to enable STM32 Extended TrustZone Protection
109
110 config CMD_STM32PROG
111         bool "command stm32prog for STM32CudeProgrammer"
112         select DFU
113         select DFU_RAM
114         select DFU_VIRT
115         select PARTITION_TYPE_GUID
116         imply CMD_GPT if MMC
117         imply CMD_MTD if MTD
118         imply DFU_MMC if MMC
119         imply DFU_MTD if MTD
120         help
121                 activate a specific command stm32prog for STM32MP soc family
122                 witch update the device with the tools STM32CubeProgrammer,
123                 using UART with STM32 protocol or USB with DFU protocol
124                 NB: access to not volatile memory (NOR/NAND/SD/eMMC) is based
125                     on U-Boot DFU framework
126
127 config CMD_STM32KEY
128         bool "command stm32key to fuse public key hash"
129         default y
130         depends on CMD_FUSE
131         help
132                 fuse public key hash in corresponding fuse used to authenticate
133                 binary.
134
135
136 config PRE_CON_BUF_ADDR
137         default 0xC02FF000
138
139 config PRE_CON_BUF_SZ
140         default 4096
141
142 config BOOTSTAGE_STASH_ADDR
143         default 0xC3000000
144
145 if BOOTCOUNT_LIMIT
146 config SYS_BOOTCOUNT_SINGLEWORD
147         default y
148
149 # TAMP_BOOTCOUNT = TAMP_BACKUP_REGISTER(21)
150 config SYS_BOOTCOUNT_ADDR
151         default 0x5C00A154
152 endif
153
154 if DEBUG_UART
155
156 config DEBUG_UART_BOARD_INIT
157         default y
158
159 # debug on UART4 by default
160 config DEBUG_UART_BASE
161         default 0x40010000
162
163 # clock source is HSI on reset
164 config DEBUG_UART_CLOCK
165         default 64000000
166 endif
167
168 source "board/st/stm32mp1/Kconfig"
169 source "board/dhelectronics/dh_stm32mp1/Kconfig"
170
171 endif