xref: /rk3399_rockchip-uboot/arch/arm/mach-rockchip/Kconfig (revision aee63dc84c1f5be59ea35ceb209a4ea937bdeb41)
1if ARCH_ROCKCHIP
2
3config ROCKCHIP_RK3036
4	bool "Support Rockchip RK3036"
5	select CPU_V7
6	select SUPPORT_SPL
7	select SPL
8	help
9	  The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
10	  including NEON and GPU, Mali-400 graphics, several DDR3 options
11	  and video codec support. Peripherals include Gigabit Ethernet,
12	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
13
14config ROCKCHIP_RK3128
15	bool "Support Rockchip RK3128"
16	select CPU_V7
17	select GICV2
18	select ARM_SMCCC
19	help
20	  The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7
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
25if ROCKCHIP_RK3128
26
27config ROCKCHIP_RK3126
28	bool "Support Rockchip RK3126 "
29	help
30	  RK3126 can use most code from RK3128, but at some situations we have
31	  to distinguish between RK3126 and RK3128, so this macro gives help.
32	  It is usually selected in rk3126 board defconfig.
33endif
34
35config ROCKCHIP_RK3066
36	bool "Support Rockchip RK3066"
37	select CPU_V7
38	select SUPPORT_SPL
39	select SUPPORT_TPL
40	select SPL
41	select TPL
42	select BOARD_LATE_INIT
43	select ROCKCHIP_BROM_HELPER
44	help
45	  The Rockchip RK3066 is a ARM-based SoC with a dual-core Cortex-A9
46	  including NEON and GPU, Mali-400 graphics, several DDR3 options
47	  and video codec support. Peripherals include ethernet, USB2 host
48	  and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
49
50config ROCKCHIP_RK3188
51	bool "Support Rockchip RK3188"
52	select CPU_V7
53	select SPL_BOARD_INIT if SPL
54	select SUPPORT_SPL
55	select SPL
56	select SPL_CLK
57	select SPL_PINCTRL
58	select SPL_REGMAP
59	select SPL_SYSCON
60	select SPL_RAM
61	select SPL_DRIVERS_MISC_SUPPORT
62	select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
63	select BOARD_LATE_INIT
64	select ROCKCHIP_BROM_HELPER
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
72config ROCKCHIP_RK322X
73	bool "Support Rockchip RK3228/RK3229"
74	select CPU_V7
75	select SUPPORT_SPL
76	select SUPPORT_TPL
77	select SPL
78	select TPL
79	select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
80	select TPL_NEEDS_SEPARATE_STACK if TPL
81	select SPL_DRIVERS_MISC_SUPPORT
82	imply SPL_SERIAL_SUPPORT
83	imply TPL_SERIAL_SUPPORT
84	select ROCKCHIP_BROM_HELPER
85	select DEBUG_UART_BOARD_INIT
86	select TPL_LIBCOMMON_SUPPORT
87	select TPL_LIBGENERIC_SUPPORT
88	select GICV2
89	help
90	  The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7
91	  including NEON and GPU, Mali-400 graphics, several DDR3 options
92	  and video codec support. Peripherals include Gigabit Ethernet,
93	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
94
95config ROCKCHIP_RK3288
96	bool "Support Rockchip RK3288"
97	select CPU_V7
98	select SPL_BOARD_INIT if SPL
99	select SUPPORT_SPL
100	select SPL
101	select GICV2
102	help
103	  The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17
104	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
105	  video interfaces supporting HDMI and eDP, several DDR3 options
106	  and video codec support. Peripherals include Gigabit Ethernet,
107	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
108
109config ROCKCHIP_RK3328
110	bool "Support Rockchip RK3328"
111	select ARM64
112	select GICV2
113	select SUPPORT_SPL
114	select SUPPORT_TPL
115	select SPL
116	select TPL
117	select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL
118	select TPL_NEEDS_SEPARATE_STACK if TPL
119	imply SPL_SERIAL_SUPPORT
120	imply TPL_SERIAL_SUPPORT
121	imply SPL_SEPARATE_BSS
122	select DEBUG_UART_BOARD_INIT
123	select SYS_NS16550
124	help
125	  The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53.
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
131if ROCKCHIP_RK3328
132
133config TPL_LDSCRIPT
134	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
135
136config TPL_TEXT_BASE
137        default 0xff091000
138
139config TPL_MAX_SIZE
140        default 28672
141
142config TPL_STACK
143        default 0xff098000
144
145endif
146
147config ROCKCHIP_RK3368
148	bool "Support Rockchip RK3368"
149	select ARM64
150	select SUPPORT_SPL
151	select SUPPORT_TPL
152	select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
153	select TPL_NEEDS_SEPARATE_STACK if TPL
154	imply SPL_SEPARATE_BSS
155	imply SPL_SERIAL_SUPPORT
156	imply TPL_SERIAL_SUPPORT
157	select DEBUG_UART_BOARD_INIT
158	select SYS_NS16550
159	select GICV2
160	help
161	  The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
162	  into a big and little cluster with 4 cores each) Cortex-A53 including
163	  AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache
164	  (for the little cluster), PowerVR G6110 based graphics, one video
165	  output processor supporting LVDS/HDMI/eDP, several DDR3 options and
166	  video codec support.
167
168	  On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
169	  I2S, UARTs, SPI, I2C and PWMs.
170
171if ROCKCHIP_RK3368
172
173config TPL_LDSCRIPT
174	default "arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds"
175
176config TPL_TEXT_BASE
177        default 0xff8c1000
178
179config TPL_MAX_SIZE
180        default 28672
181
182config TPL_STACK
183        default 0xff8cffff
184
185endif
186
187config ROCKCHIP_RK3399
188	bool "Support Rockchip RK3399"
189	select ARM64
190	select SUPPORT_SPL
191	select SPL
192	select SPL_SEPARATE_BSS
193	select SPL_SERIAL_SUPPORT
194	select SPL_DRIVERS_MISC_SUPPORT
195	select DEBUG_UART_BOARD_INIT
196	select GICV3
197	select BOARD_LATE_INIT
198	select ROCKCHIP_BROM_HELPER
199	help
200	  The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
201	  and quad-core Cortex-A53.
202	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
203	  video interfaces supporting HDMI and eDP, several DDR3 options
204	  and video codec support. Peripherals include Gigabit Ethernet,
205	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
206
207config ROCKCHIP_RV1108
208	bool "Support Rockchip RV1108"
209	select CPU_V7
210	help
211	  The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
212	  and a DSP.
213
214config SPL_ROCKCHIP_BACK_TO_BROM
215	bool "SPL returns to bootrom"
216	default y if ROCKCHIP_RK3036
217	select ROCKCHIP_BROM_HELPER
218	depends on SPL
219	help
220	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
221          SPL will return to the boot rom, which will then load the U-Boot
222          binary to keep going on.
223
224config TPL_ROCKCHIP_BACK_TO_BROM
225	bool "TPL returns to bootrom"
226	default y if ROCKCHIP_RK3368 || ROCKCHIP_RK3328
227	select ROCKCHIP_BROM_HELPER
228	depends on TPL
229	help
230	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
231          SPL will return to the boot rom, which will then load the U-Boot
232          binary to keep going on.
233
234config ROCKCHIP_BOOT_MODE_REG
235	hex "Rockchip boot mode flag register address"
236	default 0x200081c8 if ROCKCHIP_RK3036
237	default 0x100a0038 if ROCKCHIP_RK3128
238	default 0x20004040 if ROCKCHIP_RK3188
239	default 0x110005c8 if ROCKCHIP_RK322X
240	default 0xff730094 if ROCKCHIP_RK3288
241	default 0xff738200 if ROCKCHIP_RK3368
242	default 0xff320300 if ROCKCHIP_RK3399
243	default 0x10300580 if ROCKCHIP_RV1108
244	default 0
245	help
246	  The Soc will enter to different boot mode(defined in asm/arch/boot_mode.h)
247	  according to the value from this register.
248
249config ROCKCHIP_SPL_RESERVE_IRAM
250	hex "Size of IRAM reserved in SPL"
251	default 0x4000
252	help
253	  SPL may need reserve memory for firmware loaded by SPL, whose load
254	  address is in IRAM and may overlay with SPL text area if not
255	  reserved.
256
257config ROCKCHIP_BROM_HELPER
258	bool
259
260config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
261        bool "SPL requires early-return (for RK3188-style BROM) to BROM"
262	depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
263	help
264	  Some Rockchip BROM variants (e.g. on the RK3188) load the
265	  first stage in segments and enter multiple times. E.g. on
266	  the RK3188, the first 1KB of the first stage are loaded
267	  first and entered; after returning to the BROM, the
268	  remainder of the first stage is loaded, but the BROM
269	  re-enters at the same address/to the same code as previously.
270
271	  This enables support code in the BOOT0 hook for the SPL stage
272	  to allow multiple entries.
273
274config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
275        bool "TPL requires early-return (for RK3188-style BROM) to BROM"
276	depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
277	help
278	  Some Rockchip BROM variants (e.g. on the RK3188) load the
279	  first stage in segments and enter multiple times. E.g. on
280	  the RK3188, the first 1KB of the first stage are loaded
281	  first and entered; after returning to the BROM, the
282	  remainder of the first stage is loaded, but the BROM
283	  re-enters at the same address/to the same code as previously.
284
285	  This enables support code in the BOOT0 hook for the TPL stage
286	  to allow multiple entries.
287
288config SPL_MMC_SUPPORT
289	default y if !SPL_ROCKCHIP_BACK_TO_BROM
290
291config RKIMG_BOOTLOADER
292	bool "Support for Rockchip Image Bootloader boot flow"
293	default n
294	help
295	  Rockchip use this to boot Android during development cycle and for
296	  other OS, typical content kernel.img with zImage/Image, boot.img and
297	  recovery.img with Ramdisk, packed with 'KNRL' header; and resource.img
298	  with dtb and uboot/kernel logo bmp, vendor storage for custom info
299	  like SN and MAC address.
300
301config ROCKCHIP_RESOURCE_IMAGE
302	bool "Enable support for rockchip resource image"
303	depends on RKIMG_BOOTLOADER
304	help
305	  This enables support to get dtb or logo files from
306	  rockchip resource image format partition.
307
308config ROCKCHIP_VENDOR_PARTITION
309	bool "Rockchip vendor storage partition support"
310	depends on RKIMG_BOOTLOADER
311	help
312	  This enable support to read/write vendor configuration data from/to
313	  this partition.
314
315config ROCKCHIP_CRC
316	bool "Rockchip CRC verify images"
317	help
318	  This enable support Rockchip CRC verify images. It takes a lot of time,
319	  so it is better only used for debug.
320
321config ROCKCHIP_SMCCC
322	bool "Rockchip SMCCC"
323	default y if ARM_SMCCC
324	help
325	  This enable support for Rockchip SMC calls
326
327config GICV2
328	bool "ARM GICv2"
329
330config GICV3
331	bool "ARM GICv3"
332
333source "arch/arm/mach-rockchip/rk3036/Kconfig"
334source "arch/arm/mach-rockchip/rk3066/Kconfig"
335source "arch/arm/mach-rockchip/rk3128/Kconfig"
336source "arch/arm/mach-rockchip/rk3188/Kconfig"
337source "arch/arm/mach-rockchip/rk322x/Kconfig"
338source "arch/arm/mach-rockchip/rk3288/Kconfig"
339source "arch/arm/mach-rockchip/rk3328/Kconfig"
340source "arch/arm/mach-rockchip/rk3368/Kconfig"
341source "arch/arm/mach-rockchip/rk3399/Kconfig"
342source "arch/arm/mach-rockchip/rv1108/Kconfig"
343endif
344