1 /* 2 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. 3 * Copyright (c) 2020, NVIDIA Corporation. All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #ifndef PLATFORM_DEF_H 9 #define PLATFORM_DEF_H 10 11 #include <arch.h> 12 #include <lib/utils_def.h> 13 14 #include <tegra_def.h> 15 16 /******************************************************************************* 17 * Check and error if SEPARATE_CODE_AND_RODATA is not set to 1 18 ******************************************************************************/ 19 #if !SEPARATE_CODE_AND_RODATA 20 #error "SEPARATE_CODE_AND_RODATA should be set to 1" 21 #endif 22 23 /* 24 * Platform binary types for linking 25 */ 26 #define PLATFORM_LINKER_FORMAT "elf64-littleaarch64" 27 #define PLATFORM_LINKER_ARCH aarch64 28 29 /* 30 * Platform binary types for linking 31 */ 32 #define PLATFORM_LINKER_FORMAT "elf64-littleaarch64" 33 #define PLATFORM_LINKER_ARCH aarch64 34 35 /******************************************************************************* 36 * Generic platform constants 37 ******************************************************************************/ 38 39 /* Size of cacheable stacks */ 40 #ifdef IMAGE_BL31 41 #define PLATFORM_STACK_SIZE U(0x400) 42 #endif 43 44 #define TEGRA_PRIMARY_CPU U(0x0) 45 46 #define PLAT_MAX_PWR_LVL MPIDR_AFFLVL2 47 #define PLATFORM_CORE_COUNT (PLATFORM_CLUSTER_COUNT * \ 48 PLATFORM_MAX_CPUS_PER_CLUSTER) 49 #define PLAT_NUM_PWR_DOMAINS (PLATFORM_CORE_COUNT + \ 50 PLATFORM_CLUSTER_COUNT + U(1)) 51 52 /******************************************************************************* 53 * Platform console related constants 54 ******************************************************************************/ 55 #define TEGRA_CONSOLE_BAUDRATE U(115200) 56 #define TEGRA_BOOT_UART_CLK_13_MHZ U(13000000) 57 #define TEGRA_BOOT_UART_CLK_408_MHZ U(408000000) 58 59 /******************************************************************************* 60 * Platform memory map related constants 61 ******************************************************************************/ 62 /* Size of trusted dram */ 63 #define TZDRAM_SIZE U(0x00400000) 64 #define TZDRAM_END (TZDRAM_BASE + TZDRAM_SIZE) 65 66 /******************************************************************************* 67 * BL31 specific defines. 68 ******************************************************************************/ 69 #define BL31_SIZE U(0x40000) 70 #define BL31_BASE TZDRAM_BASE 71 #define BL31_LIMIT (TZDRAM_BASE + BL31_SIZE - 1) 72 #define BL32_BASE (TZDRAM_BASE + BL31_SIZE) 73 #define BL32_LIMIT TZDRAM_END 74 75 /******************************************************************************* 76 * Some data must be aligned on the biggest cache line size in the platform. 77 * This is known only to the platform as it might have a combination of 78 * integrated and external caches. 79 ******************************************************************************/ 80 #define CACHE_WRITEBACK_SHIFT 6 81 #define CACHE_WRITEBACK_GRANULE (0x40) /* (U(1) << CACHE_WRITEBACK_SHIFT) */ 82 83 /******************************************************************************* 84 * Dummy macros to compile io_storage support 85 ******************************************************************************/ 86 #define MAX_IO_DEVICES U(0) 87 #define MAX_IO_HANDLES U(0) 88 89 90 #endif /* PLATFORM_DEF_H */ 91