13cf3183fSVarun Wadekar /* 250cd8646SVarun Wadekar * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. 33cf3183fSVarun Wadekar * 482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 53cf3183fSVarun Wadekar */ 63cf3183fSVarun Wadekar 7*c3cf06f1SAntonio Nino Diaz #ifndef TEGRA_DEF_H 8*c3cf06f1SAntonio Nino Diaz #define TEGRA_DEF_H 93cf3183fSVarun Wadekar 1070cb692eSVarun Wadekar #include <utils_def.h> 1170cb692eSVarun Wadekar 123cf3183fSVarun Wadekar /******************************************************************************* 13dec349c8SVarun Wadekar * MCE apertures used by the ARI interface 14dec349c8SVarun Wadekar * 15dec349c8SVarun Wadekar * Aperture 0 - Cpu0 (ARM Cortex A-57) 16dec349c8SVarun Wadekar * Aperture 1 - Cpu1 (ARM Cortex A-57) 17dec349c8SVarun Wadekar * Aperture 2 - Cpu2 (ARM Cortex A-57) 18dec349c8SVarun Wadekar * Aperture 3 - Cpu3 (ARM Cortex A-57) 19dec349c8SVarun Wadekar * Aperture 4 - Cpu4 (Denver15) 20dec349c8SVarun Wadekar * Aperture 5 - Cpu5 (Denver15) 21dec349c8SVarun Wadekar ******************************************************************************/ 2270cb692eSVarun Wadekar #define MCE_ARI_APERTURE_0_OFFSET U(0x0) 2370cb692eSVarun Wadekar #define MCE_ARI_APERTURE_1_OFFSET U(0x10000) 2470cb692eSVarun Wadekar #define MCE_ARI_APERTURE_2_OFFSET U(0x20000) 2570cb692eSVarun Wadekar #define MCE_ARI_APERTURE_3_OFFSET U(0x30000) 2670cb692eSVarun Wadekar #define MCE_ARI_APERTURE_4_OFFSET U(0x40000) 2770cb692eSVarun Wadekar #define MCE_ARI_APERTURE_5_OFFSET U(0x50000) 28dec349c8SVarun Wadekar #define MCE_ARI_APERTURE_OFFSET_MAX MCE_APERTURE_5_OFFSET 29dec349c8SVarun Wadekar 30dec349c8SVarun Wadekar /* number of apertures */ 3170cb692eSVarun Wadekar #define MCE_ARI_APERTURES_MAX U(6) 32dec349c8SVarun Wadekar 33dec349c8SVarun Wadekar /* each ARI aperture is 64KB */ 3470cb692eSVarun Wadekar #define MCE_ARI_APERTURE_SIZE U(0x10000) 35dec349c8SVarun Wadekar 36dec349c8SVarun Wadekar /******************************************************************************* 37dec349c8SVarun Wadekar * CPU core id macros for the MCE_ONLINE_CORE ARI 38dec349c8SVarun Wadekar ******************************************************************************/ 3970cb692eSVarun Wadekar #define MCE_CORE_ID_MAX U(8) 4070cb692eSVarun Wadekar #define MCE_CORE_ID_MASK U(0x7) 41dec349c8SVarun Wadekar 42dec349c8SVarun Wadekar /******************************************************************************* 437afd4637SVarun Wadekar * These values are used by the PSCI implementation during the `CPU_SUSPEND` 447afd4637SVarun Wadekar * and `SYSTEM_SUSPEND` calls as the `state-id` field in the 'power state' 457afd4637SVarun Wadekar * parameter. 463cf3183fSVarun Wadekar ******************************************************************************/ 4770cb692eSVarun Wadekar #define PSTATE_ID_CORE_IDLE U(6) 4870cb692eSVarun Wadekar #define PSTATE_ID_CORE_POWERDN U(7) 4970cb692eSVarun Wadekar #define PSTATE_ID_SOC_POWERDN U(2) 507afd4637SVarun Wadekar 517afd4637SVarun Wadekar /******************************************************************************* 527afd4637SVarun Wadekar * Platform power states (used by PSCI framework) 537afd4637SVarun Wadekar * 547afd4637SVarun Wadekar * - PLAT_MAX_RET_STATE should be less than lowest PSTATE_ID 557afd4637SVarun Wadekar * - PLAT_MAX_OFF_STATE should be greater than the highest PSTATE_ID 567afd4637SVarun Wadekar ******************************************************************************/ 5770cb692eSVarun Wadekar #define PLAT_MAX_RET_STATE U(1) 5870cb692eSVarun Wadekar #define PLAT_MAX_OFF_STATE U(8) 593cf3183fSVarun Wadekar 603cf3183fSVarun Wadekar /******************************************************************************* 6150cd8646SVarun Wadekar * Secure IRQ definitions 6250cd8646SVarun Wadekar ******************************************************************************/ 6370cb692eSVarun Wadekar #define TEGRA186_TOP_WDT_IRQ U(49) 6470cb692eSVarun Wadekar #define TEGRA186_AON_WDT_IRQ U(50) 6550cd8646SVarun Wadekar 6670cb692eSVarun Wadekar #define TEGRA186_SEC_IRQ_TARGET_MASK U(0xF3) /* 4 A57 - 2 Denver */ 6750cd8646SVarun Wadekar 6850cd8646SVarun Wadekar /******************************************************************************* 693cf3183fSVarun Wadekar * Tegra Miscellanous register constants 703cf3183fSVarun Wadekar ******************************************************************************/ 7170cb692eSVarun Wadekar #define TEGRA_MISC_BASE U(0x00100000) 7270cb692eSVarun Wadekar #define HARDWARE_REVISION_OFFSET U(0x4) 73abd3a91dSVarun Wadekar 7470cb692eSVarun Wadekar #define MISCREG_PFCFG U(0x200C) 753cf3183fSVarun Wadekar 763cf3183fSVarun Wadekar /******************************************************************************* 77e64ce3abSVarun Wadekar * Tegra TSA Controller constants 78e64ce3abSVarun Wadekar ******************************************************************************/ 7970cb692eSVarun Wadekar #define TEGRA_TSA_BASE U(0x02400000) 80e64ce3abSVarun Wadekar 81e64ce3abSVarun Wadekar /******************************************************************************* 822dd7d41aSVarun Wadekar * TSA configuration registers 832dd7d41aSVarun Wadekar ******************************************************************************/ 8470cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SESWR U(0x4010) 8570cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SESWR_RESET U(0x1100) 8670cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_ETRW U(0x4038) 8770cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_ETRW_RESET U(0x1100) 8870cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SDMMCWAB U(0x5010) 8970cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SDMMCWAB_RESET U(0x1100) 9070cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AXISW U(0x7008) 9170cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AXISW_RESET U(0x1100) 9270cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_HDAW U(0xA008) 9370cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_HDAW_RESET U(0x100) 9470cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AONDMAW U(0xB018) 9570cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AONDMAW_RESET U(0x1100) 9670cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SCEDMAW U(0xD018) 9770cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SCEDMAW_RESET U(0x1100) 9870cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_BPMPDMAW U(0xD028) 9970cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_BPMPDMAW_RESET U(0x1100) 10070cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_APEDMAW U(0x12018) 10170cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_APEDMAW_RESET U(0x1100) 10270cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_UFSHCW U(0x13008) 10370cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_UFSHCW_RESET U(0x1100) 10470cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AFIW U(0x13018) 10570cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AFIW_RESET U(0x1100) 10670cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SATAW U(0x13028) 10770cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SATAW_RESET U(0x1100) 10870cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_EQOSW U(0x13038) 10970cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_EQOSW_RESET U(0x1100) 11070cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_XUSB_DEVW U(0x15008) 11170cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_XUSB_DEVW_RESET U(0x1100) 11270cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_XUSB_HOSTW U(0x15018) 11370cb692eSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_XUSB_HOSTW_RESET U(0x1100) 1142dd7d41aSVarun Wadekar 11570cb692eSVarun Wadekar #define TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_MASK (U(0x3) << 11) 11670cb692eSVarun Wadekar #define TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_PASTHRU (U(0) << 11) 1172dd7d41aSVarun Wadekar 1182dd7d41aSVarun Wadekar /******************************************************************************* 1193cf3183fSVarun Wadekar * Tegra Memory Controller constants 1203cf3183fSVarun Wadekar ******************************************************************************/ 12170cb692eSVarun Wadekar #define TEGRA_MC_STREAMID_BASE U(0x02C00000) 12270cb692eSVarun Wadekar #define TEGRA_MC_BASE U(0x02C10000) 1233cf3183fSVarun Wadekar 1249d42d23aSVarun Wadekar /* General Security Carveout register macros */ 12570cb692eSVarun Wadekar #define MC_GSC_CONFIG_REGS_SIZE U(0x40) 12670cb692eSVarun Wadekar #define MC_GSC_LOCK_CFG_SETTINGS_BIT (U(1) << 1) 12770cb692eSVarun Wadekar #define MC_GSC_ENABLE_TZ_LOCK_BIT (U(1) << 0) 12870cb692eSVarun Wadekar #define MC_GSC_SIZE_RANGE_4KB_SHIFT U(27) 12970cb692eSVarun Wadekar #define MC_GSC_BASE_LO_SHIFT U(12) 13070cb692eSVarun Wadekar #define MC_GSC_BASE_LO_MASK U(0xFFFFF) 13170cb692eSVarun Wadekar #define MC_GSC_BASE_HI_SHIFT U(0) 13270cb692eSVarun Wadekar #define MC_GSC_BASE_HI_MASK U(3) 1339d42d23aSVarun Wadekar 1340258840eSVarun Wadekar /* TZDRAM carveout configuration registers */ 13570cb692eSVarun Wadekar #define MC_SECURITY_CFG0_0 U(0x70) 13670cb692eSVarun Wadekar #define MC_SECURITY_CFG1_0 U(0x74) 13770cb692eSVarun Wadekar #define MC_SECURITY_CFG3_0 U(0x9BC) 1380258840eSVarun Wadekar 1390258840eSVarun Wadekar /* Video Memory carveout configuration registers */ 14070cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_BASE_HI U(0x978) 14170cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_BASE_LO U(0x648) 14270cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_SIZE_MB U(0x64C) 1439d42d23aSVarun Wadekar 1449d42d23aSVarun Wadekar /* 1459d42d23aSVarun Wadekar * Carveout (MC_SECURITY_CARVEOUT24) registers used to clear the 1469d42d23aSVarun Wadekar * non-overlapping Video memory region 1479d42d23aSVarun Wadekar */ 14870cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_CFG U(0x25A0) 14970cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_BASE_LO U(0x25A4) 15070cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_BASE_HI U(0x25A8) 15170cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_SIZE U(0x25AC) 15270cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_ACCESS_CFG0 U(0x25B0) 1530258840eSVarun Wadekar 1540258840eSVarun Wadekar /* TZRAM carveout (MC_SECURITY_CARVEOUT11) configuration registers */ 15570cb692eSVarun Wadekar #define MC_TZRAM_CARVEOUT_CFG U(0x2190) 15670cb692eSVarun Wadekar #define MC_TZRAM_BASE_LO U(0x2194) 15770cb692eSVarun Wadekar #define MC_TZRAM_BASE_HI U(0x2198) 15870cb692eSVarun Wadekar #define MC_TZRAM_SIZE U(0x219C) 15970cb692eSVarun Wadekar #define MC_TZRAM_CLIENT_ACCESS_CFG0 U(0x21A0) 1600258840eSVarun Wadekar 1613cf3183fSVarun Wadekar /******************************************************************************* 1623cf3183fSVarun Wadekar * Tegra UART Controller constants 1633cf3183fSVarun Wadekar ******************************************************************************/ 16470cb692eSVarun Wadekar #define TEGRA_UARTA_BASE U(0x03100000) 16570cb692eSVarun Wadekar #define TEGRA_UARTB_BASE U(0x03110000) 16670cb692eSVarun Wadekar #define TEGRA_UARTC_BASE U(0x0C280000) 16770cb692eSVarun Wadekar #define TEGRA_UARTD_BASE U(0x03130000) 16870cb692eSVarun Wadekar #define TEGRA_UARTE_BASE U(0x03140000) 16970cb692eSVarun Wadekar #define TEGRA_UARTF_BASE U(0x03150000) 17070cb692eSVarun Wadekar #define TEGRA_UARTG_BASE U(0x0C290000) 1713cf3183fSVarun Wadekar 1723cf3183fSVarun Wadekar /******************************************************************************* 1731eed3838SVarun Wadekar * Tegra Fuse Controller related constants 1741eed3838SVarun Wadekar ******************************************************************************/ 17570cb692eSVarun Wadekar #define TEGRA_FUSE_BASE U(0x03820000) 17670cb692eSVarun Wadekar #define OPT_SUBREVISION U(0x248) 17770cb692eSVarun Wadekar #define SUBREVISION_MASK U(0xFF) 1781eed3838SVarun Wadekar 1791eed3838SVarun Wadekar /******************************************************************************* 1803cf3183fSVarun Wadekar * GICv2 & interrupt handling related constants 1813cf3183fSVarun Wadekar ******************************************************************************/ 18270cb692eSVarun Wadekar #define TEGRA_GICD_BASE U(0x03881000) 18370cb692eSVarun Wadekar #define TEGRA_GICC_BASE U(0x03882000) 1843cf3183fSVarun Wadekar 1853cf3183fSVarun Wadekar /******************************************************************************* 18650402b17SVarun Wadekar * Security Engine related constants 18750402b17SVarun Wadekar ******************************************************************************/ 18870cb692eSVarun Wadekar #define TEGRA_SE0_BASE U(0x03AC0000) 18970cb692eSVarun Wadekar #define SE_MUTEX_WATCHDOG_NS_LIMIT U(0x6C) 19070cb692eSVarun Wadekar #define TEGRA_PKA1_BASE U(0x03AD0000) 19170cb692eSVarun Wadekar #define PKA_MUTEX_WATCHDOG_NS_LIMIT U(0x8144) 19270cb692eSVarun Wadekar #define TEGRA_RNG1_BASE U(0x03AE0000) 19370cb692eSVarun Wadekar #define RNG_MUTEX_WATCHDOG_NS_LIMIT U(0xFE0) 19450402b17SVarun Wadekar 19550402b17SVarun Wadekar /******************************************************************************* 1963cf3183fSVarun Wadekar * Tegra Clock and Reset Controller constants 1973cf3183fSVarun Wadekar ******************************************************************************/ 19870cb692eSVarun Wadekar #define TEGRA_CAR_RESET_BASE U(0x05000000) 199f5f64e4dSVarun Wadekar #define TEGRA_GPU_RESET_REG_OFFSET U(0x30) 200f5f64e4dSVarun Wadekar #define GPU_RESET_BIT (U(1) << 0) 2013cf3183fSVarun Wadekar 2023cf3183fSVarun Wadekar /******************************************************************************* 2033cf3183fSVarun Wadekar * Tegra micro-seconds timer constants 2043cf3183fSVarun Wadekar ******************************************************************************/ 20570cb692eSVarun Wadekar #define TEGRA_TMRUS_BASE U(0x0C2E0000) 20670cb692eSVarun Wadekar #define TEGRA_TMRUS_SIZE U(0x1000) 2073cf3183fSVarun Wadekar 2083cf3183fSVarun Wadekar /******************************************************************************* 2093cf3183fSVarun Wadekar * Tegra Power Mgmt Controller constants 2103cf3183fSVarun Wadekar ******************************************************************************/ 21170cb692eSVarun Wadekar #define TEGRA_PMC_BASE U(0x0C360000) 2123cf3183fSVarun Wadekar 2133cf3183fSVarun Wadekar /******************************************************************************* 2143cf3183fSVarun Wadekar * Tegra scratch registers constants 2153cf3183fSVarun Wadekar ******************************************************************************/ 21670cb692eSVarun Wadekar #define TEGRA_SCRATCH_BASE U(0x0C390000) 21770cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV1_LO U(0x658) 21870cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV1_HI U(0x65C) 21970cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV6 U(0x680) 22070cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV11_LO U(0x6A8) 22170cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV11_HI U(0x6AC) 22270cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV53_LO U(0x7F8) 22370cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV53_HI U(0x7FC) 22470cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV54_HI U(0x804) 22570cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV55_LO U(0x808) 22670cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV55_HI U(0x80C) 2273cf3183fSVarun Wadekar 2283cf3183fSVarun Wadekar /******************************************************************************* 229691bc22dSVarun Wadekar * Tegra Memory Mapped Control Register Access constants 2303cf3183fSVarun Wadekar ******************************************************************************/ 23170cb692eSVarun Wadekar #define TEGRA_MMCRAB_BASE U(0x0E000000) 2323cf3183fSVarun Wadekar 2333cf3183fSVarun Wadekar /******************************************************************************* 234691bc22dSVarun Wadekar * Tegra Memory Mapped Activity Monitor Register Access constants 235691bc22dSVarun Wadekar ******************************************************************************/ 23670cb692eSVarun Wadekar #define TEGRA_ARM_ACTMON_CTR_BASE U(0x0E060000) 23770cb692eSVarun Wadekar #define TEGRA_DENVER_ACTMON_CTR_BASE U(0x0E070000) 238691bc22dSVarun Wadekar 239691bc22dSVarun Wadekar /******************************************************************************* 2403cf3183fSVarun Wadekar * Tegra SMMU Controller constants 2413cf3183fSVarun Wadekar ******************************************************************************/ 24270cb692eSVarun Wadekar #define TEGRA_SMMU0_BASE U(0x12000000) 2433cf3183fSVarun Wadekar 244d48c0c45SVarun Wadekar /******************************************************************************* 245d48c0c45SVarun Wadekar * Tegra TZRAM constants 246d48c0c45SVarun Wadekar ******************************************************************************/ 24770cb692eSVarun Wadekar #define TEGRA_TZRAM_BASE U(0x30000000) 24870cb692eSVarun Wadekar #define TEGRA_TZRAM_SIZE U(0x40000) 249d48c0c45SVarun Wadekar 250*c3cf06f1SAntonio Nino Diaz #endif /* TEGRA_DEF_H */ 251