10a2be69fSHeiko Stübner /*
20a2be69fSHeiko Stübner  * (C) Copyright 2015 Google, Inc
30a2be69fSHeiko Stübner  *
40a2be69fSHeiko Stübner  * SPDX-License-Identifier:     GPL-2.0+
50a2be69fSHeiko Stübner  */
60a2be69fSHeiko Stübner 
70a2be69fSHeiko Stübner #ifndef __CONFIG_RK3188_COMMON_H
80a2be69fSHeiko Stübner #define __CONFIG_RK3188_COMMON_H
90a2be69fSHeiko Stübner 
100a2be69fSHeiko Stübner #define CONFIG_SYS_CACHELINE_SIZE	64
110a2be69fSHeiko Stübner 
120a2be69fSHeiko Stübner #include <asm/arch/hardware.h>
130a2be69fSHeiko Stübner #include "rockchip-common.h"
140a2be69fSHeiko Stübner 
150a2be69fSHeiko Stübner #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
160a2be69fSHeiko Stübner #define CONFIG_NR_DRAM_BANKS		1
170a2be69fSHeiko Stübner #define CONFIG_ENV_SIZE			0x2000
180a2be69fSHeiko Stübner #define CONFIG_SYS_MAXARGS		16
190a2be69fSHeiko Stübner #define CONFIG_SYS_MALLOC_LEN		(32 << 20)
200a2be69fSHeiko Stübner #define CONFIG_SYS_CBSIZE		1024
210a2be69fSHeiko Stübner 
220a2be69fSHeiko Stübner #define CONFIG_SYS_TIMER_RATE		(24 * 1000 * 1000)
230a2be69fSHeiko Stübner #define CONFIG_SYS_TIMER_BASE		0x2000e000 /* TIMER3 */
240a2be69fSHeiko Stübner #define CONFIG_SYS_TIMER_COUNTER	(CONFIG_SYS_TIMER_BASE + 8)
250a2be69fSHeiko Stübner #define CONFIG_SYS_TIMER_COUNTS_DOWN
260a2be69fSHeiko Stübner 
270a2be69fSHeiko Stübner #define CONFIG_SYS_NS16550_MEM32
280a2be69fSHeiko Stübner 
29*ee14d29dSPhilipp Tomsich #ifdef CONFIG_SPL_ROCKCHIP_BACK_TO_BROM
300a2be69fSHeiko Stübner /* Bootrom will load u-boot binary to 0x60000000 once return from SPL */
310a2be69fSHeiko Stübner #define CONFIG_SYS_TEXT_BASE		0x60000000
320a2be69fSHeiko Stübner #else
330a2be69fSHeiko Stübner #define CONFIG_SYS_TEXT_BASE		0x60100000
340a2be69fSHeiko Stübner #endif
350a2be69fSHeiko Stübner #define CONFIG_SYS_INIT_SP_ADDR		0x60100000
360a2be69fSHeiko Stübner #define CONFIG_SYS_LOAD_ADDR		0x60800800
370a2be69fSHeiko Stübner 
380a2be69fSHeiko Stübner #define CONFIG_ROCKCHIP_MAX_INIT_SIZE	(0x8000 - 0x800)
390a2be69fSHeiko Stübner #define CONFIG_ROCKCHIP_CHIP_TAG	"RK31"
400a2be69fSHeiko Stübner 
410a2be69fSHeiko Stübner #ifdef CONFIG_TPL_BUILD
420a2be69fSHeiko Stübner #define CONFIG_SPL_TEXT_BASE		0x10080804
430a2be69fSHeiko Stübner /* tpl size 1kb - 4byte RK31 header */
440a2be69fSHeiko Stübner #define CONFIG_SPL_MAX_SIZE		(0x400 - 0x4)
450a2be69fSHeiko Stübner #elif defined(CONFIG_SPL_BUILD)
460a2be69fSHeiko Stübner /* spl size 32kb sram - 2kb bootrom - 1kb spl */
470a2be69fSHeiko Stübner #define CONFIG_SPL_MAX_SIZE		(0x8000 - 0xC00)
480a2be69fSHeiko Stübner #define CONFIG_SPL_TEXT_BASE		0x10080C00
490a2be69fSHeiko Stübner #define CONFIG_SPL_FRAMEWORK		1
500a2be69fSHeiko Stübner #define CONFIG_SPL_CLK			1
510a2be69fSHeiko Stübner #define CONFIG_SPL_PINCTRL		1
520a2be69fSHeiko Stübner #define CONFIG_SPL_REGMAP		1
530a2be69fSHeiko Stübner #define CONFIG_SPL_SYSCON		1
540a2be69fSHeiko Stübner #define CONFIG_SPL_RAM			1
550a2be69fSHeiko Stübner #define CONFIG_SPL_DRIVERS_MISC_SUPPORT	1
560a2be69fSHeiko Stübner #define CONFIG_ROCKCHIP_SERIAL		1
570a2be69fSHeiko Stübner #endif
580a2be69fSHeiko Stübner 
590a2be69fSHeiko Stübner #define CONFIG_SPL_STACK		0x10087fff
600a2be69fSHeiko Stübner 
610a2be69fSHeiko Stübner /* MMC/SD IP block */
620a2be69fSHeiko Stübner #define CONFIG_BOUNCE_BUFFER
630a2be69fSHeiko Stübner 
640a2be69fSHeiko Stübner #define CONFIG_SYS_SDRAM_BASE		0x60000000
650a2be69fSHeiko Stübner #define CONFIG_NR_DRAM_BANKS		1
660a2be69fSHeiko Stübner #define SDRAM_BANK_SIZE			(2UL << 30)
676d1970faSKever Yang #define SDRAM_MAX_SIZE			0x80000000
680a2be69fSHeiko Stübner 
690a2be69fSHeiko Stübner #define CONFIG_SPI_FLASH
700a2be69fSHeiko Stübner #define CONFIG_SPI
710a2be69fSHeiko Stübner #define CONFIG_SF_DEFAULT_SPEED 20000000
720a2be69fSHeiko Stübner 
730a2be69fSHeiko Stübner #ifndef CONFIG_SPL_BUILD
740a2be69fSHeiko Stübner /* usb otg */
750a2be69fSHeiko Stübner #define CONFIG_USB_GADGET
760a2be69fSHeiko Stübner #define CONFIG_USB_GADGET_DUALSPEED
770a2be69fSHeiko Stübner #define CONFIG_USB_GADGET_DWC2_OTG
780a2be69fSHeiko Stübner #define CONFIG_ROCKCHIP_USB2_PHY
790a2be69fSHeiko Stübner #define CONFIG_USB_GADGET_VBUS_DRAW	0
800a2be69fSHeiko Stübner 
810a2be69fSHeiko Stübner #define CONFIG_USB_GADGET_DOWNLOAD
820a2be69fSHeiko Stübner #define CONFIG_G_DNL_MANUFACTURER	"Rockchip"
830a2be69fSHeiko Stübner #define CONFIG_G_DNL_VENDOR_NUM		0x2207
840a2be69fSHeiko Stübner #define CONFIG_G_DNL_PRODUCT_NUM	0x310a
850a2be69fSHeiko Stübner 
860a2be69fSHeiko Stübner /* usb host support */
870a2be69fSHeiko Stübner #ifdef CONFIG_CMD_USB
880a2be69fSHeiko Stübner #define CONFIG_USB_HOST_ETHER
890a2be69fSHeiko Stübner #define CONFIG_USB_ETHER_SMSC95XX
900a2be69fSHeiko Stübner #define CONFIG_USB_ETHER_ASIX
910a2be69fSHeiko Stübner #endif
920a2be69fSHeiko Stübner #define ENV_MEM_LAYOUT_SETTINGS \
930a2be69fSHeiko Stübner 	"scriptaddr=0x60000000\0" \
940a2be69fSHeiko Stübner 	"pxefile_addr_r=0x60100000\0" \
950a2be69fSHeiko Stübner 	"fdt_addr_r=0x61f00000\0" \
960a2be69fSHeiko Stübner 	"kernel_addr_r=0x62000000\0" \
970a2be69fSHeiko Stübner 	"ramdisk_addr_r=0x64000000\0"
980a2be69fSHeiko Stübner 
990a2be69fSHeiko Stübner #include <config_distro_bootcmd.h>
1000a2be69fSHeiko Stübner 
1010a2be69fSHeiko Stübner /* Linux fails to load the fdt if it's loaded above 256M on a Rock board,
1020a2be69fSHeiko Stübner  * so limit the fdt reallocation to that */
1030a2be69fSHeiko Stübner #define CONFIG_EXTRA_ENV_SETTINGS \
1040a2be69fSHeiko Stübner 	"fdt_high=0x6fffffff\0" \
1050a2be69fSHeiko Stübner 	"initrd_high=0x6fffffff\0" \
1060a2be69fSHeiko Stübner 	"partitions=" PARTS_DEFAULT \
1070a2be69fSHeiko Stübner 	ENV_MEM_LAYOUT_SETTINGS \
1080a2be69fSHeiko Stübner 	ROCKCHIP_DEVICE_SETTINGS \
1090a2be69fSHeiko Stübner 	BOOTENV
1100a2be69fSHeiko Stübner 
1110a2be69fSHeiko Stübner #endif /* CONFIG_SPL_BUILD */
1120a2be69fSHeiko Stübner 
1130a2be69fSHeiko Stübner #define CONFIG_PREBOOT
1140a2be69fSHeiko Stübner 
1150a2be69fSHeiko Stübner #endif
116