Alex Deucher
5677c52090
drm/amdgpu/gmc10: use common invalidation engine helper
...
Rather than open coding it. This also changes the free masks
to better reflect the usage by other components.
Acked-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-01-07 12:03:47 -05:00
Alex Deucher
bdbe90f04d
drm/amdgpu/gmc: move invaliation bitmap setup to common code
...
So it can be shared with newer GMC versions.
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-01-07 12:03:42 -05:00
Frank.Min
56ca8628ac
drm/amdgpu: enlarge agp_start address into 48bit
...
max range of the agp aperture is 48 bits, so
enlarge agp_start address into 48bit with all bits set
Signed-off-by: Frank.Min <Frank.Min@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-12-23 14:56:21 -05:00
Tao Zhou
ba08349214
drm/amdgpu: implement common gmc_ras_late_init
...
common gmc_ecc_late_init can be shared among all generations of gmc
v2: rename gmc_ecc_late_init to gmc_ras_late_init
Signed-off-by: Tao Zhou <tao.zhou1@amd.com >
Reviewed-by: Guchun Chen <guchun.chen@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-10-03 09:11:03 -05:00
Tao Zhou
be5b39d87a
drm/amdgpu: move xgmi ras fini to xgmi block
...
it's more suitable to put xgmi ras fini in xgmi block
Signed-off-by: Tao Zhou <tao.zhou1@amd.com >
Reviewed-by: Guchun Chen <guchun.chen@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-10-03 09:11:02 -05:00
Tao Zhou
196041205c
drm/amdgpu: move mmhub ras fini to mmhub block
...
it's more suitable to put mmhub ras fini in mmhub block
Signed-off-by: Tao Zhou <tao.zhou1@amd.com >
Reviewed-by: Guchun Chen <guchun.chen@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-10-03 09:11:02 -05:00
Tao Zhou
181c93e5ec
drm/amdgpu: move umc ras fini to umc block
...
it's more suitable to put umc ras fini in umc block
Signed-off-by: Tao Zhou <tao.zhou1@amd.com >
Reviewed-by: Guchun Chen <guchun.chen@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-10-03 09:11:02 -05:00
Tao Zhou
f2575941e6
drm/amdgpu: add ras fini for xgmi
...
add ras fini for xgmi to cleanup xgmi ras framework
Signed-off-by: Tao Zhou <tao.zhou1@amd.com >
Reviewed-by: Guchun Chen <guchun.chen@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-10-03 09:11:02 -05:00
Tao Zhou
2adf13440a
drm/amdgpu: add common gmc_ras_fini function
...
gmc_ras_fini can be shared among all generations of gmc
Signed-off-by: Tao Zhou <tao.zhou1@amd.com >
Reviewed-by: Guchun Chen <guchun.chen@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-10-03 09:11:02 -05:00
Tao Zhou
86edcc7dba
drm/amdgpu: move umc late init from gmc to umc block
...
umc late init is umc specific, it's more suitable to be put in umc block
Signed-off-by: Tao Zhou <tao.zhou1@amd.com >
Reviewed-by: Guchun Chen <guchun.chen@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-09-16 10:06:03 -05:00
Hawking Zhang
a85eff14da
drm/amdgpu/gmc: switch to amdgpu_gmc_ras_late_init helper function
...
amdgpu_gmc_ras_late_init is used to init gmc specfic
ras debugfs/sysfs node and gmc specific interrupt handler.
It can be shared among gmc generations.
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com >
Reviewed-by: Tao Zhou <tao.zhou1@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-09-13 17:41:36 -05:00
Frank.Min
81c274c473
drm/amdgpu: disable agp for sriov
...
Since agp is not used for sriov, just disable it
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Frank.Min <Frank.Min@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-08-22 17:15:06 -05:00
Sam Ravnborg
c366be543c
drm/amd: drop dependencies on drm_os_linux.h
...
Fix so no files in drm/amd/ depends on the
deprecated drm_os_linux.h header file.
It was done manually:
- remove drm_os_linux.h from drmP.h
- fix all build errros
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Cc: "Christian König" <christian.koenig@amd.com >
Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20190609220757.10862-3-sam@ravnborg.org
2019-06-10 22:59:32 +02:00
Christian König
c1a8abd99d
drm/amdgpu: use ring/hash for fault handling on GMC9 v3
...
Further testing showed that the idea with the chash doesn't work as expected.
Especially we can't predict when we can remove the entries from the hash again.
So replace the chash with a ring buffer/hash mix where entries in the container
age automatically based on their timestamp.
v2: use ring buffer / hash mix
v3: check the timeout to make sure all entries age
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com > (v2)
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-03-19 15:36:58 -05:00
Yong Zhao
6490bd764c
drm/amdgpu: Eliminate the set_pde_pte function pointer in amdgpu_gmc_funcs
...
All the gmc_*_set_pde_pte functions are the same across different ASICs,
so we can eliminate the set_pde_pte function pointer and instead use a
generic function.
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-03-19 15:03:53 -05:00
Emily Deng
f2d9bbc996
drm/amdgpu: Limit the max mc address to hole start
...
For the vram_start is 0 case, the gart range will be from 0x0000FFFF00000000
to 0x0000FFFF1FFFFFFF, which will cause the engine hang.
So to avoid the hole, limit the max mc address to AMDGPU_GMC_HOLE_START.:wq
Signed-off-by: Emily Deng <Emily.Deng@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-10-10 14:48:02 -05:00
Christian König
2ccecaf661
drm/amdgpu: fix AGP location with VRAM at 0x0
...
That also simplifies handling quite a bit.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-10-09 17:06:58 -05:00
Christian König
feabaad8aa
drm/amdgpu: fix mask in GART location calculation
...
We need to mask the lower bits not the upper one.
Fixes: ec210e3226 drm/amdgpu: put GART away from VRAM v2
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Acked-by: James Zhu <James.Zhu@amd.com >
Tested-by: James Zhu <James.Zhu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-09-14 10:05:34 -05:00
Alex Deucher
6fdd68b14a
drm/amdgpu/gmc9: Adjust GART and AGP location with xgmi offset (v2)
...
On hives with xgmi enabled, the fb_location aperture is a size
which defines the total framebuffer size of all nodes in the
hive. Each GPU in the hive has the same view via the fb_location
aperture. GPU0 starts at offset (0 * segment size),
GPU1 starts at offset (1 * segment size), etc.
For access to local vram on each GPU, we need to take this offset into
account. This including on setting up GPUVM page table and GART table
v2: squash in "drm/amdgpu: Init correct fb region for none XGMI configuration"
Acked-by: Huang Rui <ray.huang@amd.com >
Acked-by: Slava Abramov <slava.abramov@amd.com >
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Huang Rui <ray.huang@amd.com >
2018-09-10 22:47:34 -05:00
Christian König
485fc361d3
drm/amdgpu: use the AGP aperture for system memory access v2
...
Start to use the old AGP aperture for system memory access.
v2: Move that to amdgpu_ttm_alloc_gart
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-09-10 22:41:39 -05:00
Christian König
d76364fc7f
drm/amdgpu: add amdgpu_gmc_agp_location v3
...
Helper to figure out the location of the AGP BAR.
v2: fix a couple of bugs
v3: correctly add one to vram_end
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-09-10 22:41:32 -05:00
Christian König
ec210e3226
drm/amdgpu: put GART away from VRAM v2
...
Always try to put the GART away from where VRAM is.
v2: correctly handle the 4GB limitation
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-08-30 09:03:37 -05:00
Christian König
5f232bd79b
drm/amdgpu: use the smaller hole for GART
...
Instead of the larger one use the smaller hole in the MC address
space for the GART mappings.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-08-29 12:35:52 -05:00
Christian König
0be655d1c6
drm/amdgpu: fix amdgpu_gmc_gart_location a little bit
...
Improve the VCE limitation handling.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-08-29 12:35:24 -05:00
Christian König
961c75cf20
drm/amdgpu: move amdgpu_device_(vram|gtt)_location
...
Move that into amdgpu_gmc.c since we are really deadling with GMC
address space here.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-08-29 12:35:18 -05:00
Christian König
24a8d289d5
drm/amdgpu: add amdgpu_gmc_get_pde_for_bo helper v2
...
Helper to get the PDE for a PD/PT.
v2: improve documentation
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-08-27 15:19:42 -05:00
Christian König
11c3a249ff
drm/amdgpu: add amdgpu_gmc_pd_addr helper
...
Add a helper to get the root PD address and remove the workarounds from
the GMC9 code for that.
Signed-off-by: Christian König <christian.koenig@amd.com >
Acked-by: Felix Kuehling <Felix.Kuehling@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-08-27 11:11:19 -05:00