gem5: namespace checkpoints by arch

Also refactor common gem5 x86 and arm command parts
This commit is contained in:
Ciro Santilli
2018-03-13 13:06:33 +00:00
parent 29c3362015
commit 13e840df9e
2 changed files with 38 additions and 27 deletions

38
run
View File

@@ -74,35 +74,37 @@ out_dir="${root_dir}/buildroot/output.${arch_dir}~"
if "$gem5"; then
build_dir="${out_dir}/build/gem5-1.0"
gem5_dir="${build_dir}/gem5"
if [ "$arch" = x86_64 ]; then
gem5_arch=X86
else
gem5_arch=ARM
fi
gem5_cpt_dir="./m5out/cpts/${arch}"
mkdir -p "$gem5_cpt_dir"
gem5_common="\
M5_PATH='${build_dir}/system' \
$debug_vm \
'${gem5_dir}/build/${gem5_arch}/gem5.opt' \
${gem5opts} \
'${gem5_dir}/configs/example/fs.py' \
--checkpoint-dir='${gem5_cpt_dir}' \
--disk-image='${out_dir}/images/rootfs.ext2' \
--kernel='${out_dir}/build/linux-custom/vmlinux' \
--num-cpus='${cpus}' \
"
if [ "$arch" = x86_64 ]; then
if "$kvm"; then
extra_flags="$extra_flags --cpu-type=X86KvmCPU"
fi
cmd="\
M5_PATH='${build_dir}/system' \
$debug_vm \
'${gem5_dir}/build/X86/gem5.opt' \
${gem5opts} \
'${gem5_dir}/configs/example/fs.py' \
cmd="${gem5_common} \
--command-line='earlyprintk=ttyS0 console=ttyS0 lpj=7999923 root=/dev/hda $extra_append' \
--disk-image='${out_dir}/images/rootfs.ext2' \
--kernel='${out_dir}/build/linux-custom/vmlinux' \
--num-cpus=${cpus} \
$extra_flags \
"
elif [ "$arch" = arm ] || [ "$arch" = aarch64 ]; then
cmd="\
M5_PATH='${build_dir}/system' \
$debug_vm \
'${gem5_dir}/build/ARM/gem5.opt' \
${gem5opts} \
'${gem5_dir}/configs/example/fs.py' \
cmd="${gem5_common} \
--command-line='earlyprintk=pl011,0x1c090000 console=ttyAMA0 lpj=19988480 rw loglevel=8 mem=512MB root=/dev/sda $extra_append' \
--disk-image='${out_dir}/images/rootfs.ext2' \
--dtb-file='${gem5_dir}/system/arm/dt/$([ "$arch" = arm ] && echo "armv7_gem5_v1_${cpus}cpu" || echo "armv8_gem5_v1_${cpus}cpu").dtb' \
--kernel='${out_dir}/build/linux-custom/vmlinux' \
--machine-type=VExpress_GEM5_V1 \
--num-cpus='${cpus}' \
$extra_flags \
"
fi