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