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 112d2f5f9aSKever Yang #define COUNTER_FREQUENCY 24000000 12a3f8c59fSZhihuan He 13a3f8c59fSZhihuan He #if CONFIG_IS_ENABLED(TINY_FRAMEWORK) && !defined(CONFIG_ARM64) 14a3f8c59fSZhihuan He #undef CONFIG_SYS_ARCH_TIMER 15a3f8c59fSZhihuan He #else 162d2f5f9aSKever Yang #define CONFIG_SYS_ARCH_TIMER 17a3f8c59fSZhihuan He #endif 18a3f8c59fSZhihuan He 192d2f5f9aSKever Yang #define CONFIG_SYS_HZ_CLOCK 24000000 202d2f5f9aSKever Yang 2160b9259cSKever Yang #define CONFIG_SYS_NS16550_MEM32 2260b9259cSKever Yang 2392298dbcSJoseph Chen #define CONFIG_NR_DRAM_BANKS 12 24839aff50SKever Yang 257f35bbb9SJacob Chen #ifndef CONFIG_SPL_BUILD 267f35bbb9SJacob Chen #include <config_distro_defaults.h> 277f35bbb9SJacob Chen 28eb01a124SCody Xie #ifdef CONFIG_CMD_RKNAND 29eb01a124SCody Xie #define BOOTENV_SHARED_RKNAND BOOTENV_SHARED_BLKDEV(rknand) 30eb01a124SCody Xie #define BOOTENV_DEV_RKNAND BOOTENV_DEV_BLKDEV 31eb01a124SCody Xie #define BOOTENV_DEV_NAME_RKNAND BOOTENV_DEV_NAME_BLKDEV 32eb01a124SCody Xie #else 33eb01a124SCody Xie #define BOOTENV_SHARED_RKNAND 34eb01a124SCody Xie #define BOOTENV_DEV_RKNAND \ 35eb01a124SCody Xie BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND 36eb01a124SCody Xie #define BOOTENV_DEV_NAME_RKNAND \ 37eb01a124SCody Xie BOOT_TARGET_DEVICES_references_RKNAND_without_CONFIG_CMD_RKNAND 38eb01a124SCody Xie #endif 39eb01a124SCody Xie 40d776bc4bSKever Yang /* First try to boot from SD (index 1), then eMMC (index 0) */ 41d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_MMC) 42d2ba9884SKlaus Goger #define BOOT_TARGET_MMC(func) \ 43d776bc4bSKever Yang func(MMC, mmc, 1) \ 44d776bc4bSKever Yang func(MMC, mmc, 0) 451e9d6c15SEddie Cai #else 46d2ba9884SKlaus Goger #define BOOT_TARGET_MMC(func) 471e9d6c15SEddie Cai #endif 487f35bbb9SJacob Chen 49eb01a124SCody Xie #if CONFIG_IS_ENABLED(CMD_RKNAND) 50eb01a124SCody Xie #define BOOT_TARGET_RKNAND(func) func(RKNAND, rknand, 0) 51eb01a124SCody Xie #else 52eb01a124SCody Xie #define BOOT_TARGET_RKNAND(func) 53eb01a124SCody Xie #endif 54eb01a124SCody Xie 55d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_USB) 56d2ba9884SKlaus Goger #define BOOT_TARGET_USB(func) func(USB, usb, 0) 57d2ba9884SKlaus Goger #else 58d2ba9884SKlaus Goger #define BOOT_TARGET_USB(func) 59d2ba9884SKlaus Goger #endif 60d2ba9884SKlaus Goger 61d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_PXE) 62d2ba9884SKlaus Goger #define BOOT_TARGET_PXE(func) func(PXE, pxe, na) 63d2ba9884SKlaus Goger #else 64d2ba9884SKlaus Goger #define BOOT_TARGET_PXE(func) 65d2ba9884SKlaus Goger #endif 66d2ba9884SKlaus Goger 67d2ba9884SKlaus Goger #if CONFIG_IS_ENABLED(CMD_DHCP) 68d2ba9884SKlaus Goger #define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na) 69d2ba9884SKlaus Goger #else 70d2ba9884SKlaus Goger #define BOOT_TARGET_DHCP(func) 71d2ba9884SKlaus Goger #endif 72d2ba9884SKlaus Goger 73d2ba9884SKlaus Goger #define BOOT_TARGET_DEVICES(func) \ 74d2ba9884SKlaus Goger BOOT_TARGET_MMC(func) \ 75eb01a124SCody Xie BOOT_TARGET_RKNAND(func) \ 76d2ba9884SKlaus Goger BOOT_TARGET_USB(func) \ 77d2ba9884SKlaus Goger BOOT_TARGET_PXE(func) \ 78d2ba9884SKlaus Goger BOOT_TARGET_DHCP(func) 79d2ba9884SKlaus Goger 8042ec247eSKever Yang #ifdef CONFIG_ARM64 8142ec247eSKever Yang #define ROOT_UUID "B921B045-1DF0-41C3-AF44-4C6F280D3FAE;\0" 8242ec247eSKever Yang #else 8342ec247eSKever Yang #define ROOT_UUID "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3;\0" 8442ec247eSKever Yang #endif 857f35bbb9SJacob Chen #define PARTS_DEFAULT \ 867f35bbb9SJacob Chen "uuid_disk=${uuid_gpt_disk};" \ 877f35bbb9SJacob Chen "name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \ 8832040464SKever Yang "name=loader2,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \ 8932040464SKever Yang "name=trust,size=4M,uuid=${uuid_gpt_atf};" \ 906b388f0bSJacob Chen "name=boot,size=112M,bootable,uuid=${uuid_gpt_boot};" \ 9142ec247eSKever Yang "name=rootfs,size=-,uuid="ROOT_UUID 927f35bbb9SJacob Chen 93b5381a6cSKever Yang #define PARTS_RKIMG \ 94b5381a6cSKever Yang "uuid_disk=${uuid_gpt_disk};" \ 95b5381a6cSKever Yang "name=uboot,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};" \ 96b5381a6cSKever Yang "name=trust,size=4M,uuid=${uuid_gpt_atf};" \ 97b5381a6cSKever Yang "name=misc,size=4MB,uuid=${uuid_gpt_misc};" \ 98b5381a6cSKever Yang "name=resource,size=16MB,uuid=${uuid_gpt_resource};" \ 99b5381a6cSKever Yang "name=kernel,size=32M,uuid=${uuid_gpt_kernel};" \ 100b5381a6cSKever Yang "name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \ 101b5381a6cSKever Yang "name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \ 102b5381a6cSKever Yang "name=backup,size=112M,uuid=${uuid_gpt_backup};" \ 103b5381a6cSKever Yang "name=cache,size=512M,uuid=${uuid_gpt_cache};" \ 104b5381a6cSKever Yang "name=system,size=2048M,uuid=${uuid_gpt_system};" \ 105b5381a6cSKever Yang "name=metadata,size=16M,uuid=${uuid_gpt_metadata};" \ 106b5381a6cSKever Yang "name=vendor,size=32M,uuid=${uuid_gpt_vendor};" \ 107b5381a6cSKever Yang "name=oem,size=32M,uuid=${uuid_gpt_oem};" \ 108b5381a6cSKever Yang "name=frp,size=512K,uuid=${uuid_gpt_frp};" \ 109b5381a6cSKever Yang "name=security,size=2M,uuid=${uuid_gpt_security};" \ 110e574a937SKever Yang "name=userdata,size=-,uuid=${uuid_gpt_userdata};\0" 111b5381a6cSKever Yang 112299df30dSKever Yang #define RKIMG_DET_BOOTDEV \ 113299df30dSKever Yang "rkimg_bootdev=" \ 11494685712SJason Zhu "if mmc dev 1 && rkimgtest mmc 1; then " \ 11594685712SJason Zhu "setenv devtype mmc; setenv devnum 1; echo Boot from SDcard;" \ 116299df30dSKever Yang "elif mmc dev 0; then " \ 117299df30dSKever Yang "setenv devtype mmc; setenv devnum 0;" \ 118*346e1f7dSJason Zhu "elif mtd dev 0; then " \ 119*346e1f7dSJason Zhu "setenv devtype mtd; setenv devnum 0;" \ 120299df30dSKever Yang "elif rknand dev 0; then " \ 121299df30dSKever Yang "setenv devtype rknand; setenv devnum 0;" \ 122bc0b8cd4SDingqiang Lin "elif rksfc dev 0; then " \ 1233f360b79SDingqiang Lin "setenv devtype spinand; setenv devnum 0;" \ 1243f360b79SDingqiang Lin "elif rksfc dev 1; then " \ 1253f360b79SDingqiang Lin "setenv devtype spinor; setenv devnum 1;" \ 126299df30dSKever Yang "fi; \0" 127299df30dSKever Yang 128caed6b4fSJoseph Chen #ifdef CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE 129caed6b4fSJoseph Chen #define RKIMG_BOOTCOMMAND \ 130caed6b4fSJoseph Chen "boot_android ${devtype} ${devnum};" \ 131caed6b4fSJoseph Chen "echo AVB boot failed and enter rockusb or fastboot!;" \ 132caed6b4fSJoseph Chen "rockusb 0 ${devtype} ${devnum};" \ 133caed6b4fSJoseph Chen "fastboot usb 0;" 134caed6b4fSJoseph Chen #else 1355059d297SKever Yang #define RKIMG_BOOTCOMMAND \ 136e0347805SKever Yang "boot_android ${devtype} ${devnum};" \ 137390759edSKever Yang "bootrkp;" \ 138390759edSKever Yang "run distro_bootcmd;" 139caed6b4fSJoseph Chen #endif 1407f35bbb9SJacob Chen #endif 1417f35bbb9SJacob Chen 142f8e46897SSimon Glass #define CONFIG_DISPLAY_BOARDINFO_LATE 143f8e46897SSimon Glass 1447f35bbb9SJacob Chen #endif /* _ROCKCHIP_COMMON_H_ */ 145