1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2016 - 2020, Broadcom 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef BRCM_DEF_H 8*91f16700Schasinglulu #define BRCM_DEF_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <arch.h> 11*91f16700Schasinglulu #include <common/tbbr/tbbr_img_def.h> 12*91f16700Schasinglulu #include <lib/utils_def.h> 13*91f16700Schasinglulu #include <lib/xlat_tables/xlat_tables.h> 14*91f16700Schasinglulu #include <plat/common/common_def.h> 15*91f16700Schasinglulu 16*91f16700Schasinglulu #include <platform_def.h> 17*91f16700Schasinglulu 18*91f16700Schasinglulu #define PLAT_PHY_ADDR_SPACE_SIZE BIT_64(32) 19*91f16700Schasinglulu #define PLAT_VIRT_ADDR_SPACE_SIZE BIT_64(32) 20*91f16700Schasinglulu 21*91f16700Schasinglulu #define BL11_DAUTH_ID 0x796C51ab 22*91f16700Schasinglulu #define BL11_DAUTH_BASE BL11_RW_BASE 23*91f16700Schasinglulu 24*91f16700Schasinglulu /* We keep a table at the end of ROM for function pointers */ 25*91f16700Schasinglulu #define ROM_TABLE_SIZE 32 26*91f16700Schasinglulu #define BL1_ROM_TABLE (BL1_RO_LIMIT - ROM_TABLE_SIZE) 27*91f16700Schasinglulu 28*91f16700Schasinglulu /* 29*91f16700Schasinglulu * The top 16MB of DRAM1 is configured as secure access only using the TZC 30*91f16700Schasinglulu * - SCP TZC DRAM: If present, DRAM reserved for SCP use 31*91f16700Schasinglulu * - AP TZC DRAM: The remaining TZC secured DRAM reserved for AP use 32*91f16700Schasinglulu */ 33*91f16700Schasinglulu #define BRCM_TZC_DRAM1_SIZE ULL(0x01000000) 34*91f16700Schasinglulu 35*91f16700Schasinglulu #define BRCM_SCP_TZC_DRAM1_BASE (BRCM_DRAM1_BASE + \ 36*91f16700Schasinglulu BRCM_DRAM1_SIZE - \ 37*91f16700Schasinglulu BRCM_SCP_TZC_DRAM1_SIZE) 38*91f16700Schasinglulu #define BRCM_SCP_TZC_DRAM1_SIZE PLAT_BRCM_SCP_TZC_DRAM1_SIZE 39*91f16700Schasinglulu 40*91f16700Schasinglulu #define BRCM_AP_TZC_DRAM1_BASE (BRCM_DRAM1_BASE + \ 41*91f16700Schasinglulu BRCM_DRAM1_SIZE - \ 42*91f16700Schasinglulu BRCM_TZC_DRAM1_SIZE) 43*91f16700Schasinglulu #define BRCM_AP_TZC_DRAM1_SIZE (BRCM_TZC_DRAM1_SIZE - \ 44*91f16700Schasinglulu BRCM_SCP_TZC_DRAM1_SIZE) 45*91f16700Schasinglulu 46*91f16700Schasinglulu #define BRCM_NS_DRAM1_BASE BRCM_DRAM1_BASE 47*91f16700Schasinglulu #define BRCM_NS_DRAM1_SIZE (BRCM_DRAM1_SIZE - \ 48*91f16700Schasinglulu BRCM_TZC_DRAM1_SIZE) 49*91f16700Schasinglulu 50*91f16700Schasinglulu #ifdef BRCM_SHARED_DRAM_BASE 51*91f16700Schasinglulu #define BRCM_NS_SHARED_DRAM_BASE BRCM_SHARED_DRAM_BASE 52*91f16700Schasinglulu #define BRCM_NS_SHARED_DRAM_SIZE BRCM_SHARED_DRAM_SIZE 53*91f16700Schasinglulu #endif 54*91f16700Schasinglulu 55*91f16700Schasinglulu #define BRCM_MAP_SHARED_RAM MAP_REGION_FLAT( \ 56*91f16700Schasinglulu BRCM_SHARED_RAM_BASE, \ 57*91f16700Schasinglulu BRCM_SHARED_RAM_SIZE, \ 58*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 59*91f16700Schasinglulu 60*91f16700Schasinglulu #define BRCM_MAP_NS_DRAM1 MAP_REGION_FLAT( \ 61*91f16700Schasinglulu BRCM_NS_DRAM1_BASE, \ 62*91f16700Schasinglulu BRCM_NS_DRAM1_SIZE, \ 63*91f16700Schasinglulu MT_MEMORY | MT_RW | MT_NS) 64*91f16700Schasinglulu 65*91f16700Schasinglulu #ifdef BRCM_SHARED_DRAM_BASE 66*91f16700Schasinglulu #define BRCM_MAP_NS_SHARED_DRAM MAP_REGION_FLAT( \ 67*91f16700Schasinglulu BRCM_NS_SHARED_DRAM_BASE, \ 68*91f16700Schasinglulu BRCM_NS_SHARED_DRAM_SIZE, \ 69*91f16700Schasinglulu MT_MEMORY | MT_RW | MT_NS) 70*91f16700Schasinglulu #endif 71*91f16700Schasinglulu 72*91f16700Schasinglulu #ifdef BRCM_EXT_SRAM_BASE 73*91f16700Schasinglulu #define BRCM_MAP_EXT_SRAM MAP_REGION_FLAT( \ 74*91f16700Schasinglulu BRCM_EXT_SRAM_BASE, \ 75*91f16700Schasinglulu BRCM_EXT_SRAM_SIZE, \ 76*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 77*91f16700Schasinglulu #endif 78*91f16700Schasinglulu 79*91f16700Schasinglulu #define BRCM_MAP_NAND_RO MAP_REGION_FLAT(NAND_BASE_ADDR,\ 80*91f16700Schasinglulu NAND_SIZE, \ 81*91f16700Schasinglulu MT_MEMORY | MT_RO | MT_SECURE) 82*91f16700Schasinglulu 83*91f16700Schasinglulu #define BRCM_MAP_QSPI_RO MAP_REGION_FLAT(QSPI_BASE_ADDR,\ 84*91f16700Schasinglulu QSPI_SIZE, \ 85*91f16700Schasinglulu MT_MEMORY | MT_RO | MT_SECURE) 86*91f16700Schasinglulu 87*91f16700Schasinglulu #define HSLS_REGION MAP_REGION_FLAT(HSLS_BASE_ADDR, \ 88*91f16700Schasinglulu HSLS_SIZE, \ 89*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 90*91f16700Schasinglulu 91*91f16700Schasinglulu #define CCN_REGION MAP_REGION_FLAT(PLAT_BRCM_CCN_BASE, \ 92*91f16700Schasinglulu CCN_SIZE, \ 93*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 94*91f16700Schasinglulu 95*91f16700Schasinglulu #define GIC500_REGION MAP_REGION_FLAT(GIC500_BASE, \ 96*91f16700Schasinglulu GIC500_SIZE, \ 97*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 98*91f16700Schasinglulu #ifdef PERIPH0_BASE 99*91f16700Schasinglulu #define PERIPH0_REGION MAP_REGION_FLAT(PERIPH0_BASE, \ 100*91f16700Schasinglulu PERIPH0_SIZE, \ 101*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 102*91f16700Schasinglulu #endif 103*91f16700Schasinglulu 104*91f16700Schasinglulu #ifdef PERIPH1_BASE 105*91f16700Schasinglulu #define PERIPH1_REGION MAP_REGION_FLAT(PERIPH1_BASE, \ 106*91f16700Schasinglulu PERIPH1_SIZE, \ 107*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 108*91f16700Schasinglulu #endif 109*91f16700Schasinglulu 110*91f16700Schasinglulu #ifdef PERIPH2_BASE 111*91f16700Schasinglulu #define PERIPH2_REGION MAP_REGION_FLAT(PERIPH2_BASE, \ 112*91f16700Schasinglulu PERIPH2_SIZE, \ 113*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 114*91f16700Schasinglulu #endif 115*91f16700Schasinglulu 116*91f16700Schasinglulu #if BRCM_BL31_IN_DRAM 117*91f16700Schasinglulu #if IMAGE_BL2 118*91f16700Schasinglulu #define BRCM_MAP_BL31_SEC_DRAM MAP_REGION_FLAT( \ 119*91f16700Schasinglulu BL31_BASE, \ 120*91f16700Schasinglulu PLAT_BRCM_MAX_BL31_SIZE,\ 121*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 122*91f16700Schasinglulu #else 123*91f16700Schasinglulu #define BRCM_MAP_BL31_SEC_DRAM MAP_REGION_FLAT( \ 124*91f16700Schasinglulu BL31_BASE, \ 125*91f16700Schasinglulu PLAT_BRCM_MAX_BL31_SIZE,\ 126*91f16700Schasinglulu MT_MEMORY | MT_RW | MT_SECURE) 127*91f16700Schasinglulu #endif 128*91f16700Schasinglulu #endif 129*91f16700Schasinglulu 130*91f16700Schasinglulu #if defined(USB_BASE) && defined(DRIVER_USB_ENABLE) 131*91f16700Schasinglulu #define USB_REGION MAP_REGION_FLAT( \ 132*91f16700Schasinglulu USB_BASE, \ 133*91f16700Schasinglulu USB_SIZE, \ 134*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 135*91f16700Schasinglulu #endif 136*91f16700Schasinglulu 137*91f16700Schasinglulu #ifdef USE_CRMU_SRAM 138*91f16700Schasinglulu #define CRMU_SRAM_REGION MAP_REGION_FLAT( \ 139*91f16700Schasinglulu CRMU_SRAM_BASE, \ 140*91f16700Schasinglulu CRMU_SRAM_SIZE, \ 141*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 142*91f16700Schasinglulu #endif 143*91f16700Schasinglulu /* 144*91f16700Schasinglulu * The number of regions like RO(code), coherent and data required by 145*91f16700Schasinglulu * different BL stages which need to be mapped in the MMU. 146*91f16700Schasinglulu */ 147*91f16700Schasinglulu #if USE_COHERENT_MEM 148*91f16700Schasinglulu #define BRCM_BL_REGIONS 3 149*91f16700Schasinglulu #else 150*91f16700Schasinglulu #define BRCM_BL_REGIONS 2 151*91f16700Schasinglulu #endif 152*91f16700Schasinglulu 153*91f16700Schasinglulu #endif /* BRCM_DEF_H */ 154