1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2020-2022, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef PLATFORM_DEF_H 8*91f16700Schasinglulu #define PLATFORM_DEF_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <lib/utils_def.h> 11*91f16700Schasinglulu #include <sgi_soc_platform_def.h> 12*91f16700Schasinglulu 13*91f16700Schasinglulu #define PLAT_ARM_CLUSTER_COUNT U(4) 14*91f16700Schasinglulu #define CSS_SGI_MAX_CPUS_PER_CLUSTER U(1) 15*91f16700Schasinglulu #define CSS_SGI_MAX_PE_PER_CPU U(1) 16*91f16700Schasinglulu 17*91f16700Schasinglulu #define PLAT_CSS_MHU_BASE UL(0x45400000) 18*91f16700Schasinglulu #define PLAT_MHUV2_BASE PLAT_CSS_MHU_BASE 19*91f16700Schasinglulu 20*91f16700Schasinglulu #define CSS_SYSTEM_PWR_DMN_LVL ARM_PWR_LVL2 21*91f16700Schasinglulu #define PLAT_MAX_PWR_LVL ARM_PWR_LVL1 22*91f16700Schasinglulu 23*91f16700Schasinglulu /* TZC Related Constants */ 24*91f16700Schasinglulu #define PLAT_ARM_TZC_BASE UL(0x21830000) 25*91f16700Schasinglulu #define TZC400_BASE(n) (PLAT_ARM_TZC_BASE + \ 26*91f16700Schasinglulu (n * TZC400_OFFSET)) 27*91f16700Schasinglulu #define TZC400_OFFSET UL(0x1000000) 28*91f16700Schasinglulu #define TZC400_COUNT U(8) 29*91f16700Schasinglulu #define PLAT_ARM_TZC_FILTERS TZC_400_REGION_ATTR_FILTER_BIT(0) 30*91f16700Schasinglulu 31*91f16700Schasinglulu #define TZC_NSAID_ALL_AP U(0) 32*91f16700Schasinglulu #define TZC_NSAID_PCI U(1) 33*91f16700Schasinglulu #define TZC_NSAID_HDLCD0 U(2) 34*91f16700Schasinglulu #define TZC_NSAID_CLCD U(7) 35*91f16700Schasinglulu #define TZC_NSAID_AP U(9) 36*91f16700Schasinglulu #define TZC_NSAID_VIRTIO U(15) 37*91f16700Schasinglulu 38*91f16700Schasinglulu #define PLAT_ARM_TZC_NS_DEV_ACCESS \ 39*91f16700Schasinglulu (TZC_REGION_ACCESS_RDWR(TZC_NSAID_ALL_AP)) | \ 40*91f16700Schasinglulu (TZC_REGION_ACCESS_RDWR(TZC_NSAID_HDLCD0)) | \ 41*91f16700Schasinglulu (TZC_REGION_ACCESS_RDWR(TZC_NSAID_PCI)) | \ 42*91f16700Schasinglulu (TZC_REGION_ACCESS_RDWR(TZC_NSAID_AP)) | \ 43*91f16700Schasinglulu (TZC_REGION_ACCESS_RDWR(TZC_NSAID_CLCD)) | \ 44*91f16700Schasinglulu (TZC_REGION_ACCESS_RDWR(TZC_NSAID_VIRTIO)) 45*91f16700Schasinglulu 46*91f16700Schasinglulu /* Virtual address used by dynamic mem_protect for chunk_base */ 47*91f16700Schasinglulu #define PLAT_ARM_MEM_PROTEC_VA_FRAME UL(0xC0000000) 48*91f16700Schasinglulu 49*91f16700Schasinglulu /* Remote chip address offset (4TB per chip) */ 50*91f16700Schasinglulu #define CSS_SGI_ADDR_BITS_PER_CHIP U(42) 51*91f16700Schasinglulu 52*91f16700Schasinglulu /* Physical and virtual address space limits for MMU in AARCH64 mode */ 53*91f16700Schasinglulu #define PLAT_PHY_ADDR_SPACE_SIZE CSS_SGI_REMOTE_CHIP_MEM_OFFSET( \ 54*91f16700Schasinglulu CSS_SGI_CHIP_COUNT) 55*91f16700Schasinglulu #define PLAT_VIRT_ADDR_SPACE_SIZE CSS_SGI_REMOTE_CHIP_MEM_OFFSET( \ 56*91f16700Schasinglulu CSS_SGI_CHIP_COUNT) 57*91f16700Schasinglulu 58*91f16700Schasinglulu /* GIC related constants */ 59*91f16700Schasinglulu #define PLAT_ARM_GICD_BASE UL(0x30000000) 60*91f16700Schasinglulu #define PLAT_ARM_GICC_BASE UL(0x2C000000) 61*91f16700Schasinglulu #define PLAT_ARM_GICR_BASE UL(0x30140000) 62*91f16700Schasinglulu 63*91f16700Schasinglulu #endif /* PLATFORM_DEF_H */ 64