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