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