On Sun, Jun 3, 2012 at 10:25 PM, Nilay <ni...@cs.wisc.edu> wrote: > On Fri, June 1, 2012 11:43 am, Anirudh Sivaraman wrote: >> On Thu, May 31, 2012 at 6:31 PM, Nilay Vaish <ni...@cs.wisc.edu> wrote: >>> On Thu, 31 May 2012, Anirudh Sivaraman wrote: >>> >>>> This is related to my earlier post, but I ll post this as a separate >>>> thread to state my problem clearly. I have been trying to do this in >>>> several ways but to no avail. Here's what I tried. >>>> >>>> 1. VExpress_ELT DOES have an ethernet interface inside it. When I run >>>> fs.py ie: >>>> >>>> gem5/build/ARM/gem5.opt gem5/configs/example/fs.py >>>> --machine-type=VExpress_ELT >>>> >>>> I get the error : >>>> >>>> warn: Device system.membus.badaddr_responder accessed by read to >>>> address 0x10009018 size=4 >>>> gem5.opt: build/ARM/cpu/simple/atomic.cc:289: Fault >>>> AtomicSimpleCPU::readMem(Addr, uint8_t*, unsigned int, unsigned int): >>>> Assertion `!pkt.isError()' failed. >>> >>> >>> This means that an address was generated for which no device / memory is >>> reponsible. Such addresses are then forwarded to the bad address device. >>> You >>> would need to trace why this address was generated. >> >> Thanks for the response. I am not sure where to trace this. Is this >> coming from the OS/app ? I am not sure but does the kernel on the >> website work with VExpress_ELT ? >> > > Why does OS / app matter here? You should run GDB / any other debugger and > figure why this assertion occurs. What caused the error in the packet?
I am not sure since I didn't debug it in detail. My guess is that the kernel on the site is compiled for the RealView_PBX platform which has a different memory address mapping from the VExpress_ELT platform and hence caused the error. > >>> >>> >>>> >>>> >>>> 2. RealViewPBX does NOT have an ethernet interface and runs correctly >>>> when I run fs.py ie >>>> >>>> gem5/build/ARM/gem5.opt gem5/configs/example/fs.py >>>> --machine-type=RealView_PBX >>>> >>>> 3. Now, I add an ethernet interface to RealViewPBX by copying the >>>> relevant portions (which refer to the variable ethernet) of >>>> VExpress_ELT inside src/dev/arm/RealView.py. The lines are : >>>> >>>> In attachIO(): >>>> ----------------------------------------------------------------------- >>>>    self.ethernet.pio     = bus.master >>>>    self.ethernet.config   = bus.master >>>>    self.ethernet.dma    = bus.slave >>>> >>>> In class  RealViewPBX(): >>>> ----------------------------------------------------------------------- >>>>  ethernet = IGbE_e1000(pci_bus=0, pci_dev=0, pci_func=0, >>>>             InterruptLine=1, InterruptPin=1) >>>> >>>> This doesn't work, and I get the error : >>>> >>>> fatal: system.iobus has two ports with same range: >>>>     system.realview.ethernet-pciconf >>>>     system.iobridge-slave >>>> @ cycle 0 >>>> >>>> >>> >>> The address spaces assigned to ethernet and the iobridge are not >>> disjoint. >>> You need to assign the address spaces correctly. >> >> Where do I do this ? I checked RealView.py but I am not sure how to >> assign these address spaces. Also,can I assign them to anything >> arbitrary (like doesn't each peripheral have it's own constraints ?) >> > > Well, the best part of working with a simulator is that you can try out > any thing you like with out the worry of paying for it. Why not try out > different addresses to check what works. You can use grep to figure out > where these ports are being dealt with. Thanks for the grep suggestion, I will try that out and see how that goes. > > -- > Nilay > > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users _______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users