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 rknand dev 0; then " \ 121 "setenv devtype rknand; setenv devnum 0;" \ 122 "elif rksfc dev 0; then " \ 123 "setenv devtype spinand; setenv devnum 0;" \ 124 "elif rksfc dev 1; then " \ 125 "setenv devtype spinor; setenv devnum 1;" \ 126 "fi; \0" 127 128 #ifdef CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE 129 #ifndef CONFIG_ANDROID_AB 130 #define RKIMG_BOOTCOMMAND \ 131 "boot_android ${devtype} ${devnum};" \ 132 "echo AVB boot failed and enter rockusb or fastboot!;" \ 133 "rockusb 0 ${devtype} ${devnum};" \ 134 "fastboot usb 0;" 135 #else 136 /* 137 * Update images a/b and active slot with fastboot 138 * when avb+ab system boot failed. 139 * Remove rockusb since it unable to active slot. 140 */ 141 #define RKIMG_BOOTCOMMAND \ 142 "boot_android ${devtype} ${devnum};" \ 143 "echo AVB boot failed and enter fastboot!;" \ 144 "fastboot usb 0;" 145 #endif /* CONFIG_ANDROID_AB */ 146 #else /* CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE */ 147 #define RKIMG_BOOTCOMMAND \ 148 "boot_android ${devtype} ${devnum};" \ 149 "bootrkp;" \ 150 "run distro_bootcmd;" 151 #endif 152 #endif 153 154 #define CONFIG_DISPLAY_BOARDINFO_LATE 155 156 #endif /* _ROCKCHIP_COMMON_H_ */ 157