xref: /openbmc/u-boot/arch/arm/mach-rockchip/Kconfig (revision e3067793)
12444dae5SSimon Glassif ARCH_ROCKCHIP
22444dae5SSimon Glass
3041cdb5fSHeiko Stübnerconfig ROCKCHIP_RK3036
4041cdb5fSHeiko Stübner	bool "Support Rockchip RK3036"
5041cdb5fSHeiko Stübner	select CPU_V7
6a381bcf5SKever Yang	select SUPPORT_SPL
7a381bcf5SKever Yang	select SPL
8041cdb5fSHeiko Stübner	help
9041cdb5fSHeiko Stübner	  The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
10041cdb5fSHeiko Stübner	  including NEON and GPU, Mali-400 graphics, several DDR3 options
11041cdb5fSHeiko Stübner	  and video codec support. Peripherals include Gigabit Ethernet,
12041cdb5fSHeiko Stübner	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
13041cdb5fSHeiko Stübner
140a2be69fSHeiko Stübnerconfig ROCKCHIP_RK3188
150a2be69fSHeiko Stübner	bool "Support Rockchip RK3188"
160a2be69fSHeiko Stübner	select CPU_V7
170680f1b1SLey Foon Tan	select SPL_BOARD_INIT if SPL
180a2be69fSHeiko Stübner	select SUPPORT_SPL
190a2be69fSHeiko Stübner	select SPL
204bbb05bcSPhilipp Tomsich	select SPL_CLK
214bbb05bcSPhilipp Tomsich	select SPL_PINCTRL
224bbb05bcSPhilipp Tomsich	select SPL_REGMAP
234bbb05bcSPhilipp Tomsich	select SPL_SYSCON
244bbb05bcSPhilipp Tomsich	select SPL_RAM
254bbb05bcSPhilipp Tomsich	select SPL_DRIVERS_MISC_SUPPORT
264d9253fbSPhilipp Tomsich	select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
27008a610bSHeiko Stübner	select BOARD_LATE_INIT
280a2be69fSHeiko Stübner	select ROCKCHIP_BROM_HELPER
290a2be69fSHeiko Stübner	help
300a2be69fSHeiko Stübner	  The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9
310a2be69fSHeiko Stübner	  including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
320a2be69fSHeiko Stübner	  video interfaces, several memory options and video codec support.
330a2be69fSHeiko Stübner	  Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S,
340a2be69fSHeiko Stübner	  UART, SPI, I2C and PWMs.
350a2be69fSHeiko Stübner
36168eef7aSKever Yangconfig ROCKCHIP_RK322X
37168eef7aSKever Yang	bool "Support Rockchip RK3228/RK3229"
38168eef7aSKever Yang	select CPU_V7
39168eef7aSKever Yang	select SUPPORT_SPL
40168eef7aSKever Yang	select SPL
41168eef7aSKever Yang	select ROCKCHIP_BROM_HELPER
42168eef7aSKever Yang	select DEBUG_UART_BOARD_INIT
43168eef7aSKever Yang	help
44168eef7aSKever Yang	  The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7
45168eef7aSKever Yang	  including NEON and GPU, Mali-400 graphics, several DDR3 options
46168eef7aSKever Yang	  and video codec support. Peripherals include Gigabit Ethernet,
47168eef7aSKever Yang	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
48168eef7aSKever Yang
492444dae5SSimon Glassconfig ROCKCHIP_RK3288
502444dae5SSimon Glass	bool "Support Rockchip RK3288"
51e0f5dbcbSAndreas Färber	select CPU_V7
520680f1b1SLey Foon Tan	select SPL_BOARD_INIT if SPL
53a381bcf5SKever Yang	select SUPPORT_SPL
54a381bcf5SKever Yang	select SPL
552444dae5SSimon Glass	help
562444dae5SSimon Glass	  The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17
572444dae5SSimon Glass	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
582444dae5SSimon Glass	  video interfaces supporting HDMI and eDP, several DDR3 options
592444dae5SSimon Glass	  and video codec support. Peripherals include Gigabit Ethernet,
60ef904bf2SAndreas Färber	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
612444dae5SSimon Glass
6285a3cfb8SKever Yangconfig ROCKCHIP_RK3328
6385a3cfb8SKever Yang	bool "Support Rockchip RK3328"
6485a3cfb8SKever Yang	select ARM64
6585a3cfb8SKever Yang	help
6685a3cfb8SKever Yang	  The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53.
6785a3cfb8SKever Yang	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
6885a3cfb8SKever Yang	  video interfaces supporting HDMI and eDP, several DDR3 options
6985a3cfb8SKever Yang	  and video codec support. Peripherals include Gigabit Ethernet,
7085a3cfb8SKever Yang	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
7185a3cfb8SKever Yang
7237a0c600SAndreas Färberconfig ROCKCHIP_RK3368
7337a0c600SAndreas Färber	bool "Support Rockchip RK3368"
7437a0c600SAndreas Färber	select ARM64
755071457eSPhilipp Tomsich	select SUPPORT_SPL
765071457eSPhilipp Tomsich	select SUPPORT_TPL
774cf4378eSPhilipp Tomsich	select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
784cf4378eSPhilipp Tomsich	select TPL_NEEDS_SEPARATE_STACK if TPL
795071457eSPhilipp Tomsich	imply SPL_SEPARATE_BSS
805071457eSPhilipp Tomsich	imply SPL_SERIAL_SUPPORT
815071457eSPhilipp Tomsich	imply TPL_SERIAL_SUPPORT
825071457eSPhilipp Tomsich	select DEBUG_UART_BOARD_INIT
8337a0c600SAndreas Färber	select SYS_NS16550
8437a0c600SAndreas Färber	help
859a8f009fSPhilipp Tomsich	  The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
869a8f009fSPhilipp Tomsich	  into a big and little cluster with 4 cores each) Cortex-A53 including
879a8f009fSPhilipp Tomsich	  AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache
889a8f009fSPhilipp Tomsich	  (for the little cluster), PowerVR G6110 based graphics, one video
899a8f009fSPhilipp Tomsich	  output processor supporting LVDS/HDMI/eDP, several DDR3 options and
909a8f009fSPhilipp Tomsich	  video codec support.
919a8f009fSPhilipp Tomsich
929a8f009fSPhilipp Tomsich	  On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
939a8f009fSPhilipp Tomsich	  I2S, UARTs, SPI, I2C and PWMs.
9437a0c600SAndreas Färber
95d9d1242bSPhilipp Tomsichif ROCKCHIP_RK3368
96d9d1242bSPhilipp Tomsich
97d9d1242bSPhilipp Tomsichconfig TPL_LDSCRIPT
98d9d1242bSPhilipp Tomsich	default "arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds"
99d9d1242bSPhilipp Tomsich
1005aa49af3SPhilipp Tomsichconfig TPL_TEXT_BASE
1015aa49af3SPhilipp Tomsich        default 0xff8c1000
1025aa49af3SPhilipp Tomsich
1035aa49af3SPhilipp Tomsichconfig TPL_MAX_SIZE
1045aa49af3SPhilipp Tomsich        default 28672
1055aa49af3SPhilipp Tomsich
1065aa49af3SPhilipp Tomsichconfig TPL_STACK
1075aa49af3SPhilipp Tomsich        default 0xff8cffff
1085aa49af3SPhilipp Tomsich
109d9d1242bSPhilipp Tomsichendif
110d9d1242bSPhilipp Tomsich
111a381bcf5SKever Yangconfig ROCKCHIP_RK3399
112a381bcf5SKever Yang	bool "Support Rockchip RK3399"
113a381bcf5SKever Yang	select ARM64
11466e87cc8SKever Yang	select SUPPORT_SPL
11566e87cc8SKever Yang	select SPL
11666e87cc8SKever Yang	select SPL_SEPARATE_BSS
117c0508e42SPhilipp Tomsich	select SPL_SERIAL_SUPPORT
118c0508e42SPhilipp Tomsich	select SPL_DRIVERS_MISC_SUPPORT
1197ee16de5SPhilipp Tomsich	select DEBUG_UART_BOARD_INIT
120*e3067793SAndy Yan	select BOARD_LATE_INIT
121a381bcf5SKever Yang	help
122a381bcf5SKever Yang	  The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
123a381bcf5SKever Yang	  and quad-core Cortex-A53.
124a381bcf5SKever Yang	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
125a381bcf5SKever Yang	  video interfaces supporting HDMI and eDP, several DDR3 options
126a381bcf5SKever Yang	  and video codec support. Peripherals include Gigabit Ethernet,
127a381bcf5SKever Yang	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
128a381bcf5SKever Yang
1292c1e11ddSAndy Yanconfig ROCKCHIP_RV1108
1302c1e11ddSAndy Yan	bool "Support Rockchip RV1108"
1312c1e11ddSAndy Yan	select CPU_V7
1322c1e11ddSAndy Yan	help
1332c1e11ddSAndy Yan	  The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
1342c1e11ddSAndy Yan	  and a DSP.
1352c1e11ddSAndy Yan
136ee14d29dSPhilipp Tomsichconfig SPL_ROCKCHIP_BACK_TO_BROM
137b47ea792SXu Ziyuan	bool "SPL returns to bootrom"
138b47ea792SXu Ziyuan	default y if ROCKCHIP_RK3036
1391d845947SHeiko Stübner	select ROCKCHIP_BROM_HELPER
140ee14d29dSPhilipp Tomsich	depends on SPL
141ee14d29dSPhilipp Tomsich	help
142ee14d29dSPhilipp Tomsich	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
143ee14d29dSPhilipp Tomsich          SPL will return to the boot rom, which will then load the U-Boot
144ee14d29dSPhilipp Tomsich          binary to keep going on.
145ee14d29dSPhilipp Tomsich
146ee14d29dSPhilipp Tomsichconfig TPL_ROCKCHIP_BACK_TO_BROM
147ee14d29dSPhilipp Tomsich	bool "TPL returns to bootrom"
148ee14d29dSPhilipp Tomsich	default y if ROCKCHIP_RK3368
149ee14d29dSPhilipp Tomsich	select ROCKCHIP_BROM_HELPER
150ee14d29dSPhilipp Tomsich	depends on TPL
151b47ea792SXu Ziyuan	help
152b47ea792SXu Ziyuan	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
153b47ea792SXu Ziyuan          SPL will return to the boot rom, which will then load the U-Boot
154b47ea792SXu Ziyuan          binary to keep going on.
155b47ea792SXu Ziyuan
156*e3067793SAndy Yanconfig ROCKCHIP_BOOT_MODE_REG
157*e3067793SAndy Yan	hex "Rockchip boot mode flag register address"
158*e3067793SAndy Yan	default 0x200081c8 if ROCKCHIP_RK3036
159*e3067793SAndy Yan	default 0x20004040 if ROCKCHIP_RK3188
160*e3067793SAndy Yan	default 0x110005c8 if ROCKCHIP_RK322X
161*e3067793SAndy Yan	default 0xff730094 if ROCKCHIP_RK3288
162*e3067793SAndy Yan	default 0xff738200 if ROCKCHIP_RK3368
163*e3067793SAndy Yan	default 0xff320300 if ROCKCHIP_RK3399
164*e3067793SAndy Yan	default 0x10300580 if ROCKCHIP_RV1108
165*e3067793SAndy Yan	default 0
166*e3067793SAndy Yan	help
167*e3067793SAndy Yan	  The Soc will enter to different boot mode(defined in asm/arch/boot_mode.h)
168*e3067793SAndy Yan	  according to the value from this register.
169*e3067793SAndy Yan
170fa1392a2SKever Yangconfig ROCKCHIP_SPL_RESERVE_IRAM
171fa1392a2SKever Yang	hex "Size of IRAM reserved in SPL"
172fa1392a2SKever Yang	default 0x4000
173fa1392a2SKever Yang	help
174fa1392a2SKever Yang	  SPL may need reserve memory for firmware loaded by SPL, whose load
175fa1392a2SKever Yang	  address is in IRAM and may overlay with SPL text area if not
176fa1392a2SKever Yang	  reserved.
177fa1392a2SKever Yang
1781d845947SHeiko Stübnerconfig ROCKCHIP_BROM_HELPER
1791d845947SHeiko Stübner	bool
1801d845947SHeiko Stübner
181b377d222SPhilipp Tomsichconfig SPL_ROCKCHIP_EARLYRETURN_TO_BROM
182b377d222SPhilipp Tomsich        bool "SPL requires early-return (for RK3188-style BROM) to BROM"
183b377d222SPhilipp Tomsich	depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
184b377d222SPhilipp Tomsich	help
185b377d222SPhilipp Tomsich	  Some Rockchip BROM variants (e.g. on the RK3188) load the
186b377d222SPhilipp Tomsich	  first stage in segments and enter multiple times. E.g. on
187b377d222SPhilipp Tomsich	  the RK3188, the first 1KB of the first stage are loaded
188b377d222SPhilipp Tomsich	  first and entered; after returning to the BROM, the
189b377d222SPhilipp Tomsich	  remainder of the first stage is loaded, but the BROM
190b377d222SPhilipp Tomsich	  re-enters at the same address/to the same code as previously.
191b377d222SPhilipp Tomsich
192b377d222SPhilipp Tomsich	  This enables support code in the BOOT0 hook for the SPL stage
193b377d222SPhilipp Tomsich	  to allow multiple entries.
194b377d222SPhilipp Tomsich
195b377d222SPhilipp Tomsichconfig TPL_ROCKCHIP_EARLYRETURN_TO_BROM
196b377d222SPhilipp Tomsich        bool "TPL requires early-return (for RK3188-style BROM) to BROM"
197b377d222SPhilipp Tomsich	depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
198b377d222SPhilipp Tomsich	help
199b377d222SPhilipp Tomsich	  Some Rockchip BROM variants (e.g. on the RK3188) load the
200b377d222SPhilipp Tomsich	  first stage in segments and enter multiple times. E.g. on
201b377d222SPhilipp Tomsich	  the RK3188, the first 1KB of the first stage are loaded
202b377d222SPhilipp Tomsich	  first and entered; after returning to the BROM, the
203b377d222SPhilipp Tomsich	  remainder of the first stage is loaded, but the BROM
204b377d222SPhilipp Tomsich	  re-enters at the same address/to the same code as previously.
205b377d222SPhilipp Tomsich
206b377d222SPhilipp Tomsich	  This enables support code in the BOOT0 hook for the TPL stage
207b377d222SPhilipp Tomsich	  to allow multiple entries.
208b377d222SPhilipp Tomsich
209230e0e09SSandy Pattersonconfig SPL_MMC_SUPPORT
210ee14d29dSPhilipp Tomsich	default y if !SPL_ROCKCHIP_BACK_TO_BROM
211230e0e09SSandy Patterson
212be1d5e03Shuang linsource "arch/arm/mach-rockchip/rk3036/Kconfig"
2130a2be69fSHeiko Stübnersource "arch/arm/mach-rockchip/rk3188/Kconfig"
214b24a8ec1SKever Yangsource "arch/arm/mach-rockchip/rk322x/Kconfig"
215041cdb5fSHeiko Stübnersource "arch/arm/mach-rockchip/rk3288/Kconfig"
21685a3cfb8SKever Yangsource "arch/arm/mach-rockchip/rk3328/Kconfig"
21737a0c600SAndreas Färbersource "arch/arm/mach-rockchip/rk3368/Kconfig"
218a381bcf5SKever Yangsource "arch/arm/mach-rockchip/rk3399/Kconfig"
2192c1e11ddSAndy Yansource "arch/arm/mach-rockchip/rv1108/Kconfig"
2202444dae5SSimon Glassendif
221