blob: de44174b257961613efda7e552428acd9661ac50 [file] [log] [blame]
Samuel Hollandb8566642017-08-12 04:07:39 -05001/*
Samuel Hollandfde9e1c2020-12-13 21:26:36 -06002 * Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
Samuel Hollandb8566642017-08-12 04:07:39 -05003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz6f3ccc52018-07-20 09:17:26 +01007#ifndef PLATFORM_DEF_H
8#define PLATFORM_DEF_H
Samuel Hollandb8566642017-08-12 04:07:39 -05009
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000010#include <common/tbbr/tbbr_img_def.h>
11#include <lib/utils_def.h>
12#include <plat/common/common_def.h>
13
Samuel Hollandb8566642017-08-12 04:07:39 -050014#include <sunxi_mmap.h>
Samuel Hollandb8566642017-08-12 04:07:39 -050015
Andre Przywaracd1c67e2020-11-28 01:38:15 +000016/* The SCP firmware is allocated the last 16KiB of SRAM A2. */
17#define SUNXI_SCP_SIZE 0x4000
18
19#ifdef SUNXI_BL31_IN_DRAM
Andre Przywara2d42e5f2020-11-28 01:39:17 +000020
21#define BL31_BASE SUNXI_DRAM_BASE
22#define BL31_LIMIT (SUNXI_DRAM_BASE + 0x40000)
23
24#define MAX_XLAT_TABLES 4
25#define PLAT_VIRT_ADDR_SPACE_SIZE (1ULL << 32)
26
27#define SUNXI_BL33_VIRT_BASE PRELOADED_BL33_BASE
28
Andre Przywaracd1c67e2020-11-28 01:38:15 +000029#else /* !SUNXI_BL31_IN_DRAM */
30
Samuel Holland38d98de2019-02-17 15:10:36 -060031#define BL31_BASE (SUNXI_SRAM_A2_BASE + 0x4000)
Samuel Hollandd002f3b2019-12-29 12:22:55 -060032#define BL31_LIMIT (SUNXI_SRAM_A2_BASE + \
33 SUNXI_SRAM_A2_SIZE - SUNXI_SCP_SIZE)
Samuel Hollandd002f3b2019-12-29 12:22:55 -060034#define SUNXI_SCP_BASE BL31_LIMIT
Samuel Hollandb8566642017-08-12 04:07:39 -050035
Samuel Hollandd00eaa22019-10-27 14:07:52 -050036/* Overwrite U-Boot SPL, but reserve the first page for the SPL header. */
37#define BL31_NOBITS_BASE (SUNXI_SRAM_A1_BASE + 0x1000)
38#define BL31_NOBITS_LIMIT (SUNXI_SRAM_A1_BASE + SUNXI_SRAM_A1_SIZE)
39
Andre Przywaracd1c67e2020-11-28 01:38:15 +000040#define MAX_XLAT_TABLES 1
41#define PLAT_VIRT_ADDR_SPACE_SIZE (1ULL << 28)
Andre Przywaracd1c67e2020-11-28 01:38:15 +000042
Samuel Holland0dab35d2020-12-13 20:22:42 -060043#define SUNXI_BL33_VIRT_BASE SUNXI_DRAM_VIRT_BASE
Andre Przywaracd1c67e2020-11-28 01:38:15 +000044
Samuel Holland0dab35d2020-12-13 20:22:42 -060045#endif /* SUNXI_BL31_IN_DRAM */
Andre Przywarab3fddff2018-09-20 21:13:55 +010046
Andre Przywaraea5fa472018-09-16 02:08:06 +010047/* How much DRAM to map (to map BL33, for fetching the DTB from U-Boot) */
Andre Przywarab3fddff2018-09-20 21:13:55 +010048#define SUNXI_DRAM_MAP_SIZE (64U << 20)
49
Samuel Hollandb8566642017-08-12 04:07:39 -050050#define CACHE_WRITEBACK_SHIFT 6
51#define CACHE_WRITEBACK_GRANULE (1 << CACHE_WRITEBACK_SHIFT)
52
Samuel Holland0dab35d2020-12-13 20:22:42 -060053#define MAX_STATIC_MMAP_REGIONS 3
Samuel Holland3683f3e2020-12-13 20:45:49 -060054#define MAX_MMAP_REGIONS (5 + MAX_STATIC_MMAP_REGIONS)
Samuel Hollandb8566642017-08-12 04:07:39 -050055
Samuel Holland103ee9b2018-10-21 12:41:03 -050056#define PLAT_CSS_SCP_COM_SHARED_MEM_BASE \
57 (SUNXI_SRAM_A2_BASE + SUNXI_SRAM_A2_SIZE - 0x200)
58
Antonio Nino Diaz6f3ccc52018-07-20 09:17:26 +010059#define PLAT_MAX_PWR_LVL_STATES U(2)
60#define PLAT_MAX_RET_STATE U(1)
61#define PLAT_MAX_OFF_STATE U(2)
Samuel Hollandb8566642017-08-12 04:07:39 -050062
Antonio Nino Diaz6f3ccc52018-07-20 09:17:26 +010063#define PLAT_MAX_PWR_LVL U(2)
Deepika Bhavnanifa4e1d02019-12-13 10:48:27 -060064#define PLAT_NUM_PWR_DOMAINS (U(1) + \
Samuel Hollandb8566642017-08-12 04:07:39 -050065 PLATFORM_CLUSTER_COUNT + \
66 PLATFORM_CORE_COUNT)
67
68#define PLAT_PHY_ADDR_SPACE_SIZE (1ULL << 32)
Samuel Hollandb8566642017-08-12 04:07:39 -050069
Deepika Bhavnanifa4e1d02019-12-13 10:48:27 -060070#define PLATFORM_CLUSTER_COUNT U(1)
Samuel Hollandb8566642017-08-12 04:07:39 -050071#define PLATFORM_CORE_COUNT (PLATFORM_CLUSTER_COUNT * \
72 PLATFORM_MAX_CPUS_PER_CLUSTER)
Deepika Bhavnanifa4e1d02019-12-13 10:48:27 -060073#define PLATFORM_MAX_CPUS_PER_CLUSTER U(4)
Samuel Hollandb8566642017-08-12 04:07:39 -050074#define PLATFORM_STACK_SIZE (0x1000 / PLATFORM_CORE_COUNT)
75
Amit Singh Tomar2f372242018-06-20 00:44:50 +053076#ifndef SPD_none
77#ifndef BL32_BASE
78#define BL32_BASE SUNXI_DRAM_BASE
79#endif
80#endif
81
Antonio Nino Diaz6f3ccc52018-07-20 09:17:26 +010082#endif /* PLATFORM_DEF_H */