1*0a2be69fSHeiko Stübner /*
2*0a2be69fSHeiko Stübner  * (C) Copyright 2015 Google, Inc
3*0a2be69fSHeiko Stübner  *
4*0a2be69fSHeiko Stübner  * SPDX-License-Identifier:     GPL-2.0+
5*0a2be69fSHeiko Stübner  */
6*0a2be69fSHeiko Stübner 
7*0a2be69fSHeiko Stübner #ifndef __CONFIG_RK3188_COMMON_H
8*0a2be69fSHeiko Stübner #define __CONFIG_RK3188_COMMON_H
9*0a2be69fSHeiko Stübner 
10*0a2be69fSHeiko Stübner #define CONFIG_SYS_CACHELINE_SIZE	64
11*0a2be69fSHeiko Stübner 
12*0a2be69fSHeiko Stübner #include <asm/arch/hardware.h>
13*0a2be69fSHeiko Stübner #include "rockchip-common.h"
14*0a2be69fSHeiko Stübner 
15*0a2be69fSHeiko Stübner #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
16*0a2be69fSHeiko Stübner #define CONFIG_SYS_NO_FLASH
17*0a2be69fSHeiko Stübner #define CONFIG_NR_DRAM_BANKS		1
18*0a2be69fSHeiko Stübner #define CONFIG_ENV_SIZE			0x2000
19*0a2be69fSHeiko Stübner #define CONFIG_SYS_MAXARGS		16
20*0a2be69fSHeiko Stübner #define CONFIG_BAUDRATE			115200
21*0a2be69fSHeiko Stübner #define CONFIG_SYS_MALLOC_LEN		(32 << 20)
22*0a2be69fSHeiko Stübner #define CONFIG_SYS_CBSIZE		1024
23*0a2be69fSHeiko Stübner #define CONFIG_SYS_THUMB_BUILD
24*0a2be69fSHeiko Stübner 
25*0a2be69fSHeiko Stübner #define CONFIG_SYS_TIMER_RATE		(24 * 1000 * 1000)
26*0a2be69fSHeiko Stübner #define CONFIG_SYS_TIMER_BASE		0x2000e000 /* TIMER3 */
27*0a2be69fSHeiko Stübner #define CONFIG_SYS_TIMER_COUNTER	(CONFIG_SYS_TIMER_BASE + 8)
28*0a2be69fSHeiko Stübner #define CONFIG_SYS_TIMER_COUNTS_DOWN
29*0a2be69fSHeiko Stübner 
30*0a2be69fSHeiko Stübner #define CONFIG_SYS_NS16550_MEM32
31*0a2be69fSHeiko Stübner #define CONFIG_SPL_BOARD_INIT
32*0a2be69fSHeiko Stübner 
33*0a2be69fSHeiko Stübner #ifdef CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
34*0a2be69fSHeiko Stübner /* Bootrom will load u-boot binary to 0x60000000 once return from SPL */
35*0a2be69fSHeiko Stübner #define CONFIG_SYS_TEXT_BASE		0x60000000
36*0a2be69fSHeiko Stübner #else
37*0a2be69fSHeiko Stübner #define CONFIG_SYS_TEXT_BASE		0x60100000
38*0a2be69fSHeiko Stübner #endif
39*0a2be69fSHeiko Stübner #define CONFIG_SYS_INIT_SP_ADDR		0x60100000
40*0a2be69fSHeiko Stübner #define CONFIG_SYS_LOAD_ADDR		0x60800800
41*0a2be69fSHeiko Stübner 
42*0a2be69fSHeiko Stübner #define CONFIG_ROCKCHIP_MAX_INIT_SIZE	(0x8000 - 0x800)
43*0a2be69fSHeiko Stübner #define CONFIG_ROCKCHIP_CHIP_TAG	"RK31"
44*0a2be69fSHeiko Stübner 
45*0a2be69fSHeiko Stübner #ifdef CONFIG_TPL_BUILD
46*0a2be69fSHeiko Stübner #define CONFIG_SPL_TEXT_BASE		0x10080804
47*0a2be69fSHeiko Stübner /* tpl size 1kb - 4byte RK31 header */
48*0a2be69fSHeiko Stübner #define CONFIG_SPL_MAX_SIZE		(0x400 - 0x4)
49*0a2be69fSHeiko Stübner #elif defined(CONFIG_SPL_BUILD)
50*0a2be69fSHeiko Stübner /* spl size 32kb sram - 2kb bootrom - 1kb spl */
51*0a2be69fSHeiko Stübner #define CONFIG_SPL_MAX_SIZE		(0x8000 - 0xC00)
52*0a2be69fSHeiko Stübner #define CONFIG_SPL_TEXT_BASE		0x10080C00
53*0a2be69fSHeiko Stübner #define CONFIG_SPL_FRAMEWORK		1
54*0a2be69fSHeiko Stübner #define CONFIG_SPL_CLK			1
55*0a2be69fSHeiko Stübner #define CONFIG_SPL_PINCTRL		1
56*0a2be69fSHeiko Stübner #define CONFIG_SPL_REGMAP		1
57*0a2be69fSHeiko Stübner #define CONFIG_SPL_SYSCON		1
58*0a2be69fSHeiko Stübner #define CONFIG_SPL_RAM			1
59*0a2be69fSHeiko Stübner #define CONFIG_SPL_DRIVERS_MISC_SUPPORT	1
60*0a2be69fSHeiko Stübner #define CONFIG_ROCKCHIP_SERIAL		1
61*0a2be69fSHeiko Stübner #endif
62*0a2be69fSHeiko Stübner 
63*0a2be69fSHeiko Stübner #define CONFIG_SPL_STACK		0x10087fff
64*0a2be69fSHeiko Stübner 
65*0a2be69fSHeiko Stübner /* MMC/SD IP block */
66*0a2be69fSHeiko Stübner #define CONFIG_BOUNCE_BUFFER
67*0a2be69fSHeiko Stübner 
68*0a2be69fSHeiko Stübner #define CONFIG_FAT_WRITE
69*0a2be69fSHeiko Stübner 
70*0a2be69fSHeiko Stübner #define CONFIG_SYS_SDRAM_BASE		0x60000000
71*0a2be69fSHeiko Stübner #define CONFIG_NR_DRAM_BANKS		1
72*0a2be69fSHeiko Stübner #define SDRAM_BANK_SIZE			(2UL << 30)
73*0a2be69fSHeiko Stübner 
74*0a2be69fSHeiko Stübner #define CONFIG_SPI_FLASH
75*0a2be69fSHeiko Stübner #define CONFIG_SPI
76*0a2be69fSHeiko Stübner #define CONFIG_SF_DEFAULT_SPEED 20000000
77*0a2be69fSHeiko Stübner 
78*0a2be69fSHeiko Stübner #ifndef CONFIG_SPL_BUILD
79*0a2be69fSHeiko Stübner /* usb otg */
80*0a2be69fSHeiko Stübner #define CONFIG_USB_GADGET
81*0a2be69fSHeiko Stübner #define CONFIG_USB_GADGET_DUALSPEED
82*0a2be69fSHeiko Stübner #define CONFIG_USB_GADGET_DWC2_OTG
83*0a2be69fSHeiko Stübner #define CONFIG_ROCKCHIP_USB2_PHY
84*0a2be69fSHeiko Stübner #define CONFIG_USB_GADGET_VBUS_DRAW	0
85*0a2be69fSHeiko Stübner 
86*0a2be69fSHeiko Stübner #define CONFIG_USB_GADGET_DOWNLOAD
87*0a2be69fSHeiko Stübner #define CONFIG_G_DNL_MANUFACTURER	"Rockchip"
88*0a2be69fSHeiko Stübner #define CONFIG_G_DNL_VENDOR_NUM		0x2207
89*0a2be69fSHeiko Stübner #define CONFIG_G_DNL_PRODUCT_NUM	0x310a
90*0a2be69fSHeiko Stübner 
91*0a2be69fSHeiko Stübner /* usb host support */
92*0a2be69fSHeiko Stübner #ifdef CONFIG_CMD_USB
93*0a2be69fSHeiko Stübner #define CONFIG_USB_DWC2
94*0a2be69fSHeiko Stübner #define CONFIG_USB_HOST_ETHER
95*0a2be69fSHeiko Stübner #define CONFIG_USB_ETHER_SMSC95XX
96*0a2be69fSHeiko Stübner #define CONFIG_USB_ETHER_ASIX
97*0a2be69fSHeiko Stübner #endif
98*0a2be69fSHeiko Stübner #define ENV_MEM_LAYOUT_SETTINGS \
99*0a2be69fSHeiko Stübner 	"scriptaddr=0x60000000\0" \
100*0a2be69fSHeiko Stübner 	"pxefile_addr_r=0x60100000\0" \
101*0a2be69fSHeiko Stübner 	"fdt_addr_r=0x61f00000\0" \
102*0a2be69fSHeiko Stübner 	"kernel_addr_r=0x62000000\0" \
103*0a2be69fSHeiko Stübner 	"ramdisk_addr_r=0x64000000\0"
104*0a2be69fSHeiko Stübner 
105*0a2be69fSHeiko Stübner #include <config_distro_bootcmd.h>
106*0a2be69fSHeiko Stübner 
107*0a2be69fSHeiko Stübner /* Linux fails to load the fdt if it's loaded above 256M on a Rock board,
108*0a2be69fSHeiko Stübner  * so limit the fdt reallocation to that */
109*0a2be69fSHeiko Stübner #define CONFIG_EXTRA_ENV_SETTINGS \
110*0a2be69fSHeiko Stübner 	"fdt_high=0x6fffffff\0" \
111*0a2be69fSHeiko Stübner 	"initrd_high=0x6fffffff\0" \
112*0a2be69fSHeiko Stübner 	"partitions=" PARTS_DEFAULT \
113*0a2be69fSHeiko Stübner 	ENV_MEM_LAYOUT_SETTINGS \
114*0a2be69fSHeiko Stübner 	ROCKCHIP_DEVICE_SETTINGS \
115*0a2be69fSHeiko Stübner 	BOOTENV
116*0a2be69fSHeiko Stübner 
117*0a2be69fSHeiko Stübner #endif /* CONFIG_SPL_BUILD */
118*0a2be69fSHeiko Stübner 
119*0a2be69fSHeiko Stübner #define CONFIG_PREBOOT
120*0a2be69fSHeiko Stübner 
121*0a2be69fSHeiko Stübner #endif
122