#
# \brief Virtual-machine monitor demo
# \author Stefan Kalkowski
# \date 2015-06-25
#
assert_spec hw
if { ![have_spec imx7d_sabre] && ![have_spec arndale] } {
puts "Run script is not supported on this platform"
exit 0
}
set build_components {
core init timer
server/terminal_crosslink
test/terminal_expect_send
server/vmm
}
build $build_components
create_boot_directory
install_config {
}
#
# This test uses a Linux kernel built from unmodified vanilla kernel sources
# but using a slightly simplified kernel configuration, as well as device tree
# for a minimal Versatile Express Cortex A15 like emulated board.
#
# The used sources, including the modified device tree and configuration file
# can be found in the following git repository/branch:
#
# https://github.com/skalk/linux/tree/vexpress-vt
#
# To compile the kernel and device tree blob used in this script, do the
# following steps:
#
# ! git checkout https://github.com/skalk/linux.git
# ! cd linux
# ! git checkout origin/vexpress-vt
# ! make ARCH=arm CROSS_COMPILE= vexpress_config
# ! make ARCH=arm CROSS_COMPILE= -j8 Image
# ! make ARCH=arm CROSS_COMPILE= vexpress-v2p-ca15-tc1.dtb
#
if {![file exists bin/linux]} {
puts "Download linux kernel ..."
exec >& /dev/null wget -c -O bin/linux http://genode.org/files/release-15.02/arm_vt/linux
}
if {![file exists bin/dtb]} {
puts "Download device tree blob ..."
exec >& /dev/null wget -c -O bin/dtb http://genode.org/files/release-15.02/arm_vt/dtb
}
set boot_modules {
core ld.lib.so init
timer
terminal_crosslink
test-terminal_expect_send
vmm
linux
dtb
}
build_boot_image $boot_modules
#
# Execute test case
#
run_genode_until "\[init -> vm\] .*sbin.*" 220
exec rm bin/linux bin/dtb