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 <noreply+kokoro@google.com>
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
This commit is contained in:
Matthew Poremba
2022-08-25 15:05:41 -07:00
parent db5910dc5f
commit 4211962f8c

View File

@@ -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<uint32_t>(
[ = ] (const uint32_t &) {