AMD General

> -----Original Message-----
> From: Timur Kristóf <[email protected]>
> Sent: Friday, July 3, 2026 2:47 PM
> To: [email protected]; Deucher, Alexander
> <[email protected]>; Koenig, Christian
> <[email protected]>; Natalie Vock <[email protected]>; Shetaia,
> Amir <[email protected]>; Marek Olšák <[email protected]>;
> Limonciello, Mario <[email protected]>; Tvrtko Ursulin
> <[email protected]>; Kuehling, Felix <[email protected]>; Lazar, Lijo
> <[email protected]>; He, Siwei <[email protected]>; Yang, Philip
> <[email protected]>; Joshi, Mukul <[email protected]>
> Subject: Re: [PATCH 11/14] drm/amdgpu/ih6.0: Use MMIO ACK for retry
> CAM on IH 6.0
>
> On 2026. július 3., péntek 19:46:03 közép-európai nyári idő Joshi, Mukul
> wrote:
> > AMD General
> >
> >
> > > -----Original Message-----
> > > From: Timur Kristóf <[email protected]>
> > > Sent: Wednesday, July 1, 2026 12:17 PM
> > > To: [email protected]; Deucher, Alexander
> > > <[email protected]>; Koenig, Christian
> > > <[email protected]>; Natalie Vock <[email protected]>;
> > > Shetaia, Amir <[email protected]>; Marek Olšák
> > > <[email protected]>; Limonciello, Mario <[email protected]>;
> > > Tvrtko Ursulin <[email protected]>; Kuehling, Felix
> > > <[email protected]>; Lazar, Lijo
> > <[email protected]>; He, Siwei <[email protected]>; Yang, Philip
> > > <[email protected]>; Joshi, Mukul <[email protected]>
> > > Cc: Timur Kristóf <[email protected]>
> > > Subject: [PATCH 11/14] drm/amdgpu/ih6.0: Use MMIO ACK for retry CAM
> > > on IH
> > > 6.0
> > >
> > >
> > >
> > > The doorbell is not working on Navi 31.
> > > Use the IH_RETRY_CAM_ACK register.
> >
>
> Hi Mukul,
>
> > I think the doorbell path is not enabled for IH CAM so that’s probably
> > the reason its not working.
> > I think we need an update to the NBIO
> > ih_doorbell_range() function to enable the doorbell path.
>
Hi Timur,

> Can you please be more specific and elaborate on what we need to do on the
> NBIO
> ih_doorbell_range() function?

Through NBIO, we route the doorbell to the correct HW block.
That is currently not enabled/done for the IH CAM doorbell.
So, you basically need to enable it inside ih_doorbell_range() function.

>Also, can you say which NBIO version is used
> for for Navi 3 and Navi 4 GPUs?
>
Navi3 --> NBIO v4.3 (nbio_v4_3.c)
Navi4 --> NBIO v6.3.1 (nbif_v6_3_1.c)

I am working on the change that you need to enable the doorbell path for Navi4x 
first.
Once that is working, I can send you a test patch for enabling it on Navi3x.

Regards,
Mukul


> > Having said that, we intend to use doorbells on all ASICs to ack IH
> > CAMs that support retry faults.
>
> I'm OK with that, if the doorbell really works on these GPUs.
>
> Thanks & best regards,
> Timur
>
> >
> >
> > >
> > >
> > > Signed-off-by: Timur Kristóf <[email protected]>
> > > ---
> > >
> > >  drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 8 +++++++-
> > >  1 file changed, 7 insertions(+), 1 deletion(-)
> > >
> > >
> > >
> > > diff --git a/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
> > > b/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
> > > index 65e5d21753f9..a97c85b0cb99 100644
> > > --- a/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
> > > +++ b/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
> > > @@ -307,6 +307,11 @@ static int ih_v6_0_enable_ring(struct
> > > amdgpu_device *adev,
> > >
> > >       return 0;
> > >
> > >  }
> > >
> > >
> > >
> > > +static void ih_v6_0_retry_cam_ack(struct amdgpu_device *adev, u32
> > > +cam_index) {
> > > +     WREG32_SOC15(OSSSYS, 0, regIH_RETRY_CAM_ACK, cam_index); }
> > > +
> > >
> > >  /**
> > >
> > >   * ih_v6_0_irq_init - init and enable the interrupt ring
> > >   *
> > >
> > > @@ -807,7 +812,8 @@ static const struct amdgpu_ih_funcs
> > > ih_v6_0_funcs = {
> > >
> > >       .get_wptr = ih_v6_0_get_wptr,
> > >       .decode_iv = amdgpu_ih_decode_iv_helper,
> > >       .decode_iv_ts = amdgpu_ih_decode_iv_ts_helper,
> > >
> > > -     .set_rptr = ih_v6_0_set_rptr
> > > +     .set_rptr = ih_v6_0_set_rptr,
> > > +     .retry_cam_ack = ih_v6_0_retry_cam_ack,
> > >
> > >  };
> > >
> > >
> > >
> > >  static void ih_v6_0_set_interrupt_funcs(struct amdgpu_device *adev)
> > >
> > > --
> > > 2.54.0
> >
> >
>
>
>

Reply via email to