xref: /rk3399_ARM-atf/include/plat/marvell/armada/a8k/common/board_marvell_def.h (revision edd8188d32eb989c069da185f47425ac739bfdfd)
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