mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-30 07:39:24 +00:00
Remove xlat_helpers.c
lib/aarch64/xlat_helpers.c defines helper functions to build translation descriptors, but no common code or upstream platform port uses them. As the rest of the xlat_tables code evolves, there may be conflicts with these helpers, therefore this code should be removed. Change-Id: I9f5be99720f929264818af33db8dada785368711
This commit is contained in:
parent
6b1ca8f358
commit
f33fbb2f97
4 changed files with 6 additions and 143 deletions
1
Makefile
1
Makefile
|
@ -196,7 +196,6 @@ BL_COMMON_SOURCES += common/bl_common.c \
|
||||||
common/aarch64/debug.S \
|
common/aarch64/debug.S \
|
||||||
lib/aarch64/cache_helpers.S \
|
lib/aarch64/cache_helpers.S \
|
||||||
lib/aarch64/misc_helpers.S \
|
lib/aarch64/misc_helpers.S \
|
||||||
lib/aarch64/xlat_helpers.c \
|
|
||||||
lib/stdlib/abort.c \
|
lib/stdlib/abort.c \
|
||||||
lib/stdlib/assert.c \
|
lib/stdlib/assert.c \
|
||||||
lib/stdlib/exit.c \
|
lib/stdlib/exit.c \
|
||||||
|
|
|
@ -76,12 +76,12 @@ either mandatory or optional.
|
||||||
A platform port must enable the Memory Management Unit (MMU) as well as the
|
A platform port must enable the Memory Management Unit (MMU) as well as the
|
||||||
instruction and data caches for each BL stage. Setting up the translation
|
instruction and data caches for each BL stage. Setting up the translation
|
||||||
tables is the responsibility of the platform port because memory maps differ
|
tables is the responsibility of the platform port because memory maps differ
|
||||||
across platforms. A memory translation library (see `lib/aarch64/xlat_helpers.c`
|
across platforms. A memory translation library (see `lib/aarch64/xlat_tables.c`)
|
||||||
and `lib/aarch64/xlat_tables.c`) is provided to help in this setup. Note that
|
is provided to help in this setup. Note that although this library supports
|
||||||
although this library supports non-identity mappings, this is intended only for
|
non-identity mappings, this is intended only for re-mapping peripheral physical
|
||||||
re-mapping peripheral physical addresses and allows platforms with high I/O
|
addresses and allows platforms with high I/O addresses to reduce their virtual
|
||||||
addresses to reduce their virtual address space. All other addresses
|
address space. All other addresses corresponding to code and data must currently
|
||||||
corresponding to code and data must currently use an identity mapping.
|
use an identity mapping.
|
||||||
|
|
||||||
In ARM standard platforms, each BL stage configures the MMU in the
|
In ARM standard platforms, each BL stage configures the MMU in the
|
||||||
platform-specific architecture setup function, `blX_plat_arch_setup()`, and uses
|
platform-specific architecture setup function, `blX_plat_arch_setup()`, and uses
|
||||||
|
|
|
@ -112,15 +112,6 @@ static inline void _op ## _type(uint64_t v) \
|
||||||
__asm__ (#_op " " #_type ", %0" : : "r" (v)); \
|
__asm__ (#_op " " #_type ", %0" : : "r" (v)); \
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Aarch64 translation tables manipulation helper prototypes
|
|
||||||
******************************************************************************/
|
|
||||||
uint64_t create_table_desc(uint64_t *next_table_ptr);
|
|
||||||
uint64_t create_block_desc(uint64_t desc, uint64_t addr, uint32_t level);
|
|
||||||
uint64_t create_device_block(uint64_t output_addr, uint32_t level, uint32_t ns);
|
|
||||||
uint64_t create_romem_block(uint64_t output_addr, uint32_t level, uint32_t ns);
|
|
||||||
uint64_t create_rwmem_block(uint64_t output_addr, uint32_t level, uint32_t ns);
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* TLB maintenance accessor prototypes
|
* TLB maintenance accessor prototypes
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
|
@ -1,127 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* Redistributions of source code must retain the above copyright notice, this
|
|
||||||
* list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* Neither the name of ARM nor the names of its contributors may be used
|
|
||||||
* to endorse or promote products derived from this software without specific
|
|
||||||
* prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <arch.h>
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Helper to create a level 1/2 table descriptor which points to a level 2/3
|
|
||||||
* table.
|
|
||||||
******************************************************************************/
|
|
||||||
unsigned long create_table_desc(unsigned long *next_table_ptr)
|
|
||||||
{
|
|
||||||
unsigned long desc = (unsigned long) next_table_ptr;
|
|
||||||
|
|
||||||
/* Clear the last 12 bits */
|
|
||||||
desc >>= FOUR_KB_SHIFT;
|
|
||||||
desc <<= FOUR_KB_SHIFT;
|
|
||||||
|
|
||||||
desc |= TABLE_DESC;
|
|
||||||
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Helper to create a level 1/2/3 block descriptor which maps the va to addr
|
|
||||||
******************************************************************************/
|
|
||||||
unsigned long create_block_desc(unsigned long desc,
|
|
||||||
unsigned long addr,
|
|
||||||
unsigned int level)
|
|
||||||
{
|
|
||||||
switch (level) {
|
|
||||||
case LEVEL1:
|
|
||||||
desc |= (addr << FIRST_LEVEL_DESC_N) | BLOCK_DESC;
|
|
||||||
break;
|
|
||||||
case LEVEL2:
|
|
||||||
desc |= (addr << SECOND_LEVEL_DESC_N) | BLOCK_DESC;
|
|
||||||
break;
|
|
||||||
case LEVEL3:
|
|
||||||
desc |= (addr << THIRD_LEVEL_DESC_N) | TABLE_DESC;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Helper to create a level 1/2/3 block descriptor which maps the va to output_
|
|
||||||
* addr with Device nGnRE attributes.
|
|
||||||
******************************************************************************/
|
|
||||||
unsigned long create_device_block(unsigned long output_addr,
|
|
||||||
unsigned int level,
|
|
||||||
unsigned int ns)
|
|
||||||
{
|
|
||||||
unsigned long upper_attrs, lower_attrs, desc;
|
|
||||||
|
|
||||||
lower_attrs = LOWER_ATTRS(ACCESS_FLAG | OSH | AP_RW);
|
|
||||||
lower_attrs |= LOWER_ATTRS(ns | ATTR_DEVICE_INDEX);
|
|
||||||
upper_attrs = UPPER_ATTRS(XN);
|
|
||||||
desc = upper_attrs | lower_attrs;
|
|
||||||
|
|
||||||
return create_block_desc(desc, output_addr, level);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Helper to create a level 1/2/3 block descriptor which maps the va to output_
|
|
||||||
* addr with inner-shareable normal wbwa read-only memory attributes.
|
|
||||||
******************************************************************************/
|
|
||||||
unsigned long create_romem_block(unsigned long output_addr,
|
|
||||||
unsigned int level,
|
|
||||||
unsigned int ns)
|
|
||||||
{
|
|
||||||
unsigned long upper_attrs, lower_attrs, desc;
|
|
||||||
|
|
||||||
lower_attrs = LOWER_ATTRS(ACCESS_FLAG | ISH | AP_RO);
|
|
||||||
lower_attrs |= LOWER_ATTRS(ns | ATTR_IWBWA_OWBWA_NTR_INDEX);
|
|
||||||
upper_attrs = UPPER_ATTRS(0ull);
|
|
||||||
desc = upper_attrs | lower_attrs;
|
|
||||||
|
|
||||||
return create_block_desc(desc, output_addr, level);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Helper to create a level 1/2/3 block descriptor which maps the va to output_
|
|
||||||
* addr with inner-shareable normal wbwa read-write memory attributes.
|
|
||||||
******************************************************************************/
|
|
||||||
unsigned long create_rwmem_block(unsigned long output_addr,
|
|
||||||
unsigned int level,
|
|
||||||
unsigned int ns)
|
|
||||||
{
|
|
||||||
unsigned long upper_attrs, lower_attrs, desc;
|
|
||||||
|
|
||||||
lower_attrs = LOWER_ATTRS(ACCESS_FLAG | ISH | AP_RW);
|
|
||||||
lower_attrs |= LOWER_ATTRS(ns | ATTR_IWBWA_OWBWA_NTR_INDEX);
|
|
||||||
upper_attrs = UPPER_ATTRS(XN);
|
|
||||||
desc = upper_attrs | lower_attrs;
|
|
||||||
|
|
||||||
return create_block_desc(desc, output_addr, level);
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue