From: xinhui pan <xinhui....@amd.com>

Add ras fw part, xgmi and ras fw are combined together in ta binary.
Reading the data from the info is not implemented yet.

v2: squash in "drm/amdgpu: fix NULL pointer when ta is missing"

Signed-off-by: xinhui pan <xinhui....@amd.com>
Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 4 ++++
 drivers/gpu/drm/amd/amdgpu/psp_v11_0.c  | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
index 2ef98cc755d6..49c3942e469c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
@@ -150,9 +150,13 @@ struct psp_context
 
        /* xgmi ta firmware and buffer */
        const struct firmware           *ta_fw;
+       uint32_t                        ta_fw_version;
        uint32_t                        ta_xgmi_ucode_version;
        uint32_t                        ta_xgmi_ucode_size;
        uint8_t                         *ta_xgmi_start_addr;
+       uint32_t                        ta_ras_ucode_version;
+       uint32_t                        ta_ras_ucode_size;
+       uint8_t                         *ta_ras_start_addr;
        struct psp_xgmi_context         xgmi_context;
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c 
b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
index 2c584cc9375f..8fb267684787 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
@@ -116,6 +116,13 @@ static int psp_v11_0_init_microcode(struct psp_context 
*psp)
                adev->psp.ta_xgmi_ucode_size = 
le32_to_cpu(ta_hdr->ta_xgmi_size_bytes);
                adev->psp.ta_xgmi_start_addr = (uint8_t *)ta_hdr +
                        le32_to_cpu(ta_hdr->header.ucode_array_offset_bytes);
+
+               adev->psp.ta_fw_version = 
le32_to_cpu(ta_hdr->header.ucode_version);
+
+               adev->psp.ta_ras_ucode_version = 
le32_to_cpu(ta_hdr->ta_ras_ucode_version);
+               adev->psp.ta_ras_ucode_size = 
le32_to_cpu(ta_hdr->ta_ras_size_bytes);
+               adev->psp.ta_ras_start_addr = (uint8_t 
*)adev->psp.ta_xgmi_start_addr +
+                       le32_to_cpu(ta_hdr->ta_ras_offset_bytes);
        }
 
        return 0;
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to