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 7c3cf06f1SAntonio Nino Diaz #ifndef TEGRA_DEF_H 8c3cf06f1SAntonio Nino Diaz #define TEGRA_DEF_H 93cf3183fSVarun Wadekar 1009d40e0eSAntonio Nino Diaz #include <lib/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 11561beb3e0SAnthony Zhou #define TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_MASK (ULL(0x3) << 11) 11661beb3e0SAnthony Zhou #define TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_PASTHRU (ULL(0) << 11) 1172dd7d41aSVarun Wadekar 1182dd7d41aSVarun Wadekar /******************************************************************************* 119647d4a03SVarun Wadekar * Tegra General Purpose Centralised DMA constants 120647d4a03SVarun Wadekar ******************************************************************************/ 121aa64c5fbSAnthony Zhou #define TEGRA_GPCDMA_BASE ULL(0x2610000) 122647d4a03SVarun Wadekar 123647d4a03SVarun Wadekar /******************************************************************************* 1243cf3183fSVarun Wadekar * Tegra Memory Controller constants 1253cf3183fSVarun Wadekar ******************************************************************************/ 12670cb692eSVarun Wadekar #define TEGRA_MC_STREAMID_BASE U(0x02C00000) 12770cb692eSVarun Wadekar #define TEGRA_MC_BASE U(0x02C10000) 1283cf3183fSVarun Wadekar 1299d42d23aSVarun Wadekar /* General Security Carveout register macros */ 13070cb692eSVarun Wadekar #define MC_GSC_CONFIG_REGS_SIZE U(0x40) 13170cb692eSVarun Wadekar #define MC_GSC_LOCK_CFG_SETTINGS_BIT (U(1) << 1) 13261beb3e0SAnthony Zhou #define MC_GSC_ENABLE_TZ_LOCK_BIT (ULL(1) << 0) 13370cb692eSVarun Wadekar #define MC_GSC_SIZE_RANGE_4KB_SHIFT U(27) 13470cb692eSVarun Wadekar #define MC_GSC_BASE_LO_SHIFT U(12) 13570cb692eSVarun Wadekar #define MC_GSC_BASE_LO_MASK U(0xFFFFF) 13670cb692eSVarun Wadekar #define MC_GSC_BASE_HI_SHIFT U(0) 13770cb692eSVarun Wadekar #define MC_GSC_BASE_HI_MASK U(3) 138*d6306d14SSteven Kao #define MC_GSC_ENABLE_CPU_SECURE_BIT (U(1) << 31) 1399d42d23aSVarun Wadekar 1400258840eSVarun Wadekar /* TZDRAM carveout configuration registers */ 14170cb692eSVarun Wadekar #define MC_SECURITY_CFG0_0 U(0x70) 14270cb692eSVarun Wadekar #define MC_SECURITY_CFG1_0 U(0x74) 14370cb692eSVarun Wadekar #define MC_SECURITY_CFG3_0 U(0x9BC) 1440258840eSVarun Wadekar 14570da35b0SHarvey Hsieh #define MC_SECURITY_BOM_MASK (U(0xFFF) << 20) 14670da35b0SHarvey Hsieh #define MC_SECURITY_SIZE_MB_MASK (U(0x1FFF) << 0) 14770da35b0SHarvey Hsieh #define MC_SECURITY_BOM_HI_MASK (U(0x3) << 0) 14870da35b0SHarvey Hsieh 1490258840eSVarun Wadekar /* Video Memory carveout configuration registers */ 15070cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_BASE_HI U(0x978) 15170cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_BASE_LO U(0x648) 15270cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_SIZE_MB U(0x64C) 1539d42d23aSVarun Wadekar 1549d42d23aSVarun Wadekar /* 1559d42d23aSVarun Wadekar * Carveout (MC_SECURITY_CARVEOUT24) registers used to clear the 1569d42d23aSVarun Wadekar * non-overlapping Video memory region 1579d42d23aSVarun Wadekar */ 15870cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_CFG U(0x25A0) 15970cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_BASE_LO U(0x25A4) 16070cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_BASE_HI U(0x25A8) 16170cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_SIZE U(0x25AC) 16270cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_CLEAR_ACCESS_CFG0 U(0x25B0) 1630258840eSVarun Wadekar 1640258840eSVarun Wadekar /* TZRAM carveout (MC_SECURITY_CARVEOUT11) configuration registers */ 16570cb692eSVarun Wadekar #define MC_TZRAM_CARVEOUT_CFG U(0x2190) 16670cb692eSVarun Wadekar #define MC_TZRAM_BASE_LO U(0x2194) 16770cb692eSVarun Wadekar #define MC_TZRAM_BASE_HI U(0x2198) 16870cb692eSVarun Wadekar #define MC_TZRAM_SIZE U(0x219C) 169*d6306d14SSteven Kao #define MC_TZRAM_CLIENT_ACCESS0_CFG0 U(0x21A0) 170*d6306d14SSteven Kao #define MC_TZRAM_CLIENT_ACCESS1_CFG0 U(0x21A4) 171*d6306d14SSteven Kao #define TZRAM_ALLOW_MPCORER (U(1) << 7) 172*d6306d14SSteven Kao #define TZRAM_ALLOW_MPCOREW (U(1) << 25) 1730258840eSVarun Wadekar 1743cf3183fSVarun Wadekar /******************************************************************************* 1753cf3183fSVarun Wadekar * Tegra UART Controller constants 1763cf3183fSVarun Wadekar ******************************************************************************/ 17770cb692eSVarun Wadekar #define TEGRA_UARTA_BASE U(0x03100000) 17870cb692eSVarun Wadekar #define TEGRA_UARTB_BASE U(0x03110000) 17970cb692eSVarun Wadekar #define TEGRA_UARTC_BASE U(0x0C280000) 18070cb692eSVarun Wadekar #define TEGRA_UARTD_BASE U(0x03130000) 18170cb692eSVarun Wadekar #define TEGRA_UARTE_BASE U(0x03140000) 18270cb692eSVarun Wadekar #define TEGRA_UARTF_BASE U(0x03150000) 18370cb692eSVarun Wadekar #define TEGRA_UARTG_BASE U(0x0C290000) 1843cf3183fSVarun Wadekar 1853cf3183fSVarun Wadekar /******************************************************************************* 1861eed3838SVarun Wadekar * Tegra Fuse Controller related constants 1871eed3838SVarun Wadekar ******************************************************************************/ 18870cb692eSVarun Wadekar #define TEGRA_FUSE_BASE U(0x03820000) 18970cb692eSVarun Wadekar #define OPT_SUBREVISION U(0x248) 19070cb692eSVarun Wadekar #define SUBREVISION_MASK U(0xFF) 1911eed3838SVarun Wadekar 1921eed3838SVarun Wadekar /******************************************************************************* 1933cf3183fSVarun Wadekar * GICv2 & interrupt handling related constants 1943cf3183fSVarun Wadekar ******************************************************************************/ 19570cb692eSVarun Wadekar #define TEGRA_GICD_BASE U(0x03881000) 19670cb692eSVarun Wadekar #define TEGRA_GICC_BASE U(0x03882000) 1973cf3183fSVarun Wadekar 1983cf3183fSVarun Wadekar /******************************************************************************* 19950402b17SVarun Wadekar * Security Engine related constants 20050402b17SVarun Wadekar ******************************************************************************/ 20170cb692eSVarun Wadekar #define TEGRA_SE0_BASE U(0x03AC0000) 20270cb692eSVarun Wadekar #define SE_MUTEX_WATCHDOG_NS_LIMIT U(0x6C) 20370cb692eSVarun Wadekar #define TEGRA_PKA1_BASE U(0x03AD0000) 20470cb692eSVarun Wadekar #define PKA_MUTEX_WATCHDOG_NS_LIMIT U(0x8144) 20570cb692eSVarun Wadekar #define TEGRA_RNG1_BASE U(0x03AE0000) 20670cb692eSVarun Wadekar #define RNG_MUTEX_WATCHDOG_NS_LIMIT U(0xFE0) 20750402b17SVarun Wadekar 20850402b17SVarun Wadekar /******************************************************************************* 2093cf3183fSVarun Wadekar * Tegra Clock and Reset Controller constants 2103cf3183fSVarun Wadekar ******************************************************************************/ 21170cb692eSVarun Wadekar #define TEGRA_CAR_RESET_BASE U(0x05000000) 212f5f64e4dSVarun Wadekar #define TEGRA_GPU_RESET_REG_OFFSET U(0x30) 213f5f64e4dSVarun Wadekar #define GPU_RESET_BIT (U(1) << 0) 214647d4a03SVarun Wadekar #define TEGRA_GPCDMA_RST_SET_REG_OFFSET U(0x6A0004) 215647d4a03SVarun Wadekar #define TEGRA_GPCDMA_RST_CLR_REG_OFFSET U(0x6A0008) 2163cf3183fSVarun Wadekar 2173cf3183fSVarun Wadekar /******************************************************************************* 2183cf3183fSVarun Wadekar * Tegra micro-seconds timer constants 2193cf3183fSVarun Wadekar ******************************************************************************/ 22070cb692eSVarun Wadekar #define TEGRA_TMRUS_BASE U(0x0C2E0000) 22170cb692eSVarun Wadekar #define TEGRA_TMRUS_SIZE U(0x1000) 2223cf3183fSVarun Wadekar 2233cf3183fSVarun Wadekar /******************************************************************************* 2243cf3183fSVarun Wadekar * Tegra Power Mgmt Controller constants 2253cf3183fSVarun Wadekar ******************************************************************************/ 22670cb692eSVarun Wadekar #define TEGRA_PMC_BASE U(0x0C360000) 2273cf3183fSVarun Wadekar 2283cf3183fSVarun Wadekar /******************************************************************************* 2293cf3183fSVarun Wadekar * Tegra scratch registers constants 2303cf3183fSVarun Wadekar ******************************************************************************/ 23170cb692eSVarun Wadekar #define TEGRA_SCRATCH_BASE U(0x0C390000) 23270cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV1_LO U(0x658) 23370cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV1_HI U(0x65C) 23470cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV6 U(0x680) 23570cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV11_LO U(0x6A8) 23670cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV11_HI U(0x6AC) 23770cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV53_LO U(0x7F8) 23870cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV53_HI U(0x7FC) 23970cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV55_LO U(0x808) 24070cb692eSVarun Wadekar #define SECURE_SCRATCH_RSV55_HI U(0x80C) 2413cf3183fSVarun Wadekar 2423cf3183fSVarun Wadekar /******************************************************************************* 243691bc22dSVarun Wadekar * Tegra Memory Mapped Control Register Access constants 2443cf3183fSVarun Wadekar ******************************************************************************/ 24570cb692eSVarun Wadekar #define TEGRA_MMCRAB_BASE U(0x0E000000) 2463cf3183fSVarun Wadekar 2473cf3183fSVarun Wadekar /******************************************************************************* 248691bc22dSVarun Wadekar * Tegra Memory Mapped Activity Monitor Register Access constants 249691bc22dSVarun Wadekar ******************************************************************************/ 25070cb692eSVarun Wadekar #define TEGRA_ARM_ACTMON_CTR_BASE U(0x0E060000) 25170cb692eSVarun Wadekar #define TEGRA_DENVER_ACTMON_CTR_BASE U(0x0E070000) 252691bc22dSVarun Wadekar 253691bc22dSVarun Wadekar /******************************************************************************* 2543cf3183fSVarun Wadekar * Tegra SMMU Controller constants 2553cf3183fSVarun Wadekar ******************************************************************************/ 25670cb692eSVarun Wadekar #define TEGRA_SMMU0_BASE U(0x12000000) 2573cf3183fSVarun Wadekar 258d48c0c45SVarun Wadekar /******************************************************************************* 259d48c0c45SVarun Wadekar * Tegra TZRAM constants 260d48c0c45SVarun Wadekar ******************************************************************************/ 26170cb692eSVarun Wadekar #define TEGRA_TZRAM_BASE U(0x30000000) 26270cb692eSVarun Wadekar #define TEGRA_TZRAM_SIZE U(0x40000) 263d48c0c45SVarun Wadekar 264c3cf06f1SAntonio Nino Diaz #endif /* TEGRA_DEF_H */ 265