WIP FPC-III support
[linux/fpc-iii.git] / Documentation / gpu / amdgpu.rst
blob2062a6023678d04b86abb096ebb7c9bfd9b418ad
1 =========================
2  drm/amdgpu AMDgpu driver
3 =========================
5 The drm/amdgpu driver supports all AMD Radeon GPUs based on the Graphics Core
6 Next (GCN) architecture.
8 Module Parameters
9 =================
11 The amdgpu driver supports the following module parameters:
13 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
15 Core Driver Infrastructure
16 ==========================
18 This section covers core driver infrastructure.
20 .. _amdgpu_memory_domains:
22 Memory Domains
23 --------------
25 .. kernel-doc:: include/uapi/drm/amdgpu_drm.h
26    :doc: memory domains
28 Buffer Objects
29 --------------
31 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
32    :doc: amdgpu_object
34 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
35    :internal:
37 PRIME Buffer Sharing
38 --------------------
40 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
41    :doc: PRIME Buffer Sharing
43 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
44    :internal:
46 MMU Notifier
47 ------------
49 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
50    :doc: MMU Notifier
52 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
53    :internal:
55 AMDGPU Virtual Memory
56 ---------------------
58 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
59    :doc: GPUVM
61 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
62    :internal:
64 Interrupt Handling
65 ------------------
67 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
68    :doc: Interrupt Handling
70 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
71    :internal:
73 IP Blocks
74 ------------------
76 .. kernel-doc:: drivers/gpu/drm/amd/include/amd_shared.h
77    :doc: IP Blocks
79 .. kernel-doc:: drivers/gpu/drm/amd/include/amd_shared.h
80    :identifiers: amd_ip_block_type amd_ip_funcs
82 AMDGPU XGMI Support
83 ===================
85 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
87 AMDGPU RAS Support
88 ==================
90 The AMDGPU RAS interfaces are exposed via sysfs (for informational queries) and
91 debugfs (for error injection).
93 RAS debugfs/sysfs Control and Error Injection Interfaces
94 --------------------------------------------------------
96 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
97    :doc: AMDGPU RAS debugfs control interface
99 RAS Reboot Behavior for Unrecoverable Errors
100 --------------------------------------------------------
102 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
103    :doc: AMDGPU RAS Reboot Behavior for Unrecoverable Errors
105 RAS Error Count sysfs Interface
106 -------------------------------
108 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
109    :doc: AMDGPU RAS sysfs Error Count Interface
111 RAS EEPROM debugfs Interface
112 ----------------------------
114 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
115    :doc: AMDGPU RAS debugfs EEPROM table reset interface
117 RAS VRAM Bad Pages sysfs Interface
118 ----------------------------------
120 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
121    :doc: AMDGPU RAS sysfs gpu_vram_bad_pages Interface
123 Sample Code
124 -----------
125 Sample code for testing error injection can be found here:
126 https://cgit.freedesktop.org/mesa/drm/tree/tests/amdgpu/ras_tests.c
128 This is part of the libdrm amdgpu unit tests which cover several areas of the GPU.
129 There are four sets of tests:
131 RAS Basic Test
133 The test verifies the RAS feature enabled status and makes sure the necessary sysfs and debugfs files
134 are present.
136 RAS Query Test
138 This test checks the RAS availability and enablement status for each supported IP block as well as
139 the error counts.
141 RAS Inject Test
143 This test injects errors for each IP.
145 RAS Disable Test
147 This test tests disabling of RAS features for each IP block.
150 GPU Power/Thermal Controls and Monitoring
151 =========================================
153 This section covers hwmon and power/thermal controls.
155 HWMON Interfaces
156 ----------------
158 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
159    :doc: hwmon
161 GPU sysfs Power State Interfaces
162 --------------------------------
164 GPU power controls are exposed via sysfs files.
166 power_dpm_state
167 ~~~~~~~~~~~~~~~
169 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
170    :doc: power_dpm_state
172 power_dpm_force_performance_level
173 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
175 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
176    :doc: power_dpm_force_performance_level
178 pp_table
179 ~~~~~~~~
181 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
182    :doc: pp_table
184 pp_od_clk_voltage
185 ~~~~~~~~~~~~~~~~~
187 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
188    :doc: pp_od_clk_voltage
190 pp_dpm_*
191 ~~~~~~~~
193 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
194    :doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie
196 pp_power_profile_mode
197 ~~~~~~~~~~~~~~~~~~~~~
199 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
200    :doc: pp_power_profile_mode
202 \*_busy_percent
203 ~~~~~~~~~~~~~~~
205 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
206    :doc: gpu_busy_percent
208 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
209    :doc: mem_busy_percent
211 gpu_metrics
212 ~~~~~~~~~~~~~~~~~~~~~
214 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
215    :doc: gpu_metrics
217 GPU Product Information
218 =======================
220 Information about the GPU can be obtained on certain cards
221 via sysfs
223 product_name
224 ------------
226 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
227    :doc: product_name
229 product_number
230 --------------
232 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
233    :doc: product_name
235 serial_number
236 -------------
238 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
239    :doc: serial_number
241 unique_id
242 ---------
244 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
245    :doc: unique_id
247 GPU Memory Usage Information
248 ============================
250 Various memory accounting can be accessed via sysfs
252 mem_info_vram_total
253 -------------------
255 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
256    :doc: mem_info_vram_total
258 mem_info_vram_used
259 ------------------
261 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
262    :doc: mem_info_vram_used
264 mem_info_vis_vram_total
265 -----------------------
267 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
268    :doc: mem_info_vis_vram_total
270 mem_info_vis_vram_used
271 ----------------------
273 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
274    :doc: mem_info_vis_vram_used
276 mem_info_gtt_total
277 ------------------
279 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
280    :doc: mem_info_gtt_total
282 mem_info_gtt_used
283 -----------------
285 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
286    :doc: mem_info_gtt_used
288 PCIe Accounting Information
289 ===========================
291 pcie_bw
292 -------
294 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
295    :doc: pcie_bw
297 pcie_replay_count
298 -----------------
300 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
301    :doc: pcie_replay_count