diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ABI/testing/sysfs-class-led-trigger-pattern | 4 | ||||
-rw-r--r-- | Documentation/admin-guide/pm/cpufreq.rst | 2 | ||||
-rw-r--r-- | Documentation/cpu-freq/cpufreq-stats.txt | 8 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/arm/shmobile.txt | 2 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt | 65 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt | 1 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/display/renesas,du.txt | 4 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/i2c/i2c-omap.txt | 8 | ||||
-rw-r--r-- | Documentation/gpu/amdgpu-dc.rst | 68 | ||||
-rw-r--r-- | Documentation/gpu/drivers.rst | 1 | ||||
-rw-r--r-- | Documentation/gpu/drm-mm.rst | 4 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-nvidia-gpu | 18 | ||||
-rw-r--r-- | Documentation/vm/unevictable-lru.rst | 6 | ||||
-rw-r--r-- | Documentation/x86/x86_64/mm.txt | 34 | ||||
-rw-r--r-- | Documentation/x86/zero-page.txt | 2 |
15 files changed, 133 insertions, 94 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-led-trigger-pattern b/Documentation/ABI/testing/sysfs-class-led-trigger-pattern index fb3d1e03b881..1e5d172e0646 100644 --- a/Documentation/ABI/testing/sysfs-class-led-trigger-pattern +++ b/Documentation/ABI/testing/sysfs-class-led-trigger-pattern | |||
@@ -37,8 +37,8 @@ Description: | |||
37 | 0-| / \/ \/ | 37 | 0-| / \/ \/ |
38 | +---0----1----2----3----4----5----6------------> time (s) | 38 | +---0----1----2----3----4----5----6------------> time (s) |
39 | 39 | ||
40 | 2. To make the LED go instantly from one brigntess value to another, | 40 | 2. To make the LED go instantly from one brightness value to another, |
41 | we should use use zero-time lengths (the brightness must be same as | 41 | we should use zero-time lengths (the brightness must be same as |
42 | the previous tuple's). So the format should be: | 42 | the previous tuple's). So the format should be: |
43 | "brightness_1 duration_1 brightness_1 0 brightness_2 duration_2 | 43 | "brightness_1 duration_1 brightness_1 0 brightness_2 duration_2 |
44 | brightness_2 0 ...". For example: | 44 | brightness_2 0 ...". For example: |
diff --git a/Documentation/admin-guide/pm/cpufreq.rst b/Documentation/admin-guide/pm/cpufreq.rst index 47153e64dfb5..7eca9026a9ed 100644 --- a/Documentation/admin-guide/pm/cpufreq.rst +++ b/Documentation/admin-guide/pm/cpufreq.rst | |||
@@ -150,7 +150,7 @@ data structures necessary to handle the given policy and, possibly, to add | |||
150 | a governor ``sysfs`` interface to it. Next, the governor is started by | 150 | a governor ``sysfs`` interface to it. Next, the governor is started by |
151 | invoking its ``->start()`` callback. | 151 | invoking its ``->start()`` callback. |
152 | 152 | ||
153 | That callback it expected to register per-CPU utilization update callbacks for | 153 | That callback is expected to register per-CPU utilization update callbacks for |
154 | all of the online CPUs belonging to the given policy with the CPU scheduler. | 154 | all of the online CPUs belonging to the given policy with the CPU scheduler. |
155 | The utilization update callbacks will be invoked by the CPU scheduler on | 155 | The utilization update callbacks will be invoked by the CPU scheduler on |
156 | important events, like task enqueue and dequeue, on every iteration of the | 156 | important events, like task enqueue and dequeue, on every iteration of the |
diff --git a/Documentation/cpu-freq/cpufreq-stats.txt b/Documentation/cpu-freq/cpufreq-stats.txt index a873855c811d..14378cecb172 100644 --- a/Documentation/cpu-freq/cpufreq-stats.txt +++ b/Documentation/cpu-freq/cpufreq-stats.txt | |||
@@ -86,9 +86,11 @@ transitions. | |||
86 | This will give a fine grained information about all the CPU frequency | 86 | This will give a fine grained information about all the CPU frequency |
87 | transitions. The cat output here is a two dimensional matrix, where an entry | 87 | transitions. The cat output here is a two dimensional matrix, where an entry |
88 | <i,j> (row i, column j) represents the count of number of transitions from | 88 | <i,j> (row i, column j) represents the count of number of transitions from |
89 | Freq_i to Freq_j. Freq_i is in descending order with increasing rows and | 89 | Freq_i to Freq_j. Freq_i rows and Freq_j columns follow the sorting order in |
90 | Freq_j is in descending order with increasing columns. The output here also | 90 | which the driver has provided the frequency table initially to the cpufreq core |
91 | contains the actual freq values for each row and column for better readability. | 91 | and so can be sorted (ascending or descending) or unsorted. The output here |
92 | also contains the actual freq values for each row and column for better | ||
93 | readability. | ||
92 | 94 | ||
93 | If the transition table is bigger than PAGE_SIZE, reading this will | 95 | If the transition table is bigger than PAGE_SIZE, reading this will |
94 | return an -EFBIG error. | 96 | return an -EFBIG error. |
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index f5e0f82fd503..58c4256d37a3 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt | |||
@@ -27,7 +27,7 @@ SoCs: | |||
27 | compatible = "renesas,r8a77470" | 27 | compatible = "renesas,r8a77470" |
28 | - RZ/G2M (R8A774A1) | 28 | - RZ/G2M (R8A774A1) |
29 | compatible = "renesas,r8a774a1" | 29 | compatible = "renesas,r8a774a1" |
30 | - RZ/G2E (RA8774C0) | 30 | - RZ/G2E (R8A774C0) |
31 | compatible = "renesas,r8a774c0" | 31 | compatible = "renesas,r8a774c0" |
32 | - R-Car M1A (R8A77781) | 32 | - R-Car M1A (R8A77781) |
33 | compatible = "renesas,r8a7778" | 33 | compatible = "renesas,r8a7778" |
diff --git a/Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt b/Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt deleted file mode 100644 index 2aa06ac0fac5..000000000000 --- a/Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | Generic ARM big LITTLE cpufreq driver's DT glue | ||
2 | ----------------------------------------------- | ||
3 | |||
4 | This is DT specific glue layer for generic cpufreq driver for big LITTLE | ||
5 | systems. | ||
6 | |||
7 | Both required and optional properties listed below must be defined | ||
8 | under node /cpus/cpu@x. Where x is the first cpu inside a cluster. | ||
9 | |||
10 | FIXME: Cpus should boot in the order specified in DT and all cpus for a cluster | ||
11 | must be present contiguously. Generic DT driver will check only node 'x' for | ||
12 | cpu:x. | ||
13 | |||
14 | Required properties: | ||
15 | - operating-points: Refer to Documentation/devicetree/bindings/opp/opp.txt | ||
16 | for details | ||
17 | |||
18 | Optional properties: | ||
19 | - clock-latency: Specify the possible maximum transition latency for clock, | ||
20 | in unit of nanoseconds. | ||
21 | |||
22 | Examples: | ||
23 | |||
24 | cpus { | ||
25 | #address-cells = <1>; | ||
26 | #size-cells = <0>; | ||
27 | |||
28 | cpu@0 { | ||
29 | compatible = "arm,cortex-a15"; | ||
30 | reg = <0>; | ||
31 | next-level-cache = <&L2>; | ||
32 | operating-points = < | ||
33 | /* kHz uV */ | ||
34 | 792000 1100000 | ||
35 | 396000 950000 | ||
36 | 198000 850000 | ||
37 | >; | ||
38 | clock-latency = <61036>; /* two CLK32 periods */ | ||
39 | }; | ||
40 | |||
41 | cpu@1 { | ||
42 | compatible = "arm,cortex-a15"; | ||
43 | reg = <1>; | ||
44 | next-level-cache = <&L2>; | ||
45 | }; | ||
46 | |||
47 | cpu@100 { | ||
48 | compatible = "arm,cortex-a7"; | ||
49 | reg = <100>; | ||
50 | next-level-cache = <&L2>; | ||
51 | operating-points = < | ||
52 | /* kHz uV */ | ||
53 | 792000 950000 | ||
54 | 396000 750000 | ||
55 | 198000 450000 | ||
56 | >; | ||
57 | clock-latency = <61036>; /* two CLK32 periods */ | ||
58 | }; | ||
59 | |||
60 | cpu@101 { | ||
61 | compatible = "arm,cortex-a7"; | ||
62 | reg = <101>; | ||
63 | next-level-cache = <&L2>; | ||
64 | }; | ||
65 | }; | ||
diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt index 3aeb0ec06fd0..ba5469dd09f3 100644 --- a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt +++ b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt | |||
@@ -13,6 +13,7 @@ Required properties: | |||
13 | - "renesas,r8a7793-lvds" for R8A7793 (R-Car M2-N) compatible LVDS encoders | 13 | - "renesas,r8a7793-lvds" for R8A7793 (R-Car M2-N) compatible LVDS encoders |
14 | - "renesas,r8a7795-lvds" for R8A7795 (R-Car H3) compatible LVDS encoders | 14 | - "renesas,r8a7795-lvds" for R8A7795 (R-Car H3) compatible LVDS encoders |
15 | - "renesas,r8a7796-lvds" for R8A7796 (R-Car M3-W) compatible LVDS encoders | 15 | - "renesas,r8a7796-lvds" for R8A7796 (R-Car M3-W) compatible LVDS encoders |
16 | - "renesas,r8a77965-lvds" for R8A77965 (R-Car M3-N) compatible LVDS encoders | ||
16 | - "renesas,r8a77970-lvds" for R8A77970 (R-Car V3M) compatible LVDS encoders | 17 | - "renesas,r8a77970-lvds" for R8A77970 (R-Car V3M) compatible LVDS encoders |
17 | - "renesas,r8a77980-lvds" for R8A77980 (R-Car V3H) compatible LVDS encoders | 18 | - "renesas,r8a77980-lvds" for R8A77980 (R-Car V3H) compatible LVDS encoders |
18 | - "renesas,r8a77990-lvds" for R8A77990 (R-Car E3) compatible LVDS encoders | 19 | - "renesas,r8a77990-lvds" for R8A77990 (R-Car E3) compatible LVDS encoders |
diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt b/Documentation/devicetree/bindings/display/renesas,du.txt index 9de67be632d1..3c855d9f2719 100644 --- a/Documentation/devicetree/bindings/display/renesas,du.txt +++ b/Documentation/devicetree/bindings/display/renesas,du.txt | |||
@@ -4,7 +4,9 @@ Required Properties: | |||
4 | 4 | ||
5 | - compatible: must be one of the following. | 5 | - compatible: must be one of the following. |
6 | - "renesas,du-r8a7743" for R8A7743 (RZ/G1M) compatible DU | 6 | - "renesas,du-r8a7743" for R8A7743 (RZ/G1M) compatible DU |
7 | - "renesas,du-r8a7744" for R8A7744 (RZ/G1N) compatible DU | ||
7 | - "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU | 8 | - "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU |
9 | - "renesas,du-r8a77470" for R8A77470 (RZ/G1C) compatible DU | ||
8 | - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU | 10 | - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU |
9 | - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU | 11 | - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU |
10 | - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU | 12 | - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU |
@@ -52,7 +54,9 @@ corresponding to each DU output. | |||
52 | Port0 Port1 Port2 Port3 | 54 | Port0 Port1 Port2 Port3 |
53 | ----------------------------------------------------------------------------- | 55 | ----------------------------------------------------------------------------- |
54 | R8A7743 (RZ/G1M) DPAD 0 LVDS 0 - - | 56 | R8A7743 (RZ/G1M) DPAD 0 LVDS 0 - - |
57 | R8A7744 (RZ/G1N) DPAD 0 LVDS 0 - - | ||
55 | R8A7745 (RZ/G1E) DPAD 0 DPAD 1 - - | 58 | R8A7745 (RZ/G1E) DPAD 0 DPAD 1 - - |
59 | R8A77470 (RZ/G1C) DPAD 0 DPAD 1 LVDS 0 - | ||
56 | R8A7779 (R-Car H1) DPAD 0 DPAD 1 - - | 60 | R8A7779 (R-Car H1) DPAD 0 DPAD 1 - - |
57 | R8A7790 (R-Car H2) DPAD 0 LVDS 0 LVDS 1 - | 61 | R8A7790 (R-Car H2) DPAD 0 LVDS 0 LVDS 1 - |
58 | R8A7791 (R-Car M2-W) DPAD 0 LVDS 0 - - | 62 | R8A7791 (R-Car M2-W) DPAD 0 LVDS 0 - - |
diff --git a/Documentation/devicetree/bindings/i2c/i2c-omap.txt b/Documentation/devicetree/bindings/i2c/i2c-omap.txt index 7e49839d4124..4b90ba9f31b7 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-omap.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-omap.txt | |||
@@ -1,8 +1,12 @@ | |||
1 | I2C for OMAP platforms | 1 | I2C for OMAP platforms |
2 | 2 | ||
3 | Required properties : | 3 | Required properties : |
4 | - compatible : Must be "ti,omap2420-i2c", "ti,omap2430-i2c", "ti,omap3-i2c" | 4 | - compatible : Must be |
5 | or "ti,omap4-i2c" | 5 | "ti,omap2420-i2c" for OMAP2420 SoCs |
6 | "ti,omap2430-i2c" for OMAP2430 SoCs | ||
7 | "ti,omap3-i2c" for OMAP3 SoCs | ||
8 | "ti,omap4-i2c" for OMAP4+ SoCs | ||
9 | "ti,am654-i2c", "ti,omap4-i2c" for AM654 SoCs | ||
6 | - ti,hwmods : Must be "i2c<n>", n being the instance number (1-based) | 10 | - ti,hwmods : Must be "i2c<n>", n being the instance number (1-based) |
7 | - #address-cells = <1>; | 11 | - #address-cells = <1>; |
8 | - #size-cells = <0>; | 12 | - #size-cells = <0>; |
diff --git a/Documentation/gpu/amdgpu-dc.rst b/Documentation/gpu/amdgpu-dc.rst new file mode 100644 index 000000000000..cc89b0fc11df --- /dev/null +++ b/Documentation/gpu/amdgpu-dc.rst | |||
@@ -0,0 +1,68 @@ | |||
1 | =================================== | ||
2 | drm/amd/display - Display Core (DC) | ||
3 | =================================== | ||
4 | |||
5 | *placeholder - general description of supported platforms, what dc is, etc.* | ||
6 | |||
7 | Because it is partially shared with other operating systems, the Display Core | ||
8 | Driver is divided in two pieces. | ||
9 | |||
10 | 1. **Display Core (DC)** contains the OS-agnostic components. Things like | ||
11 | hardware programming and resource management are handled here. | ||
12 | 2. **Display Manager (DM)** contains the OS-dependent components. Hooks to the | ||
13 | amdgpu base driver and DRM are implemented here. | ||
14 | |||
15 | It doesn't help that the entire package is frequently referred to as DC. But | ||
16 | with the context in mind, it should be clear. | ||
17 | |||
18 | When CONFIG_DRM_AMD_DC is enabled, DC will be initialized by default for | ||
19 | supported ASICs. To force disable, set `amdgpu.dc=0` on kernel command line. | ||
20 | Likewise, to force enable on unsupported ASICs, set `amdgpu.dc=1`. | ||
21 | |||
22 | To determine if DC is loaded, search dmesg for the following entry: | ||
23 | |||
24 | ``Display Core initialized with <version number here>`` | ||
25 | |||
26 | AMDgpu Display Manager | ||
27 | ====================== | ||
28 | |||
29 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | ||
30 | :doc: overview | ||
31 | |||
32 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | ||
33 | :internal: | ||
34 | |||
35 | Lifecycle | ||
36 | --------- | ||
37 | |||
38 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | ||
39 | :doc: DM Lifecycle | ||
40 | |||
41 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | ||
42 | :functions: dm_hw_init dm_hw_fini | ||
43 | |||
44 | Interrupts | ||
45 | ---------- | ||
46 | |||
47 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | ||
48 | :doc: overview | ||
49 | |||
50 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | ||
51 | :internal: | ||
52 | |||
53 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | ||
54 | :functions: register_hpd_handlers dm_crtc_high_irq dm_pflip_high_irq | ||
55 | |||
56 | Atomic Implementation | ||
57 | --------------------- | ||
58 | |||
59 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | ||
60 | :doc: atomic | ||
61 | |||
62 | .. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | ||
63 | :functions: amdgpu_dm_atomic_check amdgpu_dm_atomic_commit_tail | ||
64 | |||
65 | Display Core | ||
66 | ============ | ||
67 | |||
68 | **WIP** | ||
diff --git a/Documentation/gpu/drivers.rst b/Documentation/gpu/drivers.rst index 7d2d3875ff1a..7c1672118a73 100644 --- a/Documentation/gpu/drivers.rst +++ b/Documentation/gpu/drivers.rst | |||
@@ -5,6 +5,7 @@ GPU Driver Documentation | |||
5 | .. toctree:: | 5 | .. toctree:: |
6 | 6 | ||
7 | amdgpu | 7 | amdgpu |
8 | amdgpu-dc | ||
8 | i915 | 9 | i915 |
9 | meson | 10 | meson |
10 | pl111 | 11 | pl111 |
diff --git a/Documentation/gpu/drm-mm.rst b/Documentation/gpu/drm-mm.rst index e725e8449e72..d0f3c6b03200 100644 --- a/Documentation/gpu/drm-mm.rst +++ b/Documentation/gpu/drm-mm.rst | |||
@@ -72,8 +72,8 @@ object TTM to provide a pool for buffer object allocation by clients and | |||
72 | the kernel itself. The type of this object should be | 72 | the kernel itself. The type of this object should be |
73 | TTM_GLOBAL_TTM_BO, and its size should be sizeof(struct | 73 | TTM_GLOBAL_TTM_BO, and its size should be sizeof(struct |
74 | ttm_bo_global). Again, driver-specific init and release functions may | 74 | ttm_bo_global). Again, driver-specific init and release functions may |
75 | be provided, likely eventually calling ttm_bo_global_init() and | 75 | be provided, likely eventually calling ttm_bo_global_ref_init() and |
76 | ttm_bo_global_release(), respectively. Also, like the previous | 76 | ttm_bo_global_ref_release(), respectively. Also, like the previous |
77 | object, ttm_global_item_ref() is used to create an initial reference | 77 | object, ttm_global_item_ref() is used to create an initial reference |
78 | count for the TTM, which will call your initialization function. | 78 | count for the TTM, which will call your initialization function. |
79 | 79 | ||
diff --git a/Documentation/i2c/busses/i2c-nvidia-gpu b/Documentation/i2c/busses/i2c-nvidia-gpu new file mode 100644 index 000000000000..31884d2b2eb5 --- /dev/null +++ b/Documentation/i2c/busses/i2c-nvidia-gpu | |||
@@ -0,0 +1,18 @@ | |||
1 | Kernel driver i2c-nvidia-gpu | ||
2 | |||
3 | Datasheet: not publicly available. | ||
4 | |||
5 | Authors: | ||
6 | Ajay Gupta <ajayg@nvidia.com> | ||
7 | |||
8 | Description | ||
9 | ----------- | ||
10 | |||
11 | i2c-nvidia-gpu is a driver for I2C controller included in NVIDIA Turing | ||
12 | and later GPUs and it is used to communicate with Type-C controller on GPUs. | ||
13 | |||
14 | If your 'lspci -v' listing shows something like the following, | ||
15 | |||
16 | 01:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device 1ad9 (rev a1) | ||
17 | |||
18 | then this driver should support the I2C controller of your GPU. | ||
diff --git a/Documentation/vm/unevictable-lru.rst b/Documentation/vm/unevictable-lru.rst index fdd84cb8d511..b8e29f977f2d 100644 --- a/Documentation/vm/unevictable-lru.rst +++ b/Documentation/vm/unevictable-lru.rst | |||
@@ -143,7 +143,7 @@ using a number of wrapper functions: | |||
143 | Query the address space, and return true if it is completely | 143 | Query the address space, and return true if it is completely |
144 | unevictable. | 144 | unevictable. |
145 | 145 | ||
146 | These are currently used in two places in the kernel: | 146 | These are currently used in three places in the kernel: |
147 | 147 | ||
148 | (1) By ramfs to mark the address spaces of its inodes when they are created, | 148 | (1) By ramfs to mark the address spaces of its inodes when they are created, |
149 | and this mark remains for the life of the inode. | 149 | and this mark remains for the life of the inode. |
@@ -154,6 +154,10 @@ These are currently used in two places in the kernel: | |||
154 | swapped out; the application must touch the pages manually if it wants to | 154 | swapped out; the application must touch the pages manually if it wants to |
155 | ensure they're in memory. | 155 | ensure they're in memory. |
156 | 156 | ||
157 | (3) By the i915 driver to mark pinned address space until it's unpinned. The | ||
158 | amount of unevictable memory marked by i915 driver is roughly the bounded | ||
159 | object size in debugfs/dri/0/i915_gem_objects. | ||
160 | |||
157 | 161 | ||
158 | Detecting Unevictable Pages | 162 | Detecting Unevictable Pages |
159 | --------------------------- | 163 | --------------------------- |
diff --git a/Documentation/x86/x86_64/mm.txt b/Documentation/x86/x86_64/mm.txt index 73aaaa3da436..804f9426ed17 100644 --- a/Documentation/x86/x86_64/mm.txt +++ b/Documentation/x86/x86_64/mm.txt | |||
@@ -34,23 +34,24 @@ __________________|____________|__________________|_________|___________________ | |||
34 | ____________________________________________________________|___________________________________________________________ | 34 | ____________________________________________________________|___________________________________________________________ |
35 | | | | | | 35 | | | | | |
36 | ffff800000000000 | -128 TB | ffff87ffffffffff | 8 TB | ... guard hole, also reserved for hypervisor | 36 | ffff800000000000 | -128 TB | ffff87ffffffffff | 8 TB | ... guard hole, also reserved for hypervisor |
37 | ffff880000000000 | -120 TB | ffffc7ffffffffff | 64 TB | direct mapping of all physical memory (page_offset_base) | 37 | ffff880000000000 | -120 TB | ffff887fffffffff | 0.5 TB | LDT remap for PTI |
38 | ffffc80000000000 | -56 TB | ffffc8ffffffffff | 1 TB | ... unused hole | 38 | ffff888000000000 | -119.5 TB | ffffc87fffffffff | 64 TB | direct mapping of all physical memory (page_offset_base) |
39 | ffffc88000000000 | -55.5 TB | ffffc8ffffffffff | 0.5 TB | ... unused hole | ||
39 | ffffc90000000000 | -55 TB | ffffe8ffffffffff | 32 TB | vmalloc/ioremap space (vmalloc_base) | 40 | ffffc90000000000 | -55 TB | ffffe8ffffffffff | 32 TB | vmalloc/ioremap space (vmalloc_base) |
40 | ffffe90000000000 | -23 TB | ffffe9ffffffffff | 1 TB | ... unused hole | 41 | ffffe90000000000 | -23 TB | ffffe9ffffffffff | 1 TB | ... unused hole |
41 | ffffea0000000000 | -22 TB | ffffeaffffffffff | 1 TB | virtual memory map (vmemmap_base) | 42 | ffffea0000000000 | -22 TB | ffffeaffffffffff | 1 TB | virtual memory map (vmemmap_base) |
42 | ffffeb0000000000 | -21 TB | ffffebffffffffff | 1 TB | ... unused hole | 43 | ffffeb0000000000 | -21 TB | ffffebffffffffff | 1 TB | ... unused hole |
43 | ffffec0000000000 | -20 TB | fffffbffffffffff | 16 TB | KASAN shadow memory | 44 | ffffec0000000000 | -20 TB | fffffbffffffffff | 16 TB | KASAN shadow memory |
44 | fffffc0000000000 | -4 TB | fffffdffffffffff | 2 TB | ... unused hole | ||
45 | | | | | vaddr_end for KASLR | ||
46 | fffffe0000000000 | -2 TB | fffffe7fffffffff | 0.5 TB | cpu_entry_area mapping | ||
47 | fffffe8000000000 | -1.5 TB | fffffeffffffffff | 0.5 TB | LDT remap for PTI | ||
48 | ffffff0000000000 | -1 TB | ffffff7fffffffff | 0.5 TB | %esp fixup stacks | ||
49 | __________________|____________|__________________|_________|____________________________________________________________ | 45 | __________________|____________|__________________|_________|____________________________________________________________ |
50 | | | 46 | | |
51 | | Identical layout to the 47-bit one from here on: | 47 | | Identical layout to the 56-bit one from here on: |
52 | ____________________________________________________________|____________________________________________________________ | 48 | ____________________________________________________________|____________________________________________________________ |
53 | | | | | | 49 | | | | | |
50 | fffffc0000000000 | -4 TB | fffffdffffffffff | 2 TB | ... unused hole | ||
51 | | | | | vaddr_end for KASLR | ||
52 | fffffe0000000000 | -2 TB | fffffe7fffffffff | 0.5 TB | cpu_entry_area mapping | ||
53 | fffffe8000000000 | -1.5 TB | fffffeffffffffff | 0.5 TB | ... unused hole | ||
54 | ffffff0000000000 | -1 TB | ffffff7fffffffff | 0.5 TB | %esp fixup stacks | ||
54 | ffffff8000000000 | -512 GB | ffffffeeffffffff | 444 GB | ... unused hole | 55 | ffffff8000000000 | -512 GB | ffffffeeffffffff | 444 GB | ... unused hole |
55 | ffffffef00000000 | -68 GB | fffffffeffffffff | 64 GB | EFI region mapping space | 56 | ffffffef00000000 | -68 GB | fffffffeffffffff | 64 GB | EFI region mapping space |
56 | ffffffff00000000 | -4 GB | ffffffff7fffffff | 2 GB | ... unused hole | 57 | ffffffff00000000 | -4 GB | ffffffff7fffffff | 2 GB | ... unused hole |
@@ -83,7 +84,7 @@ Notes: | |||
83 | __________________|____________|__________________|_________|___________________________________________________________ | 84 | __________________|____________|__________________|_________|___________________________________________________________ |
84 | | | | | | 85 | | | | | |
85 | 0000800000000000 | +64 PB | ffff7fffffffffff | ~16K PB | ... huge, still almost 64 bits wide hole of non-canonical | 86 | 0000800000000000 | +64 PB | ffff7fffffffffff | ~16K PB | ... huge, still almost 64 bits wide hole of non-canonical |
86 | | | | | virtual memory addresses up to the -128 TB | 87 | | | | | virtual memory addresses up to the -64 PB |
87 | | | | | starting offset of kernel mappings. | 88 | | | | | starting offset of kernel mappings. |
88 | __________________|____________|__________________|_________|___________________________________________________________ | 89 | __________________|____________|__________________|_________|___________________________________________________________ |
89 | | | 90 | | |
@@ -91,23 +92,24 @@ __________________|____________|__________________|_________|___________________ | |||
91 | ____________________________________________________________|___________________________________________________________ | 92 | ____________________________________________________________|___________________________________________________________ |
92 | | | | | | 93 | | | | | |
93 | ff00000000000000 | -64 PB | ff0fffffffffffff | 4 PB | ... guard hole, also reserved for hypervisor | 94 | ff00000000000000 | -64 PB | ff0fffffffffffff | 4 PB | ... guard hole, also reserved for hypervisor |
94 | ff10000000000000 | -60 PB | ff8fffffffffffff | 32 PB | direct mapping of all physical memory (page_offset_base) | 95 | ff10000000000000 | -60 PB | ff10ffffffffffff | 0.25 PB | LDT remap for PTI |
95 | ff90000000000000 | -28 PB | ff9fffffffffffff | 4 PB | LDT remap for PTI | 96 | ff11000000000000 | -59.75 PB | ff90ffffffffffff | 32 PB | direct mapping of all physical memory (page_offset_base) |
97 | ff91000000000000 | -27.75 PB | ff9fffffffffffff | 3.75 PB | ... unused hole | ||
96 | ffa0000000000000 | -24 PB | ffd1ffffffffffff | 12.5 PB | vmalloc/ioremap space (vmalloc_base) | 98 | ffa0000000000000 | -24 PB | ffd1ffffffffffff | 12.5 PB | vmalloc/ioremap space (vmalloc_base) |
97 | ffd2000000000000 | -11.5 PB | ffd3ffffffffffff | 0.5 PB | ... unused hole | 99 | ffd2000000000000 | -11.5 PB | ffd3ffffffffffff | 0.5 PB | ... unused hole |
98 | ffd4000000000000 | -11 PB | ffd5ffffffffffff | 0.5 PB | virtual memory map (vmemmap_base) | 100 | ffd4000000000000 | -11 PB | ffd5ffffffffffff | 0.5 PB | virtual memory map (vmemmap_base) |
99 | ffd6000000000000 | -10.5 PB | ffdeffffffffffff | 2.25 PB | ... unused hole | 101 | ffd6000000000000 | -10.5 PB | ffdeffffffffffff | 2.25 PB | ... unused hole |
100 | ffdf000000000000 | -8.25 PB | fffffdffffffffff | ~8 PB | KASAN shadow memory | 102 | ffdf000000000000 | -8.25 PB | fffffdffffffffff | ~8 PB | KASAN shadow memory |
101 | fffffc0000000000 | -4 TB | fffffdffffffffff | 2 TB | ... unused hole | ||
102 | | | | | vaddr_end for KASLR | ||
103 | fffffe0000000000 | -2 TB | fffffe7fffffffff | 0.5 TB | cpu_entry_area mapping | ||
104 | fffffe8000000000 | -1.5 TB | fffffeffffffffff | 0.5 TB | ... unused hole | ||
105 | ffffff0000000000 | -1 TB | ffffff7fffffffff | 0.5 TB | %esp fixup stacks | ||
106 | __________________|____________|__________________|_________|____________________________________________________________ | 103 | __________________|____________|__________________|_________|____________________________________________________________ |
107 | | | 104 | | |
108 | | Identical layout to the 47-bit one from here on: | 105 | | Identical layout to the 47-bit one from here on: |
109 | ____________________________________________________________|____________________________________________________________ | 106 | ____________________________________________________________|____________________________________________________________ |
110 | | | | | | 107 | | | | | |
108 | fffffc0000000000 | -4 TB | fffffdffffffffff | 2 TB | ... unused hole | ||
109 | | | | | vaddr_end for KASLR | ||
110 | fffffe0000000000 | -2 TB | fffffe7fffffffff | 0.5 TB | cpu_entry_area mapping | ||
111 | fffffe8000000000 | -1.5 TB | fffffeffffffffff | 0.5 TB | ... unused hole | ||
112 | ffffff0000000000 | -1 TB | ffffff7fffffffff | 0.5 TB | %esp fixup stacks | ||
111 | ffffff8000000000 | -512 GB | ffffffeeffffffff | 444 GB | ... unused hole | 113 | ffffff8000000000 | -512 GB | ffffffeeffffffff | 444 GB | ... unused hole |
112 | ffffffef00000000 | -68 GB | fffffffeffffffff | 64 GB | EFI region mapping space | 114 | ffffffef00000000 | -68 GB | fffffffeffffffff | 64 GB | EFI region mapping space |
113 | ffffffff00000000 | -4 GB | ffffffff7fffffff | 2 GB | ... unused hole | 115 | ffffffff00000000 | -4 GB | ffffffff7fffffff | 2 GB | ... unused hole |
diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt index 97b7adbceda4..68aed077f7b6 100644 --- a/Documentation/x86/zero-page.txt +++ b/Documentation/x86/zero-page.txt | |||
@@ -25,7 +25,7 @@ Offset Proto Name Meaning | |||
25 | 0C8/004 ALL ext_cmd_line_ptr cmd_line_ptr high 32bits | 25 | 0C8/004 ALL ext_cmd_line_ptr cmd_line_ptr high 32bits |
26 | 140/080 ALL edid_info Video mode setup (struct edid_info) | 26 | 140/080 ALL edid_info Video mode setup (struct edid_info) |
27 | 1C0/020 ALL efi_info EFI 32 information (struct efi_info) | 27 | 1C0/020 ALL efi_info EFI 32 information (struct efi_info) |
28 | 1E0/004 ALL alk_mem_k Alternative mem check, in KB | 28 | 1E0/004 ALL alt_mem_k Alternative mem check, in KB |
29 | 1E4/004 ALL scratch Scratch field for the kernel setup code | 29 | 1E4/004 ALL scratch Scratch field for the kernel setup code |
30 | 1E8/001 ALL e820_entries Number of entries in e820_table (below) | 30 | 1E8/001 ALL e820_entries Number of entries in e820_table (below) |
31 | 1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) | 31 | 1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) |