drm/amdgpu: added register list driver ctx (v2)
authorJohn Clements <john.clements@amd.com>
Wed, 18 Nov 2020 06:24:52 +0000 (14:24 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Mar 2021 02:54:38 +0000 (22:54 -0400)
updated psp bin parsing and load register list

v2: update to latest interface (Alex)

Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: John Clements <john.clements@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h

index abcb272..8dc8825 100644 (file)
@@ -2756,6 +2756,9 @@ int psp_init_sos_microcode(struct psp_context *psp,
                        adev->psp.spl_bin_size = le32_to_cpu(sos_hdr_v1_3->spl_size_bytes);
                        adev->psp.spl_start_addr = (uint8_t *)adev->psp.sys_start_addr +
                                le32_to_cpu(sos_hdr_v1_3->spl_offset_bytes);
+                       adev->psp.rl_bin_size = le32_to_cpu(sos_hdr_v1_3->rl_size_bytes);
+                       adev->psp.rl_start_addr = (uint8_t *)adev->psp.sys_start_addr +
+                               le32_to_cpu(sos_hdr_v1_3->rl_offset_bytes);
                }
                break;
        default:
index 2ba6490..b19717b 100644 (file)
@@ -248,11 +248,13 @@ struct psp_context
        uint32_t                        toc_bin_size;
        uint32_t                        kdb_bin_size;
        uint32_t                        spl_bin_size;
+       uint32_t                        rl_bin_size;
        uint8_t                         *sys_start_addr;
        uint8_t                         *sos_start_addr;
        uint8_t                         *toc_start_addr;
        uint8_t                         *kdb_start_addr;
        uint8_t                         *spl_start_addr;
+       uint8_t                         *rl_start_addr;
 
        /* tmr buffer */
        struct amdgpu_bo                *tmr_bo;
index 5014f6f..2c42874 100644 (file)
@@ -105,6 +105,9 @@ struct psp_firmware_header_v1_3 {
        uint32_t spl_header_version;
        uint32_t spl_offset_bytes;
        uint32_t spl_size_bytes;
+       uint32_t rl_header_version;
+       uint32_t rl_offset_bytes;
+       uint32_t rl_size_bytes;
 };
 
 /* version_major=1, version_minor=0 */