@@ -23,71 +23,6 @@ swapper_pg_dir contains only kernel (global) mappings while the user pgd
2323contains only user (non-global) mappings. The swapper_pg_dir address is
2424written to TTBR1 and never written to TTBR0.
2525
26-
27- AArch64 Linux memory layout with 4KB pages + 4 levels (48-bit)::
28-
29- Start End Size Use
30- -----------------------------------------------------------------------
31- 0000000000000000 0000ffffffffffff 256TB user
32- ffff000000000000 ffff7fffffffffff 128TB kernel logical memory map
33- [ffff600000000000 ffff7fffffffffff] 32TB [kasan shadow region]
34- ffff800000000000 ffff80007fffffff 2GB modules
35- ffff800080000000 fffffbffefffffff 124TB vmalloc
36- fffffbfff0000000 fffffbfffdffffff 224MB fixed mappings (top down)
37- fffffbfffe000000 fffffbfffe7fffff 8MB [guard region]
38- fffffbfffe800000 fffffbffff7fffff 16MB PCI I/O space
39- fffffbffff800000 fffffbffffffffff 8MB [guard region]
40- fffffc0000000000 fffffdffffffffff 2TB vmemmap
41- fffffe0000000000 ffffffffffffffff 2TB [guard region]
42-
43-
44- AArch64 Linux memory layout with 64KB pages + 3 levels (52-bit with HW support)::
45-
46- Start End Size Use
47- -----------------------------------------------------------------------
48- 0000000000000000 000fffffffffffff 4PB user
49- fff0000000000000 ffff7fffffffffff ~4PB kernel logical memory map
50- [fffd800000000000 ffff7fffffffffff] 512TB [kasan shadow region]
51- ffff800000000000 ffff80007fffffff 2GB modules
52- ffff800080000000 fffffbffefffffff 124TB vmalloc
53- fffffbfff0000000 fffffbfffdffffff 224MB fixed mappings (top down)
54- fffffbfffe000000 fffffbfffe7fffff 8MB [guard region]
55- fffffbfffe800000 fffffbffff7fffff 16MB PCI I/O space
56- fffffbffff800000 fffffbffffffffff 8MB [guard region]
57- fffffc0000000000 ffffffdfffffffff ~4TB vmemmap
58- ffffffe000000000 ffffffffffffffff 128GB [guard region]
59-
60-
61- Translation table lookup with 4KB pages::
62-
63- +--------+--------+--------+--------+--------+--------+--------+--------+
64- |63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0|
65- +--------+--------+--------+--------+--------+--------+--------+--------+
66- | | | | | |
67- | | | | | v
68- | | | | | [11:0] in-page offset
69- | | | | +-> [20:12] L3 index
70- | | | +-----------> [29:21] L2 index
71- | | +---------------------> [38:30] L1 index
72- | +-------------------------------> [47:39] L0 index
73- +----------------------------------------> [55] TTBR0/1
74-
75-
76- Translation table lookup with 64KB pages::
77-
78- +--------+--------+--------+--------+--------+--------+--------+--------+
79- |63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0|
80- +--------+--------+--------+--------+--------+--------+--------+--------+
81- | | | | |
82- | | | | v
83- | | | | [15:0] in-page offset
84- | | | +----------> [28:16] L3 index
85- | | +--------------------------> [41:29] L2 index
86- | +-------------------------------> [47:42] L1 index (48-bit)
87- | [51:42] L1 index (52-bit)
88- +----------------------------------------> [55] TTBR0/1
89-
90-
9126When using KVM without the Virtualization Host Extensions, the
9227hypervisor maps kernel pages in EL2 at a fixed (and potentially
9328random) offset from the linear mapping. See the kern_hyp_va macro and
0 commit comments