Merge tag 'u-boot-atmel-2020.04-a' of https://gitlab.denx.de/u-boot/custodians/u...
[platform/kernel/u-boot.git] / arch / arm / mach-rockchip / Kconfig
1 if ARCH_ROCKCHIP
2
3 config ROCKCHIP_PX30
4         bool "Support Rockchip PX30"
5         select ARM64
6         select SUPPORT_SPL
7         select SUPPORT_TPL
8         select SPL
9         select TPL
10         select TPL_TINY_FRAMEWORK if TPL
11         select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
12         select TPL_NEEDS_SEPARATE_STACK if TPL
13         imply SPL_SEPARATE_BSS
14         select SPL_SERIAL_SUPPORT
15         select TPL_SERIAL_SUPPORT
16         select DEBUG_UART_BOARD_INIT
17         imply ROCKCHIP_COMMON_BOARD
18         imply SPL_ROCKCHIP_COMMON_BOARD
19         help
20           The Rockchip PX30 is a ARM-based SoC with a quad-core Cortex-A35
21           including NEON and GPU, Mali-400 graphics, several DDR3 options
22           and video codec support. Peripherals include Gigabit Ethernet,
23           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
24
25 config ROCKCHIP_RK3036
26         bool "Support Rockchip RK3036"
27         select CPU_V7A
28         select SUPPORT_SPL
29         select SPL
30         imply USB_FUNCTION_ROCKUSB
31         imply CMD_ROCKUSB
32         imply ROCKCHIP_COMMON_BOARD
33         help
34           The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
35           including NEON and GPU, Mali-400 graphics, several DDR3 options
36           and video codec support. Peripherals include Gigabit Ethernet,
37           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
38
39 config ROCKCHIP_RK3128
40         bool "Support Rockchip RK3128"
41         select CPU_V7A
42         imply ROCKCHIP_COMMON_BOARD
43         help
44           The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7
45           including NEON and GPU, Mali-400 graphics, several DDR3 options
46           and video codec support. Peripherals include Gigabit Ethernet,
47           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
48
49 config ROCKCHIP_RK3188
50         bool "Support Rockchip RK3188"
51         select CPU_V7A
52         select SPL_BOARD_INIT if SPL
53         select SUPPORT_SPL
54         select SPL
55         select SPL_CLK
56         select SPL_REGMAP
57         select SPL_SYSCON
58         select SPL_RAM
59         select SPL_DRIVERS_MISC_SUPPORT
60         select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
61         select SPL_ROCKCHIP_BACK_TO_BROM
62         select BOARD_LATE_INIT
63         imply ROCKCHIP_COMMON_BOARD
64         imply SPL_ROCKCHIP_COMMON_BOARD
65         help
66           The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9
67           including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
68           video interfaces, several memory options and video codec support.
69           Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S,
70           UART, SPI, I2C and PWMs.
71
72 config ROCKCHIP_RK322X
73         bool "Support Rockchip RK3228/RK3229"
74         select CPU_V7A
75         select SUPPORT_SPL
76         select SUPPORT_TPL
77         select SPL
78         select SPL_DM
79         select SPL_OF_LIBFDT
80         select TPL
81         select TPL_DM
82         select TPL_OF_LIBFDT
83         select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
84         select TPL_NEEDS_SEPARATE_STACK if TPL
85         select SPL_DRIVERS_MISC_SUPPORT
86         imply ROCKCHIP_COMMON_BOARD
87         imply SPL_SERIAL_SUPPORT
88         imply SPL_ROCKCHIP_COMMON_BOARD
89         imply TPL_SERIAL_SUPPORT
90         imply TPL_ROCKCHIP_COMMON_BOARD
91         select TPL_LIBCOMMON_SUPPORT
92         select TPL_LIBGENERIC_SUPPORT
93         help
94           The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7
95           including NEON and GPU, Mali-400 graphics, several DDR3 options
96           and video codec support. Peripherals include Gigabit Ethernet,
97           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
98
99 config ROCKCHIP_RK3288
100         bool "Support Rockchip RK3288"
101         select CPU_V7A
102         select SUPPORT_SPL
103         select SPL
104         select SUPPORT_TPL
105         imply ROCKCHIP_COMMON_BOARD
106         imply SPL_ROCKCHIP_COMMON_BOARD
107         imply TPL_CLK
108         imply TPL_DM
109         imply TPL_DRIVERS_MISC_SUPPORT
110         imply TPL_LIBCOMMON_SUPPORT
111         imply TPL_LIBGENERIC_SUPPORT
112         imply TPL_NEEDS_SEPARATE_TEXT_BASE
113         imply TPL_NEEDS_SEPARATE_STACK
114         imply TPL_OF_CONTROL
115         imply TPL_OF_PLATDATA
116         imply TPL_RAM
117         imply TPL_REGMAP
118         imply TPL_ROCKCHIP_COMMON_BOARD
119         imply TPL_SERIAL_SUPPORT
120         imply TPL_SYSCON
121         imply USB_FUNCTION_ROCKUSB
122         imply CMD_ROCKUSB
123         help
124           The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17
125           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
126           video interfaces supporting HDMI and eDP, several DDR3 options
127           and video codec support. Peripherals include Gigabit Ethernet,
128           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
129
130 config ROCKCHIP_RK3308
131         bool "Support Rockchip RK3308"
132         select ARM64
133         select DEBUG_UART_BOARD_INIT
134         select SUPPORT_SPL
135         select SUPPORT_TPL
136         select SPL
137         select SPL_ATF
138         select SPL_ATF_NO_PLATFORM_PARAM
139         select SPL_LOAD_FIT
140         imply ROCKCHIP_COMMON_BOARD
141         imply SPL_ROCKCHIP_COMMON_BOARD
142         imply SPL_CLK
143         imply SPL_REGMAP
144         imply SPL_SYSCON
145         imply SPL_RAM
146         imply SPL_SERIAL_SUPPORT
147         imply TPL_SERIAL_SUPPORT
148         imply SPL_SEPARATE_BSS
149         help
150           The Rockchip RK3308 is a ARM-based Soc which embedded with quad
151           Cortex-A35 and highly integrated audio interfaces.
152
153 config ROCKCHIP_RK3328
154         bool "Support Rockchip RK3328"
155         select ARM64
156         select SUPPORT_SPL
157         select SPL
158         select SUPPORT_TPL
159         select TPL
160         select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL
161         select TPL_NEEDS_SEPARATE_STACK if TPL
162         imply ROCKCHIP_COMMON_BOARD
163         imply ROCKCHIP_SDRAM_COMMON
164         imply SPL_ROCKCHIP_COMMON_BOARD
165         imply SPL_SERIAL_SUPPORT
166         imply TPL_SERIAL_SUPPORT
167         imply SPL_SEPARATE_BSS
168         select ENABLE_ARM_SOC_BOOT0_HOOK
169         select DEBUG_UART_BOARD_INIT
170         select SYS_NS16550
171         help
172           The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53.
173           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
174           video interfaces supporting HDMI and eDP, several DDR3 options
175           and video codec support. Peripherals include Gigabit Ethernet,
176           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
177
178 config ROCKCHIP_RK3368
179         bool "Support Rockchip RK3368"
180         select ARM64
181         select SUPPORT_SPL
182         select SUPPORT_TPL
183         select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
184         select TPL_NEEDS_SEPARATE_STACK if TPL
185         imply ROCKCHIP_COMMON_BOARD
186         imply SPL_ROCKCHIP_COMMON_BOARD
187         imply SPL_SEPARATE_BSS
188         imply SPL_SERIAL_SUPPORT
189         imply TPL_SERIAL_SUPPORT
190         imply TPL_ROCKCHIP_COMMON_BOARD
191         help
192           The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
193           into a big and little cluster with 4 cores each) Cortex-A53 including
194           AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache
195           (for the little cluster), PowerVR G6110 based graphics, one video
196           output processor supporting LVDS/HDMI/eDP, several DDR3 options and
197           video codec support.
198
199           On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
200           I2S, UARTs, SPI, I2C and PWMs.
201
202 config ROCKCHIP_RK3399
203         bool "Support Rockchip RK3399"
204         select ARM64
205         select SUPPORT_SPL
206         select SUPPORT_TPL
207         select SPL
208         select SPL_ATF
209         select SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF
210         select SPL_BOARD_INIT if SPL
211         select SPL_LOAD_FIT
212         select SPL_CLK if SPL
213         select SPL_PINCTRL if SPL
214         select SPL_RAM if SPL
215         select SPL_REGMAP if SPL
216         select SPL_SYSCON if SPL
217         select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL
218         select TPL_NEEDS_SEPARATE_STACK if TPL
219         select SPL_SEPARATE_BSS
220         select SPL_SERIAL_SUPPORT
221         select SPL_DRIVERS_MISC_SUPPORT
222         select CLK
223         select FIT
224         select PINCTRL
225         select RAM
226         select REGMAP
227         select SYSCON
228         select DM_PMIC
229         select DM_REGULATOR_FIXED
230         select BOARD_LATE_INIT
231         imply ROCKCHIP_COMMON_BOARD
232         imply ROCKCHIP_SDRAM_COMMON
233         imply SPL_ROCKCHIP_COMMON_BOARD
234         imply TPL_SERIAL_SUPPORT
235         imply TPL_LIBCOMMON_SUPPORT
236         imply TPL_LIBGENERIC_SUPPORT
237         imply TPL_SYS_MALLOC_SIMPLE
238         imply TPL_DRIVERS_MISC_SUPPORT
239         imply TPL_OF_CONTROL
240         imply TPL_DM
241         imply TPL_REGMAP
242         imply TPL_SYSCON
243         imply TPL_RAM
244         imply TPL_CLK
245         imply TPL_TINY_MEMSET
246         imply TPL_ROCKCHIP_COMMON_BOARD
247         help
248           The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
249           and quad-core Cortex-A53.
250           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
251           video interfaces supporting HDMI and eDP, several DDR3 options
252           and video codec support. Peripherals include Gigabit Ethernet,
253           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
254
255 config ROCKCHIP_RV1108
256         bool "Support Rockchip RV1108"
257         select CPU_V7A
258         imply ROCKCHIP_COMMON_BOARD
259         help
260           The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
261           and a DSP.
262
263 config ROCKCHIP_USB_UART
264         bool "Route uart output to usb pins"
265         help
266           Rockchip SoCs have the ability to route the signals of the debug
267           uart through the d+ and d- pins of a specific usb phy to enable
268           some form of closed-case debugging. With this option supported
269           SoCs will enable this routing as a debug measure.
270
271 config SPL_ROCKCHIP_BACK_TO_BROM
272         bool "SPL returns to bootrom"
273         default y if ROCKCHIP_RK3036
274         select ROCKCHIP_BROM_HELPER
275         select SPL_BOOTROM_SUPPORT
276         depends on SPL
277         help
278           Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
279           SPL will return to the boot rom, which will then load the U-Boot
280           binary to keep going on.
281
282 config TPL_ROCKCHIP_BACK_TO_BROM
283         bool "TPL returns to bootrom"
284         default y
285         select ROCKCHIP_BROM_HELPER
286         select TPL_BOOTROM_SUPPORT
287         depends on TPL
288         help
289           Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
290           SPL will return to the boot rom, which will then load the U-Boot
291           binary to keep going on.
292
293 config ROCKCHIP_COMMON_BOARD
294         bool "Rockchip common board file"
295         help
296           Rockchip SoCs have similar boot process, Common board file is mainly
297           in charge of common process of board_init() and board_late_init() for
298           U-Boot proper.
299
300 config SPL_ROCKCHIP_COMMON_BOARD
301         bool "Rockchip SPL common board file"
302         depends on SPL
303         help
304           Rockchip SoCs have similar boot process, SPL is mainly in charge of
305           load and boot Trust ATF/U-Boot firmware, and DRAM init if there is
306           no TPL for the board.
307
308 config TPL_ROCKCHIP_COMMON_BOARD
309         bool "Rockchip TPL common board file"
310         depends on TPL
311         help
312           Rockchip SoCs have similar boot process, prefer to use TPL for DRAM
313           init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL
314           common board is a basic TPL board init which can be shared for most
315           of SoCs to avoid copy-paste for different SoCs.
316
317 config ROCKCHIP_BOOT_MODE_REG
318         hex "Rockchip boot mode flag register address"
319         help
320           The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
321           according to the value from this register.
322
323 config ROCKCHIP_SPL_RESERVE_IRAM
324         hex "Size of IRAM reserved in SPL"
325         default 0
326         help
327           SPL may need reserve memory for firmware loaded by SPL, whose load
328           address is in IRAM and may overlay with SPL text area if not
329           reserved.
330
331 config ROCKCHIP_BROM_HELPER
332         bool
333
334 config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
335         bool "SPL requires early-return (for RK3188-style BROM) to BROM"
336         depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
337         help
338           Some Rockchip BROM variants (e.g. on the RK3188) load the
339           first stage in segments and enter multiple times. E.g. on
340           the RK3188, the first 1KB of the first stage are loaded
341           first and entered; after returning to the BROM, the
342           remainder of the first stage is loaded, but the BROM
343           re-enters at the same address/to the same code as previously.
344
345           This enables support code in the BOOT0 hook for the SPL stage
346           to allow multiple entries.
347
348 config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
349         bool "TPL requires early-return (for RK3188-style BROM) to BROM"
350         depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
351         help
352           Some Rockchip BROM variants (e.g. on the RK3188) load the
353           first stage in segments and enter multiple times. E.g. on
354           the RK3188, the first 1KB of the first stage are loaded
355           first and entered; after returning to the BROM, the
356           remainder of the first stage is loaded, but the BROM
357           re-enters at the same address/to the same code as previously.
358
359           This enables support code in the BOOT0 hook for the TPL stage
360           to allow multiple entries.
361
362 config SPL_MMC_SUPPORT
363         default y if !SPL_ROCKCHIP_BACK_TO_BROM
364
365 source "arch/arm/mach-rockchip/px30/Kconfig"
366 source "arch/arm/mach-rockchip/rk3036/Kconfig"
367 source "arch/arm/mach-rockchip/rk3128/Kconfig"
368 source "arch/arm/mach-rockchip/rk3188/Kconfig"
369 source "arch/arm/mach-rockchip/rk322x/Kconfig"
370 source "arch/arm/mach-rockchip/rk3288/Kconfig"
371 source "arch/arm/mach-rockchip/rk3308/Kconfig"
372 source "arch/arm/mach-rockchip/rk3328/Kconfig"
373 source "arch/arm/mach-rockchip/rk3368/Kconfig"
374 source "arch/arm/mach-rockchip/rk3399/Kconfig"
375 source "arch/arm/mach-rockchip/rv1108/Kconfig"
376 endif