That makes it a little more complicated than I expected, but you can refit the llseek function to translate the flags from what MIPS uses to what the host system uses. The "open" system call does something like this as you can see here:
http://repo.gem5.org/gem5/file/82ff928182c5/src/arch/mips/linux/linux.hh Gabe On 07/13/11 14:14, xxx wrote: > I hook the system call function. But, the openJPEG still can't run on > MIPS_SE. > It aborts becase "Syscall: open: cannot decode flags 0x2000" > The corresponding output information is as the following: > ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > [linjiah@localhost gem5]$ ./build/MIPS_SE/gem5.opt > configs/example/se.py --cmd ./benchmark/image_to_j2k --options="-i > ./benchmark/Bretagne1.bmp -o ./benchmark/Bretagne1.j2k" > gem5 Simulator System. http://gem5.org > gem5 is copyrighted software; use the --copyright option for details. > > gem5 compiled Jul 13 2011 17:07:34 > gem5 started Jul 13 2011 17:10:55 > gem5 executing on localhost.localdomain > command line: ./build/MIPS_SE/gem5.opt configs/example/se.py --cmd > ./benchmark/image_to_j2k --options=-i ./benchmark/Bretagne1.bmp -o > ./benchmark/Bretagne1.j2k > Global frequency set at 1000000000000 ticks per second > 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 > **** REAL SIMULATION **** > info: Entering event queue @ 0. Starting simulation... > info: Increasing stack size by one page. > info: Increasing stack size by one page. > info: Increasing stack size by one page. > info: Increasing stack size by one page. > info: Increasing stack size by one page. > > warn: Syscall: open: cannot decode flags 0x2000 > gem5.opt: build/MIPS_SE/arch/mips/atomic_simple_cpu_exec.cc:150: bool > MipsISAInst::fpNanOperands(MipsISAInst::FPOp*, AtomicSimpleCPU*, const > T&, Trace::InstRecord*) [with T = double]: Assertion `sizeof(T) == 4' > failed. > Program aborted at cycle 10181868000 > Aborted > [linjiah@localhost gem5]$ > ------------------------------------------------------------------------------------------------------------------------------------------------------------ > > > > > > > > > On Wed, Jul 13, 2011 at 2:20 PM, Gabe Black <[email protected] > <mailto:[email protected]>> wrote: > > Yeah, I saw that. You're supposed to get MIPS to work by hooking > up the llseek system call with the files I showed you. > > Gabe > > > On 07/13/11 06:55, xxx wrote: >> The following is the output of the error when I run openJPEG on >> MIPS_SE. But, when I run openGPEG on ALPHA_SE, and ARM_SE, it can >> work correctly on both of them. >> >> >> ----------------------------------------------------------------------------------------------------------------------------------- >> [linjiah@localhost gem5]$ ./build/MIPS_SE/gem5.opt >> configs/example/se.py --cmd ./benchmark/image_to_j2k >> --options="-i ./benchmark/Bretagne1.bmp -o >> ./benchmark/Bretagne1.j2k" >> gem5 Simulator System. http://gem5.org <http://gem5.org/> >> gem5 is copyrighted software; use the --copyright option for details. >> >> gem5 compiled Jul 10 2011 22:59:59 >> gem5 started Jul 11 2011 23:07:37 >> gem5 executing on localhost.localdomain >> command line: ./build/MIPS_SE/gem5.opt configs/example/se.py >> --cmd ./benchmark/image_to_j2k --options=-i >> ./benchmark/Bretagne1.bmp -o ./benchmark/Bretagne1.j2k >> Global frequency set at 1000000000000 ticks per second >> 0: system.remote_gdb.listener: listening for remote gdb #0 on >> port 7000 >> **** REAL SIMULATION **** >> info: Entering event queue @ 0. Starting simulation... >> info: Increasing stack size by one page. >> info: Increasing stack size by one page. >> info: Increasing stack size by one page. >> info: Increasing stack size by one page. >> info: Increasing stack size by one page. >> >> warn: Syscall: open: cannot decode flags 0x2000 >> fatal: syscall llseek (#4140) unimplemented. >> @ cycle 29788500 >> [unimplementedFunc:build/MIPS_SE/sim/syscall_emul.cc, line 83] >> Memory Usage: 696248 KBytes >> [linjiah@localhost gem5]$ >> >> -------------------------------------------------------------------------------------------------------------------------------- >> >> Thanks. >> L.J >> >> >> >> >> On Wed, Jul 13, 2011 at 12:57 AM, Gabriel Michael Black >> <[email protected] <mailto:[email protected]>> wrote: >> >> Why couldn't it work? >> >> >> Gabe >> >> Quoting xxx <[email protected] <mailto:[email protected]>>: >> >> I cross-compiled openJPEG for gem5/MIPS_SE, >> gem5/ALPHA_SE, gem5/ARM_SE >> respectively. >> It can work well on ALPHA_SE, and ARM_SE rather than MIPS_SE. >> Does it mean that the system call (llseek) has been >> implemented in ALPHA_SE >> and ARM_SE, but MIPS_SE? >> It seems not. But, I don't know why it can work on MIPS_SE. >> >> >> >> >> >> >> >> On Tue, Jul 12, 2011 at 7:06 PM, Gabriel Michael Black < >> [email protected] <mailto:[email protected]>> wrote: >> >> Oh, also, once you get this working, please submit a >> patch to review board. >> It looks like it should be really easy to hook up and >> you'll get to try out >> contributing some code. >> >> Gabe >> >> >> Quoting Gabriel Michael Black <[email protected] >> <mailto:[email protected]>>: >> >> Looking at these files will get you started: >> >> >> >> http://repo.m5sim.org/gem5/**file/82ff928182c5/src/arch/** >> >> mips/linux/process.cc<http://repo.m5sim.org/gem5/file/82ff928182c5/src/arch/mips/linux/process.cc> >> >> http://repo.m5sim.org/gem5/**file/82ff928182c5/src/sim/**syscall_emul.cc<http://repo.m5sim.org/gem5/file/82ff928182c5/src/sim/syscall_emul.cc> >> >> >> >> This file has an example of that system call >> hooked up: >> >> >> http://repo.m5sim.org/gem5/**file/82ff928182c5/src/arch/** >> >> arm/linux/process.cc<http://repo.m5sim.org/gem5/file/82ff928182c5/src/arch/arm/linux/process.cc> >> >> >> >> Gabe >> >> Quoting xxx <[email protected] >> <mailto:[email protected]>>: >> >> Hi, >> >> I try to use run openJPEG binary code on >> gems/MIPS_SE. >> There is a fatal error that syscall llseek >> (#4140) unimplemented as the >> following. >> I am not sure the input format is not correct >> or the simulator doesn't >> support openJPEG. >> >> ------------------------------**------------------------------** >> ------------------------------**----------- >> Nilay [email protected] >> <mailto:[email protected]> to gem5 >> show details 10:33 AM (3 hours ago) >> >> - Show quoted text - >> On Tue, July 12, 2011 8:52 am, xxx wrote: >> >> Hi, >> I try to use run openJPEG binary code on >> gems/MIPS_SE. >> There is a fatal error that syscall >> llseek (#4140) unimplemented as the >> following. >> I am not sure the input format is not >> correct or the simulator doesn't >> support openJPEG. >> >> >> ------------------------------**------------------------------** >> >> ------------------------------**----------- >> >> [linjiah@localhost gem5]$ >> ./build/MIPS_SE/gem5.opt >> configs/example/se.py >> --cmd ./benchmark/image_to_j2k >> --options="-i ./benchmark/Bretagne1.bmp >> -o >> ./benchmark/Bretagne1.j2k" >> gem5 Simulator System. http://gem5.org >> gem5 is copyrighted software; use the >> --copyright option for details. >> >> gem5 compiled Jul 10 2011 22:59:59 >> gem5 started Jul 11 2011 23:07:37 >> gem5 executing on localhost.localdomain >> command line: ./build/MIPS_SE/gem5.opt >> configs/example/se.py --cmd >> ./benchmark/image_to_j2k --options=-i >> ./benchmark/Bretagne1.bmp -o >> ./benchmark/Bretagne1.j2k >> Global frequency set at 1000000000000 >> ticks per second >> 0: system.remote_gdb.listener: listening >> for remote gdb #0 on port 7000 >> **** REAL SIMULATION **** >> info: Entering event queue @ 0. Starting >> simulation... >> info: Increasing stack size by one page. >> info: Increasing stack size by one page. >> info: Increasing stack size by one page. >> info: Increasing stack size by one page. >> info: Increasing stack size by one page. >> >> warn: Syscall: open: cannot decode flags >> 0x2000 >> fatal: syscall llseek (#4140) unimplemented. >> @ cycle 29788500 >> >> [unimplementedFunc:build/MIPS_**SE/sim/syscall_emul.cc, >> line 83] >> Memory Usage: 696248 KBytes >> [linjiah@localhost gem5]$ >> >> >> The simulator does not support the system >> call llseek. The message at the >> end is clear enough. >> >> >> ------------------------------**------------------------------** >> --------------------- >> >> How can I implement such a system call in gem5? >> Can you give me some suggestion? >> >> Thanks. >> L.J >> >> >> >> ______________________________**_________________ >> gem5-users mailing list >> [email protected] <mailto:[email protected]> >> >> http://m5sim.org/cgi-bin/**mailman/listinfo/gem5-users<http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users> >> >> >> >> ______________________________**_________________ >> gem5-users mailing list >> [email protected] <mailto:[email protected]> >> >> http://m5sim.org/cgi-bin/**mailman/listinfo/gem5-users<http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users> >> >> >> >> >> _______________________________________________ >> gem5-users mailing list >> [email protected] <mailto:[email protected]> >> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >> >> >> >> _______________________________________________ >> gem5-users mailing list >> [email protected] <mailto:[email protected]> >> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > _______________________________________________ > gem5-users mailing list > [email protected] <mailto:[email protected]> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
