[AMD Official Use Only - AMD Internal Distribution Only]
Thanks @Lazar, Lijo<mailto:lijo.la...@amd.com> for the review. And initializing the gb_addr_config_fields is part of sw_init although the callback has the name of early_init in it. Will remove the part of " Fix it temporarily by using the golden value in sw_init as well." in comment. > -----Original Message----- > From: Lazar, Lijo <lijo.la...@amd.com> > Sent: Wednesday, March 5, 2025 4:02 PM > To: Zhang, Morris <shiwu.zh...@amd.com>; Ma, Le <le...@amd.com>; Zhang, > Hawking <hawking.zh...@amd.com>; amd-gfx@lists.freedesktop.org > Subject: Re: [PATCH 2/2] drm/amdgpu: fix the gb_addr_config_fields init value > mismatch > > > > On 3/5/2025 12:14 PM, Shiwu Zhang wrote: > > For gfx_v9_4_3 specifically, before regGB_ADDR_CONFIG is overwritten > > in gfx hw_init it is read out to popluate the gb_addr_config_fields in > > the sw_init stage, which causes mismatch. > > > > Fix it temporarily by using the golden value in sw_init as well. > > sw_init => early_init > > > The final fix should be by vBIOS/IFWI. > > This is supposed to be a driver-set golden reg. Most likely will remain this > way. > > Series is - > > Reviewed-by: Lijo Lazar > <lijo.la...@amd.com<mailto:lijo.la...@amd.com>> > > Thanks, > Lijo > > > > > Signed-off-by: Shiwu Zhang <shiwu.zh...@amd.com<mailto:shiwu.zh...@amd.com>> > > --- > > drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 6 +----- > > 1 file changed, 1 insertion(+), 5 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c > > b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c > > index 2705f0cdd6da..af9b784eb78d 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c > > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c > > @@ -918,8 +918,6 @@ static const struct aca_info gfx_v9_4_3_aca_info = > > { > > > > static int gfx_v9_4_3_gpu_early_init(struct amdgpu_device *adev) { > > - u32 gb_addr_config; > > - > > adev->gfx.funcs = &gfx_v9_4_3_gfx_funcs; > > adev->gfx.ras = &gfx_v9_4_3_ras; > > > > @@ -928,9 +926,7 @@ static int gfx_v9_4_3_gpu_early_init(struct > amdgpu_device *adev) > > adev->gfx.config.sc_prim_fifo_size_backend = 0x100; > > adev->gfx.config.sc_hiz_tile_fifo_size = 0x30; > > adev->gfx.config.sc_earlyz_tile_fifo_size = 0x4C0; > > - gb_addr_config = RREG32_SOC15(GC, GET_INST(GC, 0), > regGB_ADDR_CONFIG); > > - > > - adev->gfx.config.gb_addr_config = gb_addr_config; > > + adev->gfx.config.gb_addr_config = GOLDEN_GB_ADDR_CONFIG; > > > > adev->gfx.config.gb_addr_config_fields.num_pipes = 1 << > > REG_GET_FIELD(