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