108438e24SVarun Wadekar /* 251a5e593SVarun Wadekar * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. 35f1803f9SVarun Wadekar * Copyright (c) 2020, NVIDIA Corporation. All rights reserved. 408438e24SVarun Wadekar * 582cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 608438e24SVarun Wadekar */ 708438e24SVarun Wadekar 8c3cf06f1SAntonio Nino Diaz #ifndef TEGRA_DEF_H 9c3cf06f1SAntonio Nino Diaz #define TEGRA_DEF_H 1008438e24SVarun Wadekar 1109d40e0eSAntonio Nino Diaz #include <lib/utils_def.h> 1270cb692eSVarun Wadekar 1308438e24SVarun Wadekar /******************************************************************************* 14*5a22eb42Sanzhou * Platform BL31 specific defines. 15*5a22eb42Sanzhou ******************************************************************************/ 16*5a22eb42Sanzhou #define BL31_SIZE U(0x40000) 17*5a22eb42Sanzhou 18*5a22eb42Sanzhou /******************************************************************************* 1994c672e7SVarun Wadekar * Power down state IDs 2094c672e7SVarun Wadekar ******************************************************************************/ 2170cb692eSVarun Wadekar #define PSTATE_ID_CORE_POWERDN U(7) 2270cb692eSVarun Wadekar #define PSTATE_ID_CLUSTER_IDLE U(16) 2370cb692eSVarun Wadekar #define PSTATE_ID_SOC_POWERDN U(27) 2494c672e7SVarun Wadekar 2594c672e7SVarun Wadekar /******************************************************************************* 2694c672e7SVarun Wadekar * This value is used by the PSCI implementation during the `SYSTEM_SUSPEND` 2794c672e7SVarun Wadekar * call as the `state-id` field in the 'power state' parameter. 2894c672e7SVarun Wadekar ******************************************************************************/ 2994c672e7SVarun Wadekar #define PLAT_SYS_SUSPEND_STATE_ID PSTATE_ID_SOC_POWERDN 3094c672e7SVarun Wadekar 3194c672e7SVarun Wadekar /******************************************************************************* 329f9bafa3SVarun Wadekar * Platform power states (used by PSCI framework) 339f9bafa3SVarun Wadekar * 349f9bafa3SVarun Wadekar * - PLAT_MAX_RET_STATE should be less than lowest PSTATE_ID 359f9bafa3SVarun Wadekar * - PLAT_MAX_OFF_STATE should be greater than the highest PSTATE_ID 369f9bafa3SVarun Wadekar ******************************************************************************/ 3770cb692eSVarun Wadekar #define PLAT_MAX_RET_STATE U(1) 3870cb692eSVarun Wadekar #define PLAT_MAX_OFF_STATE (PSTATE_ID_SOC_POWERDN + U(1)) 399f9bafa3SVarun Wadekar 409f9bafa3SVarun Wadekar /******************************************************************************* 411d11f73eSSteven Kao * Chip specific page table and MMU setup constants 421d11f73eSSteven Kao ******************************************************************************/ 431d11f73eSSteven Kao #define PLAT_PHY_ADDR_SPACE_SIZE (ULL(1) << 35) 441d11f73eSSteven Kao #define PLAT_VIRT_ADDR_SPACE_SIZE (ULL(1) << 35) 451d11f73eSSteven Kao 461d11f73eSSteven Kao /******************************************************************************* 47c33473d5SVarun Wadekar * SC7 entry firmware's header size 48c33473d5SVarun Wadekar ******************************************************************************/ 49c33473d5SVarun Wadekar #define SC7ENTRY_FW_HEADER_SIZE_BYTES U(0x400) 50c33473d5SVarun Wadekar 51c33473d5SVarun Wadekar /******************************************************************************* 52f8827c60SVarun Wadekar * Counter-timer physical secure timer PPI 53f8827c60SVarun Wadekar ******************************************************************************/ 54f8827c60SVarun Wadekar #define TEGRA210_TIMER1_IRQ 32 55f8827c60SVarun Wadekar 56f8827c60SVarun Wadekar /******************************************************************************* 57dd1a71f1SVarun Wadekar * iRAM memory constants 58dd1a71f1SVarun Wadekar ******************************************************************************/ 593ca3c27cSVarun Wadekar #define TEGRA_IRAM_BASE U(0x40000000) 602d5560f9SVarun Wadekar #define TEGRA_IRAM_A_SIZE U(0x10000) /* 64KB */ 613ca3c27cSVarun Wadekar #define TEGRA_IRAM_SIZE U(40000) /* 256KB */ 62dd1a71f1SVarun Wadekar 63dd1a71f1SVarun Wadekar /******************************************************************************* 6408438e24SVarun Wadekar * GIC memory map 6508438e24SVarun Wadekar ******************************************************************************/ 6670cb692eSVarun Wadekar #define TEGRA_GICD_BASE U(0x50041000) 6770cb692eSVarun Wadekar #define TEGRA_GICC_BASE U(0x50042000) 6808438e24SVarun Wadekar 6908438e24SVarun Wadekar /******************************************************************************* 7051a5e593SVarun Wadekar * Secure IRQ definitions 7151a5e593SVarun Wadekar ******************************************************************************/ 7251a5e593SVarun Wadekar #define TEGRA210_WDT_CPU_LEGACY_FIQ U(28) 7351a5e593SVarun Wadekar 7451a5e593SVarun Wadekar /******************************************************************************* 7542ca2d86SVarun Wadekar * Tegra Memory Select Switch Controller constants 7642ca2d86SVarun Wadekar ******************************************************************************/ 7770cb692eSVarun Wadekar #define TEGRA_MSELECT_BASE U(0x50060000) 7842ca2d86SVarun Wadekar 7970cb692eSVarun Wadekar #define MSELECT_CONFIG U(0x0) 8070cb692eSVarun Wadekar #define ENABLE_WRAP_INCR_MASTER2_BIT (U(1) << U(29)) 8170cb692eSVarun Wadekar #define ENABLE_WRAP_INCR_MASTER1_BIT (U(1) << U(28)) 8270cb692eSVarun Wadekar #define ENABLE_WRAP_INCR_MASTER0_BIT (U(1) << U(27)) 8370cb692eSVarun Wadekar #define UNSUPPORTED_TX_ERR_MASTER2_BIT (U(1) << U(25)) 8470cb692eSVarun Wadekar #define UNSUPPORTED_TX_ERR_MASTER1_BIT (U(1) << U(24)) 8542ca2d86SVarun Wadekar #define ENABLE_UNSUP_TX_ERRORS (UNSUPPORTED_TX_ERR_MASTER2_BIT | \ 8642ca2d86SVarun Wadekar UNSUPPORTED_TX_ERR_MASTER1_BIT) 8742ca2d86SVarun Wadekar #define ENABLE_WRAP_TO_INCR_BURSTS (ENABLE_WRAP_INCR_MASTER2_BIT | \ 8842ca2d86SVarun Wadekar ENABLE_WRAP_INCR_MASTER1_BIT | \ 8942ca2d86SVarun Wadekar ENABLE_WRAP_INCR_MASTER0_BIT) 9042ca2d86SVarun Wadekar 9142ca2d86SVarun Wadekar /******************************************************************************* 92dd1a71f1SVarun Wadekar * Tegra Resource Semaphore constants 93dd1a71f1SVarun Wadekar ******************************************************************************/ 94dd1a71f1SVarun Wadekar #define TEGRA_RES_SEMA_BASE 0x60001000UL 95dd1a71f1SVarun Wadekar #define STA_OFFSET 0UL 96dd1a71f1SVarun Wadekar #define SET_OFFSET 4UL 97dd1a71f1SVarun Wadekar #define CLR_OFFSET 8UL 98dd1a71f1SVarun Wadekar 99dd1a71f1SVarun Wadekar /******************************************************************************* 100dd1a71f1SVarun Wadekar * Tegra Primary Interrupt Controller constants 101dd1a71f1SVarun Wadekar ******************************************************************************/ 102dd1a71f1SVarun Wadekar #define TEGRA_PRI_ICTLR_BASE 0x60004000UL 103dd1a71f1SVarun Wadekar #define CPU_IEP_FIR_SET 0x18UL 104dd1a71f1SVarun Wadekar 105dd1a71f1SVarun Wadekar /******************************************************************************* 10608438e24SVarun Wadekar * Tegra micro-seconds timer constants 10708438e24SVarun Wadekar ******************************************************************************/ 10870cb692eSVarun Wadekar #define TEGRA_TMRUS_BASE U(0x60005010) 10970cb692eSVarun Wadekar #define TEGRA_TMRUS_SIZE U(0x1000) 11008438e24SVarun Wadekar 11108438e24SVarun Wadekar /******************************************************************************* 11208438e24SVarun Wadekar * Tegra Clock and Reset Controller constants 11308438e24SVarun Wadekar ******************************************************************************/ 11470cb692eSVarun Wadekar #define TEGRA_CAR_RESET_BASE U(0x60006000) 1152d5560f9SVarun Wadekar #define TEGRA_BOND_OUT_H U(0x74) 1162d5560f9SVarun Wadekar #define APB_DMA_LOCK_BIT (U(1) << 2) 1172d5560f9SVarun Wadekar #define AHB_DMA_LOCK_BIT (U(1) << 1) 1182d5560f9SVarun Wadekar #define TEGRA_BOND_OUT_U U(0x78) 1192d5560f9SVarun Wadekar #define IRAM_D_LOCK_BIT (U(1) << 23) 1202d5560f9SVarun Wadekar #define IRAM_C_LOCK_BIT (U(1) << 22) 1212d5560f9SVarun Wadekar #define IRAM_B_LOCK_BIT (U(1) << 21) 122f5f64e4dSVarun Wadekar #define TEGRA_GPU_RESET_REG_OFFSET U(0x28C) 1233e28e935SJeetesh Burman #define TEGRA_GPU_RESET_GPU_SET_OFFSET U(0x290) 124f5f64e4dSVarun Wadekar #define GPU_RESET_BIT (U(1) << 24) 1253e28e935SJeetesh Burman #define GPU_SET_BIT (U(1) << 24) 1262d5560f9SVarun Wadekar #define TEGRA_RST_DEV_SET_Y U(0x2a8) 1272d5560f9SVarun Wadekar #define NVENC_RESET_BIT (U(1) << 27) 1282d5560f9SVarun Wadekar #define TSECB_RESET_BIT (U(1) << 14) 1292d5560f9SVarun Wadekar #define APE_RESET_BIT (U(1) << 6) 1302d5560f9SVarun Wadekar #define NVJPG_RESET_BIT (U(1) << 3) 1312d5560f9SVarun Wadekar #define NVDEC_RESET_BIT (U(1) << 2) 1322d5560f9SVarun Wadekar #define TEGRA_RST_DEV_SET_L U(0x300) 1332d5560f9SVarun Wadekar #define HOST1X_RESET_BIT (U(1) << 28) 1342d5560f9SVarun Wadekar #define ISP_RESET_BIT (U(1) << 23) 1352d5560f9SVarun Wadekar #define USBD_RESET_BIT (U(1) << 22) 1362d5560f9SVarun Wadekar #define VI_RESET_BIT (U(1) << 20) 1372d5560f9SVarun Wadekar #define SDMMC4_RESET_BIT (U(1) << 15) 1382d5560f9SVarun Wadekar #define SDMMC1_RESET_BIT (U(1) << 14) 1392d5560f9SVarun Wadekar #define SDMMC2_RESET_BIT (U(1) << 9) 1402d5560f9SVarun Wadekar #define TEGRA_RST_DEV_SET_H U(0x308) 1412d5560f9SVarun Wadekar #define USB2_RESET_BIT (U(1) << 26) 1422d5560f9SVarun Wadekar #define APBDMA_RESET_BIT (U(1) << 2) 1432d5560f9SVarun Wadekar #define AHBDMA_RESET_BIT (U(1) << 1) 1442d5560f9SVarun Wadekar #define TEGRA_RST_DEV_SET_U U(0x310) 1452d5560f9SVarun Wadekar #define XUSB_DEV_RESET_BIT (U(1) << 31) 1462d5560f9SVarun Wadekar #define XUSB_HOST_RESET_BIT (U(1) << 25) 1472d5560f9SVarun Wadekar #define TSEC_RESET_BIT (U(1) << 19) 1482d5560f9SVarun Wadekar #define PCIE_RESET_BIT (U(1) << 6) 1492d5560f9SVarun Wadekar #define SDMMC3_RESET_BIT (U(1) << 5) 1502d5560f9SVarun Wadekar #define TEGRA_RST_DEVICES_V U(0x358) 1512d5560f9SVarun Wadekar #define TEGRA_RST_DEVICES_W U(0x35C) 1522d5560f9SVarun Wadekar #define ENTROPY_CLK_ENB_BIT (U(1) << 21) 1532d5560f9SVarun Wadekar #define TEGRA_CLK_OUT_ENB_V U(0x360) 1542d5560f9SVarun Wadekar #define SE_CLK_ENB_BIT (U(1) << 31) 1552d5560f9SVarun Wadekar #define TEGRA_CLK_OUT_ENB_W U(0x364) 1562d5560f9SVarun Wadekar #define ENTROPY_RESET_BIT (U(1) << 21) 15741554fb2SHarvey Hsieh #define TEGRA_CLK_RST_CTL_CLK_SRC_SE U(0x42C) 15841554fb2SHarvey Hsieh #define SE_CLK_SRC_MASK (U(7) << 29) 15941554fb2SHarvey Hsieh #define SE_CLK_SRC_CLK_M (U(6) << 29) 1602d5560f9SVarun Wadekar #define TEGRA_RST_DEV_SET_V U(0x430) 1612d5560f9SVarun Wadekar #define SE_RESET_BIT (U(1) << 31) 1622d5560f9SVarun Wadekar #define HDA_RESET_BIT (U(1) << 29) 1632d5560f9SVarun Wadekar #define SATA_RESET_BIT (U(1) << 28) 164dd1a71f1SVarun Wadekar #define TEGRA_RST_DEV_CLR_V U(0x434) 165dd1a71f1SVarun Wadekar #define TEGRA_CLK_ENB_V U(0x440) 16608438e24SVarun Wadekar 16708438e24SVarun Wadekar /******************************************************************************* 16808438e24SVarun Wadekar * Tegra Flow Controller constants 16908438e24SVarun Wadekar ******************************************************************************/ 17070cb692eSVarun Wadekar #define TEGRA_FLOWCTRL_BASE U(0x60007000) 17108438e24SVarun Wadekar 17208438e24SVarun Wadekar /******************************************************************************* 173ce3c97c9SMarvin Hsu * Tegra AHB arbitration controller 174ce3c97c9SMarvin Hsu ******************************************************************************/ 175ce3c97c9SMarvin Hsu #define TEGRA_AHB_ARB_BASE 0x6000C000UL 176ce3c97c9SMarvin Hsu 177ce3c97c9SMarvin Hsu /******************************************************************************* 17808438e24SVarun Wadekar * Tegra Secure Boot Controller constants 17908438e24SVarun Wadekar ******************************************************************************/ 18070cb692eSVarun Wadekar #define TEGRA_SB_BASE U(0x6000C200) 18108438e24SVarun Wadekar 18208438e24SVarun Wadekar /******************************************************************************* 18308438e24SVarun Wadekar * Tegra Exception Vectors constants 18408438e24SVarun Wadekar ******************************************************************************/ 18570cb692eSVarun Wadekar #define TEGRA_EVP_BASE U(0x6000F000) 18608438e24SVarun Wadekar 18708438e24SVarun Wadekar /******************************************************************************* 188e954ab8fSVarun Wadekar * Tegra Miscellaneous register constants 189e954ab8fSVarun Wadekar ******************************************************************************/ 19070cb692eSVarun Wadekar #define TEGRA_MISC_BASE U(0x70000000) 19170cb692eSVarun Wadekar #define HARDWARE_REVISION_OFFSET U(0x804) 192a01b0f16SVarun Wadekar #define APB_SLAVE_SECURITY_ENABLE U(0xC00) 193a01b0f16SVarun Wadekar #define PMC_SECURITY_EN_BIT (U(1) << 13) 1947db077f2SVarun Wadekar #define PINMUX_AUX_DVFS_PWM U(0x3184) 1957db077f2SVarun Wadekar #define PINMUX_PWM_TRISTATE (U(1) << 4) 196e954ab8fSVarun Wadekar 197e954ab8fSVarun Wadekar /******************************************************************************* 198e1084216SVarun Wadekar * Tegra UART controller base addresses 199e1084216SVarun Wadekar ******************************************************************************/ 20070cb692eSVarun Wadekar #define TEGRA_UARTA_BASE U(0x70006000) 20170cb692eSVarun Wadekar #define TEGRA_UARTB_BASE U(0x70006040) 20270cb692eSVarun Wadekar #define TEGRA_UARTC_BASE U(0x70006200) 20370cb692eSVarun Wadekar #define TEGRA_UARTD_BASE U(0x70006300) 20470cb692eSVarun Wadekar #define TEGRA_UARTE_BASE U(0x70006400) 205e1084216SVarun Wadekar 206e1084216SVarun Wadekar /******************************************************************************* 2075ed1755aSMarvin Hsu * Tegra Fuse Controller related constants 2085ed1755aSMarvin Hsu ******************************************************************************/ 2095ed1755aSMarvin Hsu #define TEGRA_FUSE_BASE 0x7000F800UL 2105ed1755aSMarvin Hsu #define FUSE_BOOT_SECURITY_INFO 0x268UL 2115ed1755aSMarvin Hsu #define FUSE_ATOMIC_SAVE_CARVEOUT_EN (0x1U << 7) 212620b2233SSamuel Payne #define FUSE_JTAG_SECUREID_VALID (0x104UL) 213620b2233SSamuel Payne #define ECID_VALID (0x1UL) 2145ed1755aSMarvin Hsu 2155ed1755aSMarvin Hsu 2165ed1755aSMarvin Hsu /******************************************************************************* 21708438e24SVarun Wadekar * Tegra Power Mgmt Controller constants 21808438e24SVarun Wadekar ******************************************************************************/ 21970cb692eSVarun Wadekar #define TEGRA_PMC_BASE U(0x7000E400) 220fdc08e2eSkalyani chidambaram #define TEGRA_PMC_SIZE U(0xC00) /* 3k */ 22108438e24SVarun Wadekar 22208438e24SVarun Wadekar /******************************************************************************* 223dd1a71f1SVarun Wadekar * Tegra Atomics constants 224dd1a71f1SVarun Wadekar ******************************************************************************/ 225dd1a71f1SVarun Wadekar #define TEGRA_ATOMICS_BASE 0x70016000UL 226dd1a71f1SVarun Wadekar #define TRIGGER0_REG_OFFSET 0UL 227dd1a71f1SVarun Wadekar #define TRIGGER_WIDTH_SHIFT 4UL 228dd1a71f1SVarun Wadekar #define TRIGGER_ID_SHIFT 16UL 229dd1a71f1SVarun Wadekar #define RESULT0_REG_OFFSET 0xC00UL 230dd1a71f1SVarun Wadekar 231dd1a71f1SVarun Wadekar /******************************************************************************* 23208438e24SVarun Wadekar * Tegra Memory Controller constants 23308438e24SVarun Wadekar ******************************************************************************/ 23470cb692eSVarun Wadekar #define TEGRA_MC_BASE U(0x70019000) 23508438e24SVarun Wadekar 236650d9c52SHarvey Hsieh /* Memory Controller Interrupt Status */ 237650d9c52SHarvey Hsieh #define MC_INTSTATUS 0x00U 238650d9c52SHarvey Hsieh 2390258840eSVarun Wadekar /* TZDRAM carveout configuration registers */ 24070cb692eSVarun Wadekar #define MC_SECURITY_CFG0_0 U(0x70) 24170cb692eSVarun Wadekar #define MC_SECURITY_CFG1_0 U(0x74) 24270cb692eSVarun Wadekar #define MC_SECURITY_CFG3_0 U(0x9BC) 2430258840eSVarun Wadekar 2440258840eSVarun Wadekar /* Video Memory carveout configuration registers */ 24570cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_BASE_HI U(0x978) 24670cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_BASE_LO U(0x648) 24770cb692eSVarun Wadekar #define MC_VIDEO_PROTECT_SIZE_MB U(0x64c) 248e9b9c2c8SAnthony Zhou #define MC_VIDEO_PROTECT_REG_CTRL U(0x650) 249e9b9c2c8SAnthony Zhou #define MC_VIDEO_PROTECT_WRITE_ACCESS_ENABLED U(3) 2500258840eSVarun Wadekar 25186d0a52bSSamuel Payne /* SMMU configuration registers*/ 252aa64c5fbSAnthony Zhou #define MC_SMMU_PPCS_ASID_0 0x270U 25386d0a52bSSamuel Payne #define PPCS_SMMU_ENABLE (0x1U << 31) 25486d0a52bSSamuel Payne 25506b19d58SVarun Wadekar /******************************************************************************* 2567db077f2SVarun Wadekar * Tegra CLDVFS constants 2577db077f2SVarun Wadekar ******************************************************************************/ 2587db077f2SVarun Wadekar #define TEGRA_CL_DVFS_BASE U(0x70110000) 2597db077f2SVarun Wadekar #define DVFS_DFLL_CTRL U(0x00) 2607db077f2SVarun Wadekar #define ENABLE_OPEN_LOOP U(1) 2617db077f2SVarun Wadekar #define ENABLE_CLOSED_LOOP U(2) 2627db077f2SVarun Wadekar #define DVFS_DFLL_OUTPUT_CFG U(0x20) 2637db077f2SVarun Wadekar #define DFLL_OUTPUT_CFG_I2C_EN_BIT (U(1) << 30) 2647db077f2SVarun Wadekar #define DFLL_OUTPUT_CFG_CLK_EN_BIT (U(1) << 6) 2657db077f2SVarun Wadekar 2667db077f2SVarun Wadekar /******************************************************************************* 267ce3c97c9SMarvin Hsu * Tegra SE constants 268ce3c97c9SMarvin Hsu ******************************************************************************/ 269ce3c97c9SMarvin Hsu #define TEGRA_SE1_BASE U(0x70012000) 270ce3c97c9SMarvin Hsu #define TEGRA_SE2_BASE U(0x70412000) 271ce3c97c9SMarvin Hsu #define TEGRA_PKA1_BASE U(0x70420000) 272ce3c97c9SMarvin Hsu #define TEGRA_SE2_RANGE_SIZE U(0x2000) 273ce3c97c9SMarvin Hsu #define SE_TZRAM_SECURITY U(0x4) 274ce3c97c9SMarvin Hsu 275ce3c97c9SMarvin Hsu /******************************************************************************* 27606b19d58SVarun Wadekar * Tegra TZRAM constants 27706b19d58SVarun Wadekar ******************************************************************************/ 27870cb692eSVarun Wadekar #define TEGRA_TZRAM_BASE U(0x7C010000) 27970cb692eSVarun Wadekar #define TEGRA_TZRAM_SIZE U(0x10000) 28006b19d58SVarun Wadekar 2815ed1755aSMarvin Hsu /******************************************************************************* 2825ed1755aSMarvin Hsu * Tegra TZRAM carveout constants 2835ed1755aSMarvin Hsu ******************************************************************************/ 2845ed1755aSMarvin Hsu #define TEGRA_TZRAM_CARVEOUT_BASE U(0x7C04C000) 2855ed1755aSMarvin Hsu #define TEGRA_TZRAM_CARVEOUT_SIZE U(0x4000) 2865ed1755aSMarvin Hsu 2875f1803f9SVarun Wadekar /******************************************************************************* 2885f1803f9SVarun Wadekar * Tegra DRAM memory base address 2895f1803f9SVarun Wadekar ******************************************************************************/ 2905f1803f9SVarun Wadekar #define TEGRA_DRAM_BASE ULL(0x80000000) 2915f1803f9SVarun Wadekar #define TEGRA_DRAM_END ULL(0x27FFFFFFF) 2925f1803f9SVarun Wadekar 293c3cf06f1SAntonio Nino Diaz #endif /* TEGRA_DEF_H */ 294