Hi all,

I implemented an accelerator as a PIO device in the latest version of gem5 and 
I am having issues with accessing the main memory for write operations. Reading 
from main memory works correctly.

I used as an example an old entry "gem5-accel" that implements a Daxpy 
accelerator (as far as I saw even more recent implementations use a similar way 
to access main memory). My implementations for data transfer are more or less 
the same as the example but writing back to main memory doesn't work and I get 
the following runtime error:

gem5.opt: build/ARM/mem/snoop_filter.cc:224: 
std::pair<std::vector<QueuedResponsePort*>, Cycles> 
SnoopFilter::lookupSnoop(const Packet*): Assertion `cpkt->isWriteback() || 
cpkt->req->isUncacheable() || (cpkt->isInvalidate() == cpkt->needsWritable()) 
|| cpkt->req->isCacheMaintenance()' failed.

If I manually change the Packet type (just to avoid this error) to 
MemCmd::WritebackDirty instead of the standard MemCmd::WriteReq, the simulation 
continues with no error but the data are not actually written back to main 
memory.

Any ideas from anyone would be greatly appreciated! Or if there are other 
examples I can follow to do the implementation

Many thanks,
andreas
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to