1*4882a593Smuzhiyun========================= 2*4882a593Smuzhiyun drm/amdgpu AMDgpu driver 3*4882a593Smuzhiyun========================= 4*4882a593Smuzhiyun 5*4882a593SmuzhiyunThe drm/amdgpu driver supports all AMD Radeon GPUs based on the Graphics Core 6*4882a593SmuzhiyunNext (GCN) architecture. 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunModule Parameters 9*4882a593Smuzhiyun================= 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunThe amdgpu driver supports the following module parameters: 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunCore Driver Infrastructure 16*4882a593Smuzhiyun========================== 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunThis section covers core driver infrastructure. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun.. _amdgpu_memory_domains: 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunMemory Domains 23*4882a593Smuzhiyun-------------- 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun.. kernel-doc:: include/uapi/drm/amdgpu_drm.h 26*4882a593Smuzhiyun :doc: memory domains 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunBuffer Objects 29*4882a593Smuzhiyun-------------- 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 32*4882a593Smuzhiyun :doc: amdgpu_object 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 35*4882a593Smuzhiyun :internal: 36*4882a593Smuzhiyun 37*4882a593SmuzhiyunPRIME Buffer Sharing 38*4882a593Smuzhiyun-------------------- 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c 41*4882a593Smuzhiyun :doc: PRIME Buffer Sharing 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c 44*4882a593Smuzhiyun :internal: 45*4882a593Smuzhiyun 46*4882a593SmuzhiyunMMU Notifier 47*4882a593Smuzhiyun------------ 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c 50*4882a593Smuzhiyun :doc: MMU Notifier 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c 53*4882a593Smuzhiyun :internal: 54*4882a593Smuzhiyun 55*4882a593SmuzhiyunAMDGPU Virtual Memory 56*4882a593Smuzhiyun--------------------- 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 59*4882a593Smuzhiyun :doc: GPUVM 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 62*4882a593Smuzhiyun :internal: 63*4882a593Smuzhiyun 64*4882a593SmuzhiyunInterrupt Handling 65*4882a593Smuzhiyun------------------ 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c 68*4882a593Smuzhiyun :doc: Interrupt Handling 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c 71*4882a593Smuzhiyun :internal: 72*4882a593Smuzhiyun 73*4882a593SmuzhiyunIP Blocks 74*4882a593Smuzhiyun------------------ 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/include/amd_shared.h 77*4882a593Smuzhiyun :doc: IP Blocks 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/include/amd_shared.h 80*4882a593Smuzhiyun :identifiers: amd_ip_block_type amd_ip_funcs 81*4882a593Smuzhiyun 82*4882a593SmuzhiyunAMDGPU XGMI Support 83*4882a593Smuzhiyun=================== 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c 86*4882a593Smuzhiyun 87*4882a593SmuzhiyunAMDGPU RAS Support 88*4882a593Smuzhiyun================== 89*4882a593Smuzhiyun 90*4882a593SmuzhiyunThe AMDGPU RAS interfaces are exposed via sysfs (for informational queries) and 91*4882a593Smuzhiyundebugfs (for error injection). 92*4882a593Smuzhiyun 93*4882a593SmuzhiyunRAS debugfs/sysfs Control and Error Injection Interfaces 94*4882a593Smuzhiyun-------------------------------------------------------- 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c 97*4882a593Smuzhiyun :doc: AMDGPU RAS debugfs control interface 98*4882a593Smuzhiyun 99*4882a593SmuzhiyunRAS Reboot Behavior for Unrecoverable Errors 100*4882a593Smuzhiyun-------------------------------------------------------- 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c 103*4882a593Smuzhiyun :doc: AMDGPU RAS Reboot Behavior for Unrecoverable Errors 104*4882a593Smuzhiyun 105*4882a593SmuzhiyunRAS Error Count sysfs Interface 106*4882a593Smuzhiyun------------------------------- 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c 109*4882a593Smuzhiyun :doc: AMDGPU RAS sysfs Error Count Interface 110*4882a593Smuzhiyun 111*4882a593SmuzhiyunRAS EEPROM debugfs Interface 112*4882a593Smuzhiyun---------------------------- 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c 115*4882a593Smuzhiyun :doc: AMDGPU RAS debugfs EEPROM table reset interface 116*4882a593Smuzhiyun 117*4882a593SmuzhiyunRAS VRAM Bad Pages sysfs Interface 118*4882a593Smuzhiyun---------------------------------- 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c 121*4882a593Smuzhiyun :doc: AMDGPU RAS sysfs gpu_vram_bad_pages Interface 122*4882a593Smuzhiyun 123*4882a593SmuzhiyunSample Code 124*4882a593Smuzhiyun----------- 125*4882a593SmuzhiyunSample code for testing error injection can be found here: 126*4882a593Smuzhiyunhttps://cgit.freedesktop.org/mesa/drm/tree/tests/amdgpu/ras_tests.c 127*4882a593Smuzhiyun 128*4882a593SmuzhiyunThis is part of the libdrm amdgpu unit tests which cover several areas of the GPU. 129*4882a593SmuzhiyunThere are four sets of tests: 130*4882a593Smuzhiyun 131*4882a593SmuzhiyunRAS Basic Test 132*4882a593Smuzhiyun 133*4882a593SmuzhiyunThe test verifies the RAS feature enabled status and makes sure the necessary sysfs and debugfs files 134*4882a593Smuzhiyunare present. 135*4882a593Smuzhiyun 136*4882a593SmuzhiyunRAS Query Test 137*4882a593Smuzhiyun 138*4882a593SmuzhiyunThis test checks the RAS availability and enablement status for each supported IP block as well as 139*4882a593Smuzhiyunthe error counts. 140*4882a593Smuzhiyun 141*4882a593SmuzhiyunRAS Inject Test 142*4882a593Smuzhiyun 143*4882a593SmuzhiyunThis test injects errors for each IP. 144*4882a593Smuzhiyun 145*4882a593SmuzhiyunRAS Disable Test 146*4882a593Smuzhiyun 147*4882a593SmuzhiyunThis test tests disabling of RAS features for each IP block. 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun 150*4882a593SmuzhiyunGPU Power/Thermal Controls and Monitoring 151*4882a593Smuzhiyun========================================= 152*4882a593Smuzhiyun 153*4882a593SmuzhiyunThis section covers hwmon and power/thermal controls. 154*4882a593Smuzhiyun 155*4882a593SmuzhiyunHWMON Interfaces 156*4882a593Smuzhiyun---------------- 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 159*4882a593Smuzhiyun :doc: hwmon 160*4882a593Smuzhiyun 161*4882a593SmuzhiyunGPU sysfs Power State Interfaces 162*4882a593Smuzhiyun-------------------------------- 163*4882a593Smuzhiyun 164*4882a593SmuzhiyunGPU power controls are exposed via sysfs files. 165*4882a593Smuzhiyun 166*4882a593Smuzhiyunpower_dpm_state 167*4882a593Smuzhiyun~~~~~~~~~~~~~~~ 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 170*4882a593Smuzhiyun :doc: power_dpm_state 171*4882a593Smuzhiyun 172*4882a593Smuzhiyunpower_dpm_force_performance_level 173*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 176*4882a593Smuzhiyun :doc: power_dpm_force_performance_level 177*4882a593Smuzhiyun 178*4882a593Smuzhiyunpp_table 179*4882a593Smuzhiyun~~~~~~~~ 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 182*4882a593Smuzhiyun :doc: pp_table 183*4882a593Smuzhiyun 184*4882a593Smuzhiyunpp_od_clk_voltage 185*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~ 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 188*4882a593Smuzhiyun :doc: pp_od_clk_voltage 189*4882a593Smuzhiyun 190*4882a593Smuzhiyunpp_dpm_* 191*4882a593Smuzhiyun~~~~~~~~ 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 194*4882a593Smuzhiyun :doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie 195*4882a593Smuzhiyun 196*4882a593Smuzhiyunpp_power_profile_mode 197*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~ 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 200*4882a593Smuzhiyun :doc: pp_power_profile_mode 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun\*_busy_percent 203*4882a593Smuzhiyun~~~~~~~~~~~~~~~ 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 206*4882a593Smuzhiyun :doc: gpu_busy_percent 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 209*4882a593Smuzhiyun :doc: mem_busy_percent 210*4882a593Smuzhiyun 211*4882a593Smuzhiyungpu_metrics 212*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~ 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 215*4882a593Smuzhiyun :doc: gpu_metrics 216*4882a593Smuzhiyun 217*4882a593SmuzhiyunGPU Product Information 218*4882a593Smuzhiyun======================= 219*4882a593Smuzhiyun 220*4882a593SmuzhiyunInformation about the GPU can be obtained on certain cards 221*4882a593Smuzhiyunvia sysfs 222*4882a593Smuzhiyun 223*4882a593Smuzhiyunproduct_name 224*4882a593Smuzhiyun------------ 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 227*4882a593Smuzhiyun :doc: product_name 228*4882a593Smuzhiyun 229*4882a593Smuzhiyunproduct_number 230*4882a593Smuzhiyun-------------- 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 233*4882a593Smuzhiyun :doc: product_name 234*4882a593Smuzhiyun 235*4882a593Smuzhiyunserial_number 236*4882a593Smuzhiyun------------- 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 239*4882a593Smuzhiyun :doc: serial_number 240*4882a593Smuzhiyun 241*4882a593Smuzhiyununique_id 242*4882a593Smuzhiyun--------- 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 245*4882a593Smuzhiyun :doc: unique_id 246*4882a593Smuzhiyun 247*4882a593SmuzhiyunGPU Memory Usage Information 248*4882a593Smuzhiyun============================ 249*4882a593Smuzhiyun 250*4882a593SmuzhiyunVarious memory accounting can be accessed via sysfs 251*4882a593Smuzhiyun 252*4882a593Smuzhiyunmem_info_vram_total 253*4882a593Smuzhiyun------------------- 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c 256*4882a593Smuzhiyun :doc: mem_info_vram_total 257*4882a593Smuzhiyun 258*4882a593Smuzhiyunmem_info_vram_used 259*4882a593Smuzhiyun------------------ 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c 262*4882a593Smuzhiyun :doc: mem_info_vram_used 263*4882a593Smuzhiyun 264*4882a593Smuzhiyunmem_info_vis_vram_total 265*4882a593Smuzhiyun----------------------- 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c 268*4882a593Smuzhiyun :doc: mem_info_vis_vram_total 269*4882a593Smuzhiyun 270*4882a593Smuzhiyunmem_info_vis_vram_used 271*4882a593Smuzhiyun---------------------- 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c 274*4882a593Smuzhiyun :doc: mem_info_vis_vram_used 275*4882a593Smuzhiyun 276*4882a593Smuzhiyunmem_info_gtt_total 277*4882a593Smuzhiyun------------------ 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c 280*4882a593Smuzhiyun :doc: mem_info_gtt_total 281*4882a593Smuzhiyun 282*4882a593Smuzhiyunmem_info_gtt_used 283*4882a593Smuzhiyun----------------- 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c 286*4882a593Smuzhiyun :doc: mem_info_gtt_used 287*4882a593Smuzhiyun 288*4882a593SmuzhiyunPCIe Accounting Information 289*4882a593Smuzhiyun=========================== 290*4882a593Smuzhiyun 291*4882a593Smuzhiyunpcie_bw 292*4882a593Smuzhiyun------- 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 295*4882a593Smuzhiyun :doc: pcie_bw 296*4882a593Smuzhiyun 297*4882a593Smuzhiyunpcie_replay_count 298*4882a593Smuzhiyun----------------- 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 301*4882a593Smuzhiyun :doc: pcie_replay_count 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun 304