| /* SPDX-License-Identifier: GPL-2.0+ */ |
| /* |
| * Configuration for Coral board |
| * |
| * Copyright (C) 2019 BayLibre, SAS |
| * Copyright (C) 2020 Google, LLC |
| * Author: Fabien Parent <fparent@baylibre.com |
| */ |
| |
| #ifndef __MT8516_CORAL_H |
| #define __MT8516_CORAL_H |
| |
| #include <linux/sizes.h> |
| #include <linux/stringify.h> |
| |
| #ifdef CONFIG_MTK_ANDROID |
| // Android needs a bigger environment for libavb usage |
| #define CONFIG_ENV_SIZE SZ_256K |
| #define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_TEXT_BASE |
| #define CONFIG_SYS_MALLOC_LEN SZ_64M |
| #define CONFIG_SYS_CBSIZE SZ_64K |
| #else |
| #define CONFIG_ENV_SIZE SZ_4K |
| #define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_TEXT_BASE |
| #define CONFIG_SYS_MALLOC_LEN SZ_4M |
| #endif /* CONFIG_MTK_ANDROID */ |
| |
| #define CONFIG_CPU_ARMV8 |
| #define COUNTER_FREQUENCY 13000000 |
| |
| #define CONFIG_SYS_NS16550_SERIAL |
| #define CONFIG_SYS_NS16550_REG_SIZE -4 |
| #define CONFIG_SYS_NS16550_MEM32 |
| #define CONFIG_SYS_NS16550_COM1 0x11005000 |
| #define CONFIG_SYS_NS16550_CLK 26000000 |
| |
| #define CONFIG_SYS_UBOOT_START CONFIG_SYS_TEXT_BASE |
| #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + SZ_2M - \ |
| GENERATED_GBL_DATA_SIZE) |
| |
| #define CONFIG_SYS_BOOTM_LEN SZ_64M |
| |
| #define CONFIG_SYS_MMC_ENV_DEV 0 |
| #define CONFIG_SYS_MMC_ENV_PART 2 |
| #define CONFIG_ENV_OFFSET 0 |
| |
| #ifdef CONFIG_MTK_ANDROID |
| #define MMCBOOT \ |
| "mmcdev=0\0" \ |
| "dtb_index=0\0" \ |
| "dtbo_index=1\0" \ |
| "loadaddr=0x50000000\0" \ |
| "load_dtb=" \ |
| "part start mmc ${mmcdev} dtbo dtbo_part_start;" \ |
| "part size mmc ${mmcdev} dtbo dtbo_part_size;" \ |
| "mmc read ${loadaddr} ${dtbo_part_start} ${dtbo_part_size};" \ |
| "dtimg select ${loadaddr} ${dtb_index};" \ |
| "dtimg merge ${loadaddr} ${dtbo_index}; \0" \ |
| "load_bootimg=" \ |
| "part start mmc ${mmcdev} boot boot_part_start;" \ |
| "part size mmc ${mmcdev} boot boot_part_size;" \ |
| "mmc read ${loadaddr} ${boot_part_start} ${boot_part_size}; \0" \ |
| "mmcboot=" \ |
| "avb init ${mmcdev};" \ |
| "avb verify;" \ |
| "setenv bootargs \"${bootargs} ${avb_bootargs}\";" \ |
| "run load_dtb;" \ |
| "run load_bootimg;" \ |
| "bootm ${loadaddr}; \0" |
| #else |
| #define MMCBOOT \ |
| "mmcdev=0\0" \ |
| "rootfs_partition=3\0" \ |
| "mmcboot=" \ |
| "mmc dev ${mmcdev};" \ |
| "setenv bootargs ${bootargs} root=/dev/mmcblk${mmcdev}p${rootfs_partition} rootwait; " \ |
| "ext2load mmc ${mmcdev}:2 " __stringify(CONFIG_SYS_TEXT_BASE) " boot.scr;" \ |
| "source;" |
| #endif /* CONFIG_MTK_ANDROID */ |
| |
| #define TFTPBOOT \ |
| "tftpboot=" \ |
| "set ipaddr 192.168.0.100;" \ |
| "tftpboot ${kerneladdr} 192.168.0.1:fitImage;" \ |
| "bootm ${kerneladdr};\0" |
| |
| #define CONFIG_EXTRA_ENV_SETTINGS \ |
| "kerneladdr=0x4A000000\0" \ |
| "fastboot=fastboot usb 0\0" \ |
| "force_fastboot=0\0" \ |
| MMCBOOT \ |
| TFTPBOOT \ |
| "bootcmd=" \ |
| "gpio input 42;" \ |
| "if test $? -eq 0 || test \"${force_fastboot}\" -eq 1; then " \ |
| "setenv force_fastboot 0; saveenv;" \ |
| "run fastboot;" \ |
| "run mmcboot;" \ |
| "else " \ |
| "run mmcboot;" \ |
| "fi\0" |
| #endif |