mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
drm/amdgpu/powerplay: get SMC FW size to a flexible way
Get SMC fw size before backdoor loading instead of giving an certain value, as it may different for different ASIC. Signed-off-by: Likun Gao <Likun.Gao@amd.com> Reviewed-by: Kenneth Feng <kenneth.feng@amd.com> Reviewed-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Kevin Wang <kevin1.wang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
dadce777e0
commit
e8663832b0
@ -37,7 +37,6 @@
|
||||
#define MP0_SRAM 0x03900000
|
||||
#define MP1_Public 0x03b00000
|
||||
#define MP1_SRAM 0x03c00004
|
||||
#define MP1_SMC_SIZE 0x40000
|
||||
|
||||
/* address block */
|
||||
#define smnMP1_FIRMWARE_FLAGS 0x3010024
|
||||
|
@ -201,13 +201,15 @@ int smu_v11_0_load_microcode(struct smu_context *smu)
|
||||
const struct smc_firmware_header_v1_0 *hdr;
|
||||
uint32_t addr_start = MP1_SRAM;
|
||||
uint32_t i;
|
||||
uint32_t smc_fw_size;
|
||||
uint32_t mp1_fw_flags;
|
||||
|
||||
hdr = (const struct smc_firmware_header_v1_0 *) adev->pm.fw->data;
|
||||
src = (const uint32_t *)(adev->pm.fw->data +
|
||||
le32_to_cpu(hdr->header.ucode_array_offset_bytes));
|
||||
smc_fw_size = hdr->header.ucode_size_bytes;
|
||||
|
||||
for (i = 1; i < MP1_SMC_SIZE/4 - 1; i++) {
|
||||
for (i = 1; i < smc_fw_size/4 - 1; i++) {
|
||||
WREG32_PCIE(addr_start, src[i]);
|
||||
addr_start += 4;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user