xref: /rk3399_rockchip-uboot/include/configs/rockchip-common.h (revision d49fd092e6bd407c34f8f22dd310e29b8c414976)
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 
1191411fc1SSugar Zhang #ifndef CFG_CPUID_OFFSET
1291411fc1SSugar Zhang #define CFG_CPUID_OFFSET		0x7
1391411fc1SSugar Zhang #endif
1491411fc1SSugar Zhang 
152d2f5f9aSKever Yang #define COUNTER_FREQUENCY               24000000
16a3f8c59fSZhihuan He 
17a3f8c59fSZhihuan He #if CONFIG_IS_ENABLED(TINY_FRAMEWORK) && !defined(CONFIG_ARM64)
18a3f8c59fSZhihuan He #undef CONFIG_SYS_ARCH_TIMER
19a3f8c59fSZhihuan He #else
202d2f5f9aSKever Yang #define CONFIG_SYS_ARCH_TIMER
21a3f8c59fSZhihuan He #endif
22a3f8c59fSZhihuan He 
232d2f5f9aSKever Yang #define CONFIG_SYS_HZ_CLOCK	24000000
242d2f5f9aSKever Yang 
2560b9259cSKever Yang #define CONFIG_SYS_NS16550_MEM32
2660b9259cSKever Yang 
27*d49fd092SXuhui Lin #if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_KERNEL_BOOT)
28c1554462SJoseph Chen #define CONFIG_NR_DRAM_BANKS		2
29c1554462SJoseph Chen #else
3092298dbcSJoseph Chen #define CONFIG_NR_DRAM_BANKS		12
31c1554462SJoseph Chen #endif
32839aff50SKever Yang 
337f35bbb9SJacob Chen #ifndef CONFIG_SPL_BUILD
347f35bbb9SJacob Chen #include <config_distro_defaults.h>
357f35bbb9SJacob Chen 
36eb01a124SCody Xie #ifdef CONFIG_CMD_RKNAND
37eb01a124SCody Xie #define BOOTENV_SHARED_RKNAND	BOOTENV_SHARED_BLKDEV(rknand)
38eb01a124SCody Xie #define BOOTENV_DEV_RKNAND		BOOTENV_DEV_BLKDEV
39eb01a124SCody Xie #define BOOTENV_DEV_NAME_RKNAND	BOOTENV_DEV_NAME_BLKDEV
40eb01a124SCody Xie #else
41eb01a124SCody Xie #define BOOTENV_SHARED_RKNAND
42eb01a124SCody Xie #define BOOTENV_DEV_RKNAND \
43eb01a124SCody Xie 	BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND
44eb01a124SCody Xie #define BOOTENV_DEV_NAME_RKNAND \
45eb01a124SCody Xie 	BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND
46eb01a124SCody Xie #endif
47eb01a124SCody Xie 
483f10ff45SJoseph Chen #ifdef CONFIG_CMD_MTD_BLK
493f10ff45SJoseph Chen #define BOOTENV_SHARED_MTD				\
503f10ff45SJoseph Chen 	"mtd_boot="					\
513f10ff45SJoseph Chen 		"if mtd_blk dev ${devnum}; then "	\
523f10ff45SJoseph Chen 			"setenv devtype mtd; "		\
533f10ff45SJoseph Chen 			"run scan_dev_for_boot_part; "	\
543f10ff45SJoseph Chen 		"fi\0"
553f10ff45SJoseph Chen #define BOOTENV_DEV_MTD		BOOTENV_DEV_BLKDEV
563f10ff45SJoseph Chen #define BOOTENV_DEV_NAME_MTD	BOOTENV_DEV_NAME_BLKDEV
573f10ff45SJoseph Chen #else
583f10ff45SJoseph Chen #define BOOTENV_SHARED_MTD
593f10ff45SJoseph Chen #define BOOTENV_DEV_MTD		\
603f10ff45SJoseph Chen 	BOOT_TARGET_DEVICES_references_MTD_without_CONFIG_CMD_MTD_BLK
613f10ff45SJoseph Chen #define BOOTENV_DEV_NAME_MTD	\
623f10ff45SJoseph Chen 	BOOT_TARGET_DEVICES_references_MTD_without_CONFIG_CMD_MTD_BLK
633f10ff45SJoseph Chen #endif
643f10ff45SJoseph Chen 
65d776bc4bSKever Yang /* First try to boot from SD (index 1), then eMMC (index 0) */
66d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_MMC)
67d2ba9884SKlaus Goger 	#define BOOT_TARGET_MMC(func) \
68d776bc4bSKever Yang 		func(MMC, mmc, 1) \
69d776bc4bSKever Yang 		func(MMC, mmc, 0)
701e9d6c15SEddie Cai #else
71d2ba9884SKlaus Goger 	#define BOOT_TARGET_MMC(func)
721e9d6c15SEddie Cai #endif
737f35bbb9SJacob Chen 
743f10ff45SJoseph Chen #if CONFIG_IS_ENABLED(CMD_MTD_BLK)
753f10ff45SJoseph Chen 	#define BOOT_TARGET_MTD(func)	\
763f10ff45SJoseph Chen 		func(MTD, mtd, 2)	\
773f10ff45SJoseph Chen 		func(MTD, mtd, 1)	\
783f10ff45SJoseph Chen 		func(MTD, mtd, 0)
793f10ff45SJoseph Chen #else
803f10ff45SJoseph Chen 	#define BOOT_TARGET_MTD(func)
813f10ff45SJoseph Chen #endif
823f10ff45SJoseph Chen 
83eb01a124SCody Xie #if CONFIG_IS_ENABLED(CMD_RKNAND)
84eb01a124SCody Xie 	#define BOOT_TARGET_RKNAND(func) func(RKNAND, rknand, 0)
85eb01a124SCody Xie #else
86eb01a124SCody Xie 	#define BOOT_TARGET_RKNAND(func)
87eb01a124SCody Xie #endif
88eb01a124SCody Xie 
89d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_USB)
90d2ba9884SKlaus Goger 	#define BOOT_TARGET_USB(func) func(USB, usb, 0)
91d2ba9884SKlaus Goger #else
92d2ba9884SKlaus Goger 	#define BOOT_TARGET_USB(func)
93d2ba9884SKlaus Goger #endif
94d2ba9884SKlaus Goger 
95d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_PXE)
96d2ba9884SKlaus Goger 	#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
97d2ba9884SKlaus Goger #else
98d2ba9884SKlaus Goger 	#define BOOT_TARGET_PXE(func)
99d2ba9884SKlaus Goger #endif
100d2ba9884SKlaus Goger 
101d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_DHCP)
102d2ba9884SKlaus Goger 	#define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
103d2ba9884SKlaus Goger #else
104d2ba9884SKlaus Goger 	#define BOOT_TARGET_DHCP(func)
105d2ba9884SKlaus Goger #endif
106d2ba9884SKlaus Goger 
107d2ba9884SKlaus Goger #define BOOT_TARGET_DEVICES(func) \
108d2ba9884SKlaus Goger 	BOOT_TARGET_MMC(func) \
1093f10ff45SJoseph Chen 	BOOT_TARGET_MTD(func) \
110eb01a124SCody Xie 	BOOT_TARGET_RKNAND(func) \
111d2ba9884SKlaus Goger 	BOOT_TARGET_USB(func) \
112d2ba9884SKlaus Goger 	BOOT_TARGET_PXE(func) \
113d2ba9884SKlaus Goger 	BOOT_TARGET_DHCP(func)
114d2ba9884SKlaus Goger 
11542ec247eSKever Yang #ifdef CONFIG_ARM64
11642ec247eSKever Yang #define ROOT_UUID "B921B045-1DF0-41C3-AF44-4C6F280D3FAE;\0"
11742ec247eSKever Yang #else
11842ec247eSKever Yang #define ROOT_UUID "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3;\0"
11942ec247eSKever Yang #endif
1207f35bbb9SJacob Chen #define PARTS_DEFAULT \
1217f35bbb9SJacob Chen 	"uuid_disk=${uuid_gpt_disk};" \
1227f35bbb9SJacob Chen 	"name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
12332040464SKever Yang 	"name=loader2,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \
12432040464SKever Yang 	"name=trust,size=4M,uuid=${uuid_gpt_atf};" \
1256b388f0bSJacob Chen 	"name=boot,size=112M,bootable,uuid=${uuid_gpt_boot};" \
12642ec247eSKever Yang 	"name=rootfs,size=-,uuid="ROOT_UUID
1277f35bbb9SJacob Chen 
128b5381a6cSKever Yang #define PARTS_RKIMG \
129b5381a6cSKever Yang 	"uuid_disk=${uuid_gpt_disk};" \
130b5381a6cSKever Yang 	"name=uboot,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \
131b5381a6cSKever Yang 	"name=trust,size=4M,uuid=${uuid_gpt_atf};" \
132b5381a6cSKever Yang 	"name=misc,size=4MB,uuid=${uuid_gpt_misc};" \
133b5381a6cSKever Yang 	"name=resource,size=16MB,uuid=${uuid_gpt_resource};" \
134b5381a6cSKever Yang 	"name=kernel,size=32M,uuid=${uuid_gpt_kernel};" \
135b5381a6cSKever Yang 	"name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
136b5381a6cSKever Yang 	"name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
137b5381a6cSKever Yang 	"name=backup,size=112M,uuid=${uuid_gpt_backup};" \
138b5381a6cSKever Yang 	"name=cache,size=512M,uuid=${uuid_gpt_cache};" \
139b5381a6cSKever Yang 	"name=system,size=2048M,uuid=${uuid_gpt_system};" \
140b5381a6cSKever Yang 	"name=metadata,size=16M,uuid=${uuid_gpt_metadata};" \
141b5381a6cSKever Yang 	"name=vendor,size=32M,uuid=${uuid_gpt_vendor};" \
142b5381a6cSKever Yang 	"name=oem,size=32M,uuid=${uuid_gpt_oem};" \
143b5381a6cSKever Yang 	"name=frp,size=512K,uuid=${uuid_gpt_frp};" \
144b5381a6cSKever Yang 	"name=security,size=2M,uuid=${uuid_gpt_security};" \
145e574a937SKever Yang 	"name=userdata,size=-,uuid=${uuid_gpt_userdata};\0"
146b5381a6cSKever Yang 
147299df30dSKever Yang #define RKIMG_DET_BOOTDEV \
148299df30dSKever Yang 	"rkimg_bootdev=" \
14994685712SJason Zhu 	"if mmc dev 1 && rkimgtest mmc 1; then " \
15094685712SJason Zhu 		"setenv devtype mmc; setenv devnum 1; echo Boot from SDcard;" \
151299df30dSKever Yang 	"elif mmc dev 0; then " \
152299df30dSKever Yang 		"setenv devtype mmc; setenv devnum 0;" \
1532432f0abSJason Zhu 	"elif mtd_blk dev 0; then " \
154346e1f7dSJason Zhu 		"setenv devtype mtd; setenv devnum 0;" \
1554569f424SJason Zhu 	"elif mtd_blk dev 1; then " \
1564569f424SJason Zhu 		"setenv devtype mtd; setenv devnum 1;" \
157e1c38c9fSJason Zhu 	"elif mtd_blk dev 2; then " \
158e1c38c9fSJason Zhu 		"setenv devtype mtd; setenv devnum 2;" \
159299df30dSKever Yang 	"elif rknand dev 0; then " \
160299df30dSKever Yang 		"setenv devtype rknand; setenv devnum 0;" \
161bc0b8cd4SDingqiang Lin 	"elif rksfc dev 0; then " \
1623f360b79SDingqiang Lin 		"setenv devtype spinand; setenv devnum 0;" \
1633f360b79SDingqiang Lin 	"elif rksfc dev 1; then " \
1643f360b79SDingqiang Lin 		"setenv devtype spinor; setenv devnum 1;" \
165f3f5db2eSJon Lin 	"else;" \
1668b5ec0d8SJoseph Chen 		"setenv devtype ramdisk; setenv devnum 0;" \
167299df30dSKever Yang 	"fi; \0"
168299df30dSKever Yang 
1694ab50248SJoseph Chen #if defined(CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE)
170caed6b4fSJoseph Chen #define RKIMG_BOOTCOMMAND			\
1714ab50248SJoseph Chen 	"boot_android ${devtype} ${devnum};"
1720018e93eSJoseph Chen #elif defined(CONFIG_FIT_SIGNATURE)
1730018e93eSJoseph Chen #define RKIMG_BOOTCOMMAND			\
1740018e93eSJoseph Chen 	"boot_fit;"
175caed6b4fSJoseph Chen #else
1765059d297SKever Yang #define RKIMG_BOOTCOMMAND			\
177e0347805SKever Yang 	"boot_android ${devtype} ${devnum};"	\
1780018e93eSJoseph Chen 	"boot_fit;"				\
179390759edSKever Yang 	"bootrkp;"				\
180390759edSKever Yang 	"run distro_bootcmd;"
181caed6b4fSJoseph Chen #endif
1824ab50248SJoseph Chen 
1834ab50248SJoseph Chen #endif /* CONFIG_SPL_BUILD */
1847f35bbb9SJacob Chen 
185f8e46897SSimon Glass #define CONFIG_DISPLAY_BOARDINFO_LATE
186a4de8b67SJoseph Chen #define CONFIG_SYS_AUTOLOAD	"no"
187b022f01fSJoseph Chen #define CONFIG_SPL_LOAD_FIT_ADDRESS		0x2000000
188f8e46897SSimon Glass 
189b48fff2cSJoseph Chen /* Why? There is D-Cache coherent on share memory between U-Boot and OP-TEE. */
190b48fff2cSJoseph Chen #if defined(CONFIG_SYS_DCACHE_OFF) && defined(CONFIG_OPTEE_CLIENT)
191b48fff2cSJoseph Chen "ERROR: Please disable CONFIG_OPTEE_CLIENT when #define CONFIG_SYS_DCACHE_OFF !"
192b48fff2cSJoseph Chen #endif
193b48fff2cSJoseph Chen 
1947f35bbb9SJacob Chen #endif /* _ROCKCHIP_COMMON_H_ */
195