Hello, The `DMADevice` is also abstract. See https://gem5.googlesource.com/public/gem5/+/refs/heads/stable/src/dev/Device.py#82
Maybe what you're trying to do would be best accomplished by adding a new SimObject which inherits from DMADevice. Cheers, Jason On Wed, Apr 27, 2022 at 9:45 AM <rshank...@austin.rr.com> wrote: > Jason, > > > > Thanks for again for the fix related to PioDevice & your guidance to use > DmaDevice > > > > DmaDevice also provides same “No Constructor TypeError” which checking the > dma_device.cc – the constructor is empty > > > > > > > > Traceback (most recent call last): > File "<string>", line 1, in <module> > File "build/X86/python/m5/main.py", line 455, in main > exec (filecode, scope) > File "/home/raghu/gem5/configs/learning_gem5/part1/test.py", line 187, > in <module> > m5.instantiate() > File "build/X86/python/m5/simulate.py", line 116, in instantiate > for obj in root.descendants(): obj.createCCObject() > File "build/X86/python/m5/SimObject.py", line 1790, in createCCObject > self.getCCParams() > File "build/X86/python/m5/SimObject.py", line 1720, in getCCParams > cc_params = cc_params_struct() > > TypeError: _m5.param_DmaDevice.DmaDeviceParams: No constructor defined! > > > > *Dma_device.cc* > > DmaDevice::DmaDevice(const Params &p) > > : PioDevice(p), dmaPort(this, sys, p.sid, p.ssid) > > { } > > > > *From:* Jason Lowe-Power via gem5-users <gem5-users@gem5.org> > *Sent:* Friday, April 22, 2022 11:16 AM > *To:* gem5 users mailing list <gem5-users@gem5.org> > *Cc:* rshank...@austin.rr.com; Jason Lowe-Power <ja...@lowepower.com> > *Subject:* [gem5-users] Re: Adding PioDevice leads to TypeError: No > constructor defined > > > > I just pushed a change that will make this error message better. > > > > "fatal: Cannot instantiate an abstract SimObject (system.dev)" is what > the error now says :). > > > > See https://gem5-review.googlesource.com/c/public/gem5/+/59049 > > > > Cheers, > > Jason > > > > On Fri, Apr 22, 2022 at 8:57 AM Jason Lowe-Power <ja...@lowepower.com> > wrote: > > Hello, > > > > I believe the problem is that gem5 tries to do too much automatically for > you! gem5 automatically creates a lot of the constructor/destructor codes. > Given all of this hidden/automatic code generation, it's difficult to know > exactly what's going wrong (for both you and for us). > > > > That said, I think the problem is that `PioDevice` is an abstract > SimObject, not a concrete SimObject. This may work if you instead use the > `DmaDevice`. > > > > Cheers, > > Jason > > > > On Thu, Apr 21, 2022 at 1:58 PM Raghu Shankar via gem5-users < > gem5-users@gem5.org> wrote: > > By adding a PioDevice() to my version of two_level.py configuration > script, I get this error > > > > TypeError: _m5.param_PioDevice.PioDeviceParams: No constructor defined! > > And checking io_device.cc the constructor looks empty > > > > Any help please? Thanks > > > > *Details:* > > > > Traceback (most recent call last): > File "<string>", line 1, in <module> > File "build/X86/python/m5/main.py", line 455, in main > exec(filecode, scope) > > > File "/home/raghu/gem5/configs/learning_gem5/part1/two_level.py", line > 187, in <module> > m5.instantiate() > File "build/X86/python/m5/simulate.py", line 116, in instantiate > > File "build/X86/python/m5/SimObject.py", line 1790, in createCCObject > self.getCCParams() > File "build/X86/python/m5/SimObject.py", line 1720, in getCCParams > cc_params = cc_params_struct() > > TypeError: _m5.param_PioDevice.PioDeviceParams: No constructor defined! > > > > > > *Io_device.cc* > > include "dev/io_device.hh" > > #include "base/trace.hh" > #include "debug/AddrRanges.hh" > #include "sim/system.hh" > > namespace gem5 > { > > PioDevice::PioDevice(const Params &p) > : ClockedObject(p), sys(p.system), pioPort(this) > {} > > PioDevice::~PioDevice() > { > } > > > > _______________________________________________ > 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 > >
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org