xref: /rk3399_ARM-atf/plat/qti/sc7180/inc/platform_def.h (revision 41c3e4a1e093b961d38668c19a51d079034a8bfb)
15bd9c17dSSaurabh Gorecha /*
25bd9c17dSSaurabh Gorecha  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
35bd9c17dSSaurabh Gorecha  * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
45bd9c17dSSaurabh Gorecha  *
55bd9c17dSSaurabh Gorecha  * SPDX-License-Identifier: BSD-3-Clause
65bd9c17dSSaurabh Gorecha  */
75bd9c17dSSaurabh Gorecha #ifndef PLATFORM_DEF_H
85bd9c17dSSaurabh Gorecha #define PLATFORM_DEF_H
95bd9c17dSSaurabh Gorecha 
105bd9c17dSSaurabh Gorecha #include <common_def.h>
115bd9c17dSSaurabh Gorecha 
125bd9c17dSSaurabh Gorecha #include <qti_board_def.h>
135bd9c17dSSaurabh Gorecha #include <qtiseclib_defs_plat.h>
145bd9c17dSSaurabh Gorecha 
155bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
165bd9c17dSSaurabh Gorecha 
175bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
185bd9c17dSSaurabh Gorecha /*
195bd9c17dSSaurabh Gorecha  * MPIDR_PRIMARY_CPU
205bd9c17dSSaurabh Gorecha  * You just need to have the correct core_affinity_val i.e. [7:0]
215bd9c17dSSaurabh Gorecha  * and cluster_affinity_val i.e. [15:8]
225bd9c17dSSaurabh Gorecha  * the other bits will be ignored
235bd9c17dSSaurabh Gorecha  */
245bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
255bd9c17dSSaurabh Gorecha #define MPIDR_PRIMARY_CPU	0x0000
265bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
275bd9c17dSSaurabh Gorecha 
285bd9c17dSSaurabh Gorecha #define QTI_PWR_LVL0		MPIDR_AFFLVL0
295bd9c17dSSaurabh Gorecha #define QTI_PWR_LVL1		MPIDR_AFFLVL1
305bd9c17dSSaurabh Gorecha #define QTI_PWR_LVL2		MPIDR_AFFLVL2
315bd9c17dSSaurabh Gorecha #define QTI_PWR_LVL3		MPIDR_AFFLVL3
325bd9c17dSSaurabh Gorecha 
335bd9c17dSSaurabh Gorecha /*
345bd9c17dSSaurabh Gorecha  *  Macros for local power states encoded by State-ID field
355bd9c17dSSaurabh Gorecha  *  within the power-state parameter.
365bd9c17dSSaurabh Gorecha  */
375bd9c17dSSaurabh Gorecha /* Local power state for power domains in Run state. */
385bd9c17dSSaurabh Gorecha #define QTI_LOCAL_STATE_RUN	0
395bd9c17dSSaurabh Gorecha /*
405bd9c17dSSaurabh Gorecha  * Local power state for clock-gating. Valid only for CPU and not cluster power
415bd9c17dSSaurabh Gorecha  * domains
425bd9c17dSSaurabh Gorecha  */
435bd9c17dSSaurabh Gorecha #define QTI_LOCAL_STATE_STB	1
445bd9c17dSSaurabh Gorecha /*
455bd9c17dSSaurabh Gorecha  * Local power state for retention. Valid for CPU and cluster power
465bd9c17dSSaurabh Gorecha  * domains
475bd9c17dSSaurabh Gorecha  */
485bd9c17dSSaurabh Gorecha #define QTI_LOCAL_STATE_RET	2
495bd9c17dSSaurabh Gorecha /*
505bd9c17dSSaurabh Gorecha  * Local power state for OFF/power down. Valid for CPU, cluster, RSC and PDC
515bd9c17dSSaurabh Gorecha  * power domains
525bd9c17dSSaurabh Gorecha  */
535bd9c17dSSaurabh Gorecha #define QTI_LOCAL_STATE_OFF	3
545bd9c17dSSaurabh Gorecha /*
555bd9c17dSSaurabh Gorecha  * Local power state for DEEPOFF/power rail down. Valid for CPU, cluster and RSC
565bd9c17dSSaurabh Gorecha  * power domains
575bd9c17dSSaurabh Gorecha  */
585bd9c17dSSaurabh Gorecha #define QTI_LOCAL_STATE_DEEPOFF	4
595bd9c17dSSaurabh Gorecha 
605bd9c17dSSaurabh Gorecha /*
615bd9c17dSSaurabh Gorecha  * This macro defines the deepest retention state possible. A higher state
625bd9c17dSSaurabh Gorecha  * id will represent an invalid or a power down state.
635bd9c17dSSaurabh Gorecha  */
645bd9c17dSSaurabh Gorecha #define PLAT_MAX_RET_STATE	QTI_LOCAL_STATE_RET
655bd9c17dSSaurabh Gorecha 
665bd9c17dSSaurabh Gorecha /*
675bd9c17dSSaurabh Gorecha  * This macro defines the deepest power down states possible. Any state ID
685bd9c17dSSaurabh Gorecha  * higher than this is invalid.
695bd9c17dSSaurabh Gorecha  */
705bd9c17dSSaurabh Gorecha #define PLAT_MAX_OFF_STATE	QTI_LOCAL_STATE_DEEPOFF
715bd9c17dSSaurabh Gorecha 
725bd9c17dSSaurabh Gorecha /******************************************************************************
735bd9c17dSSaurabh Gorecha  * Required platform porting definitions common to all ARM standard platforms
745bd9c17dSSaurabh Gorecha  *****************************************************************************/
755bd9c17dSSaurabh Gorecha 
765bd9c17dSSaurabh Gorecha /*
775bd9c17dSSaurabh Gorecha  * Platform specific page table and MMU setup constants.
785bd9c17dSSaurabh Gorecha  */
795bd9c17dSSaurabh Gorecha #define MAX_MMAP_REGIONS	(PLAT_QTI_MMAP_ENTRIES)
805bd9c17dSSaurabh Gorecha 
815bd9c17dSSaurabh Gorecha #define PLAT_PHY_ADDR_SPACE_SIZE	(1ull << 36)
825bd9c17dSSaurabh Gorecha #define PLAT_VIRT_ADDR_SPACE_SIZE	(1ull << 36)
835bd9c17dSSaurabh Gorecha 
845bd9c17dSSaurabh Gorecha #define ARM_CACHE_WRITEBACK_SHIFT	6
855bd9c17dSSaurabh Gorecha 
865bd9c17dSSaurabh Gorecha /*
875bd9c17dSSaurabh Gorecha  * Some data must be aligned on the biggest cache line size in the platform.
885bd9c17dSSaurabh Gorecha  * This is known only to the platform as it might have a combination of
895bd9c17dSSaurabh Gorecha  * integrated and external caches.
905bd9c17dSSaurabh Gorecha  */
915bd9c17dSSaurabh Gorecha #define CACHE_WRITEBACK_GRANULE		(1 << ARM_CACHE_WRITEBACK_SHIFT)
925bd9c17dSSaurabh Gorecha 
935bd9c17dSSaurabh Gorecha /*
945bd9c17dSSaurabh Gorecha  * One cache line needed for bakery locks on ARM platforms
955bd9c17dSSaurabh Gorecha  */
965bd9c17dSSaurabh Gorecha #define PLAT_PERCPU_BAKERY_LOCK_SIZE	(1 * CACHE_WRITEBACK_GRANULE)
975bd9c17dSSaurabh Gorecha 
985bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
995bd9c17dSSaurabh Gorecha /* PSCI power domain topology definitions */
1005bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
1015bd9c17dSSaurabh Gorecha /* One domain each to represent RSC and PDC level */
1025bd9c17dSSaurabh Gorecha #define PLAT_PDC_COUNT			1
1035bd9c17dSSaurabh Gorecha #define PLAT_RSC_COUNT			1
1045bd9c17dSSaurabh Gorecha 
1055bd9c17dSSaurabh Gorecha /* There is one top-level FCM cluster */
1065bd9c17dSSaurabh Gorecha #define PLAT_CLUSTER_COUNT		1
1075bd9c17dSSaurabh Gorecha 
1085bd9c17dSSaurabh Gorecha /* No. of cores in the FCM cluster */
1095bd9c17dSSaurabh Gorecha #define PLAT_CLUSTER0_CORE_COUNT	8
1105bd9c17dSSaurabh Gorecha 
1115bd9c17dSSaurabh Gorecha #define PLATFORM_CORE_COUNT		(PLAT_CLUSTER0_CORE_COUNT)
1125bd9c17dSSaurabh Gorecha 
1135bd9c17dSSaurabh Gorecha #define PLAT_NUM_PWR_DOMAINS		(PLAT_PDC_COUNT +\
1145bd9c17dSSaurabh Gorecha 					PLAT_RSC_COUNT	+\
1155bd9c17dSSaurabh Gorecha 					PLAT_CLUSTER_COUNT	+\
1165bd9c17dSSaurabh Gorecha 					PLATFORM_CORE_COUNT)
1175bd9c17dSSaurabh Gorecha 
1185bd9c17dSSaurabh Gorecha #define PLAT_MAX_PWR_LVL		3
1195bd9c17dSSaurabh Gorecha 
1205bd9c17dSSaurabh Gorecha /*****************************************************************************/
1215bd9c17dSSaurabh Gorecha /* Memory mapped Generic timer interfaces  */
1225bd9c17dSSaurabh Gorecha /*****************************************************************************/
1235bd9c17dSSaurabh Gorecha 
1245bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
1255bd9c17dSSaurabh Gorecha /* GIC-600 constants */
1265bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
1275bd9c17dSSaurabh Gorecha #define BASE_GICD_BASE		0x17A00000
1285bd9c17dSSaurabh Gorecha #define BASE_GICR_BASE		0x17A60000
1295bd9c17dSSaurabh Gorecha #define BASE_GICC_BASE		0x0
1305bd9c17dSSaurabh Gorecha #define BASE_GICH_BASE		0x0
1315bd9c17dSSaurabh Gorecha #define BASE_GICV_BASE		0x0
1325bd9c17dSSaurabh Gorecha 
1335bd9c17dSSaurabh Gorecha #define QTI_GICD_BASE		BASE_GICD_BASE
1345bd9c17dSSaurabh Gorecha #define QTI_GICR_BASE		BASE_GICR_BASE
1355bd9c17dSSaurabh Gorecha #define QTI_GICC_BASE		BASE_GICC_BASE
1365bd9c17dSSaurabh Gorecha 
1375bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
1385bd9c17dSSaurabh Gorecha 
1395bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
1405bd9c17dSSaurabh Gorecha /* UART related constants. */
1415bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
142*5a122759SOlivier Deprez #define PLAT_QTI_UART_BASE			0xa88000
1435bd9c17dSSaurabh Gorecha /* BASE ADDRESS OF DIFFERENT REGISTER SPACES IN HW */
1445bd9c17dSSaurabh Gorecha #define GENI4_CFG				0x0
1455bd9c17dSSaurabh Gorecha #define GENI4_IMAGE_REGS			0x100
1465bd9c17dSSaurabh Gorecha #define GENI4_DATA				0x600
1475bd9c17dSSaurabh Gorecha 
1485bd9c17dSSaurabh Gorecha /* COMMON STATUS/CONFIGURATION REGISTERS AND MASKS */
1495bd9c17dSSaurabh Gorecha #define GENI_STATUS_REG				(GENI4_CFG + 0x00000040)
1505bd9c17dSSaurabh Gorecha #define GENI_STATUS_M_GENI_CMD_ACTIVE_MASK	(0x1)
1515bd9c17dSSaurabh Gorecha #define UART_TX_TRANS_LEN_REG			(GENI4_IMAGE_REGS + 0x00000170)
1525bd9c17dSSaurabh Gorecha /* MASTER/TX ENGINE REGISTERS */
1535bd9c17dSSaurabh Gorecha #define GENI_M_CMD0_REG				(GENI4_DATA + 0x00000000)
1545bd9c17dSSaurabh Gorecha /* FIFO, STATUS REGISTERS AND MASKS */
1555bd9c17dSSaurabh Gorecha #define GENI_TX_FIFOn_REG			(GENI4_DATA + 0x00000100)
1565bd9c17dSSaurabh Gorecha 
1575bd9c17dSSaurabh Gorecha #define GENI_M_CMD_TX				(0x08000000)
1585bd9c17dSSaurabh Gorecha 
1595bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
1601b9f8ec7SSumit Garg /* Peripherals base addresses */
1611b9f8ec7SSumit Garg /*----------------------------------------------------------------------------*/
1621b9f8ec7SSumit Garg #define QTI_SEC_PRNG_BASE			0x790000
1631b9f8ec7SSumit Garg 
1641b9f8ec7SSumit Garg /*----------------------------------------------------------------------------*/
1655bd9c17dSSaurabh Gorecha /* Device address space for mapping. Excluding starting 4K */
1665bd9c17dSSaurabh Gorecha /*----------------------------------------------------------------------------*/
1675bd9c17dSSaurabh Gorecha #define QTI_DEVICE_BASE				0x1000
1685bd9c17dSSaurabh Gorecha #define QTI_DEVICE_SIZE				(0x80000000 - QTI_DEVICE_BASE)
1695bd9c17dSSaurabh Gorecha 
1705bd9c17dSSaurabh Gorecha /*******************************************************************************
1715bd9c17dSSaurabh Gorecha  * BL31 specific defines.
1725bd9c17dSSaurabh Gorecha  ******************************************************************************/
1735bd9c17dSSaurabh Gorecha /*
1745bd9c17dSSaurabh Gorecha  * Put BL31 at DDR as per memory map. BL31_BASE is calculated using the
1755bd9c17dSSaurabh Gorecha  * current BL31 debug size plus a little space for growth.
1765bd9c17dSSaurabh Gorecha  */
1775bd9c17dSSaurabh Gorecha #define BL31_LIMIT				(BL31_BASE + BL31_SIZE)
1785bd9c17dSSaurabh Gorecha 
179522a2277SJulius Werner /*----------------------------------------------------------------------------*/
180522a2277SJulius Werner /* AOSS registers */
181522a2277SJulius Werner /*----------------------------------------------------------------------------*/
182522a2277SJulius Werner #define QTI_PS_HOLD_REG				0x0C264000
183522a2277SJulius Werner /*----------------------------------------------------------------------------*/
1844b918452SSaurabh Gorecha /* AOP CMD DB  address space for mapping */
1854b918452SSaurabh Gorecha /*----------------------------------------------------------------------------*/
1864b918452SSaurabh Gorecha #define QTI_AOP_CMD_DB_BASE			0x80820000
1874b918452SSaurabh Gorecha #define QTI_AOP_CMD_DB_SIZE			0x00020000
1884b918452SSaurabh Gorecha /*----------------------------------------------------------------------------*/
1894b918452SSaurabh Gorecha /* SOC hw version register */
1904b918452SSaurabh Gorecha /*----------------------------------------------------------------------------*/
1914b918452SSaurabh Gorecha #define QTI_SOC_VERSION_MASK			U(0xFFFF)
1924b918452SSaurabh Gorecha #define QTI_SOC_REVISION_REG			0x1FC8000
1934b918452SSaurabh Gorecha #define QTI_SOC_REVISION_MASK			U(0xFFFF)
1944b918452SSaurabh Gorecha /*----------------------------------------------------------------------------*/
195b8a05116SShelley Chen /* LC PON register offsets */
196b8a05116SShelley Chen /*----------------------------------------------------------------------------*/
197b8a05116SShelley Chen #define PON_PS_HOLD_RESET_CTL			0x85a
198b8a05116SShelley Chen #define PON_PS_HOLD_RESET_CTL2			0x85b
199b8a05116SShelley Chen /*----------------------------------------------------------------------------*/
200522a2277SJulius Werner 
2015bd9c17dSSaurabh Gorecha #endif /* PLATFORM_DEF_H */
202