xref: /rk3399_rockchip-uboot/include/configs/rockchip-common.h (revision b27ae02dfdf0e26d23901e9b898629d6ec470a60)
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 #define COUNTER_FREQUENCY               24000000
12 
13 #if CONFIG_IS_ENABLED(TINY_FRAMEWORK) && !defined(CONFIG_ARM64)
14 #undef CONFIG_SYS_ARCH_TIMER
15 #else
16 #define CONFIG_SYS_ARCH_TIMER
17 #endif
18 
19 #define CONFIG_SYS_HZ_CLOCK	24000000
20 
21 #define CONFIG_SYS_NS16550_MEM32
22 
23 #define CONFIG_NR_DRAM_BANKS		12
24 
25 #ifndef CONFIG_SPL_BUILD
26 #include <config_distro_defaults.h>
27 
28 #ifdef CONFIG_CMD_RKNAND
29 #define BOOTENV_SHARED_RKNAND	BOOTENV_SHARED_BLKDEV(rknand)
30 #define BOOTENV_DEV_RKNAND		BOOTENV_DEV_BLKDEV
31 #define BOOTENV_DEV_NAME_RKNAND	BOOTENV_DEV_NAME_BLKDEV
32 #else
33 #define BOOTENV_SHARED_RKNAND
34 #define BOOTENV_DEV_RKNAND \
35 	BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND
36 #define BOOTENV_DEV_NAME_RKNAND \
37 	BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND
38 #endif
39 
40 /* First try to boot from SD (index 1), then eMMC (index 0) */
41 #if CONFIG_IS_ENABLED(CMD_MMC)
42 	#define BOOT_TARGET_MMC(func) \
43 		func(MMC, mmc, 1) \
44 		func(MMC, mmc, 0)
45 #else
46 	#define BOOT_TARGET_MMC(func)
47 #endif
48 
49 #if CONFIG_IS_ENABLED(CMD_RKNAND)
50 	#define BOOT_TARGET_RKNAND(func) func(RKNAND, rknand, 0)
51 #else
52 	#define BOOT_TARGET_RKNAND(func)
53 #endif
54 
55 #if CONFIG_IS_ENABLED(CMD_USB)
56 	#define BOOT_TARGET_USB(func) func(USB, usb, 0)
57 #else
58 	#define BOOT_TARGET_USB(func)
59 #endif
60 
61 #if CONFIG_IS_ENABLED(CMD_PXE)
62 	#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
63 #else
64 	#define BOOT_TARGET_PXE(func)
65 #endif
66 
67 #if CONFIG_IS_ENABLED(CMD_DHCP)
68 	#define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
69 #else
70 	#define BOOT_TARGET_DHCP(func)
71 #endif
72 
73 #define BOOT_TARGET_DEVICES(func) \
74 	BOOT_TARGET_MMC(func) \
75 	BOOT_TARGET_RKNAND(func) \
76 	BOOT_TARGET_USB(func) \
77 	BOOT_TARGET_PXE(func) \
78 	BOOT_TARGET_DHCP(func)
79 
80 #ifdef CONFIG_ARM64
81 #define ROOT_UUID "B921B045-1DF0-41C3-AF44-4C6F280D3FAE;\0"
82 #else
83 #define ROOT_UUID "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3;\0"
84 #endif
85 #define PARTS_DEFAULT \
86 	"uuid_disk=${uuid_gpt_disk};" \
87 	"name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
88 	"name=loader2,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \
89 	"name=trust,size=4M,uuid=${uuid_gpt_atf};" \
90 	"name=boot,size=112M,bootable,uuid=${uuid_gpt_boot};" \
91 	"name=rootfs,size=-,uuid="ROOT_UUID
92 
93 #define PARTS_RKIMG \
94 	"uuid_disk=${uuid_gpt_disk};" \
95 	"name=uboot,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \
96 	"name=trust,size=4M,uuid=${uuid_gpt_atf};" \
97 	"name=misc,size=4MB,uuid=${uuid_gpt_misc};" \
98 	"name=resource,size=16MB,uuid=${uuid_gpt_resource};" \
99 	"name=kernel,size=32M,uuid=${uuid_gpt_kernel};" \
100 	"name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
101 	"name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
102 	"name=backup,size=112M,uuid=${uuid_gpt_backup};" \
103 	"name=cache,size=512M,uuid=${uuid_gpt_cache};" \
104 	"name=system,size=2048M,uuid=${uuid_gpt_system};" \
105 	"name=metadata,size=16M,uuid=${uuid_gpt_metadata};" \
106 	"name=vendor,size=32M,uuid=${uuid_gpt_vendor};" \
107 	"name=oem,size=32M,uuid=${uuid_gpt_oem};" \
108 	"name=frp,size=512K,uuid=${uuid_gpt_frp};" \
109 	"name=security,size=2M,uuid=${uuid_gpt_security};" \
110 	"name=userdata,size=-,uuid=${uuid_gpt_userdata};\0"
111 
112 #define RKIMG_DET_BOOTDEV \
113 	"rkimg_bootdev=" \
114 	"if mmc dev 1 && rkimgtest mmc 1; then " \
115 		"setenv devtype mmc; setenv devnum 1; echo Boot from SDcard;" \
116 	"elif mmc dev 0; then " \
117 		"setenv devtype mmc; setenv devnum 0;" \
118 	"elif mtd_blk dev 0; then " \
119 		"setenv devtype mtd; setenv devnum 0;" \
120 	"elif mtd_blk dev 1; then " \
121 		"setenv devtype mtd; setenv devnum 1;" \
122 	"elif mtd_blk dev 2; then " \
123 		"setenv devtype mtd; setenv devnum 2;" \
124 	"elif rknand dev 0; then " \
125 		"setenv devtype rknand; setenv devnum 0;" \
126 	"elif rksfc dev 0; then " \
127 		"setenv devtype spinand; setenv devnum 0;" \
128 	"elif rksfc dev 1; then " \
129 		"setenv devtype spinor; setenv devnum 1;" \
130 	"fi; \0"
131 
132 #ifdef CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE
133 #ifndef CONFIG_ANDROID_AB
134 #define RKIMG_BOOTCOMMAND \
135 	"boot_android ${devtype} ${devnum};" \
136 	"echo AVB boot failed and enter rockusb or fastboot!;" \
137 	"rockusb 0 ${devtype} ${devnum};" \
138 	"fastboot usb 0;"
139 #else
140 /*
141  * Update images a/b and active slot with fastboot
142  * when avb+ab system boot failed.
143  * Remove rockusb since it unable to active slot.
144  */
145 #define RKIMG_BOOTCOMMAND \
146 	"boot_android ${devtype} ${devnum};" \
147 	"echo AVB boot failed and enter fastboot!;" \
148 	"fastboot usb 0;"
149 #endif /* CONFIG_ANDROID_AB */
150 #else /* CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE */
151 #define RKIMG_BOOTCOMMAND \
152 	"boot_android ${devtype} ${devnum};" \
153 	"bootrkp;" \
154 	"run distro_bootcmd;"
155 #endif
156 #endif
157 
158 #define CONFIG_DISPLAY_BOARDINFO_LATE
159 
160 #endif /* _ROCKCHIP_COMMON_H_ */
161