blob: 15ec223496fad0647242a89b9640fcc0d4c3d25e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
#!/usr/bin/kermit
# FIXME: Sync with libptxdisttest.sh
.red := "\27[31m"
.green := "\27[32m"
.blue := "\27[34m"
.nocolor := "\27[30m"
define ptx_check_fail {
if failure {
writeln ERROR "\m(red)FAILED! (\%1)\m(nocolor)"
exit 1
}
}
define ptx_print {
writeln ERROR "\m(blue)\%1\m(nocolor)"
}
define ptx_init {
# get boardsetup variables
take \%1
ptx_print "Communicating via \m(PTXCONF_BOARDSETUP_SERIALPORT) at \m(PTXCONF_BOARDSETUP_SERIALBAUDRATE) bps."
ptx_print
# ':' distinguishes between serial line and telnet port
if not match \m(PTXCONF_BOARDSETUP_SERIALPORT) *:* {
set line \m(PTXCONF_BOARDSETUP_SERIALPORT)
ptx_check_fail "Could not setup serial port (\m(PTXCONF_BOARDSETUP_SERIALPORT))!"
set speed \m(PTXCONF_BOARDSETUP_SERIALBAUDRATE)
set parity none
set stop-bits 1
} else {
set host \m(PTXCONF_BOARDSETUP_SERIALPORT)
set terminal echo remote
}
set carrier-watch off
set handshake none
set flow-control none
robust
set input cancellation off
set input case observe
set input buffer-length 16384
ptx_print "==============================="
ptx_print "Please power on your board now!"
ptx_print "==============================="
ptx_print
}
define ptx_exit {
writeln ERROR "\m(green)All OK!\m(nocolor)"
exit 0
}
define ptx_test_start {
# do padding with '.'
write ERROR "\m(blue)\frpad(\%1,40,.)\m(nocolor)"
}
define ptx_test_end {
writeln ERROR "\m(green)OK\m(nocolor)"
}
define ptx_wait_string {
input \%1 \%2
ptx_check_fail "waiting for '\%2'"
}
define ptx_uboot_enter_shell {
ptx_test_start "Logging into U-Boot"
minput 120 "U-Boot 1" "U-Boot 2"
:eval_again
ptx_check_fail "waiting for u-boot-signature"
lineout
.uboot_version := \v(minput)
if = \m(uboot_version) 2 {
.uboot_prompt = "uboot:"
} else {
.uboot_prompt = "uboot> "
}
# sometimes there are caches for serial inputs containing old data
# make sure we act on the newest one
minput 120 "U-Boot 1" "U-Boot 2" \m(uboot_prompt)
if not = \v(minput) 3 goto eval_again
ptx_test_end
}
define ptx_uboot_exec {
lineout "\%2"
# Wait for the command itself to sync to input buffer
input 10 \%2
input \%1 \m(uboot_prompt)
ptx_check_fail "timeout while waiting for u-boot prompt after '\%2'"
if = \m(uboot_version) 2 {
lineout "echo result: $?"
input 10 \fpattern(result: 0$)
ptx_check_fail "returncode from '\%2' is not 0"
input 10 \m(uboot_prompt)
}
}
define ptx_uboot_exec_single {
ptx_test_start "\%1"
ptx_uboot_exec "\%2" "\%3"
ptx_test_end
}
define ptx_wait_string_single {
ptx_test_start "\%1"
ptx_wait_string "\%2" "\%3"
ptx_test_end
}
|