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