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