/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * (C) Copyright 2018  Cisco Systems, Inc.
 *
 * Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
 *
 * Configuration settings for the Broadcom BCMSTB SoC family.
 */

#ifndef __BCMSTB_H
#define __BCMSTB_H

#include "version.h"
#include <linux/sizes.h>
#include <asm/arch/prior_stage.h>

/*
 * Generic board configuration.
 */
#define CONFIG_SYS_GENERIC_BOARD

/*
 * CPU configuration.
 */
#define CONFIG_SKIP_LOWLEVEL_INIT

/*
 * Memory configuration.
 *
 * The prior stage BOLT bootloader sets up memory for us.
 *
 * An example boot memory layout after loading everything is:
 *
 *	 0x0000 8000	vmlinux.bin.gz
 *	       :	[~31 MiB uncompressed max]
 *	 0x01ef f000	FIT containing signed public key
 *	       :	[~2 KiB in size]
 *	 0x01f0 0000	DTB copied from prior-stage-provided region
 *	       :	[~1 MiB max]
 *	 0x0200 0000	FIT containing ramdisk and device tree
 *             :	  initramfs.cpio.gz
 *	       :	  [~208 MiB uncompressed max, to CMA/bmem low address]
 *	       :	  [~80 MiB compressed max, to PSB low address]
 *             :	  device tree binary
 *             :	  [~60 KiB]
 *	 0x0700 0000	Prior stage bootloader (PSB)
 *	       :
 *	 0x0761 7000	Prior-stage-provided device tree binary (DTB)
 *	       :	[~40 KiB in size]
 *	 0x0f00 0000	Contiguous memory allocator (CMA/bmem) low address
 *	       :
 *	 0x8010 0000	U-Boot code at ELF load address
 *	       :	[~500 KiB in size, stripped]
 *	 0xc000 0000	Top of RAM
 *
 * Setting gd->relocaddr to CONFIG_SYS_TEXT_BASE in dram_init_banksize
 * prevents U-Boot from relocating itself when it is run as an ELF
 * program by the prior stage bootloader.
 *
 * We want to keep the ramdisk and FDT in the FIT image in-place, to
 * accommodate stblinux's bmem and CMA regions.  To accomplish this,
 * we set initrd_high and fdt_high to 0xffffffff, and the load and
 * entry addresses of the FIT ramdisk entry to 0x0.
 *
 * Overwriting the prior stage bootloader causes memory instability,
 * so the compressed initramfs needs to fit between the load address
 * and the PSB low address.  In BOLT's default configuration this
 * limits the compressed size of the initramfs to approximately 80
 * MiB.  However, BOLT can be configured to allow loading larger
 * initramfs images, in which case this limitation is eliminated.
 */
#define CONFIG_NR_DRAM_BANKS		3

#define CONFIG_SYS_SDRAM_BASE		0x00000000
#define CONFIG_SYS_TEXT_BASE		0x80100000
#define CONFIG_SYS_INIT_RAM_ADDR	0x80200000
#define CONFIG_SYS_INIT_RAM_SIZE	0x100000
#define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_INIT_RAM_ADDR +	\
					 CONFIG_SYS_INIT_RAM_SIZE -	\
					 GENERATED_GBL_DATA_SIZE)
#define CONFIG_SYS_MALLOC_LEN		((10 * 1024) << 10) /* 10 MiB */
#define CONFIG_SYS_LOAD_ADDR		0x2000000

/*
 * CONFIG_SYS_LOAD_ADDR - 1 MiB.
 */
#define CONFIG_SYS_FDT_SAVE_ADDRESS	0x1f00000
#define CONFIG_SYS_CBSIZE		512
#define CONFIG_SYS_MAXARGS		32

/*
 * Large kernel image bootm configuration.
 */
#define CONFIG_SYS_BOOTM_LEN		SZ_64M

/*
 * NS16550 configuration.
 */
#define V_NS16550_CLK			81000000

#define CONFIG_SYS_NS16550
#define CONFIG_SYS_NS16550_SERIAL
#define CONFIG_SYS_NS16550_REG_SIZE	(-4)
#define CONFIG_SYS_NS16550_CLK		V_NS16550_CLK

/*
 * Serial console configuration.
 */
#define CONFIG_SERIAL3			3

#define CONFIG_BAUDRATE			115200
#define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600, \
					 115200}

/*
 * Informational display configuration.
 */
#define CONFIG_REVISION_TAG

/*
 * Command configuration.
 */
#define CONFIG_CMD_ASKENV
#define CONFIG_CMD_CACHE
#define CONFIG_CMD_EXT2
#define CONFIG_CMD_SF
#define CONFIG_CMD_SPI
#define CONFIG_CMD_SF_TEST
#define CONFIG_CMD_MMC

/*
 * Flash configuration.
 */
#define CONFIG_ST_SMI
#define CONFIG_SPI_FLASH_STMICRO
#define CONFIG_SPI_FLASH_MACRONIX

/*
 * Filesystem configuration.
 */
#define CONFIG_DOS_PARTITION
#define CONFIG_CMD_EXT4
#define CONFIG_FS_EXT4
#define CONFIG_CMD_FS_GENERIC

/*
 * Environment configuration.
 */
#define CONFIG_SYS_REDUNDAND_ENVIRONMENT

#define CONFIG_ENV_IS_IN_SPI_FLASH      1
#define CONFIG_ENV_OFFSET		0x1e0000
#define CONFIG_ENV_SIZE			(64 << 10) /* 64 KiB */
#define CONFIG_ENV_SECT_SIZE		CONFIG_ENV_SIZE
#define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
#define CONFIG_ENV_OVERWRITE

/*
 * Save the prior stage provided DTB.
 */
#define CONFIG_PREBOOT					\
	"fdt addr ${fdtcontroladdr};"			\
	"fdt move ${fdtcontroladdr} ${fdtsaveaddr};"	\
	"fdt addr ${fdtsaveaddr};"
/*
 * Enable in-place RFS with this initrd_high setting.
 */
#define CONFIG_EXTRA_ENV_SETTINGS					\
	"fdtsaveaddr=" __stringify(CONFIG_SYS_FDT_SAVE_ADDRESS) "\0"	\
	"initrd_high=0xffffffff\0"					\
	"fdt_high=0xffffffff\0"

/*
 * Set fdtaddr to prior stage-provided DTB in board_late_init, when
 * writeable environment is available.
 */
#define CONFIG_BOARD_LATE_INIT

#define CONFIG_SYS_MAX_FLASH_BANKS 1

#define CONFIG_DM_SPI 1

#endif /* __BCMSTB_H */
