xref: /rk3399_rockchip-uboot/include/configs/rockchip-common.h (revision 346e1f7dd107c0be2c40fa42a01ef80fe4e39c94)
17f35bbb9SJacob Chen /*
27f35bbb9SJacob Chen  * (C) Copyright 2016 Rockchip Electronics Co., Ltd
37f35bbb9SJacob Chen  *
47f35bbb9SJacob Chen  * SPDX-License-Identifier:     GPL-2.0+
57f35bbb9SJacob Chen  */
67f35bbb9SJacob Chen 
77f35bbb9SJacob Chen #ifndef _ROCKCHIP_COMMON_H_
87f35bbb9SJacob Chen #define _ROCKCHIP_COMMON_H_
97f35bbb9SJacob Chen #include <linux/sizes.h>
107f35bbb9SJacob Chen 
112d2f5f9aSKever Yang #define COUNTER_FREQUENCY               24000000
12a3f8c59fSZhihuan He 
13a3f8c59fSZhihuan He #if CONFIG_IS_ENABLED(TINY_FRAMEWORK) && !defined(CONFIG_ARM64)
14a3f8c59fSZhihuan He #undef CONFIG_SYS_ARCH_TIMER
15a3f8c59fSZhihuan He #else
162d2f5f9aSKever Yang #define CONFIG_SYS_ARCH_TIMER
17a3f8c59fSZhihuan He #endif
18a3f8c59fSZhihuan He 
192d2f5f9aSKever Yang #define CONFIG_SYS_HZ_CLOCK	24000000
202d2f5f9aSKever Yang 
2160b9259cSKever Yang #define CONFIG_SYS_NS16550_MEM32
2260b9259cSKever Yang 
2392298dbcSJoseph Chen #define CONFIG_NR_DRAM_BANKS		12
24839aff50SKever Yang 
257f35bbb9SJacob Chen #ifndef CONFIG_SPL_BUILD
267f35bbb9SJacob Chen #include <config_distro_defaults.h>
277f35bbb9SJacob Chen 
28eb01a124SCody Xie #ifdef CONFIG_CMD_RKNAND
29eb01a124SCody Xie #define BOOTENV_SHARED_RKNAND	BOOTENV_SHARED_BLKDEV(rknand)
30eb01a124SCody Xie #define BOOTENV_DEV_RKNAND		BOOTENV_DEV_BLKDEV
31eb01a124SCody Xie #define BOOTENV_DEV_NAME_RKNAND	BOOTENV_DEV_NAME_BLKDEV
32eb01a124SCody Xie #else
33eb01a124SCody Xie #define BOOTENV_SHARED_RKNAND
34eb01a124SCody Xie #define BOOTENV_DEV_RKNAND \
35eb01a124SCody Xie 	BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND
36eb01a124SCody Xie #define BOOTENV_DEV_NAME_RKNAND \
37eb01a124SCody Xie 	BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND
38eb01a124SCody Xie #endif
39eb01a124SCody Xie 
40d776bc4bSKever Yang /* First try to boot from SD (index 1), then eMMC (index 0) */
41d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_MMC)
42d2ba9884SKlaus Goger 	#define BOOT_TARGET_MMC(func) \
43d776bc4bSKever Yang 		func(MMC, mmc, 1) \
44d776bc4bSKever Yang 		func(MMC, mmc, 0)
451e9d6c15SEddie Cai #else
46d2ba9884SKlaus Goger 	#define BOOT_TARGET_MMC(func)
471e9d6c15SEddie Cai #endif
487f35bbb9SJacob Chen 
49eb01a124SCody Xie #if CONFIG_IS_ENABLED(CMD_RKNAND)
50eb01a124SCody Xie 	#define BOOT_TARGET_RKNAND(func) func(RKNAND, rknand, 0)
51eb01a124SCody Xie #else
52eb01a124SCody Xie 	#define BOOT_TARGET_RKNAND(func)
53eb01a124SCody Xie #endif
54eb01a124SCody Xie 
55d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_USB)
56d2ba9884SKlaus Goger 	#define BOOT_TARGET_USB(func) func(USB, usb, 0)
57d2ba9884SKlaus Goger #else
58d2ba9884SKlaus Goger 	#define BOOT_TARGET_USB(func)
59d2ba9884SKlaus Goger #endif
60d2ba9884SKlaus Goger 
61d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_PXE)
62d2ba9884SKlaus Goger 	#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
63d2ba9884SKlaus Goger #else
64d2ba9884SKlaus Goger 	#define BOOT_TARGET_PXE(func)
65d2ba9884SKlaus Goger #endif
66d2ba9884SKlaus Goger 
67d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_DHCP)
68d2ba9884SKlaus Goger 	#define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
69d2ba9884SKlaus Goger #else
70d2ba9884SKlaus Goger 	#define BOOT_TARGET_DHCP(func)
71d2ba9884SKlaus Goger #endif
72d2ba9884SKlaus Goger 
73d2ba9884SKlaus Goger #define BOOT_TARGET_DEVICES(func) \
74d2ba9884SKlaus Goger 	BOOT_TARGET_MMC(func) \
75eb01a124SCody Xie 	BOOT_TARGET_RKNAND(func) \
76d2ba9884SKlaus Goger 	BOOT_TARGET_USB(func) \
77d2ba9884SKlaus Goger 	BOOT_TARGET_PXE(func) \
78d2ba9884SKlaus Goger 	BOOT_TARGET_DHCP(func)
79d2ba9884SKlaus Goger 
8042ec247eSKever Yang #ifdef CONFIG_ARM64
8142ec247eSKever Yang #define ROOT_UUID "B921B045-1DF0-41C3-AF44-4C6F280D3FAE;\0"
8242ec247eSKever Yang #else
8342ec247eSKever Yang #define ROOT_UUID "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3;\0"
8442ec247eSKever Yang #endif
857f35bbb9SJacob Chen #define PARTS_DEFAULT \
867f35bbb9SJacob Chen 	"uuid_disk=${uuid_gpt_disk};" \
877f35bbb9SJacob Chen 	"name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
8832040464SKever Yang 	"name=loader2,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \
8932040464SKever Yang 	"name=trust,size=4M,uuid=${uuid_gpt_atf};" \
906b388f0bSJacob Chen 	"name=boot,size=112M,bootable,uuid=${uuid_gpt_boot};" \
9142ec247eSKever Yang 	"name=rootfs,size=-,uuid="ROOT_UUID
927f35bbb9SJacob Chen 
93b5381a6cSKever Yang #define PARTS_RKIMG \
94b5381a6cSKever Yang 	"uuid_disk=${uuid_gpt_disk};" \
95b5381a6cSKever Yang 	"name=uboot,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \
96b5381a6cSKever Yang 	"name=trust,size=4M,uuid=${uuid_gpt_atf};" \
97b5381a6cSKever Yang 	"name=misc,size=4MB,uuid=${uuid_gpt_misc};" \
98b5381a6cSKever Yang 	"name=resource,size=16MB,uuid=${uuid_gpt_resource};" \
99b5381a6cSKever Yang 	"name=kernel,size=32M,uuid=${uuid_gpt_kernel};" \
100b5381a6cSKever Yang 	"name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
101b5381a6cSKever Yang 	"name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
102b5381a6cSKever Yang 	"name=backup,size=112M,uuid=${uuid_gpt_backup};" \
103b5381a6cSKever Yang 	"name=cache,size=512M,uuid=${uuid_gpt_cache};" \
104b5381a6cSKever Yang 	"name=system,size=2048M,uuid=${uuid_gpt_system};" \
105b5381a6cSKever Yang 	"name=metadata,size=16M,uuid=${uuid_gpt_metadata};" \
106b5381a6cSKever Yang 	"name=vendor,size=32M,uuid=${uuid_gpt_vendor};" \
107b5381a6cSKever Yang 	"name=oem,size=32M,uuid=${uuid_gpt_oem};" \
108b5381a6cSKever Yang 	"name=frp,size=512K,uuid=${uuid_gpt_frp};" \
109b5381a6cSKever Yang 	"name=security,size=2M,uuid=${uuid_gpt_security};" \
110e574a937SKever Yang 	"name=userdata,size=-,uuid=${uuid_gpt_userdata};\0"
111b5381a6cSKever Yang 
112299df30dSKever Yang #define RKIMG_DET_BOOTDEV \
113299df30dSKever Yang 	"rkimg_bootdev=" \
11494685712SJason Zhu 	"if mmc dev 1 && rkimgtest mmc 1; then " \
11594685712SJason Zhu 		"setenv devtype mmc; setenv devnum 1; echo Boot from SDcard;" \
116299df30dSKever Yang 	"elif mmc dev 0; then " \
117299df30dSKever Yang 		"setenv devtype mmc; setenv devnum 0;" \
118*346e1f7dSJason Zhu 	"elif mtd dev 0; then " \
119*346e1f7dSJason Zhu 		"setenv devtype mtd; setenv devnum 0;" \
120299df30dSKever Yang 	"elif rknand dev 0; then " \
121299df30dSKever Yang 		"setenv devtype rknand; setenv devnum 0;" \
122bc0b8cd4SDingqiang Lin 	"elif rksfc dev 0; then " \
1233f360b79SDingqiang Lin 		"setenv devtype spinand; setenv devnum 0;" \
1243f360b79SDingqiang Lin 	"elif rksfc dev 1; then " \
1253f360b79SDingqiang Lin 		"setenv devtype spinor; setenv devnum 1;" \
126299df30dSKever Yang 	"fi; \0"
127299df30dSKever Yang 
128caed6b4fSJoseph Chen #ifdef CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE
129caed6b4fSJoseph Chen #define RKIMG_BOOTCOMMAND \
130caed6b4fSJoseph Chen 	"boot_android ${devtype} ${devnum};" \
131caed6b4fSJoseph Chen 	"echo AVB boot failed and enter rockusb or fastboot!;" \
132caed6b4fSJoseph Chen 	"rockusb 0 ${devtype} ${devnum};" \
133caed6b4fSJoseph Chen 	"fastboot usb 0;"
134caed6b4fSJoseph Chen #else
1355059d297SKever Yang #define RKIMG_BOOTCOMMAND \
136e0347805SKever Yang 	"boot_android ${devtype} ${devnum};" \
137390759edSKever Yang 	"bootrkp;" \
138390759edSKever Yang 	"run distro_bootcmd;"
139caed6b4fSJoseph Chen #endif
1407f35bbb9SJacob Chen #endif
1417f35bbb9SJacob Chen 
142f8e46897SSimon Glass #define CONFIG_DISPLAY_BOARDINFO_LATE
143f8e46897SSimon Glass 
1447f35bbb9SJacob Chen #endif /* _ROCKCHIP_COMMON_H_ */
145