xref: /rk3399_rockchip-uboot/include/configs/rockchip-common.h (revision f8a361589cc3a758edf9034d2a8068ee0da85e7a)
1 /*
2  * (C) Copyright 2016 Rockchip Electronics Co., Ltd
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6 
7 #ifndef _ROCKCHIP_COMMON_H_
8 #define _ROCKCHIP_COMMON_H_
9 #include <linux/sizes.h>
10 
11 #ifndef CFG_CPUID_OFFSET
12 #define CFG_CPUID_OFFSET		0x7
13 #endif
14 
15 #define COUNTER_FREQUENCY               24000000
16 
17 #if CONFIG_IS_ENABLED(TINY_FRAMEWORK) && !defined(CONFIG_ARM64)
18 #undef CONFIG_SYS_ARCH_TIMER
19 #else
20 #define CONFIG_SYS_ARCH_TIMER
21 #endif
22 
23 #define CONFIG_SYS_HZ_CLOCK	24000000
24 
25 #define CONFIG_SYS_NS16550_MEM32
26 
27 #if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_KERNEL_BOOT)
28 #define CONFIG_NR_DRAM_BANKS		2
29 #else
30 #define CONFIG_NR_DRAM_BANKS		12
31 #endif
32 
33 #ifndef CONFIG_SPL_BUILD
34 #include <config_distro_defaults.h>
35 
36 #ifdef CONFIG_CMD_RKNAND
37 #define BOOTENV_SHARED_RKNAND	BOOTENV_SHARED_BLKDEV(rknand)
38 #define BOOTENV_DEV_RKNAND		BOOTENV_DEV_BLKDEV
39 #define BOOTENV_DEV_NAME_RKNAND	BOOTENV_DEV_NAME_BLKDEV
40 #else
41 #define BOOTENV_SHARED_RKNAND
42 #define BOOTENV_DEV_RKNAND \
43 	BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND
44 #define BOOTENV_DEV_NAME_RKNAND \
45 	BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND
46 #endif
47 
48 #ifdef CONFIG_CMD_MTD_BLK
49 #define BOOTENV_SHARED_MTD				\
50 	"mtd_boot="					\
51 		"if mtd_blk dev ${devnum}; then "	\
52 			"setenv devtype mtd; "		\
53 			"run scan_dev_for_boot_part; "	\
54 		"fi\0"
55 #define BOOTENV_DEV_MTD		BOOTENV_DEV_BLKDEV
56 #define BOOTENV_DEV_NAME_MTD	BOOTENV_DEV_NAME_BLKDEV
57 #else
58 #define BOOTENV_SHARED_MTD
59 #define BOOTENV_DEV_MTD		\
60 	BOOT_TARGET_DEVICES_references_MTD_without_CONFIG_CMD_MTD_BLK
61 #define BOOTENV_DEV_NAME_MTD	\
62 	BOOT_TARGET_DEVICES_references_MTD_without_CONFIG_CMD_MTD_BLK
63 #endif
64 
65 /* First try to boot from SD (index 1), then eMMC (index 0) */
66 #if CONFIG_IS_ENABLED(CMD_MMC)
67 	#define BOOT_TARGET_MMC(func) \
68 		func(MMC, mmc, 1) \
69 		func(MMC, mmc, 0)
70 #else
71 	#define BOOT_TARGET_MMC(func)
72 #endif
73 
74 #if CONFIG_IS_ENABLED(CMD_MTD_BLK)
75 	#define BOOT_TARGET_MTD(func)	\
76 		func(MTD, mtd, 2)	\
77 		func(MTD, mtd, 1)	\
78 		func(MTD, mtd, 0)
79 #else
80 	#define BOOT_TARGET_MTD(func)
81 #endif
82 
83 #if CONFIG_IS_ENABLED(CMD_RKNAND)
84 	#define BOOT_TARGET_RKNAND(func) func(RKNAND, rknand, 0)
85 #else
86 	#define BOOT_TARGET_RKNAND(func)
87 #endif
88 
89 #if CONFIG_IS_ENABLED(CMD_USB)
90 	#define BOOT_TARGET_USB(func) func(USB, usb, 0)
91 #else
92 	#define BOOT_TARGET_USB(func)
93 #endif
94 
95 #if CONFIG_IS_ENABLED(CMD_PXE)
96 	#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
97 #else
98 	#define BOOT_TARGET_PXE(func)
99 #endif
100 
101 #if CONFIG_IS_ENABLED(CMD_DHCP)
102 	#define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
103 #else
104 	#define BOOT_TARGET_DHCP(func)
105 #endif
106 
107 #define BOOT_TARGET_DEVICES(func) \
108 	BOOT_TARGET_MMC(func) \
109 	BOOT_TARGET_MTD(func) \
110 	BOOT_TARGET_RKNAND(func) \
111 	BOOT_TARGET_USB(func) \
112 	BOOT_TARGET_PXE(func) \
113 	BOOT_TARGET_DHCP(func)
114 
115 #ifdef CONFIG_ARM64
116 #define ROOT_UUID "B921B045-1DF0-41C3-AF44-4C6F280D3FAE;\0"
117 #else
118 #define ROOT_UUID "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3;\0"
119 #endif
120 #define PARTS_DEFAULT \
121 	"uuid_disk=${uuid_gpt_disk};" \
122 	"name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
123 	"name=loader2,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \
124 	"name=trust,size=4M,uuid=${uuid_gpt_atf};" \
125 	"name=boot,size=112M,bootable,uuid=${uuid_gpt_boot};" \
126 	"name=rootfs,size=-,uuid="ROOT_UUID
127 
128 #define PARTS_RKIMG \
129 	"uuid_disk=${uuid_gpt_disk};" \
130 	"name=uboot,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \
131 	"name=trust,size=4M,uuid=${uuid_gpt_atf};" \
132 	"name=misc,size=4MB,uuid=${uuid_gpt_misc};" \
133 	"name=resource,size=16MB,uuid=${uuid_gpt_resource};" \
134 	"name=kernel,size=32M,uuid=${uuid_gpt_kernel};" \
135 	"name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
136 	"name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
137 	"name=backup,size=112M,uuid=${uuid_gpt_backup};" \
138 	"name=cache,size=512M,uuid=${uuid_gpt_cache};" \
139 	"name=system,size=2048M,uuid=${uuid_gpt_system};" \
140 	"name=metadata,size=16M,uuid=${uuid_gpt_metadata};" \
141 	"name=vendor,size=32M,uuid=${uuid_gpt_vendor};" \
142 	"name=oem,size=32M,uuid=${uuid_gpt_oem};" \
143 	"name=frp,size=512K,uuid=${uuid_gpt_frp};" \
144 	"name=security,size=2M,uuid=${uuid_gpt_security};" \
145 	"name=userdata,size=-,uuid=${uuid_gpt_userdata};\0"
146 
147 #define RKIMG_DET_BOOTDEV \
148 	"rkimg_bootdev=" \
149 	"if mmc dev 1 && rkimgtest mmc 1; then " \
150 		"setenv devtype mmc; setenv devnum 1; echo Boot from SDcard;" \
151 	"elif mmc dev 0; then " \
152 		"setenv devtype mmc; setenv devnum 0;" \
153 	"elif mtd_blk dev 0; then " \
154 		"setenv devtype mtd; setenv devnum 0;" \
155 	"elif mtd_blk dev 1; then " \
156 		"setenv devtype mtd; setenv devnum 1;" \
157 	"elif mtd_blk dev 2; then " \
158 		"setenv devtype mtd; setenv devnum 2;" \
159 	"elif rknand dev 0; then " \
160 		"setenv devtype rknand; setenv devnum 0;" \
161 	"elif rksfc dev 0; then " \
162 		"setenv devtype spinand; setenv devnum 0;" \
163 	"elif rksfc dev 1; then " \
164 		"setenv devtype spinor; setenv devnum 1;" \
165 	"else;" \
166 		"setenv devtype ramdisk; setenv devnum 0;" \
167 	"fi; \0"
168 
169 #if defined(CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE)
170 #define RKIMG_BOOTCOMMAND			\
171 	"boot_android ${devtype} ${devnum};"
172 #elif defined(CONFIG_FIT_SIGNATURE)
173 #define RKIMG_BOOTCOMMAND			\
174 	"boot_fit;"
175 #else
176 #define RKIMG_BOOTCOMMAND			\
177 	"boot_android ${devtype} ${devnum};"	\
178 	"boot_fit;"				\
179 	"bootrkp;"				\
180 	"run distro_bootcmd;"
181 #endif
182 
183 #endif /* CONFIG_SPL_BUILD */
184 
185 #define CONFIG_DISPLAY_BOARDINFO_LATE
186 #define CONFIG_SYS_AUTOLOAD	"no"
187 #define CONFIG_SPL_LOAD_FIT_ADDRESS		0x2000000
188 
189 /* Why? There is D-Cache coherent on share memory between U-Boot and OP-TEE. */
190 #if defined(CONFIG_SYS_DCACHE_OFF) && defined(CONFIG_OPTEE_CLIENT)
191 "ERROR: Please disable CONFIG_OPTEE_CLIENT when #define CONFIG_SYS_DCACHE_OFF !"
192 #endif
193 
194 #endif /* _ROCKCHIP_COMMON_H_ */
195