18933c34bSSandrine Bailleux /* 2*4c700c15SGovindraj Raja * Copyright (c) 2017-2018, Arm Limited and Contributors. All rights reserved. 38933c34bSSandrine Bailleux * 48933c34bSSandrine Bailleux * SPDX-License-Identifier: BSD-3-Clause 58933c34bSSandrine Bailleux */ 68933c34bSSandrine Bailleux 7e7b9886cSAntonio Nino Diaz #ifndef XLAT_TABLES_ARCH_H 8e7b9886cSAntonio Nino Diaz #define XLAT_TABLES_ARCH_H 98933c34bSSandrine Bailleux 10402b3cf8SJulius Werner #ifdef __aarch64__ 118933c34bSSandrine Bailleux #include "aarch64/xlat_tables_aarch64.h" 12402b3cf8SJulius Werner #else 13402b3cf8SJulius Werner #include "aarch32/xlat_tables_aarch32.h" 148933c34bSSandrine Bailleux #endif 158933c34bSSandrine Bailleux 168933c34bSSandrine Bailleux /* 178933c34bSSandrine Bailleux * Evaluates to 1 if the given physical address space size is a power of 2, 188933c34bSSandrine Bailleux * or 0 if it's not. 198933c34bSSandrine Bailleux */ 208933c34bSSandrine Bailleux #define CHECK_PHY_ADDR_SPACE_SIZE(size) \ 218933c34bSSandrine Bailleux (IS_POWER_OF_TWO(size)) 228933c34bSSandrine Bailleux 238933c34bSSandrine Bailleux /* 248933c34bSSandrine Bailleux * Compute the number of entries required at the initial lookup level to address 258933c34bSSandrine Bailleux * the whole virtual address space. 268933c34bSSandrine Bailleux */ 278933c34bSSandrine Bailleux #define GET_NUM_BASE_LEVEL_ENTRIES(addr_space_size) \ 288933c34bSSandrine Bailleux ((addr_space_size) >> \ 298933c34bSSandrine Bailleux XLAT_ADDR_SHIFT(GET_XLAT_TABLE_LEVEL_BASE(addr_space_size))) 308933c34bSSandrine Bailleux 31e7b9886cSAntonio Nino Diaz #endif /* XLAT_TABLES_ARCH_H */ 32