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_SECTION_BITS      20
10#define ARM_1GB_BLOCK_BITS    30
11#define ARM_2MB_BLOCK_BITS    21
12
13#define PDE_SIZE_BITS         2
14#define PD_BITS               12
15#define PD_SIZE_BITS          (PD_BITS + PDE_SIZE_BITS)
16
17#define PTE_SIZE_BITS         2
18#define PT_BITS               8
19#define PT_SIZE_BITS          (PT_BITS + PTE_SIZE_BITS)
20
21#define HYP_PGDE_SIZE_BITS    3
22#define HYP_PGD_BITS          2
23#define HYP_PGD_SIZE_BITS     (HYP_PGD_BITS + HYP_PGDE_SIZE_BITS)
24
25#define HYP_PMDE_SIZE_BITS    3
26#define HYP_PMD_BITS          9
27#define HYP_PMD_SIZE_BITS     (HYP_PMD_BITS + HYP_PMDE_SIZE_BITS)
28
29#define GET_PT_INDEX(x)       (((x) >> (PAGE_BITS)) & MASK(PT_BITS))
30
31extern uint32_t _boot_pd[BIT(PD_BITS)];
32extern uint32_t _boot_pt[BIT(PT_BITS)];
33
34extern uint64_t _lpae_boot_pgd[BIT(HYP_PGD_BITS)];
35extern uint64_t _lpae_boot_pmd[BIT(HYP_PGD_BITS + HYP_PMD_BITS)];
36
37