xref: /rk3399_ARM-atf/plat/mediatek/include/armv8_2/arch_def.h (revision 602394507fad2e9301792ce1a66ff2a09409c1ee)
1*45711e4eSEdward-JW Yang /*
2*45711e4eSEdward-JW Yang  * Copyright (c) 2022, Mediatek Inc. All rights reserved.
3*45711e4eSEdward-JW Yang  *
4*45711e4eSEdward-JW Yang  * SPDX-License-Identifier: BSD-3-Clause
5*45711e4eSEdward-JW Yang  */
6*45711e4eSEdward-JW Yang 
7*45711e4eSEdward-JW Yang #ifndef ARCH_DEF_H
8*45711e4eSEdward-JW Yang #define ARCH_DEF_H
9*45711e4eSEdward-JW Yang 
10*45711e4eSEdward-JW Yang /* Topology constants */
11*45711e4eSEdward-JW Yang #define PLAT_MAX_PWR_LVL		(2)
12*45711e4eSEdward-JW Yang #define PLAT_MAX_RET_STATE		(1)
13*45711e4eSEdward-JW Yang #define PLAT_MAX_OFF_STATE		(2)
14*45711e4eSEdward-JW Yang 
15*45711e4eSEdward-JW Yang #define PLATFORM_SYSTEM_COUNT		(1)
16*45711e4eSEdward-JW Yang #define PLATFORM_CLUSTER_COUNT		(1)
17*45711e4eSEdward-JW Yang #define PLATFORM_CLUSTER0_CORE_COUNT	(8)
18*45711e4eSEdward-JW Yang #define PLATFORM_CORE_COUNT		(PLATFORM_CLUSTER0_CORE_COUNT)
19*45711e4eSEdward-JW Yang #define PLATFORM_MAX_CPUS_PER_CLUSTER	(8)
20*45711e4eSEdward-JW Yang #define PLATFORM_NUM_AFFS		(PLATFORM_SYSTEM_COUNT + \
21*45711e4eSEdward-JW Yang 					 PLATFORM_CLUSTER_COUNT + \
22*45711e4eSEdward-JW Yang 					 PLATFORM_CORE_COUNT)
23*45711e4eSEdward-JW Yang 
24*45711e4eSEdward-JW Yang /*******************************************************************************
25*45711e4eSEdward-JW Yang  * Declarations and constants to access the mailboxes safely. Each mailbox is
26*45711e4eSEdward-JW Yang  * aligned on the biggest cache line size in the platform. This is known only
27*45711e4eSEdward-JW Yang  * to the platform as it might have a combination of integrated and external
28*45711e4eSEdward-JW Yang  * caches. Such alignment ensures that two maiboxes do not sit on the same cache
29*45711e4eSEdward-JW Yang  * line at any cache level. They could belong to different cpus/clusters &
30*45711e4eSEdward-JW Yang  * get written while being protected by different locks causing corruption of
31*45711e4eSEdward-JW Yang  * a valid mailbox address.
32*45711e4eSEdward-JW Yang  ******************************************************************************/
33*45711e4eSEdward-JW Yang /* Cachline size */
34*45711e4eSEdward-JW Yang #define CACHE_WRITEBACK_SHIFT		(6)
35*45711e4eSEdward-JW Yang #define CACHE_WRITEBACK_GRANULE		(1 << CACHE_WRITEBACK_SHIFT)
36*45711e4eSEdward-JW Yang 
37*45711e4eSEdward-JW Yang #endif /* ARCH_DEF_H */
38*45711e4eSEdward-JW Yang 
39