mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-03 09:29:57 +00:00

Define default SD buffer address and size in DRAM. Signed-off-by: Biwen Li <biwen.li@nxp.com> Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com> Change-Id: I5872d95b0c1114e05f0e145756e9a6ef39b2fd9a
172 lines
3.8 KiB
C
172 lines
3.8 KiB
C
/*
|
|
* 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 */
|