Merge branch 'master' of git://git.denx.de/u-boot-usb
[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         imply SYS_BOOTCOUNT_SINGLEWORD if BOOTCOUNT_LIMIT
248         imply CMD_BOOTCOUNT if BOOTCOUNT_LIMIT
249         help
250           The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
251           and quad-core Cortex-A53.
252           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
253           video interfaces supporting HDMI and eDP, several DDR3 options
254           and video codec support. Peripherals include Gigabit Ethernet,
255           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
256
257 config ROCKCHIP_RV1108
258         bool "Support Rockchip RV1108"
259         select CPU_V7A
260         imply ROCKCHIP_COMMON_BOARD
261         help
262           The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
263           and a DSP.
264
265 config ROCKCHIP_USB_UART
266         bool "Route uart output to usb pins"
267         help
268           Rockchip SoCs have the ability to route the signals of the debug
269           uart through the d+ and d- pins of a specific usb phy to enable
270           some form of closed-case debugging. With this option supported
271           SoCs will enable this routing as a debug measure.
272
273 config SPL_ROCKCHIP_BACK_TO_BROM
274         bool "SPL returns to bootrom"
275         default y if ROCKCHIP_RK3036
276         select ROCKCHIP_BROM_HELPER
277         select SPL_BOOTROM_SUPPORT
278         depends on SPL
279         help
280           Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
281           SPL will return to the boot rom, which will then load the U-Boot
282           binary to keep going on.
283
284 config TPL_ROCKCHIP_BACK_TO_BROM
285         bool "TPL returns to bootrom"
286         default y
287         select ROCKCHIP_BROM_HELPER
288         select TPL_BOOTROM_SUPPORT
289         depends on TPL
290         help
291           Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
292           SPL will return to the boot rom, which will then load the U-Boot
293           binary to keep going on.
294
295 config ROCKCHIP_COMMON_BOARD
296         bool "Rockchip common board file"
297         help
298           Rockchip SoCs have similar boot process, Common board file is mainly
299           in charge of common process of board_init() and board_late_init() for
300           U-Boot proper.
301
302 config SPL_ROCKCHIP_COMMON_BOARD
303         bool "Rockchip SPL common board file"
304         depends on SPL
305         help
306           Rockchip SoCs have similar boot process, SPL is mainly in charge of
307           load and boot Trust ATF/U-Boot firmware, and DRAM init if there is
308           no TPL for the board.
309
310 config TPL_ROCKCHIP_COMMON_BOARD
311         bool "Rockchip TPL common board file"
312         depends on TPL
313         help
314           Rockchip SoCs have similar boot process, prefer to use TPL for DRAM
315           init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL
316           common board is a basic TPL board init which can be shared for most
317           of SoCs to avoid copy-paste for different SoCs.
318
319 config ROCKCHIP_BOOT_MODE_REG
320         hex "Rockchip boot mode flag register address"
321         help
322           The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
323           according to the value from this register.
324
325 config ROCKCHIP_SPL_RESERVE_IRAM
326         hex "Size of IRAM reserved in SPL"
327         default 0
328         help
329           SPL may need reserve memory for firmware loaded by SPL, whose load
330           address is in IRAM and may overlay with SPL text area if not
331           reserved.
332
333 config ROCKCHIP_BROM_HELPER
334         bool
335
336 config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
337         bool "SPL requires early-return (for RK3188-style BROM) to BROM"
338         depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
339         help
340           Some Rockchip BROM variants (e.g. on the RK3188) load the
341           first stage in segments and enter multiple times. E.g. on
342           the RK3188, the first 1KB of the first stage are loaded
343           first and entered; after returning to the BROM, the
344           remainder of the first stage is loaded, but the BROM
345           re-enters at the same address/to the same code as previously.
346
347           This enables support code in the BOOT0 hook for the SPL stage
348           to allow multiple entries.
349
350 config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
351         bool "TPL requires early-return (for RK3188-style BROM) to BROM"
352         depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
353         help
354           Some Rockchip BROM variants (e.g. on the RK3188) load the
355           first stage in segments and enter multiple times. E.g. on
356           the RK3188, the first 1KB of the first stage are loaded
357           first and entered; after returning to the BROM, the
358           remainder of the first stage is loaded, but the BROM
359           re-enters at the same address/to the same code as previously.
360
361           This enables support code in the BOOT0 hook for the TPL stage
362           to allow multiple entries.
363
364 config SPL_MMC_SUPPORT
365         default y if !SPL_ROCKCHIP_BACK_TO_BROM
366
367 source "arch/arm/mach-rockchip/px30/Kconfig"
368 source "arch/arm/mach-rockchip/rk3036/Kconfig"
369 source "arch/arm/mach-rockchip/rk3128/Kconfig"
370 source "arch/arm/mach-rockchip/rk3188/Kconfig"
371 source "arch/arm/mach-rockchip/rk322x/Kconfig"
372 source "arch/arm/mach-rockchip/rk3288/Kconfig"
373 source "arch/arm/mach-rockchip/rk3308/Kconfig"
374 source "arch/arm/mach-rockchip/rk3328/Kconfig"
375 source "arch/arm/mach-rockchip/rk3368/Kconfig"
376 source "arch/arm/mach-rockchip/rk3399/Kconfig"
377 source "arch/arm/mach-rockchip/rv1108/Kconfig"
378 endif