1717448d6SSheetal Tigadoli /* 2*441a065aSBharat Gooty * Copyright (c) 2016-2021, Broadcom 3717448d6SSheetal Tigadoli * 4717448d6SSheetal Tigadoli * SPDX-License-Identifier: BSD-3-Clause 5717448d6SSheetal Tigadoli */ 6717448d6SSheetal Tigadoli 7717448d6SSheetal Tigadoli #ifndef SR_DEF_H 8717448d6SSheetal Tigadoli #define SR_DEF_H 9717448d6SSheetal Tigadoli 10717448d6SSheetal Tigadoli #ifndef __ASSEMBLER__ 11717448d6SSheetal Tigadoli #include <lib/mmio.h> 12717448d6SSheetal Tigadoli #endif 13717448d6SSheetal Tigadoli 14717448d6SSheetal Tigadoli #include <common/interrupt_props.h> 15717448d6SSheetal Tigadoli #include <drivers/arm/gic_common.h> 16717448d6SSheetal Tigadoli 17717448d6SSheetal Tigadoli #include <crmu_def.h> 18717448d6SSheetal Tigadoli 19717448d6SSheetal Tigadoli /* Special value used to verify platform parameters from BL2 to BL3-1 */ 20717448d6SSheetal Tigadoli #define BRCM_BL31_PLAT_PARAM_VAL ULL(0x0f1e2d3c4b5a6978) 21717448d6SSheetal Tigadoli 22717448d6SSheetal Tigadoli #define MHB_BASE_ADDR 0x60000000 23717448d6SSheetal Tigadoli #define PLAT_BRCM_CCN_BASE 0x61000000 24717448d6SSheetal Tigadoli #define CORESIGHT_BASE_ADDR 0x62000000 25717448d6SSheetal Tigadoli #define SMMU_BASE 0x64000000 26717448d6SSheetal Tigadoli 27717448d6SSheetal Tigadoli /* memory map entries*/ 28717448d6SSheetal Tigadoli /* Grouping block device for bigger MMU region */ 29717448d6SSheetal Tigadoli /* covers MHB, CNN, coresight, GIC, MMU, APB, CRMU */ 30717448d6SSheetal Tigadoli #define PERIPH0_BASE MHB_BASE_ADDR 31717448d6SSheetal Tigadoli #define PERIPH0_SIZE 0x06d00000 32717448d6SSheetal Tigadoli 33717448d6SSheetal Tigadoli #define PERIPH1_BASE 0x66d80000 34717448d6SSheetal Tigadoli #define PERIPH1_SIZE 0x00f80000 35717448d6SSheetal Tigadoli 36717448d6SSheetal Tigadoli #define HSLS_BASE_ADDR 0x68900000 37717448d6SSheetal Tigadoli #define HSLS_SIZE 0x04500000 38717448d6SSheetal Tigadoli 39717448d6SSheetal Tigadoli #define GIC500_BASE 0x63c00000 40717448d6SSheetal Tigadoli #define GIC500_SIZE 0x400000 41717448d6SSheetal Tigadoli 42717448d6SSheetal Tigadoli /******************************************************************************* 43717448d6SSheetal Tigadoli * CCN related constants 44717448d6SSheetal Tigadoli ******************************************************************************/ 45717448d6SSheetal Tigadoli #define OLY_MN_REGISTERS_NODE0_SECURE_ACCESS (PLAT_BRCM_CCN_BASE + 0x0) 46717448d6SSheetal Tigadoli 47717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL (PLAT_BRCM_CCN_BASE + 0x880500) 48717448d6SSheetal Tigadoli 49717448d6SSheetal Tigadoli /* Used for acceleration of coherent ordered writes */ 50717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_WUO BIT(4) 51717448d6SSheetal Tigadoli /* Wait for completion of requests at RN-I */ 52717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_WFC BIT(3) 53717448d6SSheetal Tigadoli 54717448d6SSheetal Tigadoli /* 55717448d6SSheetal Tigadoli * Forces all reads from the RN-I to be sent with the request order bit set 56717448d6SSheetal Tigadoli * and this ensures ordered allocation of read data buffers in the RN-I 57717448d6SSheetal Tigadoli */ 58717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_RQO BIT(5) 59717448d6SSheetal Tigadoli 60717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE14_AUX_CTL (PLAT_BRCM_CCN_BASE + 0x8e0500) 61717448d6SSheetal Tigadoli 62717448d6SSheetal Tigadoli /* Wait for completion of requests at RN-I */ 63717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE14_AUX_CTL_WFC BIT(3) 64717448d6SSheetal Tigadoli 65717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_POS_CONTROL (PLAT_BRCM_CCN_BASE + 0x80000) 66717448d6SSheetal Tigadoli #define POS_CONTROL_HNI_POS_EN BIT(0) 67717448d6SSheetal Tigadoli 68717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_PCIERC_RNI_NODEID_LIST \ 69717448d6SSheetal Tigadoli (PLAT_BRCM_CCN_BASE + 0x80008) 70717448d6SSheetal Tigadoli /* PAXB and PAXC connected to 8th Node */ 71717448d6SSheetal Tigadoli #define SR_RNI_PCIE_CONNECTED BIT(8) 72717448d6SSheetal Tigadoli /* PAXB connected to 6th Node */ 73717448d6SSheetal Tigadoli #define SRP_RNI_PCIE_CONNECTED BIT(6) 74717448d6SSheetal Tigadoli 75717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_SA_AUX_CTL (PLAT_BRCM_CCN_BASE + 0x80500) 76717448d6SSheetal Tigadoli #define SA_AUX_CTL_POS_EARLY_WR_COMP_EN BIT(5) 77717448d6SSheetal Tigadoli #define SA_AUX_CTL_SER_DEVNE_WR BIT(9) 78717448d6SSheetal Tigadoli 79717448d6SSheetal Tigadoli /******************************************************************************* 80717448d6SSheetal Tigadoli * Coresight related constants 81717448d6SSheetal Tigadoli ******************************************************************************/ 82717448d6SSheetal Tigadoli #define CORESIGHT_BASE_ADDR 0x62000000 83717448d6SSheetal Tigadoli 84717448d6SSheetal Tigadoli #define IHOST0_BASE 0x66000000 85717448d6SSheetal Tigadoli #define IHOST_ADDR_SPACE 0x2000 86717448d6SSheetal Tigadoli 87717448d6SSheetal Tigadoli /******************************************************************************* 88717448d6SSheetal Tigadoli * SCR related constants 89717448d6SSheetal Tigadoli ******************************************************************************/ 90717448d6SSheetal Tigadoli #define SCR_BASE 0x6600a000 91717448d6SSheetal Tigadoli #define SCR_ARCACHE_OFFSET 4 92717448d6SSheetal Tigadoli #define SCR_ARCACHE_MASK (0x3 << SCR_ARCACHE_OFFSET) 93717448d6SSheetal Tigadoli #define SCR_AWCACHE_OFFSET 6 94717448d6SSheetal Tigadoli #define SCR_AWCACHE_MASK (0x3 << SCR_AWCACHE_OFFSET) 95717448d6SSheetal Tigadoli #define SCR_AXCACHE_CONFIG_MASK (SCR_ARCACHE_MASK | SCR_AWCACHE_MASK) 96717448d6SSheetal Tigadoli #define SCR_TBUX_AXCACHE_CONFIG ((0x1 << SCR_AWCACHE_OFFSET) | \ 97717448d6SSheetal Tigadoli (0x1 << SCR_ARCACHE_OFFSET)) 98717448d6SSheetal Tigadoli 99717448d6SSheetal Tigadoli #define SCR_REGS_SCR_SOFT_RESET (SCR_BASE + 0x1c) 100717448d6SSheetal Tigadoli #define SCR_REGS_GIC_SOFT_RESET BIT(0) 101717448d6SSheetal Tigadoli 102717448d6SSheetal Tigadoli #define SCR_GPV_BASE 0x66100000 103717448d6SSheetal Tigadoli #define SCR_NOC_SECURITY0 (SCR_GPV_BASE + 0x08) 104717448d6SSheetal Tigadoli #define SCR_NOC_DDR_REGISTER_ACCESS (SCR_GPV_BASE + 0x30) 105717448d6SSheetal Tigadoli 106717448d6SSheetal Tigadoli /******************************************************************************* 107717448d6SSheetal Tigadoli * MEMC and DDR related constants 108717448d6SSheetal Tigadoli ******************************************************************************/ 109717448d6SSheetal Tigadoli #define DDR0_CONTROL_ROOT 0x66200000 110717448d6SSheetal Tigadoli #define EMEM_SS_CFG_0_ROOT 0x66202000 111717448d6SSheetal Tigadoli #define EMEM_SYS_IF_0_ROOT 0x66204000 112717448d6SSheetal Tigadoli #define DDR_PHY0_ROOT 0x66240000 113717448d6SSheetal Tigadoli 114717448d6SSheetal Tigadoli #define DDR1_CONTROL_ROOT 0x66280000 115717448d6SSheetal Tigadoli #define EMEM_SS_CFG_1_ROOT 0x66282000 116717448d6SSheetal Tigadoli #define EMEM_SYS_IF_1_ROOT 0x66284000 117717448d6SSheetal Tigadoli #define DDR_PHY1_ROOT 0x662c0000 118717448d6SSheetal Tigadoli 119717448d6SSheetal Tigadoli #define DDR2_CONTROL_ROOT 0x66300000 120717448d6SSheetal Tigadoli #define EMEM_SS_CFG_2_ROOT 0x66302000 121717448d6SSheetal Tigadoli #define EMEM_SYS_IF_2_ROOT 0x66304000 122717448d6SSheetal Tigadoli #define DDR_PHY2_ROOT 0x66340000 123717448d6SSheetal Tigadoli 124717448d6SSheetal Tigadoli /******************************************************************************* 125717448d6SSheetal Tigadoli * TZC400 related constants 126717448d6SSheetal Tigadoli ******************************************************************************/ 127717448d6SSheetal Tigadoli #define TZC_400_BASE 0x66d84000 128717448d6SSheetal Tigadoli 129717448d6SSheetal Tigadoli /******************************************************************************* 130717448d6SSheetal Tigadoli * FS4 related constants 131717448d6SSheetal Tigadoli ******************************************************************************/ 132717448d6SSheetal Tigadoli #define FS4_SRAM_IDM_IO_CONTROL_DIRECT 0x66d8a408 133717448d6SSheetal Tigadoli 134717448d6SSheetal Tigadoli #define FS4_CRYPTO_IDM_IO_CONTROL_DIRECT 0x66d8e408 135717448d6SSheetal Tigadoli #define FS4_CRYPTO_IDM_RESET_CONTROL 0x66d8e800 136717448d6SSheetal Tigadoli #define FS4_CRYPTO_BASE 0x67000000 137717448d6SSheetal Tigadoli #define FS4_CRYPTO_DME_BASE (FS4_CRYPTO_BASE + 0x280000) 138717448d6SSheetal Tigadoli 139717448d6SSheetal Tigadoli #define FS4_RAID_IDM_IO_CONTROL_DIRECT 0x66d8f408 140717448d6SSheetal Tigadoli #define FS4_RAID_IDM_IO_STATUS 0x66d8f500 141717448d6SSheetal Tigadoli #define FS4_RAID_IDM_RESET_CONTROL 0x66d8f800 142717448d6SSheetal Tigadoli #define FS4_RAID_BASE 0x67400000 143717448d6SSheetal Tigadoli #define FS4_RAID_DME_BASE (FS4_RAID_BASE + 0x280000) 144717448d6SSheetal Tigadoli 145717448d6SSheetal Tigadoli #define FS4_CRYPTO_GPV_BASE 0x67300000 146717448d6SSheetal Tigadoli #define FS4_RAID_GPV_BASE 0x67700000 147717448d6SSheetal Tigadoli 148717448d6SSheetal Tigadoli #define FS6_PKI_BASE 0x67400000 149717448d6SSheetal Tigadoli #define FS6_PKI_DME_BASE 0x66D90000 150717448d6SSheetal Tigadoli 151717448d6SSheetal Tigadoli #define TZC400_FS_SRAM_ROOT 0x66d84000 152717448d6SSheetal Tigadoli #define GATE_KEEPER_OFFSET 0x8 153717448d6SSheetal Tigadoli #define REGION_ATTRIBUTES_0_OFFSET 0x110 154717448d6SSheetal Tigadoli #define REGION_ID_ACCESS_0_OFFSET 0x114 155717448d6SSheetal Tigadoli 156717448d6SSheetal Tigadoli #define NIC400_FS_NOC_ROOT 0x66e00000 157717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY2_OFFSET 0x10 158717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY4_OFFSET 0x18 159717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY7_OFFSET 0x24 160717448d6SSheetal Tigadoli 161717448d6SSheetal Tigadoli /******************************************************************************* 162717448d6SSheetal Tigadoli * SATA PHY related constants 163717448d6SSheetal Tigadoli ******************************************************************************/ 164717448d6SSheetal Tigadoli #define SATA_BASE 0x67d00000 165717448d6SSheetal Tigadoli 166717448d6SSheetal Tigadoli /******************************************************************************* 167717448d6SSheetal Tigadoli * USB related constants 168717448d6SSheetal Tigadoli ******************************************************************************/ 169717448d6SSheetal Tigadoli #define USB_BASE 0x68500000 170717448d6SSheetal Tigadoli #define USB_SIZE 0x00400000 171717448d6SSheetal Tigadoli #define XHC_BASE (USB_BASE + 0x11000) 172717448d6SSheetal Tigadoli #define MAX_USB_PORTS 3 173717448d6SSheetal Tigadoli 174717448d6SSheetal Tigadoli /******************************************************************************* 175717448d6SSheetal Tigadoli * HSLS related constants 176717448d6SSheetal Tigadoli ******************************************************************************/ 177717448d6SSheetal Tigadoli #define IPROC_ROOT 0x68900000 178717448d6SSheetal Tigadoli #define HSLS_ICFG_REGS_BASE IPROC_ROOT 179717448d6SSheetal Tigadoli #define HSLS_IDM_REGS_BASE 0x68e00000 180717448d6SSheetal Tigadoli #define HSLS_MODE_SEL_CONTROL 0x68a40000 181717448d6SSheetal Tigadoli #define HSLS_TZPC_BASE 0x68b40000 182717448d6SSheetal Tigadoli #define HSLS_GPV_BASE 0x6cd00000 183717448d6SSheetal Tigadoli 184717448d6SSheetal Tigadoli /******************************************************************************* 185717448d6SSheetal Tigadoli * Chip ID related constants 186717448d6SSheetal Tigadoli ******************************************************************************/ 187717448d6SSheetal Tigadoli #define ICFG_CHIP_ID HSLS_ICFG_REGS_BASE 188717448d6SSheetal Tigadoli #define CHIP_ID_SR 0xd730 189717448d6SSheetal Tigadoli #define CHIP_ID_NS3Z 0xe56d 190717448d6SSheetal Tigadoli #define CHIP_ID_MASK 0xf000 191717448d6SSheetal Tigadoli #define ICFG_CHIP_REVISION_ID (HSLS_ICFG_REGS_BASE + 0x4) 192717448d6SSheetal Tigadoli #define PLAT_CHIP_ID_GET (mmio_read_32(ICFG_CHIP_ID)) 193717448d6SSheetal Tigadoli #define PLAT_CHIP_REV_GET (mmio_read_32(ICFG_CHIP_REVISION_ID)) 194717448d6SSheetal Tigadoli 195717448d6SSheetal Tigadoli /******************************************************************************* 196*441a065aSBharat Gooty * CMIC MII (MDIO) related constant 197*441a065aSBharat Gooty ******************************************************************************/ 198*441a065aSBharat Gooty #define PLAT_CMIC_MIIM_BASE 0x68920000U 199*441a065aSBharat Gooty 200*441a065aSBharat Gooty /******************************************************************************* 201717448d6SSheetal Tigadoli * Timers related constants 202717448d6SSheetal Tigadoli ******************************************************************************/ 203717448d6SSheetal Tigadoli /* ChipcommonG_tim0_TIM_TIMER1Load 0x68930000 */ 204717448d6SSheetal Tigadoli #define SP804_TIMER0_BASE 0x68930000 205717448d6SSheetal Tigadoli #define SP804_TIMER1_BASE 0x68940000 206717448d6SSheetal Tigadoli #define SP804_TIMER0_TIMER_VAL_REG_OFFSET 0x4 207717448d6SSheetal Tigadoli #define SP804_TIMER0_CLKMULT 2 208717448d6SSheetal Tigadoli #define SP804_TIMER0_CLKDIV 25 209717448d6SSheetal Tigadoli 210717448d6SSheetal Tigadoli /******************************************************************************* 211717448d6SSheetal Tigadoli * GPIO related constants 212717448d6SSheetal Tigadoli ******************************************************************************/ 213717448d6SSheetal Tigadoli #define IPROC_GPIO_NS_BASE 0x689d0000 214717448d6SSheetal Tigadoli #define IPROC_GPIO_S_BASE 0x68b00000 215717448d6SSheetal Tigadoli #define IPROC_GPIO_NR 151 216717448d6SSheetal Tigadoli #define GPIO_S_CNTRL_REG 0x68b60000 217717448d6SSheetal Tigadoli 218717448d6SSheetal Tigadoli /******************************************************************************* 219717448d6SSheetal Tigadoli * I2C SMBUS related constants 220717448d6SSheetal Tigadoli ******************************************************************************/ 221717448d6SSheetal Tigadoli #define SMBUS0_REGS_BASE 0x689b0000 222717448d6SSheetal Tigadoli #define SMBUS1_REGS_BASE 0x689e0000 223717448d6SSheetal Tigadoli 224717448d6SSheetal Tigadoli /******************************************************************************* 225717448d6SSheetal Tigadoli * UART related constants 226717448d6SSheetal Tigadoli ******************************************************************************/ 227717448d6SSheetal Tigadoli #define ChipcommonG_UART0_UART_RBR_THR_DLL 0x68a00000 228717448d6SSheetal Tigadoli #define ChipcommonG_UART1_UART_RBR_THR_DLL 0x68a10000 229717448d6SSheetal Tigadoli #define ChipcommonG_UART2_UART_RBR_THR_DLL 0x68a20000 230717448d6SSheetal Tigadoli #define ChipcommonG_UART3_UART_RBR_THR_DLL 0x68a30000 231717448d6SSheetal Tigadoli 232717448d6SSheetal Tigadoli #define UART0_BASE_ADDR ChipcommonG_UART0_UART_RBR_THR_DLL 233717448d6SSheetal Tigadoli #define UART1_BASE_ADDR ChipcommonG_UART1_UART_RBR_THR_DLL 234717448d6SSheetal Tigadoli #define UART2_BASE_ADDR ChipcommonG_UART2_UART_RBR_THR_DLL 235717448d6SSheetal Tigadoli #define UART3_BASE_ADDR ChipcommonG_UART3_UART_RBR_THR_DLL 236717448d6SSheetal Tigadoli 237717448d6SSheetal Tigadoli #define UART_SPR_OFFSET 0x1c /* Scratch Pad Register */ 238717448d6SSheetal Tigadoli 239717448d6SSheetal Tigadoli #define LOG_LEVEL_REGISTER CRMU_SPARE_REG_3 240717448d6SSheetal Tigadoli #define GET_LOG_LEVEL() (mmio_read_32(LOG_LEVEL_REGISTER)) 241717448d6SSheetal Tigadoli #define SET_LOG_LEVEL(x) (mmio_write_32(LOG_LEVEL_REGISTER, x)) 242717448d6SSheetal Tigadoli 243717448d6SSheetal Tigadoli #define IO_RETRY_REGISTER CRMU_SPARE_REG_4 244717448d6SSheetal Tigadoli 245717448d6SSheetal Tigadoli #define DWC_UART_REFCLK (25 * 1000 * 1000) 246717448d6SSheetal Tigadoli #define DWC_UART_REFCLK_DIV 16 247717448d6SSheetal Tigadoli /* Baud rate in emulation will vary based on setting of 25MHz SCLK */ 248717448d6SSheetal Tigadoli #define DWC_UART_BAUDRATE 115200 249717448d6SSheetal Tigadoli 250717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_BASE UART1_BASE_ADDR 251717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_REFCLK DWC_UART_REFCLK 252717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_BAUDRATE DWC_UART_BAUDRATE 253717448d6SSheetal Tigadoli 254717448d6SSheetal Tigadoli #ifdef BOARD_CONSOLE_UART 255717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_BASE BOARD_CONSOLE_UART 256717448d6SSheetal Tigadoli #else 257717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_BASE UART1_BASE_ADDR 258717448d6SSheetal Tigadoli #endif 259717448d6SSheetal Tigadoli #define CONSOLE_UART_ID ((PLAT_BRCM_BOOT_UART_BASE >> 16) & 0x3) 260717448d6SSheetal Tigadoli 261717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_CLK_IN_HZ DWC_UART_REFCLK 262717448d6SSheetal Tigadoli #define BRCM_CONSOLE_BAUDRATE DWC_UART_BAUDRATE 263717448d6SSheetal Tigadoli 264717448d6SSheetal Tigadoli #define PLAT_BRCM_BL31_RUN_UART_BASE PLAT_BRCM_BOOT_UART_BASE 265717448d6SSheetal Tigadoli #define PLAT_BRCM_BL31_RUN_UART_CLK_IN_HZ PLAT_BRCM_BOOT_UART_CLK_IN_HZ 266717448d6SSheetal Tigadoli 267717448d6SSheetal Tigadoli /******************************************************************************* 268717448d6SSheetal Tigadoli * IOMUX related constants 269717448d6SSheetal Tigadoli ******************************************************************************/ 270717448d6SSheetal Tigadoli #define HSLS_IOPAD_BASE HSLS_MODE_SEL_CONTROL 271717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MASK 0x7 272717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE0 0x0 273717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE1 0x1 274717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE2 0x2 275717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE3 0x3 276717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_DEBUG 0x4 277717448d6SSheetal Tigadoli #define IPROC_IOPAD_MODE_BASE (HSLS_MODE_SEL_CONTROL + 0x29c) 278717448d6SSheetal Tigadoli #define UART0_SIN_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x4a8) 279717448d6SSheetal Tigadoli #define UART0_SOUT_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x4ac) 280717448d6SSheetal Tigadoli #define UART1_SIN_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3b8) 281717448d6SSheetal Tigadoli #define UART1_SOUT_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3bc) 282717448d6SSheetal Tigadoli #define UARTx_SIN_MODE_SEL_CONTROL_FSEL 0 283717448d6SSheetal Tigadoli #define UARTx_SOUT_MODE_SEL_CONTROL_FSEL 0 284717448d6SSheetal Tigadoli 285717448d6SSheetal Tigadoli /******************************************************************************* 286717448d6SSheetal Tigadoli * PKA constants 287717448d6SSheetal Tigadoli ******************************************************************************/ 288717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL (HSLS_ICFG_REGS_BASE + 0xac0) 289717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWERONIN BIT(0) 290717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWEROKIN BIT(1) 291717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONIN BIT(2) 292717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKIN BIT(3) 293717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWERONOUT BIT(4) 294717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWEROKOUT BIT(5) 295717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONOUT BIT(6) 296717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKOUT BIT(7) 297717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ISO BIT(8) 298717448d6SSheetal Tigadoli 299717448d6SSheetal Tigadoli /******************************************************************************* 300cefde213SRoman Bacik * RNG constants 301cefde213SRoman Bacik ******************************************************************************/ 302cefde213SRoman Bacik #define RNG_BASE_ADDR 0x68b20000 303cefde213SRoman Bacik 304cefde213SRoman Bacik /******************************************************************************* 305717448d6SSheetal Tigadoli * Trusted Watchdog constants 306717448d6SSheetal Tigadoli ******************************************************************************/ 307717448d6SSheetal Tigadoli #define ARM_SP805_TWDG_BASE 0x68b30000 308717448d6SSheetal Tigadoli #define ARM_SP805_TWDG_CLK_HZ ((25 * 1000 * 1000) / 2) 309717448d6SSheetal Tigadoli /* 310717448d6SSheetal Tigadoli * The TBBR document specifies a watchdog timeout of 256 seconds. SP805 311717448d6SSheetal Tigadoli * asserts reset after two consecutive countdowns (2 x 128 = 256 sec) 312717448d6SSheetal Tigadoli */ 313717448d6SSheetal Tigadoli #define ARM_TWDG_TIMEOUT_SEC 128 314717448d6SSheetal Tigadoli #define ARM_TWDG_LOAD_VAL (ARM_SP805_TWDG_CLK_HZ * \ 315717448d6SSheetal Tigadoli ARM_TWDG_TIMEOUT_SEC) 316717448d6SSheetal Tigadoli 317717448d6SSheetal Tigadoli /******************************************************************************* 318717448d6SSheetal Tigadoli * SOTP related constants 319717448d6SSheetal Tigadoli ******************************************************************************/ 320717448d6SSheetal Tigadoli #define SOTP_REGS_OTP_BASE 0x68b50000 321717448d6SSheetal Tigadoli #define SOTP_CHIP_CTRL (SOTP_REGS_OTP_BASE + 0x4c) 322717448d6SSheetal Tigadoli #define SOTP_CLEAR_SYSCTRL_ALL_MASTER_NS 0 323717448d6SSheetal Tigadoli 324717448d6SSheetal Tigadoli /******************************************************************************* 325717448d6SSheetal Tigadoli * DMAC/PL330 related constants 326717448d6SSheetal Tigadoli ******************************************************************************/ 327717448d6SSheetal Tigadoli #define DMAC_M0_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x408) 328717448d6SSheetal Tigadoli #define BOOT_MANAGER_NS BIT(25) 329717448d6SSheetal Tigadoli #define DMAC_M0_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0x800) 330717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_0 (HSLS_ICFG_REGS_BASE + 0x190) 331717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_1 (HSLS_ICFG_REGS_BASE + 0x194) 332717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_2 (HSLS_ICFG_REGS_BASE + 0x198) 333717448d6SSheetal Tigadoli #define BOOT_PERIPHERAL_NS 0xffffffff 334717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_3 (HSLS_ICFG_REGS_BASE + 0x19c) 335717448d6SSheetal Tigadoli #define BOOT_IRQ_NS 0x0000ffff 336717448d6SSheetal Tigadoli #define ICFG_DMAC_SID_ARADDR_CONTROL (HSLS_ICFG_REGS_BASE + 0xaf0) 337717448d6SSheetal Tigadoli #define ICFG_DMAC_SID_AWADDR_CONTROL (HSLS_ICFG_REGS_BASE + 0xaf4) 338717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWERONIN BIT(0) 339717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKIN BIT(1) 340717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONIN BIT(2) 341717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKIN BIT(3) 342717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWERONOUT BIT(4) 343717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKOUT BIT(5) 344717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONOUT BIT(6) 345717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKOUT BIT(7) 346717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ISO BIT(8) 347717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL (HSLS_ICFG_REGS_BASE + 0xadc) 348717448d6SSheetal Tigadoli 349717448d6SSheetal Tigadoli /******************************************************************************* 350717448d6SSheetal Tigadoli * PNOR related constants 351717448d6SSheetal Tigadoli ******************************************************************************/ 352717448d6SSheetal Tigadoli #define PNOR_ICFG_BASE (HSLS_ICFG_REGS_BASE + 0x780) 353717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_0 PNOR_ICFG_BASE 354717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_1 (PNOR_ICFG_BASE + 0x4) 355717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_2 (PNOR_ICFG_BASE + 0x8) 356717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MASK0_MASK 0xff 357717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MASK0_SHIFT 8 358717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MATCH0_MASK 0xff 359717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MATCH0_SHIFT 0 360717448d6SSheetal Tigadoli 361717448d6SSheetal Tigadoli #define PNOR_IDM_BASE (HSLS_IDM_REGS_BASE + 0xb000) 362717448d6SSheetal Tigadoli #define PNOR_IDM_IO_CONTROL_DIRECT (PNOR_IDM_BASE + 0x408) 363717448d6SSheetal Tigadoli #define PNOR_IDM_IO_RESET_CONTROL (PNOR_IDM_BASE + 0x800) 364717448d6SSheetal Tigadoli 365717448d6SSheetal Tigadoli #define PNOR_REG_BASE 0x68c50000 366717448d6SSheetal Tigadoli #define PNOR_REG_DIRECT_CMD (PNOR_REG_BASE + 0x010) 367717448d6SSheetal Tigadoli #define PNOR_REG_SET_CYCLES (PNOR_REG_BASE + 0x014) 368717448d6SSheetal Tigadoli #define PNOR_REG_SET_OPMODE (PNOR_REG_BASE + 0x018) 369717448d6SSheetal Tigadoli #define PNOR_REG_REFRESH_0 (PNOR_REG_BASE + 0x020) 370717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID0 (PNOR_REG_BASE + 0xfe0) 371717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID1 (PNOR_REG_BASE + 0xfe4) 372717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID2 (PNOR_REG_BASE + 0xfe8) 373717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID3 (PNOR_REG_BASE + 0xfec) 374717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_IDx_MASK 0xff 375717448d6SSheetal Tigadoli 376717448d6SSheetal Tigadoli /******************************************************************************* 377717448d6SSheetal Tigadoli * NAND related constants 378717448d6SSheetal Tigadoli ******************************************************************************/ 379717448d6SSheetal Tigadoli #define NAND_FLASH_REVISION 0x68c60000 380717448d6SSheetal Tigadoli #define NAND_IDM_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0xa408) 381717448d6SSheetal Tigadoli #define NAND_IDM_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0xa800) 382717448d6SSheetal Tigadoli 383717448d6SSheetal Tigadoli /******************************************************************************* 384717448d6SSheetal Tigadoli * eMMC related constants 385717448d6SSheetal Tigadoli ******************************************************************************/ 386717448d6SSheetal Tigadoli #define PLAT_SD_MAX_READ_LENGTH 0x400 387717448d6SSheetal Tigadoli 388717448d6SSheetal Tigadoli #define SDIO0_EMMCSDXC_SYSADDR 0x68cf1000 389717448d6SSheetal Tigadoli #define SDIO_IDM0_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x2408) 390717448d6SSheetal Tigadoli #define SDIO_IDM1_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x3408) 391717448d6SSheetal Tigadoli #define SDIO_IDM0_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0x2800) 392717448d6SSheetal Tigadoli #define ICFG_SDIO0_BASE (HSLS_ICFG_REGS_BASE + 0x6e4) 393717448d6SSheetal Tigadoli #define ICFG_SDIO1_BASE (HSLS_ICFG_REGS_BASE + 0x734) 394717448d6SSheetal Tigadoli #define ICFG_SDIO0_CAP0 (ICFG_SDIO0_BASE + 0x10) 395717448d6SSheetal Tigadoli #define ICFG_SDIO0_CAP1 (ICFG_SDIO0_BASE + 0x14) 396717448d6SSheetal Tigadoli #define ICFG_SDIO0_SID (HSLS_ICFG_REGS_BASE + 0xb00) 397717448d6SSheetal Tigadoli #define ICFG_SDIO1_SID (HSLS_ICFG_REGS_BASE + 0xb08) 398717448d6SSheetal Tigadoli 399717448d6SSheetal Tigadoli /******************************************************************************* 400717448d6SSheetal Tigadoli * Bootstrap related constants 401717448d6SSheetal Tigadoli ******************************************************************************/ 402717448d6SSheetal Tigadoli #define ROM_S0_IDM_IO_STATUS (HSLS_IDM_REGS_BASE + 0x9500) 403717448d6SSheetal Tigadoli 404717448d6SSheetal Tigadoli /******************************************************************************* 405717448d6SSheetal Tigadoli * ROM related constants 406717448d6SSheetal Tigadoli ******************************************************************************/ 407717448d6SSheetal Tigadoli #define ROM_BASE_ADDR 0x6ce00000 408717448d6SSheetal Tigadoli #define ROM_VERSION_STRING_ADDR (ROM_BASE_ADDR + 0x28000) 409717448d6SSheetal Tigadoli #define ROM_BUILD_MESSAGE_ADDR (ROM_BASE_ADDR + 0x28018) 410717448d6SSheetal Tigadoli 411717448d6SSheetal Tigadoli /******************************************************************************* 412717448d6SSheetal Tigadoli * Boot source peripheral related constants 413717448d6SSheetal Tigadoli ******************************************************************************/ 414717448d6SSheetal Tigadoli #define QSPI_CTRL_BASE_ADDR 0x68c70000 415717448d6SSheetal Tigadoli #define QSPI_BASE_ADDR 0x70000000 416717448d6SSheetal Tigadoli #define QSPI_SIZE 0x08000000 417717448d6SSheetal Tigadoli #define NOR_BASE_ADDR 0x74000000 418717448d6SSheetal Tigadoli #define NOR_SIZE 0x04000000 419717448d6SSheetal Tigadoli #define NAND_BASE_ADDR 0x78000000 420717448d6SSheetal Tigadoli #define NAND_SIZE 0x08000000 421717448d6SSheetal Tigadoli 422717448d6SSheetal Tigadoli #define QSPI_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0xc800) 423717448d6SSheetal Tigadoli 424717448d6SSheetal Tigadoli #define APBR_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0xe800) 425717448d6SSheetal Tigadoli #define APBS_IDM_IDM_RESET_CONTROL (HSLS_IDM_REGS_BASE + 0xf800) 426717448d6SSheetal Tigadoli 427717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x10408) 428717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE 0 429717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL 2 430717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM0_SCLK_SEL 4 431717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM1_SCLK_SEL 6 432717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM2_SCLK_SEL 8 433717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM3_SCLK_SEL 10 434717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM4_SCLK_SEL 12 435717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM5_SCLK_SEL 13 436717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM6_SCLK_SEL 14 437717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM7_SCLK_SEL 15 438717448d6SSheetal Tigadoli 439717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x11408) 440717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE 0 441717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART0_SCLK_SEL 2 442717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART1_SCLK_SEL 4 443717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART2_SCLK_SEL 6 444717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART3_SCLK_SEL 8 445717448d6SSheetal Tigadoli 446717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT (HSLS_IDM_REGS_BASE + 0x12408) 447717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE 0 448717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL 2 449717448d6SSheetal Tigadoli 450717448d6SSheetal Tigadoli /******************************************************************************* 451717448d6SSheetal Tigadoli * Stingray memory map related constants 452717448d6SSheetal Tigadoli ******************************************************************************/ 453717448d6SSheetal Tigadoli 454717448d6SSheetal Tigadoli /* The last 4KB of Trusted SRAM are used as shared memory */ 455717448d6SSheetal Tigadoli #define BRCM_SHARED_RAM_SIZE 0x0 456717448d6SSheetal Tigadoli #define BRCM_SHARED_RAM_BASE (PLAT_BRCM_TRUSTED_SRAM_BASE + \ 457717448d6SSheetal Tigadoli PLAT_BRCM_TRUSTED_SRAM_SIZE - \ 458717448d6SSheetal Tigadoli BRCM_SHARED_RAM_SIZE) 459717448d6SSheetal Tigadoli 460717448d6SSheetal Tigadoli /* Reserve 4 KB to store error logs in BL2 */ 461717448d6SSheetal Tigadoli #define BCM_ELOG_BL2_SIZE 0x00001000 462717448d6SSheetal Tigadoli #define BCM_ELOG_BL2_BASE BL1_RW_LIMIT 463717448d6SSheetal Tigadoli 464717448d6SSheetal Tigadoli /* The remaining Trusted SRAM is used to load the BL images */ 465717448d6SSheetal Tigadoli #define BRCM_BL_RAM_BASE (PLAT_BRCM_TRUSTED_SRAM_BASE) 466717448d6SSheetal Tigadoli #define BRCM_BL_RAM_SIZE (PLAT_BRCM_TRUSTED_SRAM_SIZE - \ 467717448d6SSheetal Tigadoli BRCM_SHARED_RAM_SIZE) 468717448d6SSheetal Tigadoli 469717448d6SSheetal Tigadoli /* DDR Address where TMON temperature values are written */ 470717448d6SSheetal Tigadoli #define TMON_SHARED_DDR_ADDRESS 0x8f100000 471717448d6SSheetal Tigadoli 472717448d6SSheetal Tigadoli /* Reserve 4 kB to pass data to BL33 */ 473717448d6SSheetal Tigadoli #define BL33_SHARED_DDR_BASE 0x8f102000 474717448d6SSheetal Tigadoli #define BL33_SHARED_DDR_SIZE 0x1000 475717448d6SSheetal Tigadoli 476717448d6SSheetal Tigadoli /* Default AP error logging base addr */ 477717448d6SSheetal Tigadoli #ifndef ELOG_AP_UART_LOG_BASE 478717448d6SSheetal Tigadoli #define ELOG_AP_UART_LOG_BASE 0x8f110000 479717448d6SSheetal Tigadoli #endif 480717448d6SSheetal Tigadoli 481717448d6SSheetal Tigadoli /* Reserve 16 to store error logs in BL31 */ 482717448d6SSheetal Tigadoli #define BCM_ELOG_BL31_BASE ELOG_AP_UART_LOG_BASE 483717448d6SSheetal Tigadoli #define BCM_ELOG_BL31_SIZE 0x4000 484717448d6SSheetal Tigadoli 485717448d6SSheetal Tigadoli /******************************************************************************* 486717448d6SSheetal Tigadoli * Non-secure DDR Map 487717448d6SSheetal Tigadoli ******************************************************************************/ 488717448d6SSheetal Tigadoli #define BRCM_DRAM1_BASE ULL(0x80000000) 489717448d6SSheetal Tigadoli #define BRCM_DRAM1_SIZE ULL(0x10000000) 490717448d6SSheetal Tigadoli #define BRCM_DRAM2_BASE ULL(0x880000000) 491717448d6SSheetal Tigadoli #define BRCM_DRAM2_SIZE ULL(0x780000000) 492717448d6SSheetal Tigadoli #define BRCM_DRAM3_BASE ULL(0x8800000000) 493717448d6SSheetal Tigadoli #define BRCM_DRAM3_SIZE ULL(0x7800000000) 494717448d6SSheetal Tigadoli #define BRCM_SHARED_DRAM_BASE BL33_SHARED_DDR_BASE 495717448d6SSheetal Tigadoli #define BRCM_SHARED_DRAM_SIZE BL33_SHARED_DDR_SIZE 496717448d6SSheetal Tigadoli #define BRCM_EXT_SRAM_BASE ULL(0x74000000) 497717448d6SSheetal Tigadoli #define BRCM_EXT_SRAM_SIZE ULL(0x4000000) 498717448d6SSheetal Tigadoli 499717448d6SSheetal Tigadoli /* Priority levels for platforms */ 500717448d6SSheetal Tigadoli #define PLAT_RAS_PRI 0x10 501717448d6SSheetal Tigadoli #define PLAT_SDEI_CRITICAL_PRI 0x60 502717448d6SSheetal Tigadoli #define PLAT_SDEI_NORMAL_PRI 0x70 503717448d6SSheetal Tigadoli 504717448d6SSheetal Tigadoli /* Define a list of Group 1 Secure and Group 0 interrupts as per GICv3 */ 505717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SGI_0 14 506717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SGI_1 15 507717448d6SSheetal Tigadoli 508717448d6SSheetal Tigadoli /* RTC periodic interrupt */ 509717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SPI_0 49 510717448d6SSheetal Tigadoli 511717448d6SSheetal Tigadoli /* 512717448d6SSheetal Tigadoli * Macros for local power states in SR platforms encoded by State-ID field 513717448d6SSheetal Tigadoli * within the power-state parameter. 514717448d6SSheetal Tigadoli */ 515717448d6SSheetal Tigadoli 516717448d6SSheetal Tigadoli /* Local power state for power domains in Run state. */ 517717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_RUN 0 518717448d6SSheetal Tigadoli 519717448d6SSheetal Tigadoli /* Local power state for retention. Valid only for CPU power domains */ 520717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_RET 1 521717448d6SSheetal Tigadoli 522717448d6SSheetal Tigadoli /* 523717448d6SSheetal Tigadoli * Local power state for OFF/power-down. Valid for CPU and cluster power 524717448d6SSheetal Tigadoli * domains. 525717448d6SSheetal Tigadoli */ 526717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_OFF 2 527717448d6SSheetal Tigadoli 528717448d6SSheetal Tigadoli /* 529717448d6SSheetal Tigadoli * This macro defines the deepest retention state possible. A higher state 530717448d6SSheetal Tigadoli * id will represent an invalid or a power down state. 531717448d6SSheetal Tigadoli */ 532717448d6SSheetal Tigadoli #define PLAT_MAX_RET_STATE PLAT_LOCAL_STATE_RET 533717448d6SSheetal Tigadoli 534717448d6SSheetal Tigadoli /* 535717448d6SSheetal Tigadoli * This macro defines the deepest power down states possible. Any state ID 536717448d6SSheetal Tigadoli * higher than this is invalid. 537717448d6SSheetal Tigadoli */ 538717448d6SSheetal Tigadoli #define PLAT_MAX_OFF_STATE PLAT_LOCAL_STATE_OFF 539717448d6SSheetal Tigadoli 540717448d6SSheetal Tigadoli /* ChiMP-related constants */ 541717448d6SSheetal Tigadoli 542717448d6SSheetal Tigadoli #define NITRO_TZPC_TZPCDECPROT0clr 0x60c01808 543717448d6SSheetal Tigadoli #define NITRO_TZPC_TZPCDECPROT0clr__DECPROT0_chimp_m_clr_R 1 544717448d6SSheetal Tigadoli 545717448d6SSheetal Tigadoli #define NIC400_NITRO_CHIMP_S_IDM_IO_CONTROL_DIRECT 0x60e00408 546717448d6SSheetal Tigadoli 547717448d6SSheetal Tigadoli #define CHIMP_INDIRECT_ADDR_MASK 0x3fffff 548717448d6SSheetal Tigadoli #define CHIMP_INDIRECT_BASE 0x60800000 549717448d6SSheetal Tigadoli 550717448d6SSheetal Tigadoli #define CHIMP_REG_ECO_RESERVED 0x3042400 551717448d6SSheetal Tigadoli 552717448d6SSheetal Tigadoli #define CHIMP_FLASH_ACCESS_DONE_BIT 2 553717448d6SSheetal Tigadoli 554717448d6SSheetal Tigadoli /* indicate FRU table programming is done successfully */ 555717448d6SSheetal Tigadoli #define CHIMP_FRU_PROG_DONE_BIT 9 556717448d6SSheetal Tigadoli 557717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BPE_MODE_REG 0x0 558717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BPE_STAT_REG 0x4 559717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_FSTBOOT_PTR_REG 0x8 560717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_L 1 561717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_R 1 562717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BASE 0x3040000 563717448d6SSheetal Tigadoli #define CHIMP_FAST_BOOT_MODE_BIT 2 564717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_APE_SCPAD 0x3300000 565717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_SCPAD 0x3100000 566717448d6SSheetal Tigadoli 567717448d6SSheetal Tigadoli /* Chimp health status offset in scratch pad ram */ 568717448d6SSheetal Tigadoli #define CHIMP_HEALTH_STATUS_OFFSET 0x8 569717448d6SSheetal Tigadoli /* 570717448d6SSheetal Tigadoli * If not in NIC mode then FASTBOOT can be enabled. 571717448d6SSheetal Tigadoli * "Not in NIC mode" means that FORCE_FASTBOOT is set 572717448d6SSheetal Tigadoli * and a valid (1 or 2) fastboot type is specified. 573717448d6SSheetal Tigadoli * 574717448d6SSheetal Tigadoli * Three types of fastboot are supported: 575717448d6SSheetal Tigadoli * 0 = No fastboot. Boots Nitro/ChiMP and lets ROM loader 576717448d6SSheetal Tigadoli * initialize ChiMP from NVRAM (QSPI). 577717448d6SSheetal Tigadoli * 578717448d6SSheetal Tigadoli * 1 = Jump in place (need a flat image) 579717448d6SSheetal Tigadoli * This is intended to speedup Nitro FW boot on Palladium, 580717448d6SSheetal Tigadoli * can be used with a real chip as well. 581717448d6SSheetal Tigadoli * 2 = Jump normally with decompression 582717448d6SSheetal Tigadoli * Modus operandi for a real chip. Works also on Palladium 583717448d6SSheetal Tigadoli * Note: image decompressing takes time on Palladium. 584717448d6SSheetal Tigadoli * 3 = No fastboot support. No ChiMP bringup 585717448d6SSheetal Tigadoli * (use only for AP debug or for ChiMP's deferred setup). 586717448d6SSheetal Tigadoli */ 587717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_JUMP_DECOMPRESS 2 588717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_JUMP_IN_PLACE 1 589717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_NITRO_RESET 0 590717448d6SSheetal Tigadoli /* 591717448d6SSheetal Tigadoli * Definitions for a non-Nitro access 592717448d6SSheetal Tigadoli * to QSPI PAD after the handshake 593717448d6SSheetal Tigadoli */ 594717448d6SSheetal Tigadoli #define QSPI_HOLD_N_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3e8) 595717448d6SSheetal Tigadoli #define QSPI_WP_N_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3ec) 596717448d6SSheetal Tigadoli #define QSPI_SCK_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3f0) 597717448d6SSheetal Tigadoli #define QSPI_CS_N_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3f4) 598717448d6SSheetal Tigadoli #define QSPI_MOSI_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3f8) 599717448d6SSheetal Tigadoli #define QSPI_MISO_MODE_SEL_CONTROL (HSLS_MODE_SEL_CONTROL + 0x3fc) 600717448d6SSheetal Tigadoli 601717448d6SSheetal Tigadoli /******************************************************************************* 602717448d6SSheetal Tigadoli * Stream IDs for different blocks of SR 603717448d6SSheetal Tigadoli * block_id for different blocks is as follows: 604717448d6SSheetal Tigadoli * PCIE : 0x0 605717448d6SSheetal Tigadoli * PAXC : 0x1 606717448d6SSheetal Tigadoli * FS4 : 0x2 607717448d6SSheetal Tigadoli * Rest of the masters(includes MHB via RNI): 0x3 608717448d6SSheetal Tigadoli ******************************************************************************/ 609717448d6SSheetal Tigadoli #define SR_SID_VAL(block_id, subblock_id, device_num) ((block_id << 13) | \ 610717448d6SSheetal Tigadoli (subblock_id << 11) | \ 611717448d6SSheetal Tigadoli (device_num)) 612717448d6SSheetal Tigadoli 613717448d6SSheetal Tigadoli #define CRMU_STREAM_ID SR_SID_VAL(0x3, 0x0, 0x7) 614717448d6SSheetal Tigadoli #define CRMU_SID_SHIFT 5 615717448d6SSheetal Tigadoli 616717448d6SSheetal Tigadoli #define DMAC_STREAM_ID SR_SID_VAL(0x3, 0x0, 0x0) 617717448d6SSheetal Tigadoli #define DMAC_SID_SHIFT 5 618717448d6SSheetal Tigadoli 619717448d6SSheetal Tigadoli /* DDR SHMOO Values defines */ 620717448d6SSheetal Tigadoli #define IDRAM_SHMOO_VALUES_ADDR CRMU_IDRAM_BASE_ADDR 621717448d6SSheetal Tigadoli #define DDR_SHMOO_VALUES_ADDR 0x8f103000 622717448d6SSheetal Tigadoli #define SHMOO_SIZE_PER_CHANNEL 0x1000 623717448d6SSheetal Tigadoli 624717448d6SSheetal Tigadoli #endif /* SR_DEF_H */ 625