dev-amdgpu: Add memory manager for GPU VRAM

The memory manager is responsible for reading and writes to VRAM memory
for direct requests that bypass GPU caches.

Change-Id: I4aa1e77737ce52f2f2c01929b58984126bdcb925
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51850
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Matthew Poremba
2021-10-20 15:22:57 -05:00
parent b7826f1329
commit 42b56ceb7b
6 changed files with 255 additions and 3 deletions

View File

@@ -250,6 +250,8 @@ AMDGPUDevice::write(PacketPtr pkt)
switch (barnum) {
case FRAMEBUFFER_BAR:
gpuMemMgr->writeRequest(offset, pkt->getPtr<uint8_t>(),
pkt->getSize());
writeFrame(pkt, offset);
break;
case DOORBELL_BAR:
@@ -266,6 +268,9 @@ AMDGPUDevice::write(PacketPtr pkt)
// Reads return 0 by default.
uint64_t data = pkt->getUintX(ByteOrder::little);
DPRINTF(AMDGPUDevice, "PCI Write to %#lx data %#lx\n",
pkt->getAddr(), data);
if (data || regs.find(pkt->getAddr()) != regs.end())
regs[pkt->getAddr()] = data;