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