/* 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; \0"
#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
