Home | History | Annotate | Download | only in xlat_tables
      1 /*
      2  * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
      3  *
      4  * SPDX-License-Identifier: BSD-3-Clause
      5  */
      6 
      7 #ifndef __XLAT_TABLES_PRIVATE_H__
      8 #define __XLAT_TABLES_PRIVATE_H__
      9 
     10 #include <cassert.h>
     11 #include <platform_def.h>
     12 #include <xlat_tables_arch.h>
     13 
     14 /*
     15  * If the platform hasn't defined a physical and a virtual address space size
     16  * default to ADDR_SPACE_SIZE.
     17  */
     18 #if ERROR_DEPRECATED
     19 # ifdef ADDR_SPACE_SIZE
     20 #  error "ADDR_SPACE_SIZE is deprecated. Use PLAT_xxx_ADDR_SPACE_SIZE instead."
     21 # endif
     22 #elif defined(ADDR_SPACE_SIZE)
     23 # ifndef PLAT_PHY_ADDR_SPACE_SIZE
     24 #  define PLAT_PHY_ADDR_SPACE_SIZE	ADDR_SPACE_SIZE
     25 # endif
     26 # ifndef PLAT_VIRT_ADDR_SPACE_SIZE
     27 #  define PLAT_VIRT_ADDR_SPACE_SIZE	ADDR_SPACE_SIZE
     28 # endif
     29 #endif
     30 
     31 CASSERT(CHECK_VIRT_ADDR_SPACE_SIZE(PLAT_VIRT_ADDR_SPACE_SIZE),
     32 	assert_valid_virt_addr_space_size);
     33 
     34 CASSERT(CHECK_PHY_ADDR_SPACE_SIZE(PLAT_PHY_ADDR_SPACE_SIZE),
     35 	assert_valid_phy_addr_space_size);
     36 
     37 /* Alias to retain compatibility with the old #define name */
     38 #define XLAT_BLOCK_LEVEL_MIN	MIN_LVL_BLOCK_DESC
     39 
     40 void print_mmap(void);
     41 
     42 /* Returns the current Exception Level. The returned EL must be 1 or higher. */
     43 int xlat_arch_current_el(void);
     44 
     45 /*
     46  * Returns the bit mask that has to be ORed to the rest of a translation table
     47  * descriptor so that execution of code is prohibited at the given Exception
     48  * Level.
     49  */
     50 uint64_t xlat_arch_get_xn_desc(int el);
     51 
     52 void init_xlation_table(uintptr_t base_va, uint64_t *table,
     53 			unsigned int level, uintptr_t *max_va,
     54 			unsigned long long *max_pa);
     55 
     56 #endif /* __XLAT_TABLES_PRIVATE_H__ */
     57