summaryrefslogtreecommitdiff
path: root/test-cli/test/tests/qflash.py
blob: 660e1c07f4d19f0a1a6a284fc08ea337b487b7e7 (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
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")