/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Configuration for Pumpkin board
 *
 * Copyright (C) 2019 BayLibre, SAS
 * Author: Fabien Parent <fparent@baylibre.com
 */

#ifndef __PUMPKIN_H
#define __PUMPKIN_H

#include <linux/sizes.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" \
	"mmc_discover_partition=" \
		"part start mmc ${mmcdev} kernel kernel_part_addr;" \
		"part size mmc ${mmcdev} kernel kernel_part_size;\0" \
	"mmcboot=" \
		"mmc dev ${mmcdev};" \
		"run mmc_discover_partition;" \
		"mmc read ${kerneladdr} ${kernel_part_addr} ${kernel_part_size};" \
		"setenv bootargs ${bootargs} root=/dev/mmcblk${mmcdev}p${rootfs_partition} rootwait; " \
		"bootm ${kerneladdr}${boot_conf}; \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
