[AMD Official Use Only - AMD Internal Distribution Only] Okay, part of xgmi ta call is blocked in guest, the other part is not. Then just keep the ta init micro as is. will leave psp call to deal with the delta between pf and vf. Thanks for the catching. Regards, Hawking -----Original Message----- From: Lazar, Lijo <Lijo.Lazar@xxxxxxx> Sent: Monday, August 12, 2024 13:16 To: Zhang, Hawking <Hawking.Zhang@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Zhou1, Tao <Tao.Zhou1@xxxxxxx> Subject: Re: [PATCH] drm/amdgpu: Do not init ta microcode from guest side On 8/12/2024 10:35 AM, Zhang, Hawking wrote: > [AMD Official Use Only - AMD Internal Distribution Only] > > Yes, this applies to all types of Tas > Presently, we have this - https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c#L925 which makes use of XGMI TA commands in VF mode. Thanks, Lijo > Regards, > Hawking > > -----Original Message----- > From: Lazar, Lijo <Lijo.Lazar@xxxxxxx> > Sent: Monday, August 12, 2024 12:52 > To: Zhang, Hawking <Hawking.Zhang@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Zhou1, Tao <Tao.Zhou1@xxxxxxx> > Subject: Re: [PATCH] drm/amdgpu: Do not init ta microcode from guest side > > > > On 8/12/2024 8:52 AM, Hawking Zhang wrote: >> TA should not be loaded from guest side. > > Does this apply to XGMI TA? > > Thanks, > Lijo > >> >> Signed-off-by: Hawking Zhang <Hawking.Zhang@xxxxxxx> >> Reviewed-by: Shiwu Zhang <shiwu.zhang@xxxxxxx> >> --- >> drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 8 +++++--- >> 1 file changed, 5 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c >> index 85ec9e35690a..749d8143b1e7 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c >> @@ -132,9 +132,11 @@ static int psp_v13_0_init_microcode(struct psp_context *psp) >> (adev->emu_flags & AMDGPU_EMU_dGPU_SIDEWINDER)) >> break; >> /* It's not necessary to load ras ta on Guest side */ >> - err = psp_init_ta_microcode(psp, ucode_prefix); >> - if (err) >> - return err; >> + if (!amdgpu_sriov_vf(adev)) { >> + err = psp_init_ta_microcode(psp, ucode_prefix); >> + if (err) >> + return err; >> + } >> break; >> default: >> BUG();