blob: e4015f75bc9cfa19ca83d69a59d10a6236e630a5 [file] [log] [blame]
Aditya Angadid61740b2020-11-19 18:05:33 +05301/*
Aditya Angadiccae8a12021-08-09 09:38:58 +05302 * Copyright (c) 2020-2021, ARM Limited and Contributors. All rights reserved.
Aditya Angadid61740b2020-11-19 18:05:33 +05303 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef PLATFORM_DEF_H
8#define PLATFORM_DEF_H
9
10#include <lib/utils_def.h>
11
12#include <sgi_soc_platform_def_v2.h>
13
Aditya Angadif894b9a2021-03-20 12:15:04 +053014#if (CSS_SGI_PLATFORM_VARIANT == 1)
15#define PLAT_ARM_CLUSTER_COUNT U(8)
Aditya Angadiccae8a12021-08-09 09:38:58 +053016#elif (CSS_SGI_PLATFORM_VARIANT == 2)
17#define PLAT_ARM_CLUSTER_COUNT U(4)
Aditya Angadif894b9a2021-03-20 12:15:04 +053018#else
Aditya Angadid61740b2020-11-19 18:05:33 +053019#define PLAT_ARM_CLUSTER_COUNT U(16)
Aditya Angadif894b9a2021-03-20 12:15:04 +053020#endif
21
Aditya Angadid61740b2020-11-19 18:05:33 +053022#define CSS_SGI_MAX_CPUS_PER_CLUSTER U(1)
23#define CSS_SGI_MAX_PE_PER_CPU U(1)
24
25#define PLAT_CSS_MHU_BASE UL(0x2A920000)
26#define PLAT_MHUV2_BASE PLAT_CSS_MHU_BASE
27
28#define CSS_SYSTEM_PWR_DMN_LVL ARM_PWR_LVL2
29#define PLAT_MAX_PWR_LVL ARM_PWR_LVL1
30
31/* TZC Related Constants */
Vijayenthiran Subramaniam478ccb32021-02-04 18:15:40 +053032#define PLAT_ARM_TZC_BASE UL(0x10720000)
Aditya Angadid61740b2020-11-19 18:05:33 +053033#define PLAT_ARM_TZC_FILTERS TZC_400_REGION_ATTR_FILTER_BIT(0)
34
35#define TZC400_OFFSET UL(0x1000000)
Aditya Angadif894b9a2021-03-20 12:15:04 +053036
37#if (CSS_SGI_PLATFORM_VARIANT == 1)
38#define TZC400_COUNT U(2)
Aditya Angadiccae8a12021-08-09 09:38:58 +053039#elif (CSS_SGI_PLATFORM_VARIANT == 2)
40#define TZC400_COUNT U(4)
Aditya Angadif894b9a2021-03-20 12:15:04 +053041#else
Aditya Angadid61740b2020-11-19 18:05:33 +053042#define TZC400_COUNT U(8)
Aditya Angadif894b9a2021-03-20 12:15:04 +053043#endif
Aditya Angadid61740b2020-11-19 18:05:33 +053044
45#define TZC400_BASE(n) (PLAT_ARM_TZC_BASE + \
46 (n * TZC400_OFFSET))
47
48#define TZC_NSAID_ALL_AP U(0)
49#define TZC_NSAID_PCI U(1)
50#define TZC_NSAID_HDLCD0 U(2)
Vijayenthiran Subramaniam673e0592021-07-06 14:52:04 +053051#define TZC_NSAID_DMA U(5)
52#define TZC_NSAID_DMA2 U(8)
Aditya Angadid61740b2020-11-19 18:05:33 +053053#define TZC_NSAID_CLCD U(7)
54#define TZC_NSAID_AP U(9)
55#define TZC_NSAID_VIRTIO U(15)
56
57#define PLAT_ARM_TZC_NS_DEV_ACCESS \
58 (TZC_REGION_ACCESS_RDWR(TZC_NSAID_ALL_AP)) | \
59 (TZC_REGION_ACCESS_RDWR(TZC_NSAID_HDLCD0)) | \
60 (TZC_REGION_ACCESS_RDWR(TZC_NSAID_PCI)) | \
Vijayenthiran Subramaniam673e0592021-07-06 14:52:04 +053061 (TZC_REGION_ACCESS_RDWR(TZC_NSAID_DMA)) | \
62 (TZC_REGION_ACCESS_RDWR(TZC_NSAID_DMA2)) | \
Aditya Angadid61740b2020-11-19 18:05:33 +053063 (TZC_REGION_ACCESS_RDWR(TZC_NSAID_AP)) | \
64 (TZC_REGION_ACCESS_RDWR(TZC_NSAID_CLCD)) | \
65 (TZC_REGION_ACCESS_RDWR(TZC_NSAID_VIRTIO))
66
67/*
68 * Physical and virtual address space limits for MMU in AARCH64 & AARCH32 modes
69 */
70#ifdef __aarch64__
Aditya Angadiccae8a12021-08-09 09:38:58 +053071#if (CSS_SGI_PLATFORM_VARIANT == 2)
72#define PLAT_PHY_ADDR_SPACE_SIZE CSS_SGI_REMOTE_CHIP_MEM_OFFSET( \
73 CSS_SGI_CHIP_COUNT)
74#define PLAT_VIRT_ADDR_SPACE_SIZE CSS_SGI_REMOTE_CHIP_MEM_OFFSET( \
75 CSS_SGI_CHIP_COUNT)
76#else
Aditya Angadid61740b2020-11-19 18:05:33 +053077#define PLAT_PHY_ADDR_SPACE_SIZE (1ULL << 42)
78#define PLAT_VIRT_ADDR_SPACE_SIZE (1ULL << 42)
Aditya Angadiccae8a12021-08-09 09:38:58 +053079#endif
Aditya Angadid61740b2020-11-19 18:05:33 +053080#else
81#define PLAT_PHY_ADDR_SPACE_SIZE (1ULL << 32)
82#define PLAT_VIRT_ADDR_SPACE_SIZE (1ULL << 32)
83#endif
84
85/* GIC related constants */
86#define PLAT_ARM_GICD_BASE UL(0x30000000)
87#define PLAT_ARM_GICC_BASE UL(0x2C000000)
Aditya Angadif894b9a2021-03-20 12:15:04 +053088
Aditya Angadiccae8a12021-08-09 09:38:58 +053089/* Virtual address used by dynamic mem_protect for chunk_base */
90#define PLAT_ARM_MEM_PROTEC_VA_FRAME UL(0xC0000000)
91
Aditya Angadif894b9a2021-03-20 12:15:04 +053092#if (CSS_SGI_PLATFORM_VARIANT == 1)
93#define PLAT_ARM_GICR_BASE UL(0x30100000)
94#else
Vijayenthiran Subramaniam777a9ff2020-12-15 20:07:43 +053095#define PLAT_ARM_GICR_BASE UL(0x301C0000)
Aditya Angadif894b9a2021-03-20 12:15:04 +053096#endif
Aditya Angadid61740b2020-11-19 18:05:33 +053097
98#endif /* PLATFORM_DEF_H */