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