if {![have_spec x86_64]} { puts "\nSolo5 requires a 64bit architecture\n" exit 0 } if {![file exists bin/mirage]} { puts "" puts "A mirage image must be provided at 'bin/mirage' to execute this scenario." puts "" exit 1 } if {[have_spec linux]} { puts "" puts "This scenario is not available for the Linux platform." puts "" exit 1 } create_boot_directory import_from_depot \ [depot_user]/src/[base_src] \ [depot_user]/src/init \ [depot_user]/src/rtc_drv \ source ${genode_dir}/repos/base/run/platform_drv.inc set build_components { drivers/nic drivers/rtc lib/solo5 } append_platform_drv_build_components build $build_components append config { } append_platform_drv_config append config { } install_config $config set boot_modules { mirage rtc_drv ipxe_nic_drv solo5.lib.so } # platform-specific modules append_platform_drv_boot_modules build_boot_image $boot_modules append qemu_args " -nographic " proc qemu_nic_model {} { if [have_spec x86] { return e1000 } if [have_spec lan9118] { return lan9118 } if [have_spec zynq] { return cadence_gem } return nic_model_missing } append qemu_args " -netdev user,id=net0 " append qemu_args " -net nic,model=[qemu_nic_model],netdev=net0 " run_genode_until forever