1*dddba19aSStephan Gerhold /* 2*dddba19aSStephan Gerhold * Copyright (c) 2021, Stephan Gerhold <stephan@gerhold.net> 3*dddba19aSStephan Gerhold * 4*dddba19aSStephan Gerhold * SPDX-License-Identifier: BSD-3-Clause 5*dddba19aSStephan Gerhold */ 6*dddba19aSStephan Gerhold #ifndef PLATFORM_DEF_H 7*dddba19aSStephan Gerhold #define PLATFORM_DEF_H 8*dddba19aSStephan Gerhold 9*dddba19aSStephan Gerhold #include <plat/common/common_def.h> 10*dddba19aSStephan Gerhold 11*dddba19aSStephan Gerhold /* 12*dddba19aSStephan Gerhold * There is at least 1 MiB available for BL31. However, at the moment the 13*dddba19aSStephan Gerhold * "msm8916_entry_point" variable in the data section is read through the 14*dddba19aSStephan Gerhold * 64 KiB region of the "boot remapper" after reset. For simplicity, limit 15*dddba19aSStephan Gerhold * the end of the data section (BL31_PROGBITS_LIMIT) to 64 KiB for now and 16*dddba19aSStephan Gerhold * the overall limit to 128 KiB. This could be increased if needed by placing 17*dddba19aSStephan Gerhold * the "msm8916_entry_point" variable explicitly in the first 64 KiB of BL31. 18*dddba19aSStephan Gerhold */ 19*dddba19aSStephan Gerhold #define BL31_LIMIT (BL31_BASE + 0x20000) /* 128 KiB */ 20*dddba19aSStephan Gerhold #define BL31_PROGBITS_LIMIT (BL31_BASE + 0x10000) /* 64 KiB */ 21*dddba19aSStephan Gerhold 22*dddba19aSStephan Gerhold #define CACHE_WRITEBACK_GRANULE U(64) 23*dddba19aSStephan Gerhold #define PLATFORM_STACK_SIZE U(0x1000) 24*dddba19aSStephan Gerhold 25*dddba19aSStephan Gerhold /* CPU topology: single cluster with 4 cores */ 26*dddba19aSStephan Gerhold #define PLATFORM_CLUSTER_COUNT U(1) 27*dddba19aSStephan Gerhold #define PLATFORM_MAX_CPUS_PER_CLUSTER U(4) 28*dddba19aSStephan Gerhold #define PLATFORM_CORE_COUNT (PLATFORM_CLUSTER_COUNT * \ 29*dddba19aSStephan Gerhold PLATFORM_MAX_CPUS_PER_CLUSTER) 30*dddba19aSStephan Gerhold 31*dddba19aSStephan Gerhold /* Power management */ 32*dddba19aSStephan Gerhold #define PLATFORM_SYSTEM_COUNT U(1) 33*dddba19aSStephan Gerhold #define PLAT_NUM_PWR_DOMAINS (PLATFORM_SYSTEM_COUNT + \ 34*dddba19aSStephan Gerhold PLATFORM_CLUSTER_COUNT + \ 35*dddba19aSStephan Gerhold PLATFORM_CORE_COUNT) 36*dddba19aSStephan Gerhold #define PLAT_MAX_PWR_LVL MPIDR_AFFLVL2 37*dddba19aSStephan Gerhold #define PLAT_MAX_RET_STATE U(2) 38*dddba19aSStephan Gerhold #define PLAT_MAX_OFF_STATE U(3) 39*dddba19aSStephan Gerhold 40*dddba19aSStephan Gerhold /* Translation tables */ 41*dddba19aSStephan Gerhold #define MAX_MMAP_REGIONS 8 42*dddba19aSStephan Gerhold #define MAX_XLAT_TABLES 4 43*dddba19aSStephan Gerhold 44*dddba19aSStephan Gerhold #define PLAT_PHY_ADDR_SPACE_SIZE (ULL(1) << 32) 45*dddba19aSStephan Gerhold #define PLAT_VIRT_ADDR_SPACE_SIZE (ULL(1) << 32) 46*dddba19aSStephan Gerhold 47*dddba19aSStephan Gerhold /* Timer frequency */ 48*dddba19aSStephan Gerhold #define PLAT_SYSCNT_FREQ 19200000 49*dddba19aSStephan Gerhold 50*dddba19aSStephan Gerhold #endif /* PLATFORM_DEF_H */ 51