]>
Commit | Line | Data |
---|---|---|
2eff4ddc AB |
1 | // SPDX-License-Identifier: BSD-2-Clause-Patent\r |
2 | // Copyright 2022 Google LLC\r | |
3 | // Author: Ard Biesheuvel <ardb@google.com>\r | |
4 | \r | |
5 | .set TT_TYPE_BLOCK, 0x1\r | |
6 | .set TT_TYPE_PAGE, 0x3\r | |
7 | .set TT_TYPE_TABLE, 0x3\r | |
8 | \r | |
9 | .set TT_AF, 0x1 << 10\r | |
10 | .set TT_NG, 0x1 << 11\r | |
11 | .set TT_RO, 0x2 << 6\r | |
12 | .set TT_XN, 0x3 << 53\r | |
13 | \r | |
14 | .set TT_MT_DEV, 0x0 << 2 // MAIR #0\r | |
15 | .set TT_MT_MEM, (0x3 << 2) | (0x3 << 8) // MAIR #3\r | |
16 | \r | |
17 | .set PAGE_XIP, TT_TYPE_PAGE | TT_MT_MEM | TT_AF | TT_RO | TT_NG\r | |
18 | .set BLOCK_DEV, TT_TYPE_BLOCK | TT_MT_DEV | TT_AF | TT_XN | TT_NG\r | |
19 | .set BLOCK_MEM, TT_TYPE_BLOCK | TT_MT_MEM | TT_AF | TT_XN | TT_NG\r | |
20 | \r | |
21 | .globl idmap\r | |
22 | .section ".rodata.idmap", "a", %progbits\r | |
23 | .align 12\r | |
24 | \r | |
25 | idmap: /* level 0 */\r | |
26 | .quad 1f + TT_TYPE_TABLE\r | |
27 | .fill 511, 8, 0x0\r | |
28 | \r | |
29 | 1: /* level 1 */\r | |
30 | .quad 20f + TT_TYPE_TABLE // 1 GB of flash and device mappings\r | |
31 | .quad 21f + TT_TYPE_TABLE // up to 1 GB of DRAM\r | |
32 | .fill 510, 8, 0x0 // 510 GB of remaining VA space\r | |
33 | \r | |
34 | 20: /* level 2 */\r | |
35 | .quad 3f + TT_TYPE_TABLE // up to 2 MB of flash\r | |
36 | .fill 63, 8, 0x0 // 126 MB of unused flash\r | |
37 | .set idx, 64\r | |
38 | .rept 448\r | |
39 | .quad BLOCK_DEV | (idx << 21) // 896 MB of RW- device mappings\r | |
40 | .set idx, idx + 1\r | |
41 | .endr\r | |
42 | \r | |
43 | 21: /* level 2 */\r | |
44 | .set idx, 0x40000000 >> 21\r | |
45 | .rept 64\r | |
46 | .quad BLOCK_MEM | (idx << 21) // 128 MB of RW- memory mappings\r | |
47 | .set idx, idx + 1\r | |
48 | .endr\r | |
49 | .fill 448, 8, 0x0\r | |
50 | \r | |
51 | 3: /* level 3 */\r | |
52 | .quad 0x0 // omit first 4k page\r | |
53 | .set idx, 1\r | |
54 | .rept 511\r | |
55 | .quad PAGE_XIP | (idx << 12) // 2044 KiB of R-X flash mappings\r | |
56 | .set idx, idx + 1\r | |
57 | .endr\r |