Jack Xiao
15ddc4e693
drm/amdgpu/mes: add uni_mes fw loading support
...
Add the unified mes firmware loading support.
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
Sreekant Somasekharan
628e1ace23
drm/amdkfd: mark GFX12 system and peer GPU memory mappings as MTYPE_NC
...
Due to a HW bug, the system memory mappings and peer GPU mappings
on GFX12 need to be marked as MTYPE_NC.
Cc: Joe Greathouse <joseph.greathouse@amd.com >
Cc: David Belanger <david.belanger@amd.com >
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com >
Signed-off-by: Sreekant Somasekharan <sreekant.somasekharan@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
Sreekant Somasekharan
a8a4615ba0
drm/amd/amdkfd: Add GFX12 PTE flag to SVM get PTE function
...
Add new GFX12 PTE flag AMDGPU_PTE_IS_PTE to svm_range_get_pte_flags
function. This resolves the issues related to SVM enablement in GFX12.
Signed-off-by: Sreekant Somasekharan <sreekant.somasekharan@amd.com >
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
David Belanger
c5faf18bbe
drm/amdkfd: Enable atomic support for GFX12
...
Enable flag in KFD and set the atomic support bit in MQD.
Signed-off-by: David Belanger <david.belanger@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
Eric Huang
a921c35ae5
drm/amdkfd: fix NULL ptr for debugfs mqds on GFX v12
...
mqd_stride function in gfx v12 is not implemented, that
causes NULL ptr error. Add the generic func to fix it.
Signed-off-by: Eric Huang <jinhuieric.huang@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
Jonathan Kim
9243240bed
drm/amdkfd: enable single alu ops for gfx12
...
GFX12 debugging requires setting up precise ALU operation for catching
ALU exceptions.
Signed-off-by: Jonathan Kim <jonathan.kim@amd.com >
Tested-by: Lancelot Six <lancelot.six@amd.com >
Reviewed-by: Eric Huang <jinhuieric.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
Jonathan Kim
984b265ff6
drm/amdkfd: fix support for trap on wave start and end for gfx12
...
Similar to GFX11, GFX12 supports trapping on wave start and end.
Signed-off-by: Jonathan Kim <jonathan.kim@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
Jonathan Kim
fda3f378c4
drm/amdkfd: always enable ttmp setup for gfx12
...
Similar to GFX11, always enable the setup of trap temporaries on GFX12.
Signed-off-by: Jonathan Kim <jonathan.kim@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
David Belanger
782b93436a
drm/amdkfd: Enable GFX12 trap handler
...
Updated switch statement to use GFX12 trap handler.
Signed-off-by: David Belanger <david.belanger@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
Laurent Morichetti
cf338b5dfe
drm/amdkfd: enable missed single-step workaround for gfx12
...
When trap_ctrl.trap_after_inst is set, it is possible for a wave to
enter the trap handler, after single-stepping an instruction and a
save_context is raised, with only save_context set in excp_flag_priv.
Because excp_flag_priv.trap_after_inst is not reliably set, we need to
use the missed single-step workaround for gfx12 as well.
Also add wave_start and wave_end as exceptions that should be handled
by the 2nd level trap handler.
Signed-off-by: Laurent Morichetti <laurent.morichetti@amd.com >
Tested-by: Lancelot Six <lancelot.six@amd.com >
Reviewed-by: Jonathan Kim <jonathan.kim@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:13 -04:00
Lancelot SIX
450abfe433
drm/amdkfd: save and restore barrier state for gfx12
...
Add support to save and restore the work group barrier state in gfx12
CWSR trap handler.
There is no support to directly restore the signal count of a barrier
state, so instead this patch repeatedly calls s_barrier_signal to
increment the signal count to the desired value.
In this patch, I have implemented the logic to restore the barrier at
the end of the block restoring the HWREGs. This process needs to be
done by exactly 1 wave per work group. To achieve this, the initial
value of s_restore_spi_init_hi (containing a FIRST_WAVE bit) needs to be
saved up until that point. An alternative could be restore the barrier
earlier in the process (around when LDS is restored, as the same wave
does both). Doing this would break the pattern that the restore
procedure follows the CWSR area layout.
Before restoring the barrier, this patch checks if the barrier was whose
state was saved has the "valid" bit set, even if I don't think this
barrier can be in an invalid state during context save. I expect this
test to always be true.
Signed-off-by: Lancelot SIX <lancelot.six@amd.com >
Reviewed-by: Jay Cornwall <jay.cornwall@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
Jay Cornwall
f281003336
drm/amdkfd: Add gfx12 trap handler support
...
- HWREG changes since gfx11
- Save/restore barrier state
- get_wave_size is now reserved by assembler
v2: rebase (Alex)
Signed-off-by: Jay Cornwall <jay.cornwall@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
Jay Cornwall
385093fde8
drm/amdkfd: Move trap handler coherence flags to preprocessor
...
No functional change. Preparation for gfx12 support.
v2: drop unrelated change (Alex)
Signed-off-by: Jay Cornwall <jay.cornwall@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
David Belanger
90e4fc8369
drm/amdkfd: Added gfx_v12_kfd2kgd interface for GFX12.
...
Initial implementation, based on GFX11.
v2: Removed functions not needed by cp scheduler.
v3: Fixed typos.
v4: squash in warning fix (Alex)
Signed-off-by: David Belanger <david.belanger@amd.com >
Acked-by: Jonathan Kim <jonathan.kim@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
David Belanger
47fa09b788
drm/amdkfd: Added device queue manager files for GFX12.
...
Initial implementation, based on GFX11.
v2: squash in include fix from David (Alex)
Signed-off-by: David Belanger <david.belanger@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
David Belanger
48f0bdf4e3
drm/amdkfd: Added MQD manager files for GFX12.
...
Initial implementation, based on GFX11.
v2: Removed dbg_wa code as not needed on GFX12.
v3: squash in SDMA queue fixes (Alex)
v4: rebase (Alex)
Signed-off-by: David Belanger <david.belanger@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
David Belanger
8aa89b69d6
drm/amdkfd: Added temporary changes for GFX12.
...
Added cases for GFX12 in switch statement, code relying on GFX11
implementation until GFX12 implementation is complete.
Signed-off-by: David Belanger <david.belanger@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
David Belanger
592a5d7de4
drm/amdkfd: Basic SDMA and cache info changes for GFX12.
...
Added GFX12 support to a few switch statements.
Signed-off-by: David Belanger <david.belanger@amd.com >
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
shaoyunl
2f983d3ca5
drm/amdgpu: Enable event log on MES 12
...
Enable event log through the HW specific FW API
Signed-off-by: shaoyunl <shaoyun.liu@amd.com >
Reviewed-by: Harish Kasiviswanthan <Harish.Kasiviswanthan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
shaoyunl
19e69a5d28
drm/amdgpu: Enable unmapped doorbell handling basic mode on mes 12
...
Enable basic mode handling for doorbell ring on unmapped CP queue.
In this mode, MES can start schedule the queue mapping based on HW
interrupt instead of timer.
Signed-off-by: shaoyunl <shaoyun.liu@amd.com >
Reviewed-by: Harish Kasiviswanthan <Harish.Kasiviswanthan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
Hawking Zhang
a2211e475c
drm/amdgpu: Switch to smuio func to get gpu clk counter
...
Switch to smuio callback to query gpu clock counter
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com >
Reviewed-by: Likun Gao <Likun.Gao@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
Likun Gao
e781af6663
drm/amdgpu: init gfxhub setting to align with mmhub
...
Align gfxhub settings with mmhub when program rlc ram.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:12 -04:00
Likun Gao
b32edc2340
drm/amdgpu: skip dpm check to init imu fw
...
Skip dpm check to init imu firmware for imu v12.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Likun Gao
044feb8e2a
drm/amdgpu: fix active rb and cu number for gfx12
...
Correct the algorithm of active CU and RB to bypass
the disabled SA for gfx12.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Likun Gao
56159fffaa
drm/amdgpu: use new method to program rlc ram
...
Program rlc ram with golden setting data instead.
The old method (program_imu_rlc_ram_old) should be
retired in the future.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Kenneth Feng
043869be5a
drm/amd/amdgpu: add cgcg&cgls interface for gfx 12.0
...
add cgcg&cgls interface for gfx 12.0
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com >
Reviewed-by: Likun Gao <Likun.Gao@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Tom St Denis
60917ce8f8
drm/amd/amdgpu: update GFX12 wave data registers
...
Update the registers for gfx12.
Signed-off-by: Tom St Denis <tom.stdenis@amd.com >
Reviewed-by: Jonathan Kim <jonathan.kim@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Likun Gao
53efeba35d
drm/amdgpu: set different fw data addr for mec pipe
...
For MEC fw data, different pipe should programed into
different address.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Kenneth Feng
1e740df77f
drm/amd/amdgpu: workaround for the imu fw loading
...
workaournd for the imu fw loading on gfx 12.0 without psp
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com >
Reviewed-by: Likun Gao <Likun.Gao@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Likun Gao
f5b4c3236f
drm/amd: Move fw init from sw_init to early_init for imu v12
...
Move microcode loading from sw_init to early_init to align with
the perious version of imu init sequence.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Likun Gao
2502af906b
drm/amdgpu: support S&R fw load for gfx v12
...
Support Save & Restore related fw load with backdoor RLC
autoload type on gfx v12.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Jack Xiao
36b2ce4775
drm/amdgpu/gfx12: recalculate available compute rings to use
...
Recalculate the number of compute rings to use based on
the gfx hardware configuration. As needed reserve half of
compute rings for mes, kgd can't use up all compute rings.
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Likun Gao
29d36a9cfd
drm/amdgpu: skip imu related function if dpm=0
...
Only execute IMU related functions if dpm>0.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Kenneth Feng
32d1637689
drm/amd/amdgpu: imu fw loading support
...
support imu related function for gfx v12.
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com >
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:11 -04:00
Likun Gao
af204b76a7
drm/amdgpu: set cp fw address set for gfx v12
...
Split PFF/ME/MEC firmware address setting function
from related load microcode funtion, as it's also
needed for rlc autolad.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Likun Gao
52cb80c12e
drm/amdgpu: Add gfx v12_0 ip block support (v6)
...
Initial support for GFX 12.
v1: Add gfx v12_0 ip block support. (Likun)
v2: Switch to gfx.kiq array.
Move the vmhub from ring callback to ring. (Hawking)
v3: Update various callback function impl. (Hawking)
v4: Warning fixes (Alex)
v5: squash in imu fix, csb, rlc autoload implementations (Alex)
v6: Rebase (Alex)
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Jack Xiao
4632bec9fa
drm/amdgpu/mes12: update data cache boundary
...
Enlarge the data cache boundary.
v2: use the fix data cache boundary.
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Jonathan Kim
46c4766610
drm/amdgpu: fix trap enablement for gfx12
...
Fix request to MES to set SQ_SHADER_TBA_HI.trap_en for GFX12.
Signed-off-by: Jonathan Kim <jonathan.kim@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
shaoyunl
d817c470cb
drm/amdgpu: Enable MES to handle doorbell ring on unmapped queue
...
On MES12, HW can monitor up to 2048 doorbells that not be
mapped currently and trigger the interrupt to MES when these unmapped
doorbell been ringed.
Signed-off-by: shaoyunl <shaoyun.liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Jack Xiao
745f46b6a9
drm/amdgpu: enable mes v12 self test
...
1. fix available compute queue to use
2. enable mes v12 self test
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Likun Gao
6628f7762b
drm/amdgpu: set mes fw address for mes v12
...
Split the function of mes fimrware address setting
from mes firmware load for mes v12, as it's also
needed for rlc autoload.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Jack Xiao
785f0f9fe7
drm/amdgpu: Add mes v12_0 ip block support (v4)
...
v1: Add mes v12_0 ip block support. (Jack)
v2: Switch to gfx.kiq array. (Hawking)
v3: Switch to AMDGPU_GFXHUB(0). (Hawking)
v4: Rebase (Alex)
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Likun Gao
69d4c44e51
drm/amdgpu: init mes ucode name for gfx v12
...
Keep gfx v12 mes fw name to gc_12_x_x_mes.bin
and gc_12_x_x_mes1.bin.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Harish Kasiviswanathan
415fcb8c50
drm/amdgpu: Add mes_v12_api_def.h for gfx12
...
Add MES_v12 header definition for gfx12
v2: Modify SET_SHADER_DEBUGGER to match mes_v11 definition. This doesn't
change the structure layout
v3: Removed unncessary comment and spaces
Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Likun Gao
00c9035633
drm/amdgpu: add rlc TOC header file for soc24
...
Add RLC autoload TOC header file for soc24 ASIC.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Likun Gao
e3a911bb38
drm/amdgpu: add new TOC structure
...
Add new RLC_TABLE_OF_CONTENT structure definition.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Likun Gao
d8fd91f905
drm/amdgpu: add gfx12 clearstate header
...
Add gfx12 clearstate register arrays.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:10 -04:00
Likun Gao
5638b1cfa7
drm/amdgpu/discovery: Set GC family for GC 12.0 IP
...
Set GC family for GC 12.0 IPs.
v2: squash in updates (Alex)
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:18:09 -04:00
Sonny Jiang
e56b042118
drm/amdgpu: IB test encode test package change for VCN5
...
VCN5 session info package interface changed
Signed-off-by: Sonny Jiang <sonny.jiang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 16:17:55 -04:00
Hawking Zhang
5f571c61b9
drm/amdgpu: Add gfx v9_4_4 ip block
...
Add gfx v9_4_4 ip block support
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com >
Reviewed-by: Le Ma <le.ma@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2024-05-02 15:49:16 -04:00