1 /* 2 * Copyright (c) 2016-2020, Broadcom 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef SR_DEF_H 8 #define SR_DEF_H 9 10 #ifndef __ASSEMBLER__ 11 #include <lib/mmio.h> 12 #endif 13 14 #include <common/interrupt_props.h> 15 #include <drivers/arm/gic_common.h> 16 17 #include <crmu_def.h> 18 19 /* Special value used to verify platform parameters from BL2 to BL3-1 */ 20 #define BRCM_BL31_PLAT_PARAM_VAL ULL(0x0f1e2d3c4b5a6978) 21 22 #define MHB_BASE_ADDR 0x60000000 23 #define PLAT_BRCM_CCN_BASE 0x61000000 24 #define CORESIGHT_BASE_ADDR 0x62000000 25 #define SMMU_BASE 0x64000000 26 27 /* memory map entries*/ 28 /* Grouping block device for bigger MMU region */ 29 /* covers MHB, CNN, coresight, GIC, MMU, APB, CRMU */ 30 #define PERIPH0_BASE MHB_BASE_ADDR 31 #define PERIPH0_SIZE 0x06d00000 32 33 #define PERIPH1_BASE 0x66d80000 34 #define PERIPH1_SIZE 0x00f80000 35 36 #define HSLS_BASE_ADDR 0x68900000 37 #define HSLS_SIZE 0x04500000 38 39 #define GIC500_BASE 0x63c00000 40 #define GIC500_SIZE 0x400000 41 42 /******************************************************************************* 43 * CCN related constants 44 ******************************************************************************/ 45 #define OLY_MN_REGISTERS_NODE0_SECURE_ACCESS (PLAT_BRCM_CCN_BASE + 0x0) 46 47 #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL (PLAT_BRCM_CCN_BASE + 0x880500) 48 49 /* Used for acceleration of coherent ordered writes */ 50 #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_WUO BIT(4) 51 /* Wait for completion of requests at RN-I */ 52 #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_WFC BIT(3) 53 54 /* 55 * Forces all reads from the RN-I to be sent with the request order bit set 56 * and this ensures ordered allocation of read data buffers in the RN-I 57 */ 58 #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_RQO BIT(5) 59 60 #define OLY_RNI3PDVM_REGISTERS_NODE14_AUX_CTL (PLAT_BRCM_CCN_BASE + 0x8e0500) 61 62 /* Wait for completion of requests at RN-I */ 63 #define OLY_RNI3PDVM_REGISTERS_NODE14_AUX_CTL_WFC BIT(3) 64 65 #define OLY_HNI_REGISTERS_NODE0_POS_CONTROL (PLAT_BRCM_CCN_BASE + 0x80000) 66 #define POS_CONTROL_HNI_POS_EN BIT(0) 67 68 #define OLY_HNI_REGISTERS_NODE0_PCIERC_RNI_NODEID_LIST \ 69 (PLAT_BRCM_CCN_BASE + 0x80008) 70 /* PAXB and PAXC connected to 8th Node */ 71 #define SR_RNI_PCIE_CONNECTED BIT(8) 72 /* PAXB connected to 6th Node */ 73 #define SRP_RNI_PCIE_CONNECTED BIT(6) 74 75 #define OLY_HNI_REGISTERS_NODE0_SA_AUX_CTL (PLAT_BRCM_CCN_BASE + 0x80500) 76 #define SA_AUX_CTL_POS_EARLY_WR_COMP_EN BIT(5) 77 #define SA_AUX_CTL_SER_DEVNE_WR BIT(9) 78 79 /******************************************************************************* 80 * Coresight related constants 81 ******************************************************************************/ 82 #define CORESIGHT_BASE_ADDR 0x62000000 83 84 #define IHOST0_BASE 0x66000000 85 #define IHOST_ADDR_SPACE 0x2000 86 87 /******************************************************************************* 88 * SCR related constants 89 ******************************************************************************/ 90 #define SCR_BASE 0x6600a000 91 #define SCR_ARCACHE_OFFSET 4 92 #define SCR_ARCACHE_MASK (0x3 << SCR_ARCACHE_OFFSET) 93 #define SCR_AWCACHE_OFFSET 6 94 #define SCR_AWCACHE_MASK (0x3 << SCR_AWCACHE_OFFSET) 95 #define SCR_AXCACHE_CONFIG_MASK (SCR_ARCACHE_MASK | SCR_AWCACHE_MASK) 96 #define SCR_TBUX_AXCACHE_CONFIG ((0x1 << SCR_AWCACHE_OFFSET) | \ 97 (0x1 << SCR_ARCACHE_OFFSET)) 98 99 #define SCR_REGS_SCR_SOFT_RESET (SCR_BASE + 0x1c) 100 #define SCR_REGS_GIC_SOFT_RESET BIT(0) 101 102 #define SCR_GPV_BASE 0x66100000 103 #define SCR_NOC_SECURITY0 (SCR_GPV_BASE + 0x08) 104 #define SCR_NOC_DDR_REGISTER_ACCESS (SCR_GPV_BASE + 0x30) 105 106 /******************************************************************************* 107 * MEMC and DDR related constants 108 ******************************************************************************/ 109 #define DDR0_CONTROL_ROOT 0x66200000 110 #define EMEM_SS_CFG_0_ROOT 0x66202000 111 #define EMEM_SYS_IF_0_ROOT 0x66204000 112 #define DDR_PHY0_ROOT 0x66240000 113 114 #define DDR1_CONTROL_ROOT 0x66280000 115 #define EMEM_SS_CFG_1_ROOT 0x66282000 116 #define EMEM_SYS_IF_1_ROOT 0x66284000 117 #define DDR_PHY1_ROOT 0x662c0000 118 119 #define DDR2_CONTROL_ROOT 0x66300000 120 #define EMEM_SS_CFG_2_ROOT 0x66302000 121 #define EMEM_SYS_IF_2_ROOT 0x66304000 122 #define DDR_PHY2_ROOT 0x66340000 123 124 /******************************************************************************* 125 * TZC400 related constants 126 ******************************************************************************/ 127 #define TZC_400_BASE 0x66d84000 128 129 /******************************************************************************* 130 * FS4 related constants 131 ******************************************************************************/ 132 #define FS4_SRAM_IDM_IO_CONTROL_DIRECT 0x66d8a408 133 134 #define FS4_CRYPTO_IDM_IO_CONTROL_DIRECT 0x66d8e408 135 #define FS4_CRYPTO_IDM_RESET_CONTROL 0x66d8e800 136 #define FS4_CRYPTO_BASE 0x67000000 137 #define FS4_CRYPTO_DME_BASE (FS4_CRYPTO_BASE + 0x280000) 138 139 #define FS4_RAID_IDM_IO_CONTROL_DIRECT 0x66d8f408 140 #define FS4_RAID_IDM_IO_STATUS 0x66d8f500 141 #define FS4_RAID_IDM_RESET_CONTROL 0x66d8f800 142 #define FS4_RAID_BASE 0x67400000 143 #define FS4_RAID_DME_BASE (FS4_RAID_BASE + 0x280000) 144 145 #define FS4_CRYPTO_GPV_BASE 0x67300000 146 #define FS4_RAID_GPV_BASE 0x67700000 147 148 #define FS6_PKI_BASE 0x67400000 149 #define FS6_PKI_DME_BASE 0x66D90000 150 151 #define TZC400_FS_SRAM_ROOT 0x66d84000 152 #define GATE_KEEPER_OFFSET 0x8 153 #define REGION_ATTRIBUTES_0_OFFSET 0x110 154 #define REGION_ID_ACCESS_0_OFFSET 0x114 155 156 #define NIC400_FS_NOC_ROOT 0x66e00000 157 #define NIC400_FS_NOC_SECURITY2_OFFSET 0x10 158 #define NIC400_FS_NOC_SECURITY4_OFFSET 0x18 159 #define NIC400_FS_NOC_SECURITY7_OFFSET 0x24 160 161 /******************************************************************************* 162 * SATA PHY related constants 163 ******************************************************************************/ 164 #define SATA_BASE 0x67d00000 165 166 /******************************************************************************* 167 * USB related constants 168 ******************************************************************************/ 169 #define USB_BASE 0x68500000 170 #define USB_SIZE 0x00400000 171 #define XHC_BASE (USB_BASE + 0x11000) 172 #define MAX_USB_PORTS 3 173 174 /******************************************************************************* 175 * HSLS related constants 176 ******************************************************************************/ 177 #define IPROC_ROOT 0x68900000 178 #define HSLS_ICFG_REGS_BASE IPROC_ROOT 179 #define HSLS_IDM_REGS_BASE 0x68e00000 180 #define HSLS_MODE_SEL_CONTROL 0x68a40000 181 #define HSLS_TZPC_BASE 0x68b40000 182 #define HSLS_GPV_BASE 0x6cd00000 183 184 /******************************************************************************* 185 * Chip ID related constants 186 ******************************************************************************/ 187 #define ICFG_CHIP_ID HSLS_ICFG_REGS_BASE 188 #define CHIP_ID_SR 0xd730 189 #define CHIP_ID_NS3Z 0xe56d 190 #define CHIP_ID_MASK 0xf000 191 #define ICFG_CHIP_REVISION_ID (HSLS_ICFG_REGS_BASE + 0x4) 192 #define PLAT_CHIP_ID_GET (mmio_read_32(ICFG_CHIP_ID)) 193 #define PLAT_CHIP_REV_GET (mmio_read_32(ICFG_CHIP_REVISION_ID)) 194 195 /******************************************************************************* 196 * Timers related constants 197 ******************************************************************************/ 198 /* ChipcommonG_tim0_TIM_TIMER1Load 0x68930000 */ 199 #define SP804_TIMER0_BASE 0x68930000 200 #define SP804_TIMER1_BASE 0x68940000 201 #define SP804_TIMER0_TIMER_VAL_REG_OFFSET 0x4 202 #define SP804_TIMER0_CLKMULT 2 203 #define SP804_TIMER0_CLKDIV 25 204 205 /******************************************************************************* 206 * GPIO related constants 207 ******************************************************************************/ 208 #define IPROC_GPIO_NS_BASE 0x689d0000 209 #define IPROC_GPIO_S_BASE 0x68b00000 210 #define IPROC_GPIO_NR 151 211 #define GPIO_S_CNTRL_REG 0x68b60000 212 213 /******************************************************************************* 214 * I2C SMBUS related constants 215 ******************************************************************************/ 216 #define SMBUS0_REGS_BASE 0x689b0000 217 #define SMBUS1_REGS_BASE 0x689e0000 218 219 /******************************************************************************* 220 * UART related constants 221 ******************************************************************************/ 222 #define ChipcommonG_UART0_UART_RBR_THR_DLL 0x68a00000 223 #define ChipcommonG_UART1_UART_RBR_THR_DLL 0x68a10000 224 #define ChipcommonG_UART2_UART_RBR_THR_DLL 0x68a20000 225 #define ChipcommonG_UART3_UART_RBR_THR_DLL 0x68a30000 226 227 #define UART0_BASE_ADDR ChipcommonG_UART0_UART_RBR_THR_DLL 228 #define UART1_BASE_ADDR ChipcommonG_UART1_UART_RBR_THR_DLL 229 #define UART2_BASE_ADDR ChipcommonG_UART2_UART_RBR_THR_DLL 230 #define UART3_BASE_ADDR ChipcommonG_UART3_UART_RBR_THR_DLL 231 232 #define UART_SPR_OFFSET 0x1c /* Scratch Pad Register */ 233 234 #define LOG_LEVEL_REGISTER CRMU_SPARE_REG_3 235 #define GET_LOG_LEVEL() (mmio_read_32(LOG_LEVEL_REGISTER)) 236 #define SET_LOG_LEVEL(x) (mmio_write_32(LOG_LEVEL_REGISTER, x)) 237 238 #define IO_RETRY_REGISTER CRMU_SPARE_REG_4 239 240 #define DWC_UART_REFCLK (25 * 1000 * 1000) 241 #define DWC_UART_REFCLK_DIV 16 242 /* Baud rate in emulation will vary based on setting of 25MHz SCLK */ 243 #define DWC_UART_BAUDRATE 115200 244 245 #define BRCM_CRASH_CONSOLE_BASE UART1_BASE_ADDR 246 #define BRCM_CRASH_CONSOLE_REFCLK DWC_UART_REFCLK 247 #define BRCM_CRASH_CONSOLE_BAUDRATE DWC_UART_BAUDRATE 248 249 #ifdef BOARD_CONSOLE_UART 250 #define PLAT_BRCM_BOOT_UART_BASE BOARD_CONSOLE_UART 251 #else 252 #define PLAT_BRCM_BOOT_UART_BASE UART1_BASE_ADDR 253 #endif 254 #define CONSOLE_UART_ID ((PLAT_BRCM_BOOT_UART_BASE >> 16) & 0x3) 255 256 #define PLAT_BRCM_BOOT_UART_CLK_IN_HZ DWC_UART_REFCLK 257 #define BRCM_CONSOLE_BAUDRATE DWC_UART_BAUDRATE 258 259 #define PLAT_BRCM_BL31_RUN_UART_BASE PLAT_BRCM_BOOT_UART_BASE 260 #define PLAT_BRCM_BL31_RUN_UART_CLK_IN_HZ PLAT_BRCM_BOOT_UART_CLK_IN_HZ 261 262 /******************************************************************************* 263 * IOMUX related constants 264 ******************************************************************************/ 265 #define HSLS_IOPAD_BASE HSLS_MODE_SEL_CONTROL 266 #define MODE_SEL_CONTROL_FSEL_MASK 0x7 267 #define MODE_SEL_CONTROL_FSEL_MODE0 0x0 268 #define MODE_SEL_CONTROL_FSEL_MODE1 0x1 269 #define MODE_SEL_CONTROL_FSEL_MODE2 0x2 270 #define MODE_SEL_CONTROL_FSEL_MODE3 0x3 271 #define MODE_SEL_CONTROL_FSEL_DEBUG 0x4 272 #define IPROC_IOPAD_MODE_BASE (HSLS_MODE_SEL_CONTROL + 0x29c) 273 #define UART0_SIN_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x4a8) 274 #define UART0_SOUT_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x4ac) 275 #define UART1_SIN_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3b8) 276 #define UART1_SOUT_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3bc) 277 #define UARTx_SIN_MODE_SEL_CONTROL_FSEL 0 278 #define UARTx_SOUT_MODE_SEL_CONTROL_FSEL 0 279 280 /******************************************************************************* 281 * PKA constants 282 ******************************************************************************/ 283 #define ICFG_PKA_MEM_PWR_CTRL (HSLS_ICFG_REGS_BASE + 0xac0) 284 #define ICFG_PKA_MEM_PWR_CTRL__POWERONIN BIT(0) 285 #define ICFG_PKA_MEM_PWR_CTRL__POWEROKIN BIT(1) 286 #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONIN BIT(2) 287 #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKIN BIT(3) 288 #define ICFG_PKA_MEM_PWR_CTRL__POWERONOUT BIT(4) 289 #define ICFG_PKA_MEM_PWR_CTRL__POWEROKOUT BIT(5) 290 #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONOUT BIT(6) 291 #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKOUT BIT(7) 292 #define ICFG_PKA_MEM_PWR_CTRL__ISO BIT(8) 293 294 /******************************************************************************* 295 * Trusted Watchdog constants 296 ******************************************************************************/ 297 #define ARM_SP805_TWDG_BASE 0x68b30000 298 #define ARM_SP805_TWDG_CLK_HZ ((25 * 1000 * 1000) / 2) 299 /* 300 * The TBBR document specifies a watchdog timeout of 256 seconds. SP805 301 * asserts reset after two consecutive countdowns (2 x 128 = 256 sec) 302 */ 303 #define ARM_TWDG_TIMEOUT_SEC 128 304 #define ARM_TWDG_LOAD_VAL (ARM_SP805_TWDG_CLK_HZ * \ 305 ARM_TWDG_TIMEOUT_SEC) 306 307 /******************************************************************************* 308 * SOTP related constants 309 ******************************************************************************/ 310 #define SOTP_REGS_OTP_BASE 0x68b50000 311 #define SOTP_CHIP_CTRL (SOTP_REGS_OTP_BASE + 0x4c) 312 #define SOTP_CLEAR_SYSCTRL_ALL_MASTER_NS 0 313 314 /******************************************************************************* 315 * DMAC/PL330 related constants 316 ******************************************************************************/ 317 #define DMAC_M0_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x408) 318 #define BOOT_MANAGER_NS BIT(25) 319 #define DMAC_M0_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0x800) 320 #define ICFG_DMAC_CONFIG_0 (HSLS_ICFG_REGS_BASE + 0x190) 321 #define ICFG_DMAC_CONFIG_1 (HSLS_ICFG_REGS_BASE + 0x194) 322 #define ICFG_DMAC_CONFIG_2 (HSLS_ICFG_REGS_BASE + 0x198) 323 #define BOOT_PERIPHERAL_NS 0xffffffff 324 #define ICFG_DMAC_CONFIG_3 (HSLS_ICFG_REGS_BASE + 0x19c) 325 #define BOOT_IRQ_NS 0x0000ffff 326 #define ICFG_DMAC_SID_ARADDR_CONTROL (HSLS_ICFG_REGS_BASE + 0xaf0) 327 #define ICFG_DMAC_SID_AWADDR_CONTROL (HSLS_ICFG_REGS_BASE + 0xaf4) 328 #define ICFG_DMAC_MEM_PWR_CTRL__POWERONIN BIT(0) 329 #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKIN BIT(1) 330 #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONIN BIT(2) 331 #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKIN BIT(3) 332 #define ICFG_DMAC_MEM_PWR_CTRL__POWERONOUT BIT(4) 333 #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKOUT BIT(5) 334 #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONOUT BIT(6) 335 #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKOUT BIT(7) 336 #define ICFG_DMAC_MEM_PWR_CTRL__ISO BIT(8) 337 #define ICFG_DMAC_MEM_PWR_CTRL (HSLS_ICFG_REGS_BASE + 0xadc) 338 339 /******************************************************************************* 340 * PNOR related constants 341 ******************************************************************************/ 342 #define PNOR_ICFG_BASE (HSLS_ICFG_REGS_BASE + 0x780) 343 #define PNOR_ICFG_CS_0 PNOR_ICFG_BASE 344 #define PNOR_ICFG_CS_1 (PNOR_ICFG_BASE + 0x4) 345 #define PNOR_ICFG_CS_2 (PNOR_ICFG_BASE + 0x8) 346 #define PNOR_ICFG_CS_x_MASK0_MASK 0xff 347 #define PNOR_ICFG_CS_x_MASK0_SHIFT 8 348 #define PNOR_ICFG_CS_x_MATCH0_MASK 0xff 349 #define PNOR_ICFG_CS_x_MATCH0_SHIFT 0 350 351 #define PNOR_IDM_BASE (HSLS_IDM_REGS_BASE + 0xb000) 352 #define PNOR_IDM_IO_CONTROL_DIRECT (PNOR_IDM_BASE + 0x408) 353 #define PNOR_IDM_IO_RESET_CONTROL (PNOR_IDM_BASE + 0x800) 354 355 #define PNOR_REG_BASE 0x68c50000 356 #define PNOR_REG_DIRECT_CMD (PNOR_REG_BASE + 0x010) 357 #define PNOR_REG_SET_CYCLES (PNOR_REG_BASE + 0x014) 358 #define PNOR_REG_SET_OPMODE (PNOR_REG_BASE + 0x018) 359 #define PNOR_REG_REFRESH_0 (PNOR_REG_BASE + 0x020) 360 #define PNOR_REG_PERIPH_ID0 (PNOR_REG_BASE + 0xfe0) 361 #define PNOR_REG_PERIPH_ID1 (PNOR_REG_BASE + 0xfe4) 362 #define PNOR_REG_PERIPH_ID2 (PNOR_REG_BASE + 0xfe8) 363 #define PNOR_REG_PERIPH_ID3 (PNOR_REG_BASE + 0xfec) 364 #define PNOR_REG_PERIPH_IDx_MASK 0xff 365 366 /******************************************************************************* 367 * NAND related constants 368 ******************************************************************************/ 369 #define NAND_FLASH_REVISION 0x68c60000 370 #define NAND_IDM_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0xa408) 371 #define NAND_IDM_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0xa800) 372 373 /******************************************************************************* 374 * eMMC related constants 375 ******************************************************************************/ 376 #define PLAT_SD_MAX_READ_LENGTH 0x400 377 378 #define SDIO0_EMMCSDXC_SYSADDR 0x68cf1000 379 #define SDIO_IDM0_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x2408) 380 #define SDIO_IDM1_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x3408) 381 #define SDIO_IDM0_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0x2800) 382 #define ICFG_SDIO0_BASE (HSLS_ICFG_REGS_BASE + 0x6e4) 383 #define ICFG_SDIO1_BASE (HSLS_ICFG_REGS_BASE + 0x734) 384 #define ICFG_SDIO0_CAP0 (ICFG_SDIO0_BASE + 0x10) 385 #define ICFG_SDIO0_CAP1 (ICFG_SDIO0_BASE + 0x14) 386 #define ICFG_SDIO0_SID (HSLS_ICFG_REGS_BASE + 0xb00) 387 #define ICFG_SDIO1_SID (HSLS_ICFG_REGS_BASE + 0xb08) 388 389 /******************************************************************************* 390 * Bootstrap related constants 391 ******************************************************************************/ 392 #define ROM_S0_IDM_IO_STATUS (HSLS_IDM_REGS_BASE + 0x9500) 393 394 /******************************************************************************* 395 * ROM related constants 396 ******************************************************************************/ 397 #define ROM_BASE_ADDR 0x6ce00000 398 #define ROM_VERSION_STRING_ADDR (ROM_BASE_ADDR + 0x28000) 399 #define ROM_BUILD_MESSAGE_ADDR (ROM_BASE_ADDR + 0x28018) 400 401 /******************************************************************************* 402 * Boot source peripheral related constants 403 ******************************************************************************/ 404 #define QSPI_CTRL_BASE_ADDR 0x68c70000 405 #define QSPI_BASE_ADDR 0x70000000 406 #define QSPI_SIZE 0x08000000 407 #define NOR_BASE_ADDR 0x74000000 408 #define NOR_SIZE 0x04000000 409 #define NAND_BASE_ADDR 0x78000000 410 #define NAND_SIZE 0x08000000 411 412 #define QSPI_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0xc800) 413 414 #define APBR_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0xe800) 415 #define APBS_IDM_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0xf800) 416 417 #define APBX_IDM_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x10408) 418 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE 0 419 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL 2 420 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM0_SCLK_SEL 4 421 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM1_SCLK_SEL 6 422 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM2_SCLK_SEL 8 423 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM3_SCLK_SEL 10 424 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM4_SCLK_SEL 12 425 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM5_SCLK_SEL 13 426 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM6_SCLK_SEL 14 427 #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM7_SCLK_SEL 15 428 429 #define APBY_IDM_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x11408) 430 #define APBY_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE 0 431 #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART0_SCLK_SEL 2 432 #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART1_SCLK_SEL 4 433 #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART2_SCLK_SEL 6 434 #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART3_SCLK_SEL 8 435 436 #define APBZ_IDM_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x12408) 437 #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE 0 438 #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL 2 439 440 /******************************************************************************* 441 * Stingray memory map related constants 442 ******************************************************************************/ 443 444 /* The last 4KB of Trusted SRAM are used as shared memory */ 445 #define BRCM_SHARED_RAM_SIZE 0x0 446 #define BRCM_SHARED_RAM_BASE (PLAT_BRCM_TRUSTED_SRAM_BASE + \ 447 PLAT_BRCM_TRUSTED_SRAM_SIZE - \ 448 BRCM_SHARED_RAM_SIZE) 449 450 /* Reserve 4 KB to store error logs in BL2 */ 451 #define BCM_ELOG_BL2_SIZE 0x00001000 452 #define BCM_ELOG_BL2_BASE BL1_RW_LIMIT 453 454 /* The remaining Trusted SRAM is used to load the BL images */ 455 #define BRCM_BL_RAM_BASE (PLAT_BRCM_TRUSTED_SRAM_BASE) 456 #define BRCM_BL_RAM_SIZE (PLAT_BRCM_TRUSTED_SRAM_SIZE - \ 457 BRCM_SHARED_RAM_SIZE) 458 459 /* DDR Address where TMON temperature values are written */ 460 #define TMON_SHARED_DDR_ADDRESS 0x8f100000 461 462 /* Reserve 4 kB to pass data to BL33 */ 463 #define BL33_SHARED_DDR_BASE 0x8f102000 464 #define BL33_SHARED_DDR_SIZE 0x1000 465 466 /* Default AP error logging base addr */ 467 #ifndef ELOG_AP_UART_LOG_BASE 468 #define ELOG_AP_UART_LOG_BASE 0x8f110000 469 #endif 470 471 /* Reserve 16 to store error logs in BL31 */ 472 #define BCM_ELOG_BL31_BASE ELOG_AP_UART_LOG_BASE 473 #define BCM_ELOG_BL31_SIZE 0x4000 474 475 /******************************************************************************* 476 * Non-secure DDR Map 477 ******************************************************************************/ 478 #define BRCM_DRAM1_BASE ULL(0x80000000) 479 #define BRCM_DRAM1_SIZE ULL(0x10000000) 480 #define BRCM_DRAM2_BASE ULL(0x880000000) 481 #define BRCM_DRAM2_SIZE ULL(0x780000000) 482 #define BRCM_DRAM3_BASE ULL(0x8800000000) 483 #define BRCM_DRAM3_SIZE ULL(0x7800000000) 484 #define BRCM_SHARED_DRAM_BASE BL33_SHARED_DDR_BASE 485 #define BRCM_SHARED_DRAM_SIZE BL33_SHARED_DDR_SIZE 486 #define BRCM_EXT_SRAM_BASE ULL(0x74000000) 487 #define BRCM_EXT_SRAM_SIZE ULL(0x4000000) 488 489 /* Priority levels for platforms */ 490 #define PLAT_RAS_PRI 0x10 491 #define PLAT_SDEI_CRITICAL_PRI 0x60 492 #define PLAT_SDEI_NORMAL_PRI 0x70 493 494 /* Define a list of Group 1 Secure and Group 0 interrupts as per GICv3 */ 495 #define BRCM_IRQ_SEC_SGI_0 14 496 #define BRCM_IRQ_SEC_SGI_1 15 497 498 /* RTC periodic interrupt */ 499 #define BRCM_IRQ_SEC_SPI_0 49 500 501 /* 502 * Macros for local power states in SR platforms encoded by State-ID field 503 * within the power-state parameter. 504 */ 505 506 /* Local power state for power domains in Run state. */ 507 #define PLAT_LOCAL_STATE_RUN 0 508 509 /* Local power state for retention. Valid only for CPU power domains */ 510 #define PLAT_LOCAL_STATE_RET 1 511 512 /* 513 * Local power state for OFF/power-down. Valid for CPU and cluster power 514 * domains. 515 */ 516 #define PLAT_LOCAL_STATE_OFF 2 517 518 /* 519 * This macro defines the deepest retention state possible. A higher state 520 * id will represent an invalid or a power down state. 521 */ 522 #define PLAT_MAX_RET_STATE PLAT_LOCAL_STATE_RET 523 524 /* 525 * This macro defines the deepest power down states possible. Any state ID 526 * higher than this is invalid. 527 */ 528 #define PLAT_MAX_OFF_STATE PLAT_LOCAL_STATE_OFF 529 530 /* ChiMP-related constants */ 531 532 #define NITRO_TZPC_TZPCDECPROT0clr 0x60c01808 533 #define NITRO_TZPC_TZPCDECPROT0clr__DECPROT0_chimp_m_clr_R 1 534 535 #define NIC400_NITRO_CHIMP_S_IDM_IO_CONTROL_DIRECT 0x60e00408 536 537 #define CHIMP_INDIRECT_ADDR_MASK 0x3fffff 538 #define CHIMP_INDIRECT_BASE 0x60800000 539 540 #define CHIMP_REG_ECO_RESERVED 0x3042400 541 542 #define CHIMP_FLASH_ACCESS_DONE_BIT 2 543 544 /* indicate FRU table programming is done successfully */ 545 #define CHIMP_FRU_PROG_DONE_BIT 9 546 547 #define CHIMP_REG_CTRL_BPE_MODE_REG 0x0 548 #define CHIMP_REG_CTRL_BPE_STAT_REG 0x4 549 #define CHIMP_REG_CTRL_FSTBOOT_PTR_REG 0x8 550 #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_L 1 551 #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_R 1 552 #define CHIMP_REG_CTRL_BASE 0x3040000 553 #define CHIMP_FAST_BOOT_MODE_BIT 2 554 #define CHIMP_REG_CHIMP_APE_SCPAD 0x3300000 555 #define CHIMP_REG_CHIMP_SCPAD 0x3100000 556 557 /* Chimp health status offset in scratch pad ram */ 558 #define CHIMP_HEALTH_STATUS_OFFSET 0x8 559 /* 560 * If not in NIC mode then FASTBOOT can be enabled. 561 * "Not in NIC mode" means that FORCE_FASTBOOT is set 562 * and a valid (1 or 2) fastboot type is specified. 563 * 564 * Three types of fastboot are supported: 565 * 0 = No fastboot. Boots Nitro/ChiMP and lets ROM loader 566 * initialize ChiMP from NVRAM (QSPI). 567 * 568 * 1 = Jump in place (need a flat image) 569 * This is intended to speedup Nitro FW boot on Palladium, 570 * can be used with a real chip as well. 571 * 2 = Jump normally with decompression 572 * Modus operandi for a real chip. Works also on Palladium 573 * Note: image decompressing takes time on Palladium. 574 * 3 = No fastboot support. No ChiMP bringup 575 * (use only for AP debug or for ChiMP's deferred setup). 576 */ 577 #define CHIMP_FASTBOOT_JUMP_DECOMPRESS 2 578 #define CHIMP_FASTBOOT_JUMP_IN_PLACE 1 579 #define CHIMP_FASTBOOT_NITRO_RESET 0 580 /* 581 * Definitions for a non-Nitro access 582 * to QSPI PAD after the handshake 583 */ 584 #define QSPI_HOLD_N_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3e8) 585 #define QSPI_WP_N_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3ec) 586 #define QSPI_SCK_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3f0) 587 #define QSPI_CS_N_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3f4) 588 #define QSPI_MOSI_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3f8) 589 #define QSPI_MISO_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3fc) 590 591 /******************************************************************************* 592 * Stream IDs for different blocks of SR 593 * block_id for different blocks is as follows: 594 * PCIE : 0x0 595 * PAXC : 0x1 596 * FS4 : 0x2 597 * Rest of the masters(includes MHB via RNI): 0x3 598 ******************************************************************************/ 599 #define SR_SID_VAL(block_id, subblock_id, device_num) ((block_id << 13) | \ 600 (subblock_id << 11) | \ 601 (device_num)) 602 603 #define CRMU_STREAM_ID SR_SID_VAL(0x3, 0x0, 0x7) 604 #define CRMU_SID_SHIFT 5 605 606 #define DMAC_STREAM_ID SR_SID_VAL(0x3, 0x0, 0x0) 607 #define DMAC_SID_SHIFT 5 608 609 /* DDR SHMOO Values defines */ 610 #define IDRAM_SHMOO_VALUES_ADDR CRMU_IDRAM_BASE_ADDR 611 #define DDR_SHMOO_VALUES_ADDR 0x8f103000 612 #define SHMOO_SIZE_PER_CHANNEL 0x1000 613 614 #endif /* SR_DEF_H */ 615