M5 is a modular platform for computer system architecture and research. The current release supports a wide variety of architectures including Alpha, SPARC, and MIPS. My project extends the current version of M5 to include support for the ARM architecture, a very popular embedded processor that is used in a variety of consumer products (cell phones, GPS, mp3 players, ...).
M5-ARM currently supports syscall-emulation (SE) of ARM Linux statically-linked binaries. I am working to provide a cycle-accurate pipeline model for the ARM, as well as full-system simulation for the Linux platform. My overall goal is to eventually be able to simulate the entire OpenMoko cellphone platform.
% scons build/ARM_SE/m5.debugIf, however, you chose to keep the new arch/ directory separate, you need to run this command from your base M5 directory:
% scons build/ARM_SE/m5.debug EXTRAS=path/to/arm_extras/src/
M5-ARM can be run by following the same steps as any other SE-based simulator in M5. I hope to put up some sample run information here soon.
I am currently using an arm-9tdmi-linux compiler and toolchain based on a Crosstool configuration. You can build your own toolchain by running demo-arm9tdmi.sh. The toolchain is also available on the newest M5 tutorial CD. Don't forget that any executable you wish to run on M5-ARM must be compiled with "-static" since M5 does not support the dynamic linking of executables in SE mode.