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