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
|
from test.helpers.syscmd import SysCommand
import unittest
from test.helpers.globalVariables import globalVar
class Qflasher(unittest.TestCase):
def __init__(self, testname, testfunc):
super(Qflasher, self).__init__(testfunc)
self._testMethodDoc = testname
model=globalVar.g_mid
if model.find("IGEP0046") == 0:
self._flash_method = "mx6"
self._binlocation="/boot/"
elif model.find("IGEP0034") == 0:
self._flash_method = "nandti"
self._binlocation = "/boot/"
elif model.find("SOPA") == 0:
self._flash_method = "sopaflash"
elif model.find("OMAP3") == 0:
self._flash_method = "nandti"
self._binlocation = "/boot/"
elif model.find("OMAP5") == 0:
self._flash_method = "nandti"
self._binlocation = "/boot/"
def execute(self):
# CASE eMMC boards.
if(self._flash_method == "mx6"):
str_cmd= "dd if={}u-boot.imx of=/dev/mmcblk2 bs=512 seek=2 2>&1 >/dev/null".format(self._binlocation)
flash_command = SysCommand("flash_command", str_cmd)
if flash_command.execute() == 0:
str_cmd = "sync"
sync_command = SysCommand("sync_command", str_cmd)
if sync_command.execute() != 0:
self.fail("failed: could not sync")
else:
self.fail("failed: could not complete flash eMMC commands")
# CASE of nandflash boards
elif(self._flash_method == "nandti"):
str_cmd = "nandwrite -p -s 0x0 /dev/mtd0 {}u-boot.img 2>&1 >/dev/null; " \
"nandwrite -p -s 0x20000 /dev/mtd0 {}u-boot.img 2>&1 >/dev/null; " \
"nandwrite -p -s 0x40000 /dev/mtd0 {}u-boot.img 2>&1 >/dev/null; " \
"nandwrite -p -s 0x60000 /dev/mtd0 {}u-boot.img 2>&1 >/dev/null; " \
"".format(self._binlocation, self._binlocation, self._binlocation, self._binlocation,)
flash_MLO_command = SysCommand("flash_MLO_command", str_cmd)
if flash_MLO_command.execute() == 0:
str_cmd= "nandwrite -p /dev/mtd1 {}u-boot.img 2>&1 >/dev/null".format(self._binlocation)
flash_uBoot_command = SysCommand("flash_command", str_cmd)
if flash_uBoot_command.execute() == 0:
str_cmd = "sync"
sync_command = SysCommand("sync_command", str_cmd)
if sync_command.execute() != 0:
self.fail("failed: could not sync")
else:
self.fail("failed: could not complete flash u-boot commnds")
else:
self.fail("failed: could not complete flash MLO commnd")
# CASE of SOPA0000 BOARD. FULL FLASH (u-boot+kernel+rootfs)
elif (self._flash_method == "sopaflash"):
str_cmd = "nandtest /dev/mtd0 >/dev/null"
flash_command = SysCommand("flash_command", str_cmd)
if flash_command.execute() == 0:
str_cmd = "/usr/bin/igep-flash --skip-nandtest --image /opt/firmware/demo-ti-image-*-*.tar* >/dev/null 2>&1"
sync_command = SysCommand("sync_command", str_cmd)
if sync_command.execute() != 0:
self.fail("failed: could not complete flashing procces")
else:
self.fail("failed: could not complete nandtest mtd0")
else:
self.fail("failed: could not find flash method")
|