2013年2月25日月曜日

SCV for x86_64 linux patch





I made a patch for scv to be compiled on x86_64 linux platform.

I posted it to SystemC Japan BBS.

You can apply the patch with the following procedure.

  1. Save the text below (from BEGIN to END, exlucde these 2 lines) to scv_x86_64.patch.base64
  2.  tar scv-1.0p2-sysc2.2.12jun06.tgz
  3. cd scv-1.0p2-sysc2.2/
  4. cat scv_x86_64.patch.base64 | base64 -d --ignore | gunzip | patch -p0
  5. aclocal --force 
  6. autoheader --force
  7. automake --force-missing --add-missing --copy
  8. autoconf --force
  9. ./configure --with-systemc=$SYSTEMC_HOME --prefix=$SYSTEMC_HOME
  10. make
  11. make install
I have not tested all functionality of patched SCV.
If you find any problems, please let me know.

--BEGIN
 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
dgpUKh8AAA==

--END

2013年2月19日火曜日

TLMu-1.4.0 is released

I have rebased the tlmu-1.4.0_work branch and renamed it tlmu-1.4.0. I will not rebase it.
It is available at github.

You can try it with the following procedure.

1) Get the package
% git clone https://github.com/yTakatsukasa/tlmu

2) Build
run in the directory tlmu.
% mkdir build
% cd build
% ../configure --extra-cflags=-fPIC --disable-pie --disable-curses --disable-sdl --disable-vnc --disable-xen --disable-kvm --target-list=or32-softmmu,arm-softmmu,mipsel-softmmu,cris-softmmu
% make
% make tlmu
% make -C tests/tlmu install-tlmu
% cd tests/tlmu/
% make
% env LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH ./c_example

Then you will see the Hello world message from arm, cris, mips and openrisc.

2013年2月17日日曜日

TLMu based on QEMU-1.4.0

I have released experimental TLMu based on latest QEMU, version 1.4.0.
It is now available at github .
Please note that this is just experimental release.
I am planning to reorganize and rebase it again!

The most troubling change for me is that the CPU name of OpenRISC has been changed from or1200 to or1200-or32-cpu. I am afraid that the source code in mainline QEMU is still using "or1200" for cpu_openrisc_init() in openrisc_sim.c.

During rebasing TLMu onto the latest QEMU, I wished QEMU had been written in C++.
C++ is better than C in many points. Following points are especially applicable for current QEMU implementation. 

  • templates in C++ is much type safer than complicated C macro tricks
  • class member variables are safer and multi-instance-friendly. global variables are not.
  • native class system in C++ is safer and easy to understand than gtk-like type system. opaque pointers are dangerous.

Now even the basic software like GCC is partially written in C++, why not QEMU.