[gem5-dev] Change in gem5/gem5[develop]: dev-amdgpu: Handle framebuffer counter accesses

2021-06-11 Thread Matthew Poremba (Gerrit) via gem5-dev
Matthew Poremba has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/46163 )


Change subject: dev-amdgpu: Handle framebuffer counter accesses
..

dev-amdgpu: Handle framebuffer counter accesses

There are special counters in the framebuffer that are tested during
driver initialization. The expected behavior of the counters is to
return the previously read value + 1. There is one (known) counter used
in driver initialization at a fixed BAR address offset.

Change-Id: Id2dbb5fa9365b0a0453b15013c45aa67a2eec190
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46163
Tested-by: kokoro 
Reviewed-by: Jason Lowe-Power 
Reviewed-by: Matt Sinclair 
Maintainer: Matt Sinclair 
---
M src/dev/amdgpu/amdgpu_device.cc
1 file changed, 13 insertions(+), 0 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved
  Matt Sinclair: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/dev/amdgpu/amdgpu_device.cc  
b/src/dev/amdgpu/amdgpu_device.cc

index 08e6987..23d22bb 100644
--- a/src/dev/amdgpu/amdgpu_device.cc
+++ b/src/dev/amdgpu/amdgpu_device.cc
@@ -148,7 +148,20 @@
 AMDGPUDevice::readFrame(PacketPtr pkt, Addr offset)
 {
 DPRINTF(AMDGPUDevice, "Read framebuffer address %#lx\n", offset);
+
 mmioReader.readFromTrace(pkt, FRAMEBUFFER_BAR, offset);
+
+/* Handle special counter addresses in framebuffer. */
+if (offset == 0xa28000) {
+/* Counter addresses expect the read to return previous value + 1.  
*/

+if (regs.find(pkt->getAddr()) == regs.end()) {
+regs[pkt->getAddr()] = 1;
+} else {
+regs[pkt->getAddr()]++;
+}
+
+pkt->setUintX(regs[pkt->getAddr()], ByteOrder::little);
+}
 }

 void



4 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the  
submitted one.

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/46163
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Id2dbb5fa9365b0a0453b15013c45aa67a2eec190
Gerrit-Change-Number: 46163
Gerrit-PatchSet: 6
Gerrit-Owner: Matthew Poremba 
Gerrit-Reviewer: Jason Lowe-Power 
Gerrit-Reviewer: Matt Sinclair 
Gerrit-Reviewer: Matthew Poremba 
Gerrit-Reviewer: kokoro 
Gerrit-MessageType: merged
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: dev-amdgpu: Handle framebuffer counter accesses

2021-05-28 Thread Matthew Poremba (Gerrit) via gem5-dev
Matthew Poremba has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/46163 )



Change subject: dev-amdgpu: Handle framebuffer counter accesses
..

dev-amdgpu: Handle framebuffer counter accesses

There are special counters in the framebuffer that are tested during
driver initialization. The expected behavior of the counters is to
return the previously read value + 1. There is one (known) counter used
in driver initialization at a fixed BAR address offset.

Change-Id: Id2dbb5fa9365b0a0453b15013c45aa67a2eec190
---
M src/dev/amdgpu/amdgpu_device.cc
1 file changed, 13 insertions(+), 0 deletions(-)



diff --git a/src/dev/amdgpu/amdgpu_device.cc  
b/src/dev/amdgpu/amdgpu_device.cc

index 5e899f9..79abee4 100644
--- a/src/dev/amdgpu/amdgpu_device.cc
+++ b/src/dev/amdgpu/amdgpu_device.cc
@@ -145,7 +145,20 @@
 AMDGPUDevice::readFrame(PacketPtr pkt, Addr offset)
 {
 DPRINTF(AMDGPUDevice, "Read framebuffer address %#lx\n", offset);
+
 mmioReader.readFromTrace(pkt, FRAMEBUFFER_BAR, offset);
+
+/* Handle special counter addresses in framebuffer. */
+if (offset == 0xa28000) {
+/* Counter addresses expect the read to return previous value + 1.  
*/

+if (regs.find(pkt->getAddr()) == regs.end()) {
+regs[pkt->getAddr()] = 1;
+} else {
+regs[pkt->getAddr()]++;
+}
+
+pkt->setUintX(regs[pkt->getAddr()], ByteOrder::little);
+}
 }

 void

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/46163
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Id2dbb5fa9365b0a0453b15013c45aa67a2eec190
Gerrit-Change-Number: 46163
Gerrit-PatchSet: 1
Gerrit-Owner: Matthew Poremba 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s