From 4211962f8ce230796d797cb4111879a2b34864b5 Mon Sep 17 00:00:00 2001 From: Matthew Poremba Date: Thu, 25 Aug 2022 15:05:41 -0700 Subject: [PATCH] dev-amdgpu: Fix translation reading SDMA MQD ("RLC queue") The RLC queue MQD address is a GART address, not a system address, so it must be translated through the GART first. Change-Id: Ie52b0e65ebf57141b8ba6f88a49989813750eeec Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/62711 Tested-by: kokoro Maintainer: Matt Sinclair Maintainer: Jason Lowe-Power Reviewed-by: Jason Lowe-Power Reviewed-by: Matt Sinclair --- src/dev/amdgpu/pm4_packet_processor.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dev/amdgpu/pm4_packet_processor.cc b/src/dev/amdgpu/pm4_packet_processor.cc index 3840e013d4..1213ce60ad 100644 --- a/src/dev/amdgpu/pm4_packet_processor.cc +++ b/src/dev/amdgpu/pm4_packet_processor.cc @@ -389,7 +389,8 @@ PM4PacketProcessor::mapQueues(PM4Queue *q, PM4MapQueues *pkt) SDMAQueueDesc *sdmaMQD = new SDMAQueueDesc(); memset(sdmaMQD, 0, sizeof(SDMAQueueDesc)); - Addr addr = pkt->mqdAddr; + // For SDMA we read the full MQD, so there is no offset calculation. + Addr addr = getGARTAddr(pkt->mqdAddr); auto cb = new DmaVirtCallback( [ = ] (const uint32_t &) {