Hi Timur,
For Navi3x, please make the similar change as I suggested for Navi4x to
enable the doorbell path along with your
existing changes and use doorbell to clear the CAM entries.
diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
b/drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
index f89e5f40e1a5..a66e3073aed8 100644
--- a/drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
@@ -199,7 +199,7 @@ static void nbio_v4_3_ih_doorbell_range(struct
amdgpu_device *adev,
ih_doorbell_range = REG_SET_FIELD(ih_doorbell_range,
S2A_DOORBELL_ENTRY_1_CTRL,
S2A_DOORBELL_PORT1_RANGE_SIZE,
- 2);
+ 8);
ih_doorbell_range = REG_SET_FIELD(ih_doorbell_range,
Please let us know how it goes.
Thanks and regards,
Mukul
On 7/6/2026 2:04 PM, Joshi, Mukul wrote:
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