/*
 * Copyright 2021 NXP
 *
 * SPDX-License-Identifier: BSD-3-Clause
 *
 */

#ifndef PLAT_DEFAULT_DEF_H
#define PLAT_DEFAULT_DEF_H

/*
 * Platform binary types for linking
 */
#ifdef __aarch64__
#define PLATFORM_LINKER_FORMAT          "elf64-littleaarch64"
#define PLATFORM_LINKER_ARCH            aarch64
#else
#define PLATFORM_LINKER_FORMAT          "elf32-littlearm"
#define PLATFORM_LINKER_ARCH            arm
#endif /* __aarch64__ */

#define LS_BL31_PLAT_PARAM_VAL		0x0f1e2d3c4b5a6978ULL

/* NXP Platforms have DRAM divided into banks.
 * DRAM0 Bank:	Maximum size of this bank is fixed to 2GB
 * DRAM1 Bank:	Greater than 2GB belongs to bank1 and size of bank1 varies from
 *		one platform to other platform.
 * DRAMn Bank:
 *
 * Except a few, all the platforms have 2GB size as DRAM0 BANK.
 * Hence common for all the platforms.
 * For platforms where DRAM0 Size is < 2GB, it is defined in platform_def.h
 */
#ifndef PLAT_DEF_DRAM0_SIZE
#define PLAT_DEF_DRAM0_SIZE	0x80000000	/*  2G */
#endif

/* This is common for all platforms where: */
#ifndef NXP_NS_DRAM_ADDR
#define NXP_NS_DRAM_ADDR	NXP_DRAM0_ADDR
#endif

/* 64M is reserved for Secure memory
 */
#ifndef NXP_SECURE_DRAM_SIZE
#define NXP_SECURE_DRAM_SIZE	(64 * 1024 * 1024)
#endif

/* 2M Secure EL1 Payload Shared Memory */
#ifndef NXP_SP_SHRD_DRAM_SIZE
#define NXP_SP_SHRD_DRAM_SIZE	(2 * 1024 * 1024)
#endif

#ifndef NXP_NS_DRAM_SIZE
/* Non secure memory */
#define NXP_NS_DRAM_SIZE	(PLAT_DEF_DRAM0_SIZE - \
				(NXP_SECURE_DRAM_SIZE + NXP_SP_SHRD_DRAM_SIZE))
#endif

#ifndef NXP_SECURE_DRAM_ADDR
#ifdef TEST_BL31
#define NXP_SECURE_DRAM_ADDR 0
#else
#define NXP_SECURE_DRAM_ADDR	(NXP_NS_DRAM_ADDR + PLAT_DEF_DRAM0_SIZE - \
				(NXP_SECURE_DRAM_SIZE  + NXP_SP_SHRD_DRAM_SIZE))
#endif
#endif

#ifndef NXP_SP_SHRD_DRAM_ADDR
#define NXP_SP_SHRD_DRAM_ADDR	(NXP_NS_DRAM_ADDR + PLAT_DEF_DRAM0_SIZE \
				- NXP_SP_SHRD_DRAM_SIZE)
#endif

#ifndef BL31_BASE
/* 2 MB reserved in secure memory for DDR */
#define BL31_BASE		NXP_SECURE_DRAM_ADDR
#endif

#ifndef BL31_SIZE
#define BL31_SIZE		(0x200000)
#endif

#ifndef BL31_LIMIT
#define BL31_LIMIT		(BL31_BASE + BL31_SIZE)
#endif

/* Put BL32 in secure memory */
#ifndef BL32_BASE
#define BL32_BASE		(NXP_SECURE_DRAM_ADDR + BL31_SIZE)
#endif

#ifndef BL32_LIMIT
#define BL32_LIMIT		(NXP_SECURE_DRAM_ADDR + \
				NXP_SECURE_DRAM_SIZE + NXP_SP_SHRD_DRAM_SIZE)
#endif

/* BL33 memory region */
/* Hardcoded based on current address in u-boot */
#ifndef BL33_BASE
#define BL33_BASE		0x82000000
#endif

#ifndef BL33_LIMIT
#define BL33_LIMIT		(NXP_NS_DRAM_ADDR + NXP_NS_DRAM_SIZE)
#endif

/*
 * FIP image defines - Offset at which FIP Image would be present
 * Image would include Bl31 , Bl33 and Bl32 (optional)
 */
#ifdef POLICY_FUSE_PROVISION
#ifndef FUSE_BUF
#define FUSE_BUF		ULL(0x81000000)
#endif

#ifndef FUSE_SZ
#define FUSE_SZ			0x80000
#endif
#endif

#ifndef MAX_FIP_DEVICES
#define MAX_FIP_DEVICES		2
#endif

#ifndef PLAT_FIP_OFFSET
#define PLAT_FIP_OFFSET		0x100000
#endif

#ifndef PLAT_FIP_MAX_SIZE
#define PLAT_FIP_MAX_SIZE	0x400000
#endif

/* Check if this size can be determined from array size */
#if defined(IMAGE_BL2)
#ifndef MAX_MMAP_REGIONS
#define MAX_MMAP_REGIONS	8
#endif
#ifndef MAX_XLAT_TABLES
#define MAX_XLAT_TABLES		6
#endif
#elif defined(IMAGE_BL31)
#ifndef MAX_MMAP_REGIONS
#define MAX_MMAP_REGIONS	9
#endif
#ifndef MAX_XLAT_TABLES
#define MAX_XLAT_TABLES		9
#endif
#elif defined(IMAGE_BL32)
#ifndef MAX_MMAP_REGIONS
#define MAX_MMAP_REGIONS	8
#endif
#ifndef MAX_XLAT_TABLES
#define MAX_XLAT_TABLES		9
#endif
#endif

/*
 * ID of the secure physical generic timer interrupt used by the BL32.
 */
#ifndef BL32_IRQ_SEC_PHY_TIMER
#define BL32_IRQ_SEC_PHY_TIMER	29
#endif

#endif	/*	PLAT_DEFAULT_DEF_H	*/
