xref: /openbmc/u-boot/arch/arm/mach-rockchip/Kconfig (revision db00e921)
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	help
18	  The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7
19	  including NEON and GPU, Mali-400 graphics, several DDR3 options
20	  and video codec support. Peripherals include Gigabit Ethernet,
21	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
22
23config ROCKCHIP_RK3188
24	bool "Support Rockchip RK3188"
25	select CPU_V7
26	select SPL_BOARD_INIT if SPL
27	select SUPPORT_SPL
28	select SPL
29	select SPL_CLK
30	select SPL_PINCTRL
31	select SPL_REGMAP
32	select SPL_SYSCON
33	select SPL_RAM
34	select SPL_DRIVERS_MISC_SUPPORT
35	select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
36	select BOARD_LATE_INIT
37	select ROCKCHIP_BROM_HELPER
38	help
39	  The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9
40	  including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
41	  video interfaces, several memory options and video codec support.
42	  Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S,
43	  UART, SPI, I2C and PWMs.
44
45config ROCKCHIP_RK322X
46	bool "Support Rockchip RK3228/RK3229"
47	select CPU_V7
48	select SUPPORT_SPL
49	select SPL
50	select ROCKCHIP_BROM_HELPER
51	select DEBUG_UART_BOARD_INIT
52	help
53	  The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7
54	  including NEON and GPU, Mali-400 graphics, several DDR3 options
55	  and video codec support. Peripherals include Gigabit Ethernet,
56	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
57
58config ROCKCHIP_RK3288
59	bool "Support Rockchip RK3288"
60	select CPU_V7
61	select SPL_BOARD_INIT if SPL
62	select SUPPORT_SPL
63	select SPL
64	imply USB_FUNCTION_ROCKUSB
65	imply CMD_ROCKUSB
66	help
67	  The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17
68	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
69	  video interfaces supporting HDMI and eDP, several DDR3 options
70	  and video codec support. Peripherals include Gigabit Ethernet,
71	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
72
73config ROCKCHIP_RK3328
74	bool "Support Rockchip RK3328"
75	select ARM64
76	help
77	  The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53.
78	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
79	  video interfaces supporting HDMI and eDP, several DDR3 options
80	  and video codec support. Peripherals include Gigabit Ethernet,
81	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
82
83config ROCKCHIP_RK3368
84	bool "Support Rockchip RK3368"
85	select ARM64
86	select SUPPORT_SPL
87	select SUPPORT_TPL
88	select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
89	select TPL_NEEDS_SEPARATE_STACK if TPL
90	imply SPL_SEPARATE_BSS
91	imply SPL_SERIAL_SUPPORT
92	imply TPL_SERIAL_SUPPORT
93	select DEBUG_UART_BOARD_INIT
94	select SYS_NS16550
95	help
96	  The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
97	  into a big and little cluster with 4 cores each) Cortex-A53 including
98	  AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache
99	  (for the little cluster), PowerVR G6110 based graphics, one video
100	  output processor supporting LVDS/HDMI/eDP, several DDR3 options and
101	  video codec support.
102
103	  On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
104	  I2S, UARTs, SPI, I2C and PWMs.
105
106if ROCKCHIP_RK3368
107
108config TPL_LDSCRIPT
109	default "arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds"
110
111config TPL_TEXT_BASE
112        default 0xff8c1000
113
114config TPL_MAX_SIZE
115        default 28672
116
117config TPL_STACK
118        default 0xff8cffff
119
120endif
121
122config ROCKCHIP_RK3399
123	bool "Support Rockchip RK3399"
124	select ARM64
125	select SUPPORT_SPL
126	select SPL
127	select SPL_SEPARATE_BSS
128	select SPL_SERIAL_SUPPORT
129	select SPL_DRIVERS_MISC_SUPPORT
130	select DEBUG_UART_BOARD_INIT
131	select BOARD_LATE_INIT
132	select ROCKCHIP_BROM_HELPER
133	help
134	  The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
135	  and quad-core Cortex-A53.
136	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
137	  video interfaces supporting HDMI and eDP, several DDR3 options
138	  and video codec support. Peripherals include Gigabit Ethernet,
139	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
140
141config ROCKCHIP_RV1108
142	bool "Support Rockchip RV1108"
143	select CPU_V7
144	help
145	  The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
146	  and a DSP.
147
148config SPL_ROCKCHIP_BACK_TO_BROM
149	bool "SPL returns to bootrom"
150	default y if ROCKCHIP_RK3036
151	select ROCKCHIP_BROM_HELPER
152	depends on SPL
153	help
154	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
155          SPL will return to the boot rom, which will then load the U-Boot
156          binary to keep going on.
157
158config TPL_ROCKCHIP_BACK_TO_BROM
159	bool "TPL returns to bootrom"
160	default y if ROCKCHIP_RK3368
161	select ROCKCHIP_BROM_HELPER
162	depends on TPL
163	help
164	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
165          SPL will return to the boot rom, which will then load the U-Boot
166          binary to keep going on.
167
168config ROCKCHIP_BOOT_MODE_REG
169	hex "Rockchip boot mode flag register address"
170	default 0x200081c8 if ROCKCHIP_RK3036
171	default 0x20004040 if ROCKCHIP_RK3188
172	default 0x110005c8 if ROCKCHIP_RK322X
173	default 0xff730094 if ROCKCHIP_RK3288
174	default 0xff738200 if ROCKCHIP_RK3368
175	default 0xff320300 if ROCKCHIP_RK3399
176	default 0x10300580 if ROCKCHIP_RV1108
177	default 0
178	help
179	  The Soc will enter to different boot mode(defined in asm/arch/boot_mode.h)
180	  according to the value from this register.
181
182config ROCKCHIP_SPL_RESERVE_IRAM
183	hex "Size of IRAM reserved in SPL"
184	default 0
185	help
186	  SPL may need reserve memory for firmware loaded by SPL, whose load
187	  address is in IRAM and may overlay with SPL text area if not
188	  reserved.
189
190config ROCKCHIP_BROM_HELPER
191	bool
192
193config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
194        bool "SPL requires early-return (for RK3188-style BROM) to BROM"
195	depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
196	help
197	  Some Rockchip BROM variants (e.g. on the RK3188) load the
198	  first stage in segments and enter multiple times. E.g. on
199	  the RK3188, the first 1KB of the first stage are loaded
200	  first and entered; after returning to the BROM, the
201	  remainder of the first stage is loaded, but the BROM
202	  re-enters at the same address/to the same code as previously.
203
204	  This enables support code in the BOOT0 hook for the SPL stage
205	  to allow multiple entries.
206
207config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
208        bool "TPL requires early-return (for RK3188-style BROM) to BROM"
209	depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
210	help
211	  Some Rockchip BROM variants (e.g. on the RK3188) load the
212	  first stage in segments and enter multiple times. E.g. on
213	  the RK3188, the first 1KB of the first stage are loaded
214	  first and entered; after returning to the BROM, the
215	  remainder of the first stage is loaded, but the BROM
216	  re-enters at the same address/to the same code as previously.
217
218	  This enables support code in the BOOT0 hook for the TPL stage
219	  to allow multiple entries.
220
221config SPL_MMC_SUPPORT
222	default y if !SPL_ROCKCHIP_BACK_TO_BROM
223
224source "arch/arm/mach-rockchip/rk3036/Kconfig"
225source "arch/arm/mach-rockchip/rk3128/Kconfig"
226source "arch/arm/mach-rockchip/rk3188/Kconfig"
227source "arch/arm/mach-rockchip/rk322x/Kconfig"
228source "arch/arm/mach-rockchip/rk3288/Kconfig"
229source "arch/arm/mach-rockchip/rk3328/Kconfig"
230source "arch/arm/mach-rockchip/rk3368/Kconfig"
231source "arch/arm/mach-rockchip/rk3399/Kconfig"
232source "arch/arm/mach-rockchip/rv1108/Kconfig"
233endif
234