xref: /rk3399_ARM-atf/plat/qti/qcs615/inc/platform_def.h (revision 8eb87556ce5e84052c5b8949fe14d97a996f802c)
1f60617d3Squic_assethi /*
2f60617d3Squic_assethi  * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
3f60617d3Squic_assethi  * Copyright (c) 2024, The Linux Foundation. All rights reserved.
4f60617d3Squic_assethi  *
5f60617d3Squic_assethi  * SPDX-License-Identifier: BSD-3-Clause
6f60617d3Squic_assethi  */
7f60617d3Squic_assethi 
8f60617d3Squic_assethi #ifndef PLATFORM_DEF_H
9f60617d3Squic_assethi #define PLATFORM_DEF_H
10f60617d3Squic_assethi 
11f60617d3Squic_assethi /* Enable the dynamic translation tables library. */
12f60617d3Squic_assethi #define PLAT_XLAT_TABLES_DYNAMIC 1
13f60617d3Squic_assethi 
14f60617d3Squic_assethi #include <common_def.h>
15f60617d3Squic_assethi 
16f60617d3Squic_assethi #include <qti_board_def.h>
17f60617d3Squic_assethi #include <qtiseclib_defs_plat.h>
18f60617d3Squic_assethi 
19f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
20f60617d3Squic_assethi 
21f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
22f60617d3Squic_assethi /*
23f60617d3Squic_assethi  * MPIDR_PRIMARY_CPU
24f60617d3Squic_assethi  * You just need to have the correct core_affinity_val i.e. [7:0]
25f60617d3Squic_assethi  * and cluster_affinity_val i.e. [15:8]
26f60617d3Squic_assethi  * the other bits will be ignored
27f60617d3Squic_assethi  */
28f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
29f60617d3Squic_assethi #define MPIDR_PRIMARY_CPU  0x0000
30f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
31f60617d3Squic_assethi 
32f60617d3Squic_assethi #define QTI_PWR_LVL0    MPIDR_AFFLVL0
33f60617d3Squic_assethi #define QTI_PWR_LVL1    MPIDR_AFFLVL1
34f60617d3Squic_assethi #define QTI_PWR_LVL2    MPIDR_AFFLVL2
35f60617d3Squic_assethi #define QTI_PWR_LVL3    MPIDR_AFFLVL3
36f60617d3Squic_assethi 
37f60617d3Squic_assethi /*
38f60617d3Squic_assethi  *  Macros for local power states encoded by State-ID field
39f60617d3Squic_assethi  *  within the power-state parameter.
40f60617d3Squic_assethi  */
41f60617d3Squic_assethi /* Local power state for power domains in Run state. */
42f60617d3Squic_assethi #define QTI_LOCAL_STATE_RUN   0
43f60617d3Squic_assethi /*
44f60617d3Squic_assethi  * Local power state for clock-gating. Valid only for CPU and not cluster power
45f60617d3Squic_assethi  * domains
46f60617d3Squic_assethi  */
47f60617d3Squic_assethi #define QTI_LOCAL_STATE_STB   1
48f60617d3Squic_assethi /*
49f60617d3Squic_assethi  * Local power state for retention. Valid for CPU and cluster power
50f60617d3Squic_assethi  * domains
51f60617d3Squic_assethi  */
52f60617d3Squic_assethi #define QTI_LOCAL_STATE_RET   2
53f60617d3Squic_assethi /*
54f60617d3Squic_assethi  * Local power state for OFF/power down. Valid for CPU, cluster, RSC and PDC
55f60617d3Squic_assethi  * power domains
56f60617d3Squic_assethi  */
57f60617d3Squic_assethi #define QTI_LOCAL_STATE_OFF   3
58f60617d3Squic_assethi /*
59f60617d3Squic_assethi  * Local power state for DEEPOFF/power rail down. Valid for CPU, cluster and RSC
60f60617d3Squic_assethi  * power domains
61f60617d3Squic_assethi  */
62f60617d3Squic_assethi #define QTI_LOCAL_STATE_DEEPOFF  4
63f60617d3Squic_assethi 
64f60617d3Squic_assethi /*
65f60617d3Squic_assethi  * This macro defines the deepest retention state possible. A higher state
66f60617d3Squic_assethi  * id will represent an invalid or a power down state.
67f60617d3Squic_assethi  */
68f60617d3Squic_assethi #define PLAT_MAX_RET_STATE QTI_LOCAL_STATE_RET
69f60617d3Squic_assethi 
70f60617d3Squic_assethi /*
71f60617d3Squic_assethi  * This macro defines the deepest power down states possible. Any state ID
72f60617d3Squic_assethi  * higher than this is invalid.
73f60617d3Squic_assethi  */
74f60617d3Squic_assethi #define PLAT_MAX_OFF_STATE QTI_LOCAL_STATE_DEEPOFF
75f60617d3Squic_assethi 
76f60617d3Squic_assethi /******************************************************************************
77f60617d3Squic_assethi  * Required platform porting definitions common to all ARM standard platforms
78f60617d3Squic_assethi  *****************************************************************************/
79f60617d3Squic_assethi 
80f60617d3Squic_assethi /*
81f60617d3Squic_assethi  * Platform specific page table and MMU setup constants.
82f60617d3Squic_assethi  */
83f60617d3Squic_assethi #define MAX_MMAP_REGIONS   (PLAT_QTI_MMAP_ENTRIES)
84f60617d3Squic_assethi 
85f60617d3Squic_assethi #define PLAT_PHY_ADDR_SPACE_SIZE    (1ull << 36)
86f60617d3Squic_assethi #define PLAT_VIRT_ADDR_SPACE_SIZE   (1ull << 36)
87f60617d3Squic_assethi 
88f60617d3Squic_assethi #define ARM_CACHE_WRITEBACK_SHIFT   6
89f60617d3Squic_assethi 
90f60617d3Squic_assethi /*
91f60617d3Squic_assethi  * Some data must be aligned on the biggest cache line size in the platform.
92f60617d3Squic_assethi  * This is known only to the platform as it might have a combination of
93f60617d3Squic_assethi  * integrated and external caches.
94f60617d3Squic_assethi  */
95f60617d3Squic_assethi #define CACHE_WRITEBACK_GRANULE     (1 << ARM_CACHE_WRITEBACK_SHIFT)
96f60617d3Squic_assethi 
97f60617d3Squic_assethi /*
98f60617d3Squic_assethi  * One cache line needed for bakery locks on ARM platforms
99f60617d3Squic_assethi  */
100f60617d3Squic_assethi #define PLAT_PERCPU_BAKERY_LOCK_SIZE   (1 * CACHE_WRITEBACK_GRANULE)
101f60617d3Squic_assethi 
102f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
103f60617d3Squic_assethi /* PSCI power domain topology definitions */
104f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
105f60617d3Squic_assethi /* One domain each to represent RSC and PDC level */
106f60617d3Squic_assethi #define PLAT_PDC_COUNT        1
107f60617d3Squic_assethi #define PLAT_RSC_COUNT        1
108f60617d3Squic_assethi 
109f60617d3Squic_assethi /* There is one top-level FCM cluster */
110f60617d3Squic_assethi #define PLAT_CLUSTER_COUNT    1
111f60617d3Squic_assethi 
112f60617d3Squic_assethi /* No. of cores in the FCM cluster */
113f60617d3Squic_assethi #define PLAT_CLUSTER0_CORE_COUNT 8
114f60617d3Squic_assethi 
115f60617d3Squic_assethi #define PLATFORM_CORE_COUNT      (PLAT_CLUSTER0_CORE_COUNT)
116f60617d3Squic_assethi 
117f60617d3Squic_assethi #define PLAT_NUM_PWR_DOMAINS     (PLAT_PDC_COUNT +\
118f60617d3Squic_assethi 									PLAT_RSC_COUNT   +\
119f60617d3Squic_assethi 									PLAT_CLUSTER_COUNT  +\
120f60617d3Squic_assethi 									PLATFORM_CORE_COUNT)
121f60617d3Squic_assethi 
122f60617d3Squic_assethi #define PLAT_MAX_PWR_LVL      3
123f60617d3Squic_assethi 
124f60617d3Squic_assethi /*****************************************************************************/
125f60617d3Squic_assethi /* Memory mapped Generic timer interfaces  */
126f60617d3Squic_assethi /*****************************************************************************/
127f60617d3Squic_assethi 
128f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
129f60617d3Squic_assethi /* GIC-600 constants */
130f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
131f60617d3Squic_assethi #define BASE_GICD_BASE     0x17A00000
132f60617d3Squic_assethi #define BASE_GICR_BASE     0x17A60000
133f60617d3Squic_assethi #define BASE_GICC_BASE     0x0
134f60617d3Squic_assethi #define BASE_GICH_BASE     0x0
135f60617d3Squic_assethi #define BASE_GICV_BASE     0x0
136f60617d3Squic_assethi 
137f60617d3Squic_assethi #define QTI_GICD_BASE      BASE_GICD_BASE
138f60617d3Squic_assethi #define QTI_GICR_BASE      BASE_GICR_BASE
139f60617d3Squic_assethi #define QTI_GICC_BASE      BASE_GICC_BASE
140f60617d3Squic_assethi 
141f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
142f60617d3Squic_assethi 
143f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
144f60617d3Squic_assethi /* UART related constants. */
145f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
146*8eb87556SSumit Garg #define PLAT_QTI_UART_BASE	0x880000
147f60617d3Squic_assethi /* BASE ADDRESS OF DIFFERENT REGISTER SPACES IN HW */
148f60617d3Squic_assethi #define GENI4_CFG          0x0
149f60617d3Squic_assethi #define GENI4_IMAGE_REGS   0x100
150f60617d3Squic_assethi #define GENI4_DATA         0x600
151f60617d3Squic_assethi 
152f60617d3Squic_assethi /* COMMON STATUS/CONFIGURATION REGISTERS AND MASKS */
153f60617d3Squic_assethi #define GENI_STATUS_REG                      (GENI4_CFG + 0x00000040)
154f60617d3Squic_assethi #define GENI_STATUS_M_GENI_CMD_ACTIVE_MASK   (0x1)
155f60617d3Squic_assethi #define UART_TX_TRANS_LEN_REG                (GENI4_IMAGE_REGS + 0x00000170)
156f60617d3Squic_assethi /* MASTER/TX ENGINE REGISTERS */
157f60617d3Squic_assethi #define GENI_M_CMD0_REG                      (GENI4_DATA + 0x00000000)
158f60617d3Squic_assethi /* FIFO, STATUS REGISTERS AND MASKS */
159f60617d3Squic_assethi #define GENI_TX_FIFOn_REG                    (GENI4_DATA + 0x00000100)
160f60617d3Squic_assethi 
161f60617d3Squic_assethi #define GENI_M_CMD_TX                        (0x08000000)
162f60617d3Squic_assethi 
163f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
164f60617d3Squic_assethi /* Device address space for mapping. Excluding starting 4K */
165f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
166f60617d3Squic_assethi #define QTI_DEVICE_BASE          0x1000
167f60617d3Squic_assethi #define QTI_DEVICE_SIZE          (0x80000000 - QTI_DEVICE_BASE)
168f60617d3Squic_assethi 
169f60617d3Squic_assethi /*******************************************************************************
170f60617d3Squic_assethi  * BL31 specific defines.
171f60617d3Squic_assethi  ******************************************************************************/
172f60617d3Squic_assethi /*
173f60617d3Squic_assethi  * Put BL31 at DDR as per memory map. BL31_BASE is calculated using the
174f60617d3Squic_assethi  * current BL31 debug size plus a little space for growth.
175f60617d3Squic_assethi  */
176f60617d3Squic_assethi #define BL31_LIMIT            (BL31_BASE + BL31_SIZE)
177f60617d3Squic_assethi 
178f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
179f60617d3Squic_assethi /* AOSS registers */
180f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
181f60617d3Squic_assethi #define QTI_PS_HOLD_REG             0x0C264000
182f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
183f60617d3Squic_assethi /* AOP CMD DB  address space for mapping */
184f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
185f60617d3Squic_assethi #define QTI_AOP_CMD_DB_BASE         0x85F20000
186f60617d3Squic_assethi #define QTI_AOP_CMD_DB_SIZE         0x00020000
187f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
188f60617d3Squic_assethi /* SOC hw version register */
189f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
190f60617d3Squic_assethi #define QTI_SOC_VERSION_MASK        U(0xFFFF)
191f60617d3Squic_assethi #define QTI_SOC_REVISION_REG        0x1FC8000
192f60617d3Squic_assethi #define QTI_SOC_REVISION_MASK       U(0xFFFF)
193f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
194f60617d3Squic_assethi /* LC PON register offsets */
195f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
196f60617d3Squic_assethi #define PON_PS_HOLD_RESET_CTL       0x85a
197f60617d3Squic_assethi #define PON_PS_HOLD_RESET_CTL2      0x85b
198f60617d3Squic_assethi /*----------------------------------------------------------------------------*/
199f60617d3Squic_assethi 
200f60617d3Squic_assethi #endif /* PLATFORM_DEF_H */
201