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