Hi Murat, gem5’s level of support for various ISAs varies greatly, and I merely want to make sure you are aware of the trade-off. MIPS is likely to be a rather painful first experience, at least compared to ARM and X86. If you’re happy to dig in a fix things along the way that’s great. Just be prepared.
Again, it is entirely up to you, but I’d suggest to stick with ARM or X86: good support, modern tool chains, modern kernels etc. Andreas From: gem5-users <[email protected]<mailto:[email protected]>> on behalf of Murat Koksal <[email protected]<mailto:[email protected]>> Reply-To: gem5 users mailing list <[email protected]<mailto:[email protected]>> Date: Tuesday, 31 May 2016 at 17:46 To: gem5-users <[email protected]<mailto:[email protected]>> Subject: [gem5-users] Problem running MIPS binaries Hello, I am having a problem running MIPS binaries I generated on MIPS implementation of gem5. The problem may not be necessarily caused by gem5 since I am also making use of qemu or gcc. Etiher way, I would appreciate some help. Here is what I did: I compiled gem5.opt for MIPS, modified some configuration files (including se.py, CacheConfig.py, CpuConfig.py) and ran the provided hello world binary successfully. Then I installed the Debian wheezy image provided here<https://people.debian.org/~aurel32/qemu/mipsel/> on qemu to have a MIPS machine for compiling my own programs. I compiled and ran the hello world program on qemu successfully. However, when I copied the binary to the host machine and ran it on gem5, the simulator aborted with this message: gem5.opt: build/MIPS/cpu/o3/cpu.cc:877: void FullO3CPU<Impl>::removeThread(ThreadID) [with Impl = O3CPUImpl; ThreadID = short int]: Assertion `iew.ldstQueue.getCount(tid) == 0' failed. Running file command on the hello world binary provided with gem5 gave the following output: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, for GNU/Linux 2.4.3, not stripped For the binary I created on qemu, I got the following output: ELF 32-bit LSB executable, MIPS, MIPS-II version 1, statically linked, for GNU/Linux 2.6.26, BuildID[sha1]=a8d4edac71e5018a8ffb3a1a4788737e52e54f5d, not stripped Based on above outputs, I am guessing that the one I compiled causes gem5 to crash because it uses MIPS-II instruction set instead of MIPS-I. What I don't understand is how I ended up getting an executable for MIPS-II, because I compiled the program using the command gcc -static -march=mips1 hello.c. I got the same result when I used -march=r2000 option for gcc (according to Wikipedia R2000 implements MIPS-I ISA). I am not sure if it has anything to do with the hardware I picked for emulation on qemu (Malta board). Here is the qemu command I used, just in case: qemu-system-mipsel -nographic -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1 console=ttyS0" -m 256 My ultimate goal is to compile Spec 2006 benchmarks for MIPS and run them on gem5. Any help is appreciated. Thanks. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
