mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 18:44:22 +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 \
|
||||
lib/aarch64/cache_helpers.S \
|
||||
lib/aarch64/misc_helpers.S \
|
||||
lib/aarch64/xlat_helpers.c \
|
||||
lib/stdlib/abort.c \
|
||||
lib/stdlib/assert.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
|
||||
instruction and data caches for each BL stage. Setting up the translation
|
||||
tables is the responsibility of the platform port because memory maps differ
|
||||
across platforms. A memory translation library (see `lib/aarch64/xlat_helpers.c`
|
||||
and `lib/aarch64/xlat_tables.c`) is provided to help in this setup. Note that
|
||||
although this library supports non-identity mappings, this is intended only for
|
||||
re-mapping peripheral physical addresses and allows platforms with high I/O
|
||||
addresses to reduce their virtual address space. All other addresses
|
||||
corresponding to code and data must currently use an identity mapping.
|
||||
across platforms. A memory translation library (see `lib/aarch64/xlat_tables.c`)
|
||||
is provided to help in this setup. Note that although this library supports
|
||||
non-identity mappings, this is intended only for re-mapping peripheral physical
|
||||
addresses and allows platforms with high I/O addresses to reduce their virtual
|
||||
address space. All other addresses corresponding to code and data must currently
|
||||
use an identity mapping.
|
||||
|
||||
In ARM standard platforms, each BL stage configures the MMU in the
|
||||
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)); \
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 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
|
||||
******************************************************************************/
|
||||
|
|
|
@ -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