This is an old revision of the document!


FreeBSD/aarch64 in Gem5 simulator

The gem5 simulator is a modular platform for computer system architecture research, encompassing system-level architecture as well as processor microarchitecture.

0. Preparation

$ export WORKDIR=~/gem5-test
$ mkdir $WORKDIR
$ cd $WORKDIR
$ git clone https://github.com/bukinr/aarch64-tools.git
$ git clone https://github.com/CTSRD-CHERI/gem5.git
$ git clone -b arm64-dev https://github.com/FreeBSDFoundation/freebsd.git

1. Build Gem5 Simulator System

$ cd $WORKDIR/gem5
$ export SWIG=/usr/local/bin/swig2.0
$ scons build/ARM/gem5.opt
$ gmake -C util/term

2. Build FreeBSD

$ cd $WORKDIR/freebsd
$ cat $WORKDIR/aarch64-tools/gem5/freebsd_gem5.patch | patch -p1
$ sh $WORKDIR/aarch64-tools/arm64_build.sh $WORKDIR/freebsd
$ mkdir $WORKDIR/gem5/binaries $WORKDIR/gem5/disks
$ ln -s $WORKDIR/aarch64-tools/gem5/aarch64_gem5.dtb $WORKDIR/gem5/binaries/
$ ln -s $WORKDIR/aarch64-tools/gem5/boot_emm.arm64 $WORKDIR/gem5/binaries/
$ ln -s ~/arm64-workspace/obj/arm64.aarch64/usr/home/$USER/gem5-test/freebsd/sys/GENERIC/kernel $WORKDIR/gem5/binaries/
$ ln -s ~/arm64-workspace/rootfs/disk.img $WORKDIR/gem5/disks/
$ cd $WORKDIR/gem5
$ export M5_PATH=$WORKDIR/gem5
$ ./build/ARM/gem5.opt --debug-flags=-Exec configs/example/fs.py --kernel=kernel --machine-type=VExpress_EMM64 --dtb-file=aarch64_gem5.dtb --disk-image=disk.img --mem-size=256MB
$
$
  • gem5.1429710207.txt.gz
  • Last modified: 2015/04/22 13:43
  • by RuslanBukin