xref: /linux/Documentation/gpu/amdgpu/index.rst (revision e91f840142eed8705e6682f838da99a97bd7ea25)
1*e91f8401SRodrigo Siqueira==========================
2*e91f8401SRodrigo Siqueira drm/amdgpu AMDgpu driver
3*e91f8401SRodrigo Siqueira==========================
4*e91f8401SRodrigo Siqueira
5*e91f8401SRodrigo SiqueiraThe drm/amdgpu driver supports all AMD Radeon GPUs based on the Graphics Core
6*e91f8401SRodrigo SiqueiraNext (GCN) architecture.
7*e91f8401SRodrigo Siqueira
8*e91f8401SRodrigo SiqueiraModule Parameters
9*e91f8401SRodrigo Siqueira=================
10*e91f8401SRodrigo Siqueira
11*e91f8401SRodrigo SiqueiraThe amdgpu driver supports the following module parameters:
12*e91f8401SRodrigo Siqueira
13*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
14*e91f8401SRodrigo Siqueira
15*e91f8401SRodrigo SiqueiraCore Driver Infrastructure
16*e91f8401SRodrigo Siqueira==========================
17*e91f8401SRodrigo Siqueira
18*e91f8401SRodrigo SiqueiraThis section covers core driver infrastructure.
19*e91f8401SRodrigo Siqueira
20*e91f8401SRodrigo Siqueira.. _amdgpu_memory_domains:
21*e91f8401SRodrigo Siqueira
22*e91f8401SRodrigo SiqueiraMemory Domains
23*e91f8401SRodrigo Siqueira--------------
24*e91f8401SRodrigo Siqueira
25*e91f8401SRodrigo Siqueira.. kernel-doc:: include/uapi/drm/amdgpu_drm.h
26*e91f8401SRodrigo Siqueira   :doc: memory domains
27*e91f8401SRodrigo Siqueira
28*e91f8401SRodrigo SiqueiraBuffer Objects
29*e91f8401SRodrigo Siqueira--------------
30*e91f8401SRodrigo Siqueira
31*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
32*e91f8401SRodrigo Siqueira   :doc: amdgpu_object
33*e91f8401SRodrigo Siqueira
34*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
35*e91f8401SRodrigo Siqueira   :internal:
36*e91f8401SRodrigo Siqueira
37*e91f8401SRodrigo SiqueiraPRIME Buffer Sharing
38*e91f8401SRodrigo Siqueira--------------------
39*e91f8401SRodrigo Siqueira
40*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
41*e91f8401SRodrigo Siqueira   :doc: PRIME Buffer Sharing
42*e91f8401SRodrigo Siqueira
43*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
44*e91f8401SRodrigo Siqueira   :internal:
45*e91f8401SRodrigo Siqueira
46*e91f8401SRodrigo SiqueiraMMU Notifier
47*e91f8401SRodrigo Siqueira------------
48*e91f8401SRodrigo Siqueira
49*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
50*e91f8401SRodrigo Siqueira   :doc: MMU Notifier
51*e91f8401SRodrigo Siqueira
52*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
53*e91f8401SRodrigo Siqueira   :internal:
54*e91f8401SRodrigo Siqueira
55*e91f8401SRodrigo SiqueiraAMDGPU Virtual Memory
56*e91f8401SRodrigo Siqueira---------------------
57*e91f8401SRodrigo Siqueira
58*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
59*e91f8401SRodrigo Siqueira   :doc: GPUVM
60*e91f8401SRodrigo Siqueira
61*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
62*e91f8401SRodrigo Siqueira   :internal:
63*e91f8401SRodrigo Siqueira
64*e91f8401SRodrigo SiqueiraInterrupt Handling
65*e91f8401SRodrigo Siqueira------------------
66*e91f8401SRodrigo Siqueira
67*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
68*e91f8401SRodrigo Siqueira   :doc: Interrupt Handling
69*e91f8401SRodrigo Siqueira
70*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
71*e91f8401SRodrigo Siqueira   :internal:
72*e91f8401SRodrigo Siqueira
73*e91f8401SRodrigo SiqueiraIP Blocks
74*e91f8401SRodrigo Siqueira---------
75*e91f8401SRodrigo Siqueira
76*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/include/amd_shared.h
77*e91f8401SRodrigo Siqueira   :doc: IP Blocks
78*e91f8401SRodrigo Siqueira
79*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/include/amd_shared.h
80*e91f8401SRodrigo Siqueira   :identifiers: amd_ip_block_type amd_ip_funcs
81*e91f8401SRodrigo Siqueira
82*e91f8401SRodrigo SiqueiraDisplay Core
83*e91f8401SRodrigo Siqueira============
84*e91f8401SRodrigo Siqueira
85*e91f8401SRodrigo SiqueiraThis section covers Display core.
86*e91f8401SRodrigo Siqueira
87*e91f8401SRodrigo Siqueira.. toctree::
88*e91f8401SRodrigo Siqueira
89*e91f8401SRodrigo Siqueira  display/index
90*e91f8401SRodrigo Siqueira
91*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
92*e91f8401SRodrigo Siqueira   :doc: overview
93*e91f8401SRodrigo Siqueira
94*e91f8401SRodrigo SiqueiraAMDGPU XGMI Support
95*e91f8401SRodrigo Siqueira===================
96*e91f8401SRodrigo Siqueira
97*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
98*e91f8401SRodrigo Siqueira
99*e91f8401SRodrigo SiqueiraAMDGPU RAS Support
100*e91f8401SRodrigo Siqueira==================
101*e91f8401SRodrigo Siqueira
102*e91f8401SRodrigo SiqueiraThe AMDGPU RAS interfaces are exposed via sysfs (for informational queries) and
103*e91f8401SRodrigo Siqueiradebugfs (for error injection).
104*e91f8401SRodrigo Siqueira
105*e91f8401SRodrigo SiqueiraRAS debugfs/sysfs Control and Error Injection Interfaces
106*e91f8401SRodrigo Siqueira--------------------------------------------------------
107*e91f8401SRodrigo Siqueira
108*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
109*e91f8401SRodrigo Siqueira   :doc: AMDGPU RAS debugfs control interface
110*e91f8401SRodrigo Siqueira
111*e91f8401SRodrigo SiqueiraRAS Reboot Behavior for Unrecoverable Errors
112*e91f8401SRodrigo Siqueira--------------------------------------------------------
113*e91f8401SRodrigo Siqueira
114*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
115*e91f8401SRodrigo Siqueira   :doc: AMDGPU RAS Reboot Behavior for Unrecoverable Errors
116*e91f8401SRodrigo Siqueira
117*e91f8401SRodrigo SiqueiraRAS Error Count sysfs Interface
118*e91f8401SRodrigo Siqueira-------------------------------
119*e91f8401SRodrigo Siqueira
120*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
121*e91f8401SRodrigo Siqueira   :doc: AMDGPU RAS sysfs Error Count Interface
122*e91f8401SRodrigo Siqueira
123*e91f8401SRodrigo SiqueiraRAS EEPROM debugfs Interface
124*e91f8401SRodrigo Siqueira----------------------------
125*e91f8401SRodrigo Siqueira
126*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
127*e91f8401SRodrigo Siqueira   :doc: AMDGPU RAS debugfs EEPROM table reset interface
128*e91f8401SRodrigo Siqueira
129*e91f8401SRodrigo SiqueiraRAS VRAM Bad Pages sysfs Interface
130*e91f8401SRodrigo Siqueira----------------------------------
131*e91f8401SRodrigo Siqueira
132*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
133*e91f8401SRodrigo Siqueira   :doc: AMDGPU RAS sysfs gpu_vram_bad_pages Interface
134*e91f8401SRodrigo Siqueira
135*e91f8401SRodrigo SiqueiraSample Code
136*e91f8401SRodrigo Siqueira-----------
137*e91f8401SRodrigo SiqueiraSample code for testing error injection can be found here:
138*e91f8401SRodrigo Siqueirahttps://cgit.freedesktop.org/mesa/drm/tree/tests/amdgpu/ras_tests.c
139*e91f8401SRodrigo Siqueira
140*e91f8401SRodrigo SiqueiraThis is part of the libdrm amdgpu unit tests which cover several areas of the GPU.
141*e91f8401SRodrigo SiqueiraThere are four sets of tests:
142*e91f8401SRodrigo Siqueira
143*e91f8401SRodrigo SiqueiraRAS Basic Test
144*e91f8401SRodrigo Siqueira
145*e91f8401SRodrigo SiqueiraThe test verifies the RAS feature enabled status and makes sure the necessary sysfs and debugfs files
146*e91f8401SRodrigo Siqueiraare present.
147*e91f8401SRodrigo Siqueira
148*e91f8401SRodrigo SiqueiraRAS Query Test
149*e91f8401SRodrigo Siqueira
150*e91f8401SRodrigo SiqueiraThis test checks the RAS availability and enablement status for each supported IP block as well as
151*e91f8401SRodrigo Siqueirathe error counts.
152*e91f8401SRodrigo Siqueira
153*e91f8401SRodrigo SiqueiraRAS Inject Test
154*e91f8401SRodrigo Siqueira
155*e91f8401SRodrigo SiqueiraThis test injects errors for each IP.
156*e91f8401SRodrigo Siqueira
157*e91f8401SRodrigo SiqueiraRAS Disable Test
158*e91f8401SRodrigo Siqueira
159*e91f8401SRodrigo SiqueiraThis test tests disabling of RAS features for each IP block.
160*e91f8401SRodrigo Siqueira
161*e91f8401SRodrigo Siqueira
162*e91f8401SRodrigo SiqueiraGPU Power/Thermal Controls and Monitoring
163*e91f8401SRodrigo Siqueira=========================================
164*e91f8401SRodrigo Siqueira
165*e91f8401SRodrigo SiqueiraThis section covers hwmon and power/thermal controls.
166*e91f8401SRodrigo Siqueira
167*e91f8401SRodrigo SiqueiraHWMON Interfaces
168*e91f8401SRodrigo Siqueira----------------
169*e91f8401SRodrigo Siqueira
170*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
171*e91f8401SRodrigo Siqueira   :doc: hwmon
172*e91f8401SRodrigo Siqueira
173*e91f8401SRodrigo SiqueiraGPU sysfs Power State Interfaces
174*e91f8401SRodrigo Siqueira--------------------------------
175*e91f8401SRodrigo Siqueira
176*e91f8401SRodrigo SiqueiraGPU power controls are exposed via sysfs files.
177*e91f8401SRodrigo Siqueira
178*e91f8401SRodrigo Siqueirapower_dpm_state
179*e91f8401SRodrigo Siqueira~~~~~~~~~~~~~~~
180*e91f8401SRodrigo Siqueira
181*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
182*e91f8401SRodrigo Siqueira   :doc: power_dpm_state
183*e91f8401SRodrigo Siqueira
184*e91f8401SRodrigo Siqueirapower_dpm_force_performance_level
185*e91f8401SRodrigo Siqueira~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186*e91f8401SRodrigo Siqueira
187*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
188*e91f8401SRodrigo Siqueira   :doc: power_dpm_force_performance_level
189*e91f8401SRodrigo Siqueira
190*e91f8401SRodrigo Siqueirapp_table
191*e91f8401SRodrigo Siqueira~~~~~~~~
192*e91f8401SRodrigo Siqueira
193*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
194*e91f8401SRodrigo Siqueira   :doc: pp_table
195*e91f8401SRodrigo Siqueira
196*e91f8401SRodrigo Siqueirapp_od_clk_voltage
197*e91f8401SRodrigo Siqueira~~~~~~~~~~~~~~~~~
198*e91f8401SRodrigo Siqueira
199*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
200*e91f8401SRodrigo Siqueira   :doc: pp_od_clk_voltage
201*e91f8401SRodrigo Siqueira
202*e91f8401SRodrigo Siqueirapp_dpm_*
203*e91f8401SRodrigo Siqueira~~~~~~~~
204*e91f8401SRodrigo Siqueira
205*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
206*e91f8401SRodrigo Siqueira   :doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie
207*e91f8401SRodrigo Siqueira
208*e91f8401SRodrigo Siqueirapp_power_profile_mode
209*e91f8401SRodrigo Siqueira~~~~~~~~~~~~~~~~~~~~~
210*e91f8401SRodrigo Siqueira
211*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
212*e91f8401SRodrigo Siqueira   :doc: pp_power_profile_mode
213*e91f8401SRodrigo Siqueira
214*e91f8401SRodrigo Siqueira\*_busy_percent
215*e91f8401SRodrigo Siqueira~~~~~~~~~~~~~~~
216*e91f8401SRodrigo Siqueira
217*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
218*e91f8401SRodrigo Siqueira   :doc: gpu_busy_percent
219*e91f8401SRodrigo Siqueira
220*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
221*e91f8401SRodrigo Siqueira   :doc: mem_busy_percent
222*e91f8401SRodrigo Siqueira
223*e91f8401SRodrigo Siqueiragpu_metrics
224*e91f8401SRodrigo Siqueira~~~~~~~~~~~~~~~~~~~~~
225*e91f8401SRodrigo Siqueira
226*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
227*e91f8401SRodrigo Siqueira   :doc: gpu_metrics
228*e91f8401SRodrigo Siqueira
229*e91f8401SRodrigo SiqueiraGPU Product Information
230*e91f8401SRodrigo Siqueira=======================
231*e91f8401SRodrigo Siqueira
232*e91f8401SRodrigo SiqueiraInformation about the GPU can be obtained on certain cards
233*e91f8401SRodrigo Siqueiravia sysfs
234*e91f8401SRodrigo Siqueira
235*e91f8401SRodrigo Siqueiraproduct_name
236*e91f8401SRodrigo Siqueira------------
237*e91f8401SRodrigo Siqueira
238*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
239*e91f8401SRodrigo Siqueira   :doc: product_name
240*e91f8401SRodrigo Siqueira
241*e91f8401SRodrigo Siqueiraproduct_number
242*e91f8401SRodrigo Siqueira--------------
243*e91f8401SRodrigo Siqueira
244*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
245*e91f8401SRodrigo Siqueira   :doc: product_name
246*e91f8401SRodrigo Siqueira
247*e91f8401SRodrigo Siqueiraserial_number
248*e91f8401SRodrigo Siqueira-------------
249*e91f8401SRodrigo Siqueira
250*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
251*e91f8401SRodrigo Siqueira   :doc: serial_number
252*e91f8401SRodrigo Siqueira
253*e91f8401SRodrigo Siqueiraunique_id
254*e91f8401SRodrigo Siqueira---------
255*e91f8401SRodrigo Siqueira
256*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
257*e91f8401SRodrigo Siqueira   :doc: unique_id
258*e91f8401SRodrigo Siqueira
259*e91f8401SRodrigo SiqueiraGPU Memory Usage Information
260*e91f8401SRodrigo Siqueira============================
261*e91f8401SRodrigo Siqueira
262*e91f8401SRodrigo SiqueiraVarious memory accounting can be accessed via sysfs
263*e91f8401SRodrigo Siqueira
264*e91f8401SRodrigo Siqueiramem_info_vram_total
265*e91f8401SRodrigo Siqueira-------------------
266*e91f8401SRodrigo Siqueira
267*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
268*e91f8401SRodrigo Siqueira   :doc: mem_info_vram_total
269*e91f8401SRodrigo Siqueira
270*e91f8401SRodrigo Siqueiramem_info_vram_used
271*e91f8401SRodrigo Siqueira------------------
272*e91f8401SRodrigo Siqueira
273*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
274*e91f8401SRodrigo Siqueira   :doc: mem_info_vram_used
275*e91f8401SRodrigo Siqueira
276*e91f8401SRodrigo Siqueiramem_info_vis_vram_total
277*e91f8401SRodrigo Siqueira-----------------------
278*e91f8401SRodrigo Siqueira
279*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
280*e91f8401SRodrigo Siqueira   :doc: mem_info_vis_vram_total
281*e91f8401SRodrigo Siqueira
282*e91f8401SRodrigo Siqueiramem_info_vis_vram_used
283*e91f8401SRodrigo Siqueira----------------------
284*e91f8401SRodrigo Siqueira
285*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
286*e91f8401SRodrigo Siqueira   :doc: mem_info_vis_vram_used
287*e91f8401SRodrigo Siqueira
288*e91f8401SRodrigo Siqueiramem_info_gtt_total
289*e91f8401SRodrigo Siqueira------------------
290*e91f8401SRodrigo Siqueira
291*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
292*e91f8401SRodrigo Siqueira   :doc: mem_info_gtt_total
293*e91f8401SRodrigo Siqueira
294*e91f8401SRodrigo Siqueiramem_info_gtt_used
295*e91f8401SRodrigo Siqueira-----------------
296*e91f8401SRodrigo Siqueira
297*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
298*e91f8401SRodrigo Siqueira   :doc: mem_info_gtt_used
299*e91f8401SRodrigo Siqueira
300*e91f8401SRodrigo SiqueiraPCIe Accounting Information
301*e91f8401SRodrigo Siqueira===========================
302*e91f8401SRodrigo Siqueira
303*e91f8401SRodrigo Siqueirapcie_bw
304*e91f8401SRodrigo Siqueira-------
305*e91f8401SRodrigo Siqueira
306*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
307*e91f8401SRodrigo Siqueira   :doc: pcie_bw
308*e91f8401SRodrigo Siqueira
309*e91f8401SRodrigo Siqueirapcie_replay_count
310*e91f8401SRodrigo Siqueira-----------------
311*e91f8401SRodrigo Siqueira
312*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
313*e91f8401SRodrigo Siqueira   :doc: pcie_replay_count
314*e91f8401SRodrigo Siqueira
315*e91f8401SRodrigo SiqueiraGPU SmartShift Information
316*e91f8401SRodrigo Siqueira==========================
317*e91f8401SRodrigo Siqueira
318*e91f8401SRodrigo SiqueiraGPU SmartShift information via sysfs
319*e91f8401SRodrigo Siqueira
320*e91f8401SRodrigo Siqueirasmartshift_apu_power
321*e91f8401SRodrigo Siqueira--------------------
322*e91f8401SRodrigo Siqueira
323*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
324*e91f8401SRodrigo Siqueira   :doc: smartshift_apu_power
325*e91f8401SRodrigo Siqueira
326*e91f8401SRodrigo Siqueirasmartshift_dgpu_power
327*e91f8401SRodrigo Siqueira---------------------
328*e91f8401SRodrigo Siqueira
329*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
330*e91f8401SRodrigo Siqueira   :doc: smartshift_dgpu_power
331*e91f8401SRodrigo Siqueira
332*e91f8401SRodrigo Siqueirasmartshift_bias
333*e91f8401SRodrigo Siqueira---------------
334*e91f8401SRodrigo Siqueira
335*e91f8401SRodrigo Siqueira.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
336*e91f8401SRodrigo Siqueira   :doc: smartshift_bias
337