divide the reserve 128k CSA into four parts 1. first 4k for gfx CE/DE metadata 2. next 64K for GDS backup storage 3. next 28K reserved 4. last 32K for SDMA Signed-off-by: Rex Zhu <Rex.Zhu@xxxxxxx> --- drivers/gpu/drm/amd/amdgpu/amdgpu_csa.h | 11 +++++++++++ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_csa.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_csa.h index 524b443..cca108e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_csa.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_csa.h @@ -25,7 +25,18 @@ #ifndef AMDGPU_CSA_MANAGER_H #define AMDGPU_CSA_MANAGER_H +/* Reserve 128k CSA for MCBP feature + * first 4k for gfx CE/DE metadata + * next 64K for GDS backup storage. + * 28K reserved + * last 32K for SDMA + */ + #define AMDGPU_CSA_SIZE (128 * 1024) +#define AMDGPU_CSA_SDMA_OFFSET (96 * 1024) +#define AMDGPU_CSA_CE_DE_SIZE (4 * 1024) +#define AMDGPU_CSA_GDS_SIZE (64 * 1024) +#define AMDGPU_CSA_SDMA_SIZE (1024) uint32_t amdgpu_get_total_csa_size(struct amdgpu_device *adev); uint64_t amdgpu_csa_vaddr(struct amdgpu_device *adev); diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c index a9c853a..52d6a5f 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c @@ -7139,7 +7139,7 @@ static void gfx_v8_0_ring_emit_de_meta(struct amdgpu_ring *ring) } de_payload = {}; csa_addr = amdgpu_csa_vaddr(ring->adev); - gds_addr = csa_addr + 4096; + gds_addr = csa_addr + AMDGPU_CSA_CE_DE_SIZE; if (ring->adev->virt.chained_ib_support) { de_payload.chained.gds_backup_addrlo = lower_32_bits(gds_addr); de_payload.chained.gds_backup_addrhi = upper_32_bits(gds_addr); diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c index 7556716..ae47110 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c @@ -4263,7 +4263,7 @@ static void gfx_v9_0_ring_emit_de_meta(struct amdgpu_ring *ring) int cnt; csa_addr = amdgpu_csa_vaddr(ring->adev); - gds_addr = csa_addr + 4096; + gds_addr = csa_addr + AMDGPU_CSA_CE_DE_SIZE; de_payload.gds_backup_addrlo = lower_32_bits(gds_addr); de_payload.gds_backup_addrhi = upper_32_bits(gds_addr); -- 1.9.1 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx