M5-ARM


What is it?

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.


Files for M5-ARM


Obtaining and Compiling M5-ARM

  1. Download the most recent version of M5 (using Mercurial or get 2.0beta5 and up) from here.
  2. Unpack the files and check to see if README.ARM exists in the top-level directory.
  3. If this file is missing, then please contact me by email
  4. Next, you need to obtain the additional source directory containing the ARM architecture description.
  5. Unpack this directory and it will create a new arm_extras/ directory. You can choose to either copy the contents of the arch/arm/ directory into the existing src/arch/arm directory, or you can compile this directory in separately using the EXTRAS feature in scons (described below).
  6. If you placed the arm files in the existing directory, you can just run the following command from the base M5 directory to compile the ARM target:
    % scons build/ARM_SE/m5.debug
    If, 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/

Running M5-ARM

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.


ARM Toolchain for use with M5-ARM

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.


Valid XHTML 1.0! Valid CSS! Vim Editor

Last Modified: December 02, 2008 16:36:22