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