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