mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 11:04:20 +00:00
xlat: Make function to calculate TCR PA bits public
This function can be useful to setup TCR_ELx by callers that don't use the translation tables library to setup the system registers related to them. By making it common, it can be reused whenever it is needed without duplicating code. Change-Id: Ibfada9e846d2a6cd113b1925ac911bb27327d375 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
This commit is contained in:
parent
92cad5fa4b
commit
ad02a7596f
2 changed files with 7 additions and 3 deletions
|
@ -15,6 +15,11 @@
|
|||
#error "PAGE_SIZE is not defined."
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Encode a Physical Address Space size for its use in TCR_ELx.
|
||||
*/
|
||||
unsigned long long tcr_physical_addr_size_bits(unsigned long long max_addr);
|
||||
|
||||
/*
|
||||
* In AArch64 state, the MMU may support 4 KB, 16 KB and 64 KB page
|
||||
* granularity. For 4KB granularity, a level 0 table descriptor doesn't support
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
#include <xlat_tables_v2.h>
|
||||
#include "../xlat_tables_private.h"
|
||||
|
||||
static unsigned long long calc_physical_addr_size_bits(
|
||||
unsigned long long max_addr)
|
||||
unsigned long long tcr_physical_addr_size_bits(unsigned long long max_addr)
|
||||
{
|
||||
/* Physical address can't exceed 48 bits */
|
||||
assert((max_addr & ADDR_MASK_48_TO_63) == 0);
|
||||
|
@ -252,7 +251,7 @@ void enable_mmu_arch(unsigned int flags,
|
|||
* It is safer to restrict the max physical address accessible by the
|
||||
* hardware as much as possible.
|
||||
*/
|
||||
unsigned long long tcr_ps_bits = calc_physical_addr_size_bits(max_pa);
|
||||
unsigned long long tcr_ps_bits = tcr_physical_addr_size_bits(max_pa);
|
||||
|
||||
#if IMAGE_EL == 1
|
||||
assert(IS_IN_EL(1));
|
||||
|
|
Loading…
Add table
Reference in a new issue