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