Reviewed-by: Xiaojie Yuan <xiaojie.yuan@xxxxxxx> BR, Xiaojie > On Nov 16, 2019, at 12:12 AM, Alex Deucher <alexdeucher@xxxxxxxxx> wrote: > > Ping? > >> On Wed, Nov 13, 2019 at 2:29 PM Alex Deucher <alexdeucher@xxxxxxxxx> wrote: >> >> Needed as a fallback if the vbios can't be fetched by other means. >> >> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> >> --- >> drivers/gpu/drm/amd/amdgpu/nv.c | 24 ++++++++++++++++++++++-- >> 1 file changed, 22 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c >> index 7283d6198b89..ad04d1d6e9c7 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/nv.c >> +++ b/drivers/gpu/drm/amd/amdgpu/nv.c >> @@ -40,6 +40,7 @@ >> #include "gc/gc_10_1_0_sh_mask.h" >> #include "hdp/hdp_5_0_0_offset.h" >> #include "hdp/hdp_5_0_0_sh_mask.h" >> +#include "smuio/smuio_11_0_0_offset.h" >> >> #include "soc15.h" >> #include "soc15_common.h" >> @@ -156,8 +157,27 @@ static bool nv_read_disabled_bios(struct amdgpu_device *adev) >> static bool nv_read_bios_from_rom(struct amdgpu_device *adev, >> u8 *bios, u32 length_bytes) >> { >> - /* TODO: will implement it when SMU header is available */ >> - return false; >> + u32 *dw_ptr; >> + u32 i, length_dw; >> + >> + if (bios == NULL) >> + return false; >> + if (length_bytes == 0) >> + return false; >> + /* APU vbios image is part of sbios image */ >> + if (adev->flags & AMD_IS_APU) >> + return false; >> + >> + dw_ptr = (u32 *)bios; >> + length_dw = ALIGN(length_bytes, 4) / 4; >> + >> + /* set rom index to 0 */ >> + WREG32(SOC15_REG_OFFSET(SMUIO, 0, mmROM_INDEX), 0); >> + /* read out the rom data */ >> + for (i = 0; i < length_dw; i++) >> + dw_ptr[i] = RREG32(SOC15_REG_OFFSET(SMUIO, 0, mmROM_DATA)); >> + >> + return true; >> } >> >> static struct soc15_allowed_register_entry nv_allowed_read_registers[] = { >> -- >> 2.23.0 >> > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx