## # Load image to target hardware via Fastboot # # \param --load-fastboot-device Specify device serial number # or path to device port # source [genode_dir]/tool/run/load.inc proc load_fastboot_device { } { return [get_cmd_arg --load-fastboot-device ""] } proc check_fastboot_supported { } { if {![have_installed fastboot]} { puts stderr "Missing installation of fastboot utility" exit -1 } if {![have_spec arm] && ![have_spec arm_64]} { puts stderr "Fastboot not supported on this CPU architecture" exit -1 } } proc run_load { } { global load_spawn_id check_fastboot_supported if {![have_include "image/uboot"]} { puts stderr "Cannot load via fastboot without a u-boot image" } set device [load_fastboot_device] set uimg [file join [run_dir] boot uImage] # sleep a bit, board might need some time to come up sleep 8 set fastboot_cmd [list fastboot] if {$device != ""} { lappend fastboot_cmd -s $device } lappend fastboot_cmd boot $uimg eval spawn {*}$fastboot_cmd set load_spawn_id $spawn_id set timeout 80 expect { "finished. total time:" { return true; } eof { puts stderr "fastboot command process died unexpectedly"; return false; } timeout { puts stderr "Loading timed out"; return false; } } }