blob: 817f480a2351ccbf2faed90660c9ae2c1c46fdb7 [file] [log] [blame]
Varun Wadekarb316e242015-05-19 16:48:04 +05301/*
Steven Kao0cb8b332018-02-09 20:50:02 +08002 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
Varun Wadekarb316e242015-05-19 16:48:04 +05303 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Varun Wadekarb316e242015-05-19 16:48:04 +05305 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef PLATFORM_DEF_H
8#define PLATFORM_DEF_H
Varun Wadekarb316e242015-05-19 16:48:04 +05309
10#include <arch.h>
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000011#include <lib/utils_def.h>
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000012
Varun Wadekara78bb1b2015-08-07 10:03:00 +053013#include <tegra_def.h>
Varun Wadekarb316e242015-05-19 16:48:04 +053014
Kalyani Chidambaram425155a2018-12-19 11:06:14 -080015/*******************************************************************************
16 * Check and error if SEPARATE_CODE_AND_RODATA is not set to 1
17 ******************************************************************************/
18#if !SEPARATE_CODE_AND_RODATA
19#error "SEPARATE_CODE_AND_RODATA should be set to 1"
20#endif
21
Varun Wadekar5fb2c5d2018-12-21 10:55:42 -080022/*
23 * Platform binary types for linking
24 */
25#define PLATFORM_LINKER_FORMAT "elf64-littleaarch64"
26#define PLATFORM_LINKER_ARCH aarch64
27
Varun Wadekarb316e242015-05-19 16:48:04 +053028/*******************************************************************************
29 * Generic platform constants
30 ******************************************************************************/
31
32/* Size of cacheable stacks */
Masahiro Yamada441bfdd2016-12-25 23:36:24 +090033#ifdef IMAGE_BL31
Varun Wadekar761ca732017-04-24 14:17:12 -070034#define PLATFORM_STACK_SIZE U(0x400)
Varun Wadekarb316e242015-05-19 16:48:04 +053035#endif
36
Varun Wadekar761ca732017-04-24 14:17:12 -070037#define TEGRA_PRIMARY_CPU U(0x0)
Varun Wadekarb316e242015-05-19 16:48:04 +053038
Varun Wadekara78bb1b2015-08-07 10:03:00 +053039#define PLAT_MAX_PWR_LVL MPIDR_AFFLVL2
Varun Wadekar88c4d222015-08-12 09:24:50 +053040#define PLATFORM_CORE_COUNT (PLATFORM_CLUSTER_COUNT * \
41 PLATFORM_MAX_CPUS_PER_CLUSTER)
Varun Wadekara78bb1b2015-08-07 10:03:00 +053042#define PLAT_NUM_PWR_DOMAINS (PLATFORM_CORE_COUNT + \
Varun Wadekar88c4d222015-08-12 09:24:50 +053043 PLATFORM_CLUSTER_COUNT + 1)
Varun Wadekarb316e242015-05-19 16:48:04 +053044
45/*******************************************************************************
46 * Platform console related constants
47 ******************************************************************************/
Varun Wadekar761ca732017-04-24 14:17:12 -070048#define TEGRA_CONSOLE_BAUDRATE U(115200)
Harvey Hsieh9e083c72017-04-10 16:20:32 +080049#define TEGRA_BOOT_UART_CLK_13_MHZ U(13000000)
50#define TEGRA_BOOT_UART_CLK_408_MHZ U(408000000)
Varun Wadekarb316e242015-05-19 16:48:04 +053051
52/*******************************************************************************
53 * Platform memory map related constants
54 ******************************************************************************/
55/* Size of trusted dram */
Varun Wadekar761ca732017-04-24 14:17:12 -070056#define TZDRAM_SIZE U(0x00400000)
Varun Wadekarb316e242015-05-19 16:48:04 +053057#define TZDRAM_END (TZDRAM_BASE + TZDRAM_SIZE)
58
59/*******************************************************************************
60 * BL31 specific defines.
61 ******************************************************************************/
Varun Wadekar761ca732017-04-24 14:17:12 -070062#define BL31_SIZE U(0x40000)
Varun Wadekarb316e242015-05-19 16:48:04 +053063#define BL31_BASE TZDRAM_BASE
Varun Wadekar52a15982015-06-05 12:57:27 +053064#define BL31_LIMIT (TZDRAM_BASE + BL31_SIZE - 1)
65#define BL32_BASE (TZDRAM_BASE + BL31_SIZE)
66#define BL32_LIMIT TZDRAM_END
Varun Wadekarb316e242015-05-19 16:48:04 +053067
68/*******************************************************************************
Varun Wadekarb316e242015-05-19 16:48:04 +053069 * Some data must be aligned on the biggest cache line size in the platform.
70 * This is known only to the platform as it might have a combination of
71 * integrated and external caches.
72 ******************************************************************************/
73#define CACHE_WRITEBACK_SHIFT 6
Kalyani Chidambaramdd2203b2018-12-14 11:36:43 -080074#define CACHE_WRITEBACK_GRANULE (0x40) /* (U(1) << CACHE_WRITEBACK_SHIFT) */
Varun Wadekarb316e242015-05-19 16:48:04 +053075
Varun Wadekar396530b2019-03-01 10:18:35 -080076/*******************************************************************************
77 * Dummy macros to compile io_storage support
78 ******************************************************************************/
79#define MAX_IO_DEVICES U(0)
80#define MAX_IO_HANDLES U(0)
81
Kalyani Chidambaram425155a2018-12-19 11:06:14 -080082
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000083#endif /* PLATFORM_DEF_H */