]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/amdgpu: updated ta ucode header
authorJohn Clements <john.clements@amd.com>
Mon, 6 Jul 2020 09:07:46 +0000 (17:07 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 8 Jul 2020 13:01:04 +0000 (09:01 -0400)
added definition for ta_firmware_header_v2_0

Reviewed-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@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_ucode.h

index df402c7b32339a0c244ebf876c0b676d212be576..12a8bc8fca0b0a1f81051a7777c5aba234858098 100644 (file)
@@ -124,6 +124,29 @@ struct ta_firmware_header_v1_0 {
        uint32_t ta_dtm_size_bytes;
 };
 
+enum ta_fw_type {
+       TA_FW_TYPE_UNKOWN,
+       TA_FW_TYPE_PSP_ASD,
+       TA_FW_TYPE_PSP_XGMI,
+       TA_FW_TYPE_PSP_RAS,
+       TA_FW_TYPE_PSP_HDCP,
+       TA_FW_TYPE_PSP_DTM,
+};
+
+struct ta_fw_bin_desc {
+       uint32_t fw_type;
+       uint32_t fw_version;
+       uint32_t offset_bytes;
+       uint32_t size_bytes;
+};
+
+/* version_major=2, version_minor=0 */
+struct ta_firmware_header_v2_0 {
+       struct common_firmware_header header;
+       uint32_t ta_fw_bin_count;
+       struct ta_fw_bin_desc ta_fw_bin[];
+};
+
 /* version_major=1, version_minor=0 */
 struct gfx_firmware_header_v1_0 {
        struct common_firmware_header header;
@@ -276,6 +299,7 @@ union amdgpu_firmware_header {
        struct psp_firmware_header_v1_1 psp_v1_1;
        struct psp_firmware_header_v1_3 psp_v1_3;
        struct ta_firmware_header_v1_0 ta;
+       struct ta_firmware_header_v2_0 ta_v2_0;
        struct gfx_firmware_header_v1_0 gfx;
        struct rlc_firmware_header_v1_0 rlc;
        struct rlc_firmware_header_v2_0 rlc_v2_0;
@@ -288,6 +312,8 @@ union amdgpu_firmware_header {
        uint8_t raw[0x100];
 };
 
+#define UCODE_MAX_TA_PACKAGING ((sizeof(union amdgpu_firmware_header) - sizeof(struct common_firmware_header) - 4) / sizeof(struct ta_fw_bin_desc))
+
 /*
  * fw loading support
  */