1/* 2 * Copyright 2014, General Dynamics C4 Systems 3 * 4 * SPDX-License-Identifier: GPL-2.0-only 5 */ 6 7#pragma once 8 9#define ARM_1GB_BLOCK_BITS 30 10#define ARM_2MB_BLOCK_BITS 21 11 12#define PGDE_SIZE_BITS 3 13#define PGD_BITS 9 14#define PGD_SIZE_BITS (PGD_BITS + PGDE_SIZE_BITS) 15 16#define PUDE_SIZE_BITS 3 17#define PUD_BITS 9 18#define PUD_SIZE_BITS (PUD_BITS + PUDE_SIZE_BITS) 19 20#define PMDE_SIZE_BITS 3 21#define PMD_BITS 9 22#define PMD_SIZE_BITS (PMD_BITS + PMDE_SIZE_BITS) 23 24#define GET_PGD_INDEX(x) (((x) >> (ARM_2MB_BLOCK_BITS + PMD_BITS + PUD_BITS)) & MASK(PGD_BITS)) 25#define GET_PUD_INDEX(x) (((x) >> (ARM_2MB_BLOCK_BITS + PMD_BITS)) & MASK(PUD_BITS)) 26#define GET_PMD_INDEX(x) (((x) >> (ARM_2MB_BLOCK_BITS)) & MASK(PMD_BITS)) 27 28extern uint64_t _boot_pgd_up[BIT(PGD_BITS)]; 29extern uint64_t _boot_pud_up[BIT(PUD_BITS)]; 30extern uint64_t _boot_pmd_up[BIT(PMD_BITS)]; 31 32extern uint64_t _boot_pgd_down[BIT(PGD_BITS)]; 33extern uint64_t _boot_pud_down[BIT(PUD_BITS)]; 34 35