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