blob: 43320bb4b6110c0b8b0cacebf35e4152a3669fe8 [file] [log] [blame]
/*
* 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
/* 1 MB is reserved for dma of sd */
#ifndef NXP_SD_BLOCK_BUF_SIZE
#define NXP_SD_BLOCK_BUF_SIZE (1 * 1024 * 1024)
#endif
/* 64MB 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_SD_BLOCK_BUF_ADDR
#define NXP_SD_BLOCK_BUF_ADDR (NXP_NS_DRAM_ADDR)
#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 */