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