blob: a9272080bb3f8897ff394d323a9c23797f34025f [file] [log] [blame]
Dan Handley9df48042015-03-19 18:58:55 +00001/*
Soby Mathew96a1c6b2018-01-15 14:45:33 +00002 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
Dan Handley9df48042015-03-19 18:58:55 +00003 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Dan Handley9df48042015-03-19 18:58:55 +00005 */
6#ifndef __BOARD_ARM_DEF_H__
7#define __BOARD_ARM_DEF_H__
8
9#include <v2m_def.h>
10
Dan Handley9df48042015-03-19 18:58:55 +000011/*
12 * Required platform porting definitions common to all ARM
13 * development platforms
14 */
15
16/* Size of cacheable stacks */
Masahiro Yamada441bfdd2016-12-25 23:36:24 +090017#if defined(IMAGE_BL1)
Dan Handley9df48042015-03-19 18:58:55 +000018#if TRUSTED_BOARD_BOOT
19# define PLATFORM_STACK_SIZE 0x1000
20#else
21# define PLATFORM_STACK_SIZE 0x440
22#endif
Masahiro Yamada441bfdd2016-12-25 23:36:24 +090023#elif defined(IMAGE_BL2)
Dan Handley9df48042015-03-19 18:58:55 +000024# if TRUSTED_BOARD_BOOT
25# define PLATFORM_STACK_SIZE 0x1000
26# else
27# define PLATFORM_STACK_SIZE 0x400
28# endif
Masahiro Yamada441bfdd2016-12-25 23:36:24 +090029#elif defined(IMAGE_BL2U)
Daniel Boulbyec769502018-07-20 12:28:55 +010030# define PLATFORM_STACK_SIZE 0x400
Masahiro Yamada441bfdd2016-12-25 23:36:24 +090031#elif defined(IMAGE_BL31)
Antonio Nino Diaz31c397f2018-05-24 09:14:58 +010032#if ENABLE_SPM
33# define PLATFORM_STACK_SIZE 0x500
34#elif PLAT_XLAT_TABLES_DYNAMIC
Roberto Vargas550eb082018-01-05 16:00:05 +000035# define PLATFORM_STACK_SIZE 0x800
36#else
Dan Handley9df48042015-03-19 18:58:55 +000037# define PLATFORM_STACK_SIZE 0x400
Roberto Vargas550eb082018-01-05 16:00:05 +000038#endif
Masahiro Yamada441bfdd2016-12-25 23:36:24 +090039#elif defined(IMAGE_BL32)
Dan Handley9df48042015-03-19 18:58:55 +000040# define PLATFORM_STACK_SIZE 0x440
41#endif
42
Dan Handley9df48042015-03-19 18:58:55 +000043#define MAX_IO_DEVICES 3
44#define MAX_IO_HANDLES 4
45
46#define PLAT_ARM_TRUSTED_SRAM_SIZE 0x00040000 /* 256 KB */
47
Roberto Vargasa1c16b62017-08-03 09:16:43 +010048/* Reserve the last block of flash for PSCI MEM PROTECT flag */
Dan Handley9df48042015-03-19 18:58:55 +000049#define PLAT_ARM_FIP_BASE V2M_FLASH0_BASE
Roberto Vargasa1c16b62017-08-03 09:16:43 +010050#define PLAT_ARM_FIP_MAX_SIZE (V2M_FLASH0_SIZE - V2M_FLASH_BLOCK_SIZE)
Dan Handley9df48042015-03-19 18:58:55 +000051
Yatharth Kocharf11b29a2016-02-01 11:04:46 +000052#define PLAT_ARM_NVM_BASE V2M_FLASH0_BASE
Roberto Vargasa1c16b62017-08-03 09:16:43 +010053#define PLAT_ARM_NVM_SIZE (V2M_FLASH0_SIZE - V2M_FLASH_BLOCK_SIZE)
54
Roberto Vargasa1c16b62017-08-03 09:16:43 +010055/*
56 * Map mem_protect flash region with read and write permissions
57 */
58#define ARM_V2M_MAP_MEM_PROTECT MAP_REGION_FLAT(PLAT_ARM_MEM_PROT_ADDR, \
59 V2M_FLASH_BLOCK_SIZE, \
60 MT_DEVICE | MT_RW | MT_SECURE)
Dan Handley9df48042015-03-19 18:58:55 +000061
62#endif /* __BOARD_ARM_DEF_H__ */