123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- /*
- * 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 */
|