From 138a37765f851e469475b2bcf8b63f4fa511544b Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Tue, 7 May 2013 12:18:56 +0200 Subject: [PATCH] run: add support for IP power switch NETIO-230B --- base-foc/run/env | 9 +++++++++ base-hw/run/env | 12 ++++++++++++ tool/run | 41 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 59 insertions(+), 3 deletions(-) diff --git a/base-foc/run/env b/base-foc/run/env index 2dcc03ede..3bf0242a6 100644 --- a/base-foc/run/env +++ b/base-foc/run/env @@ -280,6 +280,15 @@ proc build_boot_image_arm {binaries} { build_boot_uimage puts "\nboot image: [run_dir]/image.elf\n" + + # set symbolic link to image.elf file in TFTP directory for PXE boot + if {[info exists ::env(PXE_TFTP_DIR_BASE)] && + [info exists ::env(PXE_TFTP_DIR_OFFSET)]} { + exec ln -sf "[pwd]/[run_dir]/image.elf" "$::env(PXE_TFTP_DIR_BASE)$::env(PXE_TFTP_DIR_OFFSET)" + if {[have_spec uboot]} { + exec ln -sf "[pwd]/[run_dir]/uImage" "$::env(PXE_TFTP_DIR_BASE)$::env(PXE_TFTP_DIR_OFFSET)/uImage" + } + } } diff --git a/base-hw/run/env b/base-hw/run/env index 2bdd3dbbd..fbccb6a3b 100644 --- a/base-hw/run/env +++ b/base-hw/run/env @@ -193,7 +193,19 @@ proc build_boot_image {binaries} { exec mkimage -A arm -O linux -T kernel -C gzip -a $load_addr \ -e $entrypoint -d $bin_img.gz $uboot_img exec rm -rf $bin_img.gz + } + + # set symbolic link to image.elf file in TFTP directory for PXE boot + if {[info exists ::env(PXE_TFTP_DIR_BASE)] && + [info exists ::env(PXE_TFTP_DIR_OFFSET)]} { + exec ln -sf "[pwd]/$elf_img" "$::env(PXE_TFTP_DIR_BASE)$::env(PXE_TFTP_DIR_OFFSET)" + + if {[regexp "uboot" $run_target]} { + exec ln -sf "[pwd]/[run_dir]/uImage" "$::env(PXE_TFTP_DIR_BASE)$::env(PXE_TFTP_DIR_OFFSET)" + } + } + # retrieve stand-alone core exec mv core/core.standalone bin/core } diff --git a/tool/run b/tool/run index 164d726cc..f0c5f4b85 100755 --- a/tool/run +++ b/tool/run @@ -266,6 +266,7 @@ set specs [get_cmd_arg --specs ""] set repositories [get_cmd_arg --repositories ""] set qemu_args [get_cmd_arg --qemu-args ""] set run_target [get_cmd_arg --target "qemu"] +set serial_dev [get_cmd_arg --serial-dev "/dev/ttyUSB0"] @@ -611,18 +612,52 @@ proc spawn_amt { wait_for_re timeout_value} { } +## +# Reset test machine via IP power plug NETIO-230B from Koukaam +# +proc power_plug_reset { } { + set server_ip "10.0.0.5" + set user_name "admin" + set password "admin" + set power_port [get_cmd_arg --reset-port 1] + + spawn telnet $server_ip 1234 + expect "KSHELL V1.3" + send "login $user_name $password\n" + expect "250 OK" + send "port $power_port\n" + expect -re {250 [0-9]+.*\n} + regexp -all {[0-9]+} $expect_out(0,string) power_status + if {!$power_status} { + puts "port $power_port is off - switching it on" + send "port $power_port 1\n" + expect "250 OK" + } else { + puts "port $power_port is on - reset port" + send "port $power_port int\n" + expect "250 OK" + } +} + + ## # Execute scenario expecting output via serial device # proc spawn_serial { wait_for_re timeout_value} { global spawn_id + global serial_dev + global run_target - if {$wait_for_re != "forever"} { + if {$wait_for_re == "forever"} { + set timeout -1 + } else { set timeout_value [expr $timeout_value + 30] } - set serial_dev [get_cmd_arg --serial-dev "/dev/ttyUSB0"] - + if {[regexp "reset" $run_target]} { + power_plug_reset + } + spawn picocom -b 115200 $serial_dev set serial_spawn_id $spawn_id wait_for_output $wait_for_re $timeout_value $serial_spawn_id