-
Notifications
You must be signed in to change notification settings - Fork 5
/
tc_ub_load_board_env.py
79 lines (69 loc) · 2.78 KB
/
tc_ub_load_board_env.py
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
# This file is part of tbot. tbot is free software: you can
# redistribute it and/or modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation, version 2.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Description:
# start with
# python2.7 src/common/tbot.py -s labconfigname -c boardconfigname -t tc_ub_load_board_env.py
#
# task: load U-Boot Environment env.txt file with tftp for the
# board tb.config.tftpboardname to the addr tb.config.ub_load_board_env_addr
# from subdir tb.config.ub_load_board_env_subdir
# and imports the the textfile with 'env import'
#
# options:
# if tb.config.tc_ub_boot_linux_load_env == 'no' than TC does nothing
#
# if tb.config.tc_ub_boot_linux_load_env == 'set' or == 'setend'
# than TC executes the cmds in list tb.config.ub_load_board_env_set
#
# if tb.config.tc_ub_boot_linux_load_env == 'setend' TC returns
# after executing the commands with True
#
# else TC executes the steps described in 'task'
#
# End:
from tbotlib import tbot
logging.info("args: %s %s %s", tb.config.tftpboardname, tb.config.ub_load_board_env_addr, tb.config.ub_load_board_env_subdir)
logging.info("args: %s", tb.config.tc_ub_boot_linux_load_env)
logging.info("args: %s", tb.config.tftpboardrootdir)
logging.info("args: %s", tb.config.ub_load_board_env_set)
# set board state for which the tc is valid
tb.set_board_state("u-boot")
# load U-Boot Env only if allowed
if tb.config.tc_ub_boot_linux_load_env == 'no':
tb.end_tc(True)
c = tb.c_con
if (tb.config.tc_ub_boot_linux_load_env == 'set') or (tb.config.tc_ub_boot_linux_load_env == 'setend'):
for cmd in tb.config.ub_load_board_env_set:
tb.eof_write(c, cmd)
tb.tbot_expect_prompt(c)
if tb.config.tc_ub_boot_linux_load_env == 'setend':
tb.end_tc(True)
r = tb.config.tftpboardrootdir
tb.config.tc_ub_tftp_file_addr = tb.config.ub_load_board_env_addr
tb.config.tc_ub_tftp_file_name = r + tb.config.tftpboardname + '/' + tb.config.ub_load_board_env_subdir + '/env.txt'
i = 0
retry = 2
load_fail = False
while load_fail == False:
if i >= retry:
tb.end_tc(False)
tmp = 'mw ' + tb.config.ub_load_board_env_addr + ' 0 0x4000'
tb.eof_write(c, tmp)
tb.tbot_expect_prompt(c)
load_fail = tb.call_tc("tc_ub_tftp_file.py")
i += 1
tmp = 'env import -t ' + tb.config.ub_load_board_env_addr
tb.eof_write(c, tmp)
tb.tbot_expect_prompt(c)
tb.end_tc(True)