1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (C) 2018 Marvell International Ltd. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu * https://spdx.org/licenses 6*91f16700Schasinglulu */ 7*91f16700Schasinglulu 8*91f16700Schasinglulu #ifndef BOARD_MARVELL_DEF_H 9*91f16700Schasinglulu #define BOARD_MARVELL_DEF_H 10*91f16700Schasinglulu 11*91f16700Schasinglulu /* 12*91f16700Schasinglulu * Required platform porting definitions common to all ARM 13*91f16700Schasinglulu * development platforms 14*91f16700Schasinglulu */ 15*91f16700Schasinglulu 16*91f16700Schasinglulu /* Size of cacheable stacks */ 17*91f16700Schasinglulu #if IMAGE_BL1 18*91f16700Schasinglulu #if TRUSTED_BOARD_BOOT 19*91f16700Schasinglulu # define PLATFORM_STACK_SIZE 0x1000 20*91f16700Schasinglulu #else 21*91f16700Schasinglulu # define PLATFORM_STACK_SIZE 0x440 22*91f16700Schasinglulu #endif 23*91f16700Schasinglulu #elif IMAGE_BL2 24*91f16700Schasinglulu # if TRUSTED_BOARD_BOOT 25*91f16700Schasinglulu # define PLATFORM_STACK_SIZE 0x1000 26*91f16700Schasinglulu # else 27*91f16700Schasinglulu # define PLATFORM_STACK_SIZE 0x400 28*91f16700Schasinglulu # endif 29*91f16700Schasinglulu #elif IMAGE_BL31 30*91f16700Schasinglulu # define PLATFORM_STACK_SIZE 0x400 31*91f16700Schasinglulu #elif IMAGE_BL32 32*91f16700Schasinglulu # define PLATFORM_STACK_SIZE 0x440 33*91f16700Schasinglulu #endif 34*91f16700Schasinglulu 35*91f16700Schasinglulu /* 36*91f16700Schasinglulu * PLAT_MARVELL_MMAP_ENTRIES depends on the number of entries in the 37*91f16700Schasinglulu * plat_arm_mmap array defined for each BL stage. 38*91f16700Schasinglulu */ 39*91f16700Schasinglulu #if IMAGE_BLE 40*91f16700Schasinglulu # define PLAT_MARVELL_MMAP_ENTRIES 3 41*91f16700Schasinglulu #endif 42*91f16700Schasinglulu #if IMAGE_BL1 43*91f16700Schasinglulu # if TRUSTED_BOARD_BOOT 44*91f16700Schasinglulu # define PLAT_MARVELL_MMAP_ENTRIES 7 45*91f16700Schasinglulu # else 46*91f16700Schasinglulu # define PLAT_MARVELL_MMAP_ENTRIES 6 47*91f16700Schasinglulu # endif /* TRUSTED_BOARD_BOOT */ 48*91f16700Schasinglulu #endif 49*91f16700Schasinglulu #if IMAGE_BL2 50*91f16700Schasinglulu # define PLAT_MARVELL_MMAP_ENTRIES 8 51*91f16700Schasinglulu #endif 52*91f16700Schasinglulu #if IMAGE_BL31 53*91f16700Schasinglulu #define PLAT_MARVELL_MMAP_ENTRIES 5 54*91f16700Schasinglulu #endif 55*91f16700Schasinglulu 56*91f16700Schasinglulu /* 57*91f16700Schasinglulu * Platform specific page table and MMU setup constants 58*91f16700Schasinglulu */ 59*91f16700Schasinglulu #if IMAGE_BL1 60*91f16700Schasinglulu #define MAX_XLAT_TABLES 4 61*91f16700Schasinglulu #elif IMAGE_BLE 62*91f16700Schasinglulu # define MAX_XLAT_TABLES 4 63*91f16700Schasinglulu #elif IMAGE_BL2 64*91f16700Schasinglulu # define MAX_XLAT_TABLES 4 65*91f16700Schasinglulu #elif IMAGE_BL31 66*91f16700Schasinglulu # define MAX_XLAT_TABLES 4 67*91f16700Schasinglulu #elif IMAGE_BL32 68*91f16700Schasinglulu # define MAX_XLAT_TABLES 4 69*91f16700Schasinglulu #endif 70*91f16700Schasinglulu 71*91f16700Schasinglulu #define MAX_IO_DEVICES 3 72*91f16700Schasinglulu #define MAX_IO_HANDLES 4 73*91f16700Schasinglulu 74*91f16700Schasinglulu #endif /* BOARD_MARVELL_DEF_H */ 75