blob: f09bf59bfe97080710540df2905f00dad647cd2e [file] [log] [blame]
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001/*
AlexeiFedorov718fd792024-11-08 14:55:20 +00002 * Copyright (c) 2018-2025, Arm Limited. All rights reserved.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz09a00ef2019-01-11 13:12:58 +00007#include <drivers/arm/arm_gic.h>
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02008#include <plat_arm.h>
9#include <platform.h>
10
11/*
12 * Table of regions to map using the MMU.
13 */
14#if IMAGE_NS_BL1U
15static const mmap_region_t mmap[] = {
16 MAP_REGION_FLAT(DEVICE0_BASE, DEVICE0_SIZE, MT_DEVICE | MT_RW | MT_NS),
17 MAP_REGION_FLAT(FLASH_BASE, FLASH_SIZE, MT_MEMORY | MT_RO | MT_NS),
18 MAP_REGION_FLAT(DRAM_BASE, DRAM_SIZE, MT_MEMORY | MT_RW | MT_NS),
19 {0}
20 };
21#elif IMAGE_NS_BL2U
22static const mmap_region_t mmap[] = {
23 MAP_REGION_FLAT(DEVICE0_BASE, DEVICE0_SIZE, MT_DEVICE | MT_RW | MT_NS),
24 MAP_REGION_FLAT(DEVICE1_BASE, DEVICE1_SIZE, MT_DEVICE | MT_RW | MT_NS),
25 MAP_REGION_FLAT(FLASH_BASE, FLASH_SIZE, MT_DEVICE | MT_RW | MT_NS),
26 MAP_REGION_FLAT(DRAM_BASE, DRAM_SIZE, MT_MEMORY | MT_RW | MT_NS),
27 {0}
28};
29#elif IMAGE_TFTF
30static const mmap_region_t mmap[] = {
31 MAP_REGION_FLAT(DEVICE0_BASE, DEVICE0_SIZE, MT_DEVICE | MT_RW | MT_NS),
32 MAP_REGION_FLAT(DEVICE1_BASE, DEVICE1_SIZE, MT_DEVICE | MT_RW | MT_NS),
Jayanth Dodderi Chidanandcd6c94b2022-02-15 17:19:05 +000033 MAP_REGION_FLAT(LS64_ATOMIC_DEVICE_BASE, LS64_ATOMIC_DEVICE_SIZE,
34 MT_DEVICE | MT_RW | MT_NS),
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020035#if USE_NVM
36 MAP_REGION_FLAT(FLASH_BASE, FLASH_SIZE, MT_DEVICE | MT_RW | MT_NS),
37#endif
AlexeiFedorov36ed0092024-09-10 10:37:54 +010038 MAP_REGION_FLAT(PCIE_CONFIG_BASE, PCIE_CONFIG_SIZE, MT_DEVICE | MT_RW | MT_NS),
AlexeiFedorov718fd792024-11-08 14:55:20 +000039#ifdef __aarch64__
40 MAP_REGION_FLAT(PCIE_MEM_1_BASE, PCIE_MEM_1_SIZE, MT_DEVICE | MT_RW | MT_NS),
41 MAP_REGION_FLAT(PCIE_MEM_2_BASE, PCIE_MEM_2_SIZE, MT_DEVICE | MT_RW | MT_NS),
42#endif
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020043 MAP_REGION_FLAT(DRAM_BASE, TFTF_BASE - DRAM_BASE, MT_MEMORY | MT_RW | MT_NS),
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020044 {0}
45};
46#endif /* IMAGE_NS_BL1U */
47
48const mmap_region_t *tftf_platform_get_mmap(void)
49{
50 return mmap;
51}
52
53void plat_arm_gic_init(void)
54{
55 arm_gic_init(GICC_BASE, GICD_BASE, GICR_BASE);
56}