Merge lp:~tusharbehera/linaro-image-tools/origen-quad-support into lp:linaro-image-tools/11.11
- origen-quad-support
- Merge into trunk
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Данило Шеган | ||||
Approved revision: | 591 | ||||
Merged at revision: | 591 | ||||
Proposed branch: | lp:~tusharbehera/linaro-image-tools/origen-quad-support | ||||
Merge into: | lp:linaro-image-tools/11.11 | ||||
Diff against target: |
333 lines (+196/-0) 3 files modified
linaro_image_tools/media_create/android_boards.py (+8/-0) linaro_image_tools/media_create/boards.py (+22/-0) linaro_image_tools/media_create/tests/test_media_create.py (+166/-0) |
||||
To merge this branch: | bzr merge lp:~tusharbehera/linaro-image-tools/origen-quad-support | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Данило Шеган (community) | Approve | ||
Review via email: mp+139425@code.launchpad.net |
Commit message
Description of the change
Tested with linaro-
Данило Шеган (danilo) wrote : | # |
Hum, I am having problems with Linaro Android 12.10 release: with these changes, my Exynos 4210 won't boot, whereas the pre-created image does boot.
Данило Шеган (danilo) wrote : | # |
Hum, it seems this was transient. It boots on my 4th attempt.
Milo Casagrande (milo) wrote : | # |
Pinged Tusharb on IRC about merging this branch, this is what he said:
Gwaihir, let's proceed ahead with the merge of the origen-quad patches ...
Gwaihir, for 2012.12 release, we are using the binaries released by Insignal and we would require this patch ...
Gwaihir, although getting BL1 through Insignal repository is a bit tedious, but it is the only solution ATM for 2012.12 OrigenQuad Android release ..
Preview Diff
1 | === modified file 'linaro_image_tools/media_create/android_boards.py' | |||
2 | --- linaro_image_tools/media_create/android_boards.py 2012-12-06 04:45:51 +0000 | |||
3 | +++ linaro_image_tools/media_create/android_boards.py 2012-12-12 10:23:23 +0000 | |||
4 | @@ -33,6 +33,7 @@ | |||
5 | 33 | from linaro_image_tools.media_create.boards import SnowballEmmcConfig | 33 | from linaro_image_tools.media_create.boards import SnowballEmmcConfig |
6 | 34 | from linaro_image_tools.media_create.boards import SMDKV310Config | 34 | from linaro_image_tools.media_create.boards import SMDKV310Config |
7 | 35 | from linaro_image_tools.media_create.boards import OrigenConfig | 35 | from linaro_image_tools.media_create.boards import OrigenConfig |
8 | 36 | from linaro_image_tools.media_create.boards import OrigenQuadConfig | ||
9 | 36 | from linaro_image_tools.media_create.boards import VexpressConfig | 37 | from linaro_image_tools.media_create.boards import VexpressConfig |
10 | 37 | from linaro_image_tools.media_create.boards import ( | 38 | from linaro_image_tools.media_create.boards import ( |
11 | 38 | align_up, | 39 | align_up, |
12 | @@ -349,6 +350,12 @@ | |||
13 | 349 | dtb_name = None | 350 | dtb_name = None |
14 | 350 | 351 | ||
15 | 351 | 352 | ||
16 | 353 | class AndroidOrigenQuadConfig(AndroidSamsungConfig, OrigenQuadConfig): | ||
17 | 354 | _extra_serial_opts = 'console=tty0 console=ttySAC2,115200n8' | ||
18 | 355 | android_specific_args = 'init=/init androidboot.console=ttySAC2' | ||
19 | 356 | dtb_name = None | ||
20 | 357 | |||
21 | 358 | |||
22 | 352 | class AndroidVexpressConfig(AndroidBoardConfig, VexpressConfig): | 359 | class AndroidVexpressConfig(AndroidBoardConfig, VexpressConfig): |
23 | 353 | _extra_serial_opts = 'console=tty0 console=ttyAMA0,38400n8' | 360 | _extra_serial_opts = 'console=tty0 console=ttyAMA0,38400n8' |
24 | 354 | android_specific_args = 'init=/init androidboot.console=ttyAMA0' | 361 | android_specific_args = 'init=/init androidboot.console=ttyAMA0' |
25 | @@ -365,6 +372,7 @@ | |||
26 | 365 | 'iMX53': AndroidMx53LoCoConfig, | 372 | 'iMX53': AndroidMx53LoCoConfig, |
27 | 366 | 'mx6qsabrelite': AndroidMx6QSabreliteConfig, | 373 | 'mx6qsabrelite': AndroidMx6QSabreliteConfig, |
28 | 367 | 'origen': AndroidOrigenConfig, | 374 | 'origen': AndroidOrigenConfig, |
29 | 375 | 'origen_quad': AndroidOrigenQuadConfig, | ||
30 | 368 | 'vexpress': AndroidVexpressConfig, | 376 | 'vexpress': AndroidVexpressConfig, |
31 | 369 | 'vexpress-a9': AndroidVexpressConfig, | 377 | 'vexpress-a9': AndroidVexpressConfig, |
32 | 370 | } | 378 | } |
33 | 371 | 379 | ||
34 | === modified file 'linaro_image_tools/media_create/boards.py' | |||
35 | --- linaro_image_tools/media_create/boards.py 2012-12-10 10:49:30 +0000 | |||
36 | +++ linaro_image_tools/media_create/boards.py 2012-12-12 10:23:23 +0000 | |||
37 | @@ -1453,6 +1453,7 @@ | |||
38 | 1453 | old_spl_path = os.path.join(spl_dir, 'v310_mmc_spl.bin') | 1453 | old_spl_path = os.path.join(spl_dir, 'v310_mmc_spl.bin') |
39 | 1454 | new_spl_path = os.path.join(spl_dir, 'u-boot-mmc-spl.bin') | 1454 | new_spl_path = os.path.join(spl_dir, 'u-boot-mmc-spl.bin') |
40 | 1455 | new_new_spl_path = os.path.join(spl_dir, 'origen-spl.bin') | 1455 | new_new_spl_path = os.path.join(spl_dir, 'origen-spl.bin') |
41 | 1456 | samsung_spl_path_4 = os.path.join(spl_dir, 'origen_quad-spl.bin') | ||
42 | 1456 | 1457 | ||
43 | 1457 | spl_file = old_spl_path | 1458 | spl_file = old_spl_path |
44 | 1458 | # The new upstream u-boot filename has changed | 1459 | # The new upstream u-boot filename has changed |
45 | @@ -1463,6 +1464,10 @@ | |||
46 | 1463 | if not os.path.exists(spl_file): | 1464 | if not os.path.exists(spl_file): |
47 | 1464 | spl_file = new_new_spl_path | 1465 | spl_file = new_new_spl_path |
48 | 1465 | 1466 | ||
49 | 1467 | # upstream u-boot filename is dependent on board name | ||
50 | 1468 | if not os.path.exists(spl_file): | ||
51 | 1469 | spl_file = samsung_spl_path_4 | ||
52 | 1470 | |||
53 | 1466 | if not os.path.exists(spl_file): | 1471 | if not os.path.exists(spl_file): |
54 | 1467 | # missing SPL loader | 1472 | # missing SPL loader |
55 | 1468 | raise AssertionError("Couldn't find the SPL file, tried %s and %s" | 1473 | raise AssertionError("Couldn't find the SPL file, tried %s and %s" |
56 | @@ -1533,6 +1538,22 @@ | |||
57 | 1533 | mmc_option = '0:2' | 1538 | mmc_option = '0:2' |
58 | 1534 | 1539 | ||
59 | 1535 | 1540 | ||
60 | 1541 | class OrigenQuadConfig(SamsungConfig): | ||
61 | 1542 | bootloader_flavor = 'origen_quad' | ||
62 | 1543 | serial_tty = 'ttySAC2' | ||
63 | 1544 | _extra_serial_opts = 'console=%s,115200n8' | ||
64 | 1545 | kernel_addr = '0x40007000' | ||
65 | 1546 | initrd_addr = '0x42000000' | ||
66 | 1547 | load_addr = '0x40008000' | ||
67 | 1548 | kernel_flavors = ['origen_quad'] | ||
68 | 1549 | boot_script = 'boot.scr' | ||
69 | 1550 | mmc_part_offset = 1 | ||
70 | 1551 | mmc_option = '0:2' | ||
71 | 1552 | samsung_bl1_len = 48 | ||
72 | 1553 | samsung_bl2_start = 49 | ||
73 | 1554 | samsung_env_start = 1073 | ||
74 | 1555 | |||
75 | 1556 | |||
76 | 1536 | class I386Config(BoardConfig): | 1557 | class I386Config(BoardConfig): |
77 | 1537 | # define serial | 1558 | # define serial |
78 | 1538 | serial_tty = 'ttyS0' | 1559 | serial_tty = 'ttyS0' |
79 | @@ -1618,6 +1639,7 @@ | |||
80 | 1618 | 'overo': OveroConfig, | 1639 | 'overo': OveroConfig, |
81 | 1619 | 'smdkv310': SMDKV310Config, | 1640 | 'smdkv310': SMDKV310Config, |
82 | 1620 | 'origen': OrigenConfig, | 1641 | 'origen': OrigenConfig, |
83 | 1642 | 'origen_quad': OrigenQuadConfig, | ||
84 | 1621 | 'mx6qsabrelite': BoardConfig, | 1643 | 'mx6qsabrelite': BoardConfig, |
85 | 1622 | 'i386': I386Config, | 1644 | 'i386': I386Config, |
86 | 1623 | } | 1645 | } |
87 | 1624 | 1646 | ||
88 | === modified file 'linaro_image_tools/media_create/tests/test_media_create.py' | |||
89 | --- linaro_image_tools/media_create/tests/test_media_create.py 2012-12-10 10:49:30 +0000 | |||
90 | +++ linaro_image_tools/media_create/tests/test_media_create.py 2012-12-12 10:23:23 +0000 | |||
91 | @@ -759,6 +759,26 @@ | |||
92 | 759 | config = boards.OrigenConfig | 759 | config = boards.OrigenConfig |
93 | 760 | 760 | ||
94 | 761 | 761 | ||
95 | 762 | class TestGetOrigenQuadSPL(TestCaseWithFixtures): | ||
96 | 763 | config = boards.OrigenQuadConfig | ||
97 | 764 | |||
98 | 765 | def test_no_file_present(self): | ||
99 | 766 | tempdir = self.useFixture(CreateTempDirFixture()).get_temp_dir() | ||
100 | 767 | self.assertRaises( | ||
101 | 768 | AssertionError, self.config._get_samsung_spl, tempdir) | ||
102 | 769 | |||
103 | 770 | def test_new_file_present(self): | ||
104 | 771 | tempdir = self.useFixture(CreateTempDirFixture()).get_temp_dir() | ||
105 | 772 | path = _create_uboot_dir(tempdir, self.config.bootloader_flavor) | ||
106 | 773 | spl_path = os.path.join(path, 'origen_quad-spl.bin') | ||
107 | 774 | open(spl_path, 'w').close() | ||
108 | 775 | self.assertEquals(spl_path, self.config._get_samsung_spl(tempdir)) | ||
109 | 776 | |||
110 | 777 | |||
111 | 778 | class TestGetOrigenQuadUboot(TestGetSMDKUboot): | ||
112 | 779 | config = boards.OrigenQuadConfig | ||
113 | 780 | |||
114 | 781 | |||
115 | 762 | class TestCreateToc(TestCaseWithFixtures): | 782 | class TestCreateToc(TestCaseWithFixtures): |
116 | 763 | ''' Tests boards.SnowballEmmcConfig.create_toc()''' | 783 | ''' Tests boards.SnowballEmmcConfig.create_toc()''' |
117 | 764 | 784 | ||
118 | @@ -1223,6 +1243,27 @@ | |||
119 | 1223 | 'make_uImage', 'make_uInitrd', 'make_boot_script'] | 1243 | 'make_uImage', 'make_uInitrd', 'make_boot_script'] |
120 | 1224 | self.assertEqual(expected, self.funcs_calls) | 1244 | self.assertEqual(expected, self.funcs_calls) |
121 | 1225 | 1245 | ||
122 | 1246 | def test_origen_quad_steps(self): | ||
123 | 1247 | def mock_func_creator(name): | ||
124 | 1248 | return classmethod( | ||
125 | 1249 | lambda *args, **kwargs: self.funcs_calls.append(name)) | ||
126 | 1250 | |||
127 | 1251 | self.useFixture(MockSomethingFixture( | ||
128 | 1252 | linaro_image_tools.media_create.boards.OrigenQuadConfig, | ||
129 | 1253 | 'install_samsung_boot_loader', | ||
130 | 1254 | mock_func_creator('install_samsung_boot_loader'))) | ||
131 | 1255 | self.useFixture(MockSomethingFixture(os.path, 'exists', | ||
132 | 1256 | lambda file: True)) | ||
133 | 1257 | boards.OrigenQuadConfig.hardwarepack_handler = ( | ||
134 | 1258 | TestSetMetadata.MockHardwarepackHandler('ahwpack.tar.gz')) | ||
135 | 1259 | boards.OrigenQuadConfig.hardwarepack_handler.get_format = ( | ||
136 | 1260 | lambda: '1.0') | ||
137 | 1261 | self.make_boot_files(boards.OrigenQuadConfig) | ||
138 | 1262 | expected = [ | ||
139 | 1263 | 'install_samsung_boot_loader', 'make_flashable_env', '_dd', | ||
140 | 1264 | 'make_uImage', 'make_uInitrd', 'make_boot_script'] | ||
141 | 1265 | self.assertEqual(expected, self.funcs_calls) | ||
142 | 1266 | |||
143 | 1226 | def test_ux500_steps(self): | 1267 | def test_ux500_steps(self): |
144 | 1227 | self.make_boot_files(boards.Ux500Config) | 1268 | self.make_boot_files(boards.Ux500Config) |
145 | 1228 | expected = ['make_uImage', 'make_uInitrd', 'make_boot_script'] | 1269 | expected = ['make_uImage', 'make_uInitrd', 'make_boot_script'] |
146 | @@ -1358,6 +1399,14 @@ | |||
147 | 1358 | expected = ['_dd', '_dd', '_dd'] | 1399 | expected = ['_dd', '_dd', '_dd'] |
148 | 1359 | self.assertEqual(expected, self.funcs_calls) | 1400 | self.assertEqual(expected, self.funcs_calls) |
149 | 1360 | 1401 | ||
150 | 1402 | def test_origen_quad_raw(self): | ||
151 | 1403 | self.useFixture(MockSomethingFixture(os.path, 'getsize', | ||
152 | 1404 | lambda file: 1)) | ||
153 | 1405 | |||
154 | 1406 | self.populate_raw_partition(boards.OrigenQuadConfig) | ||
155 | 1407 | expected = ['_dd', '_dd', '_dd'] | ||
156 | 1408 | self.assertEqual(expected, self.funcs_calls) | ||
157 | 1409 | |||
158 | 1361 | def test_vexpress_a9_raw(self): | 1410 | def test_vexpress_a9_raw(self): |
159 | 1362 | self.populate_raw_partition(boards.VexpressA9Config) | 1411 | self.populate_raw_partition(boards.VexpressA9Config) |
160 | 1363 | expected = [] | 1412 | expected = [] |
161 | @@ -1463,6 +1512,24 @@ | |||
162 | 1463 | self.assertEqual(expected_commands, fixture.mock.commands_executed) | 1512 | self.assertEqual(expected_commands, fixture.mock.commands_executed) |
163 | 1464 | self.assertEqual(expected, self.funcs_calls) | 1513 | self.assertEqual(expected, self.funcs_calls) |
164 | 1465 | 1514 | ||
165 | 1515 | def test_origen_quad_raw(self): | ||
166 | 1516 | fixture = MockCmdRunnerPopenFixture() | ||
167 | 1517 | self.useFixture(fixture) | ||
168 | 1518 | expected_commands = [ | ||
169 | 1519 | ('sudo -E dd if=/dev/zero of= bs=512 conv=notrunc count=32 ' | ||
170 | 1520 | 'seek=1073'), | ||
171 | 1521 | ('sudo -E dd if=boot/u-boot-mmc-spl.bin of= bs=512 ' | ||
172 | 1522 | 'conv=notrunc seek=1'), | ||
173 | 1523 | 'sudo -E dd if=boot/u-boot.bin of= bs=512 conv=notrunc seek=49'] | ||
174 | 1524 | self.useFixture(MockSomethingFixture(os.path, 'getsize', | ||
175 | 1525 | lambda file: 1)) | ||
176 | 1526 | |||
177 | 1527 | self.populate_raw_partition(android_boards.AndroidOrigenQuadConfig) | ||
178 | 1528 | expected = [] | ||
179 | 1529 | # Test that we dd the files | ||
180 | 1530 | self.assertEqual(expected_commands, fixture.mock.commands_executed) | ||
181 | 1531 | self.assertEqual(expected, self.funcs_calls) | ||
182 | 1532 | |||
183 | 1466 | def test_vexpress_raw(self): | 1533 | def test_vexpress_raw(self): |
184 | 1467 | self.populate_raw_partition(android_boards.AndroidVexpressConfig) | 1534 | self.populate_raw_partition(android_boards.AndroidVexpressConfig) |
185 | 1468 | expected = [] | 1535 | expected = [] |
186 | @@ -1600,6 +1667,11 @@ | |||
187 | 1600 | '1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', | 1667 | '1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', |
188 | 1601 | board_configs['origen'].get_sfdisk_cmd()) | 1668 | board_configs['origen'].get_sfdisk_cmd()) |
189 | 1602 | 1669 | ||
190 | 1670 | def test_origen_quad(self): | ||
191 | 1671 | self.assertEquals( | ||
192 | 1672 | '1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', | ||
193 | 1673 | board_configs['origen_quad'].get_sfdisk_cmd()) | ||
194 | 1674 | |||
195 | 1603 | def test_panda_android(self): | 1675 | def test_panda_android(self): |
196 | 1604 | self.assertEqual( | 1676 | self.assertEqual( |
197 | 1605 | '63,270272,0x0C,*\n270336,1048576,L\n1318912,524288,L\n' | 1677 | '63,270272,0x0C,*\n270336,1048576,L\n1318912,524288,L\n' |
198 | @@ -1612,6 +1684,12 @@ | |||
199 | 1612 | '1327104,-,E\n1327104,524288,L\n1851392,1048576,L\n2899968,,,-', | 1684 | '1327104,-,E\n1327104,524288,L\n1851392,1048576,L\n2899968,,,-', |
200 | 1613 | android_boards.AndroidOrigenConfig.get_sfdisk_cmd()) | 1685 | android_boards.AndroidOrigenConfig.get_sfdisk_cmd()) |
201 | 1614 | 1686 | ||
202 | 1687 | def test_origen_quad_android(self): | ||
203 | 1688 | self.assertEqual( | ||
204 | 1689 | '1,8191,0xDA\n8253,270274,0x0C,*\n278528,1048576,L\n' | ||
205 | 1690 | '1327104,-,E\n1327104,524288,L\n1851392,1048576,L\n2899968,,,-', | ||
206 | 1691 | android_boards.AndroidOrigenQuadConfig.get_sfdisk_cmd()) | ||
207 | 1692 | |||
208 | 1615 | def test_snowball_emmc_android(self): | 1693 | def test_snowball_emmc_android(self): |
209 | 1616 | self.assertEqual( | 1694 | self.assertEqual( |
210 | 1617 | '256,7936,0xDA\n8192,262144,0x0C,*\n270336,1048576,L\n' | 1695 | '256,7936,0xDA\n8192,262144,0x0C,*\n270336,1048576,L\n' |
211 | @@ -1683,6 +1761,17 @@ | |||
212 | 1683 | '1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', | 1761 | '1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', |
213 | 1684 | config.get_sfdisk_cmd()) | 1762 | config.get_sfdisk_cmd()) |
214 | 1685 | 1763 | ||
215 | 1764 | def test_origen_quad(self): | ||
216 | 1765 | class config(board_configs['origen_quad']): | ||
217 | 1766 | partition_layout = 'reserved_bootfs_rootfs' | ||
218 | 1767 | LOADER_MIN_SIZE_S = (boards.BoardConfig.samsung_bl1_start + | ||
219 | 1768 | boards.BoardConfig.samsung_bl1_len + | ||
220 | 1769 | boards.BoardConfig.samsung_bl2_len + | ||
221 | 1770 | boards.BoardConfig.samsung_env_len) | ||
222 | 1771 | self.assertEquals( | ||
223 | 1772 | '1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', | ||
224 | 1773 | config.get_sfdisk_cmd()) | ||
225 | 1774 | |||
226 | 1686 | 1775 | ||
227 | 1687 | class TestGetBootCmd(TestCase): | 1776 | class TestGetBootCmd(TestCase): |
228 | 1688 | 1777 | ||
229 | @@ -1760,6 +1849,20 @@ | |||
230 | 1760 | 'initrd_high': '0xffffffff'} | 1849 | 'initrd_high': '0xffffffff'} |
231 | 1761 | self.assertEqual(expected, boot_commands) | 1850 | self.assertEqual(expected, boot_commands) |
232 | 1762 | 1851 | ||
233 | 1852 | def test_origen_quad(self): | ||
234 | 1853 | boot_commands = board_configs['origen_quad']._get_boot_env( | ||
235 | 1854 | is_live=False, is_lowmem=False, consoles=[], | ||
236 | 1855 | rootfs_id="UUID=deadbeef", i_img_data="initrd", d_img_data=None) | ||
237 | 1856 | expected = { | ||
238 | 1857 | 'bootargs': 'console=ttySAC2,115200n8 root=UUID=deadbeef ' | ||
239 | 1858 | 'rootwait ro', | ||
240 | 1859 | 'bootcmd': 'fatload mmc 0:2 0x40007000 uImage; ' | ||
241 | 1860 | 'fatload mmc 0:2 0x42000000 uInitrd; ' | ||
242 | 1861 | 'bootm 0x40007000 0x42000000', | ||
243 | 1862 | 'fdt_high': '0xffffffff', | ||
244 | 1863 | 'initrd_high': '0xffffffff'} | ||
245 | 1864 | self.assertEqual(expected, boot_commands) | ||
246 | 1865 | |||
247 | 1763 | def test_ux500(self): | 1866 | def test_ux500(self): |
248 | 1764 | boot_commands = board_configs['ux500']._get_boot_env( | 1867 | boot_commands = board_configs['ux500']._get_boot_env( |
249 | 1765 | is_live=False, is_lowmem=False, consoles=[], | 1868 | is_live=False, is_lowmem=False, consoles=[], |
250 | @@ -2031,6 +2134,18 @@ | |||
251 | 2031 | self.assertBootEnv( | 2134 | self.assertBootEnv( |
252 | 2032 | android_boards.AndroidOrigenConfig, expected) | 2135 | android_boards.AndroidOrigenConfig, expected) |
253 | 2033 | 2136 | ||
254 | 2137 | def test_android_origen_quad(self): | ||
255 | 2138 | expected = { | ||
256 | 2139 | 'bootargs': 'console=tty0 console=ttySAC2,115200n8 ' | ||
257 | 2140 | 'rootwait ro init=/init androidboot.console=ttySAC2', | ||
258 | 2141 | 'bootcmd': 'fatload mmc 0:2 0x40007000 uImage; ' | ||
259 | 2142 | 'fatload mmc 0:2 0x42000000 uInitrd; ' | ||
260 | 2143 | 'bootm 0x40007000 0x42000000', | ||
261 | 2144 | 'fdt_high': '0xffffffff', | ||
262 | 2145 | 'initrd_high': '0xffffffff'} | ||
263 | 2146 | self.assertBootEnv( | ||
264 | 2147 | android_boards.AndroidOrigenQuadConfig, expected) | ||
265 | 2148 | |||
266 | 2034 | def test_android_vexpress(self): | 2149 | def test_android_vexpress(self): |
267 | 2035 | expected = { | 2150 | expected = { |
268 | 2036 | 'bootargs': 'console=tty0 console=ttyAMA0,38400n8 ' | 2151 | 'bootargs': 'console=tty0 console=ttyAMA0,38400n8 ' |
269 | @@ -2250,6 +2365,36 @@ | |||
270 | 2250 | boards.OrigenConfig.samsung_bl2_start)] | 2365 | boards.OrigenConfig.samsung_bl2_start)] |
271 | 2251 | self.assertEqual(expected, fixture.mock.commands_executed) | 2366 | self.assertEqual(expected, fixture.mock.commands_executed) |
272 | 2252 | 2367 | ||
273 | 2368 | def test_install_origen_quad_u_boot(self): | ||
274 | 2369 | fixture = self._mock_Popen() | ||
275 | 2370 | bootloader_flavor = boards.OrigenQuadConfig.bootloader_flavor | ||
276 | 2371 | self.useFixture(MockSomethingFixture( | ||
277 | 2372 | boards.OrigenQuadConfig, '_get_samsung_spl', | ||
278 | 2373 | classmethod(lambda cls, chroot_dir: "%s/%s/SPL" % ( | ||
279 | 2374 | chroot_dir, bootloader_flavor)))) | ||
280 | 2375 | self.useFixture(MockSomethingFixture( | ||
281 | 2376 | boards.OrigenQuadConfig, '_get_samsung_bootloader', | ||
282 | 2377 | classmethod(lambda cls, chroot_dir: "%s/%s/uboot" % ( | ||
283 | 2378 | chroot_dir, bootloader_flavor)))) | ||
284 | 2379 | boards.OrigenQuadConfig.hardwarepack_handler = ( | ||
285 | 2380 | TestSetMetadata.MockHardwarepackHandler('ahwpack.tar.gz')) | ||
286 | 2381 | boards.OrigenQuadConfig.hardwarepack_handler.get_format = ( | ||
287 | 2382 | lambda: '1.0') | ||
288 | 2383 | self.useFixture(MockSomethingFixture(os.path, 'getsize', | ||
289 | 2384 | lambda file: 1)) | ||
290 | 2385 | boards.OrigenQuadConfig.install_samsung_boot_loader( | ||
291 | 2386 | boards.OrigenQuadConfig._get_samsung_spl("chroot_dir"), | ||
292 | 2387 | boards.OrigenQuadConfig._get_samsung_bootloader("chroot_dir"), | ||
293 | 2388 | "boot_disk") | ||
294 | 2389 | expected = [ | ||
295 | 2390 | '%s dd if=chroot_dir/%s/SPL of=boot_disk bs=512 conv=notrunc ' | ||
296 | 2391 | 'seek=%d' % (sudo_args, bootloader_flavor, | ||
297 | 2392 | boards.OrigenQuadConfig.samsung_bl1_start), | ||
298 | 2393 | '%s dd if=chroot_dir/%s/uboot of=boot_disk bs=512 conv=notrunc ' | ||
299 | 2394 | 'seek=%d' % (sudo_args, bootloader_flavor, | ||
300 | 2395 | boards.OrigenQuadConfig.samsung_bl2_start)] | ||
301 | 2396 | self.assertEqual(expected, fixture.mock.commands_executed) | ||
302 | 2397 | |||
303 | 2253 | def test_get_plain_boot_script_contents(self): | 2398 | def test_get_plain_boot_script_contents(self): |
304 | 2254 | boot_env = {'bootargs': 'mybootargs', 'bootcmd': 'mybootcmd', | 2399 | boot_env = {'bootargs': 'mybootargs', 'bootcmd': 'mybootcmd', |
305 | 2255 | 'initrd_high': '0xffffffff', 'fdt_high': '0xffffffff'} | 2400 | 'initrd_high': '0xffffffff', 'fdt_high': '0xffffffff'} |
306 | @@ -2477,6 +2622,27 @@ | |||
307 | 2477 | [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', HEADS, | 2622 | [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', HEADS, |
308 | 2478 | SECTORS, '', self.media.path)], sfdisk_fixture.mock.calls) | 2623 | SECTORS, '', self.media.path)], sfdisk_fixture.mock.calls) |
309 | 2479 | 2624 | ||
310 | 2625 | def test_create_partitions_for_origen_quad(self): | ||
311 | 2626 | # For this board we create a one cylinder partition at the beginning. | ||
312 | 2627 | popen_fixture = self.useFixture(MockCmdRunnerPopenFixture()) | ||
313 | 2628 | sfdisk_fixture = self.useFixture(MockRunSfdiskCommandsFixture()) | ||
314 | 2629 | |||
315 | 2630 | create_partitions( | ||
316 | 2631 | board_configs['origen_quad'], self.media, HEADS, SECTORS, '') | ||
317 | 2632 | |||
318 | 2633 | self.assertEqual( | ||
319 | 2634 | ['%s parted -s %s mklabel msdos' % (sudo_args, self.media.path), | ||
320 | 2635 | '%s sfdisk -l %s' % (sudo_args, self.media.path), | ||
321 | 2636 | 'sync', | ||
322 | 2637 | '%s sfdisk -l %s' % (sudo_args, self.media.path)], | ||
323 | 2638 | popen_fixture.mock.commands_executed) | ||
324 | 2639 | # Notice that we create all partitions in a single sfdisk run because | ||
325 | 2640 | # every time we run sfdisk it actually repartitions the device, | ||
326 | 2641 | # erasing any partitions created previously. | ||
327 | 2642 | self.assertEqual( | ||
328 | 2643 | [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', HEADS, | ||
329 | 2644 | SECTORS, '', self.media.path)], sfdisk_fixture.mock.calls) | ||
330 | 2645 | |||
331 | 2480 | def test_create_partitions_for_beagle(self): | 2646 | def test_create_partitions_for_beagle(self): |
332 | 2481 | popen_fixture = self.useFixture(MockCmdRunnerPopenFixture()) | 2647 | popen_fixture = self.useFixture(MockCmdRunnerPopenFixture()) |
333 | 2482 | sfdisk_fixture = self.useFixture(MockRunSfdiskCommandsFixture()) | 2648 | sfdisk_fixture = self.useFixture(MockRunSfdiskCommandsFixture()) |
This looks good. Thanks for writing up all the tests. I'll be landing this after I do a few more local tests.