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

#ifndef __MT8183_H
#define __MT8183_H

#include <linux/sizes.h>

#define CONFIG_ENV_SIZE			SZ_4K
#define CONFIG_SYS_LOAD_ADDR		CONFIG_SYS_TEXT_BASE
#define CONFIG_SYS_MALLOC_LEN		SZ_4M

#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		0x11005200
#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

/* Environment settings */
#include <config_distro_bootcmd.h>

#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=" \
		"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 CONFIG_EXTRA_ENV_SETTINGS \
	"kerneladdr=0x4A000000\0" \
	MMCBOOT \
	"bootcmd=run mmcboot\0"

#endif
