Skip to content

Running instructions

Donghyun Gouk edited this page Oct 10, 2018 · 2 revisions

m5term

Before running SimpleSSD FullSystem (gem5), you need monitor of computer.
gem5 provides m5term, similar to telnet.

Build m5term.

# At root of SimpleSSD FullSystem source code
cd util/term
make

Run

Here is example command line to execute SimpleSSD FullSystem.

./build/ARM/gem5.opt --outdir=test --debug-flag=M5Print --debug-file=debug.txt \
./configs/example/fs.py --kernel=aarch64-vmlinux-4.9.92 --machine-type=VExpress_GEM5_V1 \
--dtb-file=armv8_gem5_v1_4cpu.dtb --num-cpu=4 --cpu-clock=2GHz --caches --l2cache \
--cpu-type=AtomicSimpleCPU --mem-size=2GB --mem-type=DDR4_2400_8x8 \
--disk-image=linaro-aarch64-linux.img --ssd-interface=nvme \
--ssd-config=./src/dev/storage/simplessd/config/sample.cfg

You may want to check various options by:

./build/ARM/gem5.opt --help
./build/ARM/gem5.opt ./configs/example/fs.py --help

Connect m5term to SimpleSSD FullSystem (gem5). Port number (3456) may differ if you running multiple instances on same computer.

# From another shell, at root of SimpleSSD FullSystem source code
./util/term/m5term localhost 3456

After few seconds, kernel boot log will be printed to m5term's screen.

Done!

After booting completes (about 7 min. for Atomic CPU model), you can login into linux.
Enter username root to login.

Check NVMe works by:

./nvme list

You can see CAMELab NVMe Controller on /dev/nvme0 and /dev/nvme0n1 device nodes.

INIT: version 2.88 booting
Starting udev
starting version 232
[    2.928547] EXT4-fs (sda1): re-mounted. Opts: data=ordered
hwclock: can't open '/dev/misc/rtc': No such file or directory
Mon Dec 12 07:18:58 UTC 2016
hwclock: can't open '/dev/misc/rtc': No such file or directory
INIT: Entering runlevel: 3
haveged: listening socket at 3
haveged: haveged starting up
Configuring network interfaces... ifconfig: SIOCGIFFLAGS: No such device
Prefare for gem5-specific works...
Mon Dec 12 07:18:58 UTC 2016
Reading scripts...

OpenEmbedded nodistro.0 genericarmv8 /dev/ttySA0

genericarmv8 login: root
root@genericarmv8:~# ./nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     00000000000000000000 gem5 NVMe Controller by Donghyun Gouk    1         412.32  GB / 412.32  GB    512   B +  0 B   v01.0000
root@genericarmv8:~# m5 exit

Now you can evaluate any program with full-system simulation support.

Clone this wiki locally