TLMu, which is originaly written by Edgar Iglesias is a software based on QEMU.
QEMU is a emulator which supports various kinds of architectures like x86, arm, ppc, mips, xtensa and so on.
TLMu lets you connect CPU core in QEMU to SystemC models.
TLMu hooks memory access from CPU core and redirect to TLM-2.0 access.
CPU core in QEMU can access SystemC world and vice versa.
Edgar seemed to focus on cris and I found several problems on arm and mips.
I had fixed them and Edgar accepted my patches.
After the modifications, I managed to boot the latest Linux kernel (3.4) on TLMu + SystemC peripheral environment. Whole environment is available at here.
Edgar's original TLMu is based on relatively older QEMU (maybe around 1.0).
I wanted to catch up with the mainline QEMU release, so I forked and rebased onto the QEMU-1.2.0.
The internal of QEMU
has greatly changed between 1.0 and 1.2, so I had to rewrite the most part of memory access
hooks. As a byproduct of the rewrite, I add turbo mode, in which Linux
boot time is 7x accelerated.
My TLMu branch keeps up with the mainline QEMU and has original features like OpenRISC support, turbo mode now.
I will explain the memory access hooks and turbo mode in the next post.