1*4353bb20SYann Gautier /* 2*4353bb20SYann Gautier * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. 3*4353bb20SYann Gautier * 4*4353bb20SYann Gautier * SPDX-License-Identifier: BSD-3-Clause 5*4353bb20SYann Gautier */ 6*4353bb20SYann Gautier 7*4353bb20SYann Gautier #ifndef STM32MP1_DEF_H 8*4353bb20SYann Gautier #define STM32MP1_DEF_H 9*4353bb20SYann Gautier 10*4353bb20SYann Gautier #include <tbbr_img_def.h> 11*4353bb20SYann Gautier #include <utils_def.h> 12*4353bb20SYann Gautier #include <xlat_tables_defs.h> 13*4353bb20SYann Gautier 14*4353bb20SYann Gautier /******************************************************************************* 15*4353bb20SYann Gautier * STM32MP1 memory map related constants 16*4353bb20SYann Gautier ******************************************************************************/ 17*4353bb20SYann Gautier 18*4353bb20SYann Gautier #define STM32MP1_SRAM_BASE U(0x2FFC0000) 19*4353bb20SYann Gautier #define STM32MP1_SRAM_SIZE U(0x00040000) 20*4353bb20SYann Gautier 21*4353bb20SYann Gautier /* DDR configuration */ 22*4353bb20SYann Gautier #define STM32MP1_DDR_BASE U(0xC0000000) 23*4353bb20SYann Gautier #define STM32MP1_DDR_SIZE_DFLT U(0x20000000) /* 512 MB */ 24*4353bb20SYann Gautier #define STM32MP1_DDR_MAX_SIZE U(0x40000000) /* Max 1GB */ 25*4353bb20SYann Gautier #define STM32MP1_DDR_SPEED_DFLT 528 26*4353bb20SYann Gautier 27*4353bb20SYann Gautier /* DDR power initializations */ 28*4353bb20SYann Gautier #ifndef __ASSEMBLY__ 29*4353bb20SYann Gautier enum ddr_type { 30*4353bb20SYann Gautier STM32MP_DDR3, 31*4353bb20SYann Gautier STM32MP_LPDDR2, 32*4353bb20SYann Gautier }; 33*4353bb20SYann Gautier #endif 34*4353bb20SYann Gautier 35*4353bb20SYann Gautier /* Section used inside TF binaries */ 36*4353bb20SYann Gautier #define STM32MP1_PARAM_LOAD_SIZE U(0x00002400) /* 9 Ko for param */ 37*4353bb20SYann Gautier /* 256 Octets reserved for header */ 38*4353bb20SYann Gautier #define STM32MP1_HEADER_SIZE U(0x00000100) 39*4353bb20SYann Gautier 40*4353bb20SYann Gautier #define STM32MP1_BINARY_BASE (STM32MP1_SRAM_BASE + \ 41*4353bb20SYann Gautier STM32MP1_PARAM_LOAD_SIZE + \ 42*4353bb20SYann Gautier STM32MP1_HEADER_SIZE) 43*4353bb20SYann Gautier 44*4353bb20SYann Gautier #define STM32MP1_BINARY_SIZE (STM32MP1_SRAM_SIZE - \ 45*4353bb20SYann Gautier (STM32MP1_PARAM_LOAD_SIZE + \ 46*4353bb20SYann Gautier STM32MP1_HEADER_SIZE)) 47*4353bb20SYann Gautier 48*4353bb20SYann Gautier #if STACK_PROTECTOR_ENABLED 49*4353bb20SYann Gautier #define STM32MP1_BL32_SIZE U(0x00012000) /* 72 Ko for BL32 */ 50*4353bb20SYann Gautier #else 51*4353bb20SYann Gautier #define STM32MP1_BL32_SIZE U(0x00011000) /* 68 Ko for BL32 */ 52*4353bb20SYann Gautier #endif 53*4353bb20SYann Gautier 54*4353bb20SYann Gautier #define STM32MP1_BL32_BASE (STM32MP1_SRAM_BASE + \ 55*4353bb20SYann Gautier STM32MP1_SRAM_SIZE - \ 56*4353bb20SYann Gautier STM32MP1_BL32_SIZE) 57*4353bb20SYann Gautier 58*4353bb20SYann Gautier #if STACK_PROTECTOR_ENABLED 59*4353bb20SYann Gautier #define STM32MP1_BL2_SIZE U(0x00015000) /* 84 Ko for BL2 */ 60*4353bb20SYann Gautier #else 61*4353bb20SYann Gautier #define STM32MP1_BL2_SIZE U(0x00013000) /* 76 Ko for BL2 */ 62*4353bb20SYann Gautier #endif 63*4353bb20SYann Gautier 64*4353bb20SYann Gautier #define STM32MP1_BL2_BASE (STM32MP1_BL32_BASE - \ 65*4353bb20SYann Gautier STM32MP1_BL2_SIZE) 66*4353bb20SYann Gautier 67*4353bb20SYann Gautier /* BL2 and BL32/sp_min require 5 tables */ 68*4353bb20SYann Gautier #define MAX_XLAT_TABLES 5 69*4353bb20SYann Gautier 70*4353bb20SYann Gautier /* 71*4353bb20SYann Gautier * MAX_MMAP_REGIONS is usually: 72*4353bb20SYann Gautier * BL stm32mp1_mmap size + mmap regions in *_plat_arch_setup 73*4353bb20SYann Gautier */ 74*4353bb20SYann Gautier #define MAX_MMAP_REGIONS 11 75*4353bb20SYann Gautier 76*4353bb20SYann Gautier /* DTB initialization value */ 77*4353bb20SYann Gautier #define STM32MP1_DTB_SIZE U(0x00004000) /* 16Ko for DTB */ 78*4353bb20SYann Gautier 79*4353bb20SYann Gautier #define STM32MP1_DTB_BASE (STM32MP1_BL2_BASE - \ 80*4353bb20SYann Gautier STM32MP1_DTB_SIZE) 81*4353bb20SYann Gautier 82*4353bb20SYann Gautier #define STM32MP1_BL33_BASE (STM32MP1_DDR_BASE + U(0x100000)) 83*4353bb20SYann Gautier 84*4353bb20SYann Gautier /******************************************************************************* 85*4353bb20SYann Gautier * STM32MP1 device/io map related constants (used for MMU) 86*4353bb20SYann Gautier ******************************************************************************/ 87*4353bb20SYann Gautier #define STM32MP1_DEVICE1_BASE U(0x40000000) 88*4353bb20SYann Gautier #define STM32MP1_DEVICE1_SIZE U(0x40000000) 89*4353bb20SYann Gautier 90*4353bb20SYann Gautier #define STM32MP1_DEVICE2_BASE U(0x80000000) 91*4353bb20SYann Gautier #define STM32MP1_DEVICE2_SIZE U(0x40000000) 92*4353bb20SYann Gautier 93*4353bb20SYann Gautier /******************************************************************************* 94*4353bb20SYann Gautier * STM32MP1 RCC 95*4353bb20SYann Gautier ******************************************************************************/ 96*4353bb20SYann Gautier #define RCC_BASE U(0x50000000) 97*4353bb20SYann Gautier 98*4353bb20SYann Gautier /******************************************************************************* 99*4353bb20SYann Gautier * STM32MP1 PWR 100*4353bb20SYann Gautier ******************************************************************************/ 101*4353bb20SYann Gautier #define PWR_BASE U(0x50001000) 102*4353bb20SYann Gautier 103*4353bb20SYann Gautier /******************************************************************************* 104*4353bb20SYann Gautier * STM32MP1 UART 105*4353bb20SYann Gautier ******************************************************************************/ 106*4353bb20SYann Gautier #define USART1_BASE U(0x5C000000) 107*4353bb20SYann Gautier #define USART2_BASE U(0x4000E000) 108*4353bb20SYann Gautier #define USART3_BASE U(0x4000F000) 109*4353bb20SYann Gautier #define UART4_BASE U(0x40010000) 110*4353bb20SYann Gautier #define UART5_BASE U(0x40011000) 111*4353bb20SYann Gautier #define USART6_BASE U(0x44003000) 112*4353bb20SYann Gautier #define UART7_BASE U(0x40018000) 113*4353bb20SYann Gautier #define UART8_BASE U(0x40019000) 114*4353bb20SYann Gautier #define STM32MP1_DEBUG_USART_BASE UART4_BASE 115*4353bb20SYann Gautier #define STM32MP1_UART_BAUDRATE 115200 116*4353bb20SYann Gautier 117*4353bb20SYann Gautier /******************************************************************************* 118*4353bb20SYann Gautier * STM32MP1 GIC-400 119*4353bb20SYann Gautier ******************************************************************************/ 120*4353bb20SYann Gautier #define STM32MP1_GICD_BASE U(0xA0021000) 121*4353bb20SYann Gautier #define STM32MP1_GICC_BASE U(0xA0022000) 122*4353bb20SYann Gautier #define STM32MP1_GICH_BASE U(0xA0024000) 123*4353bb20SYann Gautier #define STM32MP1_GICV_BASE U(0xA0026000) 124*4353bb20SYann Gautier 125*4353bb20SYann Gautier /******************************************************************************* 126*4353bb20SYann Gautier * STM32MP1 TZC (TZ400) 127*4353bb20SYann Gautier ******************************************************************************/ 128*4353bb20SYann Gautier #define STM32MP1_TZC_BASE U(0x5C006000) 129*4353bb20SYann Gautier 130*4353bb20SYann Gautier #define STM32MP1_TZC_A7_ID U(0) 131*4353bb20SYann Gautier #define STM32MP1_TZC_LCD_ID U(3) 132*4353bb20SYann Gautier #define STM32MP1_TZC_GPU_ID U(4) 133*4353bb20SYann Gautier #define STM32MP1_TZC_MDMA_ID U(5) 134*4353bb20SYann Gautier #define STM32MP1_TZC_DMA_ID U(6) 135*4353bb20SYann Gautier #define STM32MP1_TZC_USB_HOST_ID U(7) 136*4353bb20SYann Gautier #define STM32MP1_TZC_USB_OTG_ID U(8) 137*4353bb20SYann Gautier #define STM32MP1_TZC_SDMMC_ID U(9) 138*4353bb20SYann Gautier #define STM32MP1_TZC_ETH_ID U(10) 139*4353bb20SYann Gautier #define STM32MP1_TZC_DAP_ID U(15) 140*4353bb20SYann Gautier 141*4353bb20SYann Gautier #define STM32MP1_MEMORY_NS 0 142*4353bb20SYann Gautier #define STM32MP1_MEMORY_SECURE 1 143*4353bb20SYann Gautier 144*4353bb20SYann Gautier #define STM32MP1_FILTER_BIT_ALL 3 145*4353bb20SYann Gautier 146*4353bb20SYann Gautier /******************************************************************************* 147*4353bb20SYann Gautier * STM32MP1 SDMMC 148*4353bb20SYann Gautier ******************************************************************************/ 149*4353bb20SYann Gautier #define STM32MP1_SDMMC1_BASE U(0x58005000) 150*4353bb20SYann Gautier #define STM32MP1_SDMMC2_BASE U(0x58007000) 151*4353bb20SYann Gautier #define STM32MP1_SDMMC3_BASE U(0x48004000) 152*4353bb20SYann Gautier 153*4353bb20SYann Gautier #define STM32MP1_SD_INIT_FREQ 400000 /*400 KHz*/ 154*4353bb20SYann Gautier #define STM32MP1_SD_NORMAL_SPEED_MAX_FREQ 25000000 /*25 MHz*/ 155*4353bb20SYann Gautier #define STM32MP1_SD_HIGH_SPEED_MAX_FREQ 50000000 /*50 MHz*/ 156*4353bb20SYann Gautier #define STM32MP1_EMMC_INIT_FREQ STM32MP1_SD_INIT_FREQ 157*4353bb20SYann Gautier #define STM32MP1_EMMC_NORMAL_SPEED_MAX_FREQ 26000000 /*26 MHz*/ 158*4353bb20SYann Gautier #define STM32MP1_EMMC_HIGH_SPEED_MAX_FREQ 52000000 /*52 MHz*/ 159*4353bb20SYann Gautier 160*4353bb20SYann Gautier /******************************************************************************* 161*4353bb20SYann Gautier * STM32MP1 DDRCTRL 162*4353bb20SYann Gautier ******************************************************************************/ 163*4353bb20SYann Gautier #define DDRCTRL_BASE U(0x5A003000) 164*4353bb20SYann Gautier 165*4353bb20SYann Gautier /******************************************************************************* 166*4353bb20SYann Gautier * STM32MP1 DDRPHYC 167*4353bb20SYann Gautier ******************************************************************************/ 168*4353bb20SYann Gautier #define DDRPHYC_BASE U(0x5A004000) 169*4353bb20SYann Gautier 170*4353bb20SYann Gautier /******************************************************************************* 171*4353bb20SYann Gautier * STM32MP1 I2C4 172*4353bb20SYann Gautier ******************************************************************************/ 173*4353bb20SYann Gautier #define I2C4_BASE U(0x5C002000) 174*4353bb20SYann Gautier 175*4353bb20SYann Gautier #endif /* STM32MP1_DEF_H */ 176