Merge pull request #1647 from antonio-nino-diaz-arm/an/setup-xlat
Improvements to setup page tables code
This commit is contained in:
commit
9aabd11a42
|
@ -193,6 +193,11 @@ extern const char version_string[];
|
||||||
void print_entry_point_info(const entry_point_info_t *ep_info);
|
void print_entry_point_info(const entry_point_info_t *ep_info);
|
||||||
uintptr_t page_align(uintptr_t value, unsigned dir);
|
uintptr_t page_align(uintptr_t value, unsigned dir);
|
||||||
|
|
||||||
|
struct mmap_region;
|
||||||
|
|
||||||
|
void setup_page_tables(const struct mmap_region *bl_regions,
|
||||||
|
const struct mmap_region *plat_regions);
|
||||||
|
|
||||||
#endif /*__ASSEMBLY__*/
|
#endif /*__ASSEMBLY__*/
|
||||||
|
|
||||||
#endif /* __BL_COMMON_H__ */
|
#endif /* __BL_COMMON_H__ */
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if XLAT_TABLES_LIB_V2
|
||||||
|
#include <xlat_tables_v2.h>
|
||||||
|
#else
|
||||||
|
#include <xlat_tables.h>
|
||||||
|
#endif
|
|
@ -6,8 +6,7 @@
|
||||||
#ifndef V2M_DEF_H
|
#ifndef V2M_DEF_H
|
||||||
#define V2M_DEF_H
|
#define V2M_DEF_H
|
||||||
|
|
||||||
#include <arm_xlat_tables.h>
|
#include <xlat_tables_compat.h>
|
||||||
|
|
||||||
|
|
||||||
/* V2M motherboard system registers & offsets */
|
/* V2M motherboard system registers & offsets */
|
||||||
#define V2M_SYSREGS_BASE UL(0x1c010000)
|
#define V2M_SYSREGS_BASE UL(0x1c010000)
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if ARM_XLAT_TABLES_LIB_V1
|
|
||||||
#include <xlat_tables.h>
|
|
||||||
#else
|
|
||||||
#include <xlat_tables_v2.h>
|
|
||||||
#endif /* ARM_XLAT_TABLES_LIB_V1 */
|
|
|
@ -6,7 +6,6 @@
|
||||||
#ifndef __PLAT_ARM_H__
|
#ifndef __PLAT_ARM_H__
|
||||||
#define __PLAT_ARM_H__
|
#define __PLAT_ARM_H__
|
||||||
|
|
||||||
#include <arm_xlat_tables.h>
|
|
||||||
#include <bakery_lock.h>
|
#include <bakery_lock.h>
|
||||||
#include <cassert.h>
|
#include <cassert.h>
|
||||||
#include <cpu_data.h>
|
#include <cpu_data.h>
|
||||||
|
@ -14,6 +13,7 @@
|
||||||
#include <spinlock.h>
|
#include <spinlock.h>
|
||||||
#include <tzc_common.h>
|
#include <tzc_common.h>
|
||||||
#include <utils_def.h>
|
#include <utils_def.h>
|
||||||
|
#include <xlat_tables_compat.h>
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Forward declarations
|
* Forward declarations
|
||||||
|
@ -66,12 +66,6 @@ typedef struct arm_tzc_regions_info {
|
||||||
<= MAX_MMAP_REGIONS, \
|
<= MAX_MMAP_REGIONS, \
|
||||||
assert_max_mmap_regions);
|
assert_max_mmap_regions);
|
||||||
|
|
||||||
/*
|
|
||||||
* Utility functions common to ARM standard platforms
|
|
||||||
*/
|
|
||||||
void arm_setup_page_tables(const mmap_region_t bl_regions[],
|
|
||||||
const mmap_region_t plat_regions[]);
|
|
||||||
|
|
||||||
void arm_setup_romlib(void);
|
void arm_setup_romlib(void);
|
||||||
|
|
||||||
#if defined(IMAGE_BL31) || (defined(AARCH32) && defined(IMAGE_BL32))
|
#if defined(IMAGE_BL31) || (defined(AARCH32) && defined(IMAGE_BL32))
|
||||||
|
|
|
@ -10,3 +10,6 @@ XLAT_TABLES_LIB_SRCS := $(addprefix lib/xlat_tables_v2/, \
|
||||||
xlat_tables_context.c \
|
xlat_tables_context.c \
|
||||||
xlat_tables_core.c \
|
xlat_tables_core.c \
|
||||||
xlat_tables_utils.c)
|
xlat_tables_utils.c)
|
||||||
|
|
||||||
|
XLAT_TABLES_LIB_V2 := 1
|
||||||
|
$(eval $(call add_define,XLAT_TABLES_LIB_V2))
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#include <arm_config.h>
|
#include <arm_config.h>
|
||||||
#include <arm_def.h>
|
#include <arm_def.h>
|
||||||
#include <arm_spm_def.h>
|
#include <arm_spm_def.h>
|
||||||
#include <arm_xlat_tables.h>
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <cci.h>
|
#include <cci.h>
|
||||||
#include <ccn.h>
|
#include <ccn.h>
|
||||||
|
@ -18,6 +17,8 @@
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
#include <secure_partition.h>
|
#include <secure_partition.h>
|
||||||
#include <v2m_def.h>
|
#include <v2m_def.h>
|
||||||
|
#include <xlat_tables_compat.h>
|
||||||
|
|
||||||
#include "../fvp_def.h"
|
#include "../fvp_def.h"
|
||||||
#include "fvp_private.h"
|
#include "fvp_private.h"
|
||||||
|
|
||||||
|
@ -52,8 +53,8 @@ arm_config_t arm_config;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Table of memory regions for various BL stages to map using the MMU.
|
* Table of memory regions for various BL stages to map using the MMU.
|
||||||
* This doesn't include Trusted SRAM as arm_setup_page_tables() already
|
* This doesn't include Trusted SRAM as setup_page_tables() already takes care
|
||||||
* takes care of mapping it.
|
* of mapping it.
|
||||||
*
|
*
|
||||||
* The flash needs to be mapped as writable in order to erase the FIP's Table of
|
* The flash needs to be mapped as writable in order to erase the FIP's Table of
|
||||||
* Contents in case of unrecoverable error (see plat_error_handler()).
|
* Contents in case of unrecoverable error (see plat_error_handler()).
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Table of memory regions for different BL stages to map using the MMU.
|
* Table of memory regions for different BL stages to map using the MMU.
|
||||||
* This doesn't include Trusted SRAM as arm_setup_page_tables() already
|
* This doesn't include Trusted SRAM as setup_page_tables() already takes care
|
||||||
* takes care of mapping it.
|
* of mapping it.
|
||||||
*/
|
*/
|
||||||
#ifdef IMAGE_BL1
|
#ifdef IMAGE_BL1
|
||||||
const mmap_region_t plat_arm_mmap[] = {
|
const mmap_region_t plat_arm_mmap[] = {
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
#include <arch.h>
|
#include <arch.h>
|
||||||
#include <arm_def.h>
|
#include <arm_def.h>
|
||||||
#include <arm_xlat_tables.h>
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <bl1.h>
|
#include <bl1.h>
|
||||||
#include <bl_common.h>
|
#include <bl_common.h>
|
||||||
|
@ -15,6 +14,8 @@
|
||||||
#include <platform_def.h>
|
#include <platform_def.h>
|
||||||
#include <sp805.h>
|
#include <sp805.h>
|
||||||
#include <utils.h>
|
#include <utils.h>
|
||||||
|
#include <xlat_tables_compat.h>
|
||||||
|
|
||||||
#include "../../../bl1/bl1_private.h"
|
#include "../../../bl1/bl1_private.h"
|
||||||
|
|
||||||
/* Weak definitions may be overridden in specific ARM standard platform */
|
/* Weak definitions may be overridden in specific ARM standard platform */
|
||||||
|
@ -122,7 +123,7 @@ void arm_bl1_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
#ifdef AARCH32
|
#ifdef AARCH32
|
||||||
enable_mmu_svc_mon(0);
|
enable_mmu_svc_mon(0);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -79,7 +79,7 @@ void arm_bl2_el3_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
|
|
||||||
#ifdef AARCH32
|
#ifdef AARCH32
|
||||||
enable_mmu_svc_mon(0);
|
enable_mmu_svc_mon(0);
|
||||||
|
|
|
@ -125,7 +125,7 @@ void arm_bl2_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
|
|
||||||
#ifdef AARCH32
|
#ifdef AARCH32
|
||||||
enable_mmu_svc_mon(0);
|
enable_mmu_svc_mon(0);
|
||||||
|
|
|
@ -80,7 +80,7 @@ void arm_bl2u_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
|
|
||||||
#ifdef AARCH32
|
#ifdef AARCH32
|
||||||
enable_mmu_svc_mon(0);
|
enable_mmu_svc_mon(0);
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
#include <ras.h>
|
#include <ras.h>
|
||||||
#include <utils.h>
|
#include <utils.h>
|
||||||
#include <arm_xlat_tables.h>
|
#include <xlat_tables_compat.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Placeholder variables for copying the arguments that have been passed to
|
* Placeholder variables for copying the arguments that have been passed to
|
||||||
|
@ -302,7 +302,7 @@ void __init arm_bl31_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
|
|
||||||
enable_mmu_el3(0);
|
enable_mmu_el3(0);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
*/
|
*/
|
||||||
#include <arch.h>
|
#include <arch.h>
|
||||||
#include <arch_helpers.h>
|
#include <arch_helpers.h>
|
||||||
#include <arm_xlat_tables.h>
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <mmio.h>
|
#include <mmio.h>
|
||||||
|
@ -14,6 +13,7 @@
|
||||||
#include <platform_def.h>
|
#include <platform_def.h>
|
||||||
#include <romlib.h>
|
#include <romlib.h>
|
||||||
#include <secure_partition.h>
|
#include <secure_partition.h>
|
||||||
|
#include <xlat_tables_compat.h>
|
||||||
|
|
||||||
/* Weak definitions may be overridden in specific ARM standard platform */
|
/* Weak definitions may be overridden in specific ARM standard platform */
|
||||||
#pragma weak plat_get_ns_image_entrypoint
|
#pragma weak plat_get_ns_image_entrypoint
|
||||||
|
@ -32,42 +32,6 @@ void arm_setup_romlib(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Set up the page tables for the generic and platform-specific memory regions.
|
|
||||||
* The size of the Trusted SRAM seen by the BL image must be specified as well
|
|
||||||
* as an array specifying the generic memory regions which can be;
|
|
||||||
* - Code section;
|
|
||||||
* - Read-only data section;
|
|
||||||
* - Init code section, if applicable
|
|
||||||
* - Coherent memory region, if applicable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void __init arm_setup_page_tables(const mmap_region_t bl_regions[],
|
|
||||||
const mmap_region_t plat_regions[])
|
|
||||||
{
|
|
||||||
#if LOG_LEVEL >= LOG_LEVEL_VERBOSE
|
|
||||||
const mmap_region_t *regions = bl_regions;
|
|
||||||
|
|
||||||
while (regions->size != 0U) {
|
|
||||||
VERBOSE("Region: 0x%lx - 0x%lx has attributes 0x%x\n",
|
|
||||||
regions->base_va,
|
|
||||||
(regions->base_va + regions->size),
|
|
||||||
regions->attr);
|
|
||||||
regions++;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
/*
|
|
||||||
* Map the Trusted SRAM with appropriate memory attributes.
|
|
||||||
* Subsequent mappings will adjust the attributes for specific regions.
|
|
||||||
*/
|
|
||||||
mmap_add(bl_regions);
|
|
||||||
/* Now (re-)map the platform-specific memory regions */
|
|
||||||
mmap_add(plat_regions);
|
|
||||||
|
|
||||||
/* Create the page tables to reflect the above mappings */
|
|
||||||
init_xlat_tables();
|
|
||||||
}
|
|
||||||
|
|
||||||
uintptr_t plat_get_ns_image_entrypoint(void)
|
uintptr_t plat_get_ns_image_entrypoint(void)
|
||||||
{
|
{
|
||||||
#ifdef PRELOADED_BL33_BASE
|
#ifdef PRELOADED_BL33_BASE
|
||||||
|
|
|
@ -208,7 +208,7 @@ void sp_min_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
|
|
||||||
enable_mmu_svc_mon(0);
|
enable_mmu_svc_mon(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,6 +85,6 @@ void tsp_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
enable_mmu_el1(0);
|
enable_mmu_el1(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include <mbedtls_config.h>
|
#include <mbedtls_config.h>
|
||||||
#endif
|
#endif
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
|
#include <xlat_tables_compat.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The following platform functions are weakly defined. The Platforms
|
* The following platform functions are weakly defined. The Platforms
|
||||||
|
@ -72,3 +73,40 @@ int plat_get_mbedtls_heap(void **heap_addr, size_t *heap_size)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* TRUSTED_BOARD_BOOT */
|
#endif /* TRUSTED_BOARD_BOOT */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set up the page tables for the generic and platform-specific memory regions.
|
||||||
|
* The size of the Trusted SRAM seen by the BL image must be specified as well
|
||||||
|
* as an array specifying the generic memory regions which can be;
|
||||||
|
* - Code section;
|
||||||
|
* - Read-only data section;
|
||||||
|
* - Init code section, if applicable
|
||||||
|
* - Coherent memory region, if applicable.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void __init setup_page_tables(const mmap_region_t *bl_regions,
|
||||||
|
const mmap_region_t *plat_regions)
|
||||||
|
{
|
||||||
|
#if LOG_LEVEL >= LOG_LEVEL_VERBOSE
|
||||||
|
const mmap_region_t *regions = bl_regions;
|
||||||
|
|
||||||
|
while (regions->size != 0U) {
|
||||||
|
VERBOSE("Region: 0x%lx - 0x%lx has attributes 0x%x\n",
|
||||||
|
regions->base_va,
|
||||||
|
regions->base_va + regions->size,
|
||||||
|
regions->attr);
|
||||||
|
regions++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
/*
|
||||||
|
* Map the Trusted SRAM with appropriate memory attributes.
|
||||||
|
* Subsequent mappings will adjust the attributes for specific regions.
|
||||||
|
*/
|
||||||
|
mmap_add(bl_regions);
|
||||||
|
|
||||||
|
/* Now (re-)map the platform-specific memory regions */
|
||||||
|
mmap_add(plat_regions);
|
||||||
|
|
||||||
|
/* Create the page tables to reflect the above mappings */
|
||||||
|
init_xlat_tables();
|
||||||
|
}
|
||||||
|
|
|
@ -38,24 +38,12 @@ ifeq (${ARM_ARCH_MAJOR},8)
|
||||||
PLAT_INCLUDES += -Iinclude/plat/arm/common/${ARCH}
|
PLAT_INCLUDES += -Iinclude/plat/arm/common/${ARCH}
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Use translation tables library v2 by default
|
|
||||||
ARM_XLAT_TABLES_LIB_V1 := 0
|
|
||||||
$(eval $(call assert_boolean,ARM_XLAT_TABLES_LIB_V1))
|
|
||||||
$(eval $(call add_define,ARM_XLAT_TABLES_LIB_V1))
|
|
||||||
|
|
||||||
|
|
||||||
PLAT_BL_COMMON_SOURCES := plat/qemu/qemu_common.c \
|
PLAT_BL_COMMON_SOURCES := plat/qemu/qemu_common.c \
|
||||||
plat/qemu/qemu_console.c \
|
plat/qemu/qemu_console.c \
|
||||||
drivers/arm/pl011/${ARCH}/pl011_console.S \
|
drivers/arm/pl011/${ARCH}/pl011_console.S \
|
||||||
|
|
||||||
ifeq (${ARM_XLAT_TABLES_LIB_V1}, 1)
|
|
||||||
PLAT_BL_COMMON_SOURCES += lib/xlat_tables/xlat_tables_common.c \
|
|
||||||
lib/xlat_tables/${ARCH}/xlat_tables.c
|
|
||||||
else
|
|
||||||
include lib/xlat_tables_v2/xlat_tables.mk
|
include lib/xlat_tables_v2/xlat_tables.mk
|
||||||
|
|
||||||
PLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS}
|
PLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS}
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (${TRUSTED_BOARD_BOOT},0)
|
ifneq (${TRUSTED_BOARD_BOOT},0)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -7,7 +7,8 @@
|
||||||
#include <arch_helpers.h>
|
#include <arch_helpers.h>
|
||||||
#include <bl_common.h>
|
#include <bl_common.h>
|
||||||
#include <platform_def.h>
|
#include <platform_def.h>
|
||||||
#include <arm_xlat_tables.h>
|
#include <xlat_tables_v2.h>
|
||||||
|
|
||||||
#include "qemu_private.h"
|
#include "qemu_private.h"
|
||||||
|
|
||||||
#define MAP_DEVICE0 MAP_REGION_FLAT(DEVICE0_BASE, \
|
#define MAP_DEVICE0 MAP_REGION_FLAT(DEVICE0_BASE, \
|
||||||
|
|
|
@ -108,7 +108,7 @@ void bl31_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
enable_mmu_el3(0);
|
enable_mmu_el3(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -193,6 +193,6 @@ void bl31_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
enable_mmu_el3(0);
|
enable_mmu_el3(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,10 +16,6 @@ ENABLE_SVE_FOR_NS := 0
|
||||||
|
|
||||||
WORKAROUND_CVE_2017_5715 := 0
|
WORKAROUND_CVE_2017_5715 := 0
|
||||||
|
|
||||||
ARM_XLAT_TABLES_LIB_V1 := 1
|
|
||||||
$(eval $(call assert_boolean,ARM_XLAT_TABLES_LIB_V1))
|
|
||||||
$(eval $(call add_define,ARM_XLAT_TABLES_LIB_V1))
|
|
||||||
|
|
||||||
ifdef ZYNQMP_ATF_MEM_BASE
|
ifdef ZYNQMP_ATF_MEM_BASE
|
||||||
$(eval $(call add_define,ZYNQMP_ATF_MEM_BASE))
|
$(eval $(call add_define,ZYNQMP_ATF_MEM_BASE))
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2014-2016, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -57,6 +57,6 @@ void tsp_plat_arch_setup(void)
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
arm_setup_page_tables(bl_regions, plat_arm_get_mmap());
|
setup_page_tables(bl_regions, plat_arm_get_mmap());
|
||||||
enable_mmu_el1(0);
|
enable_mmu_el1(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue