Commit 336a1c82 authored by Huang Rui's avatar Huang Rui Committed by Alex Deucher

drm/amdgpu: bump smc firmware header version to v2 (v2)

This patch bumps smc firmware header version to v2 for storing soft pptable.

v2: fix the typo, and add prints for v2 header
Signed-off-by: default avatarHuang Rui <ray.huang@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 9e8a163d
...@@ -77,6 +77,14 @@ void amdgpu_ucode_print_smc_hdr(const struct common_firmware_header *hdr) ...@@ -77,6 +77,14 @@ void amdgpu_ucode_print_smc_hdr(const struct common_firmware_header *hdr)
container_of(hdr, struct smc_firmware_header_v1_0, header); container_of(hdr, struct smc_firmware_header_v1_0, header);
DRM_DEBUG("ucode_start_addr: %u\n", le32_to_cpu(smc_hdr->ucode_start_addr)); DRM_DEBUG("ucode_start_addr: %u\n", le32_to_cpu(smc_hdr->ucode_start_addr));
} else if (version_major == 2) {
const struct smc_firmware_header_v1_0 *v1_hdr =
container_of(hdr, struct smc_firmware_header_v1_0, header);
const struct smc_firmware_header_v2_0 *v2_hdr =
container_of(v1_hdr, struct smc_firmware_header_v2_0, v1_0);
DRM_INFO("ppt_offset_bytes: %u\n", le32_to_cpu(v2_hdr->ppt_offset_bytes));
DRM_INFO("ppt_size_bytes: %u\n", le32_to_cpu(v2_hdr->ppt_size_bytes));
} else { } else {
DRM_ERROR("Unknown SMC ucode version: %u.%u\n", version_major, version_minor); DRM_ERROR("Unknown SMC ucode version: %u.%u\n", version_major, version_minor);
} }
......
...@@ -49,6 +49,13 @@ struct smc_firmware_header_v1_0 { ...@@ -49,6 +49,13 @@ struct smc_firmware_header_v1_0 {
uint32_t ucode_start_addr; uint32_t ucode_start_addr;
}; };
/* version_major=2, version_minor=0 */
struct smc_firmware_header_v2_0 {
struct smc_firmware_header_v1_0 v1_0;
uint32_t ppt_offset_bytes; /* soft pptable offset */
uint32_t ppt_size_bytes; /* soft pptable size */
};
/* version_major=1, version_minor=0 */ /* version_major=1, version_minor=0 */
struct psp_firmware_header_v1_0 { struct psp_firmware_header_v1_0 {
struct common_firmware_header header; struct common_firmware_header header;
...@@ -194,6 +201,7 @@ union amdgpu_firmware_header { ...@@ -194,6 +201,7 @@ union amdgpu_firmware_header {
struct common_firmware_header common; struct common_firmware_header common;
struct mc_firmware_header_v1_0 mc; struct mc_firmware_header_v1_0 mc;
struct smc_firmware_header_v1_0 smc; struct smc_firmware_header_v1_0 smc;
struct smc_firmware_header_v2_0 smc_v2_0;
struct psp_firmware_header_v1_0 psp; struct psp_firmware_header_v1_0 psp;
struct psp_firmware_header_v1_1 psp_v1_1; struct psp_firmware_header_v1_1 psp_v1_1;
struct ta_firmware_header_v1_0 ta; struct ta_firmware_header_v1_0 ta;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment