Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: flashrom_handler.py

Issue 6649008: Fix SAFT operation on Alex. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/saft.git@master
Patch Set: Fix SAFT operation. Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chromeos_interface.py ('k') | saft_flashrom_util.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 '''A module to support automated testing of ChromeOS firmware. 6 '''A module to support automated testing of ChromeOS firmware.
7 7
8 Utilizes services provided by saft_flashrom_util.py read/write the 8 Utilizes services provided by saft_flashrom_util.py read/write the
9 flashrom chip and to parse the flash rom image. 9 flashrom chip and to parse the flash rom image.
10 10
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 220
221 subsection_name = self.corrupt_section(section) 221 subsection_name = self.corrupt_section(section)
222 self.fum.write_partial(self.image, (subsection_name, )) 222 self.fum.write_partial(self.image, (subsection_name, ))
223 223
224 def restore_firmware(self, section): 224 def restore_firmware(self, section):
225 '''Restore the previously corrupted section in the FLASHROM!!!''' 225 '''Restore the previously corrupted section in the FLASHROM!!!'''
226 226
227 subsection_name = self.restore_section(section) 227 subsection_name = self.restore_section(section)
228 self.fum.write_partial(self.image, (subsection_name, )) 228 self.fum.write_partial(self.image, (subsection_name, ))
229 229
230 def firmware_sections_equal(self):
231 '''Check if firmware sections A and B are equal.
232
233 This function presumes that the entire BIOS image integrity has been
234 verified, so different signature sections mean different images and
235 vice versa.
236 '''
237 sig_a = self.fum.get_section(self.image,
238 self.fv_sections['a'].get_sig_name())
239 sig_b = self.fum.get_section(self.image,
240 self.fv_sections['b'].get_sig_name())
241 return sig_a == sig_b
242
243 def copy_from_to(self, src, dst):
244 '''Copy one firmware image section to another.
245
246 This function copies both signature and body of one firmware section
247 into another. After this function runs both sections are identical.
248 '''
249 src_sect = self.fv_sections[src]
250 dst_sect = self.fv_sections[dst]
251 self.image = self.fum.put_section(
252 self.image,
253 dst_sect.get_body_name(),
254 self.fum.get_section(self.image, src_sect.get_body_name()))
255 self.image = self.fum.put_section(
256 self.image,
257 dst_sect.get_sig_name(),
258 self.fum.get_section(self.image, src_sect.get_sig_name()))
259
230 def write_whole(self): 260 def write_whole(self):
231 '''Write the whole image into the flashrom.''' 261 '''Write the whole image into the flashrom.'''
232 262
233 if not self.image: 263 if not self.image:
234 raise FlashromHandlerError( 264 raise FlashromHandlerError(
235 'Attempt at using an uninitialized object') 265 'Attempt at using an uninitialized object')
236 self.fum.write_whole(self.image) 266 self.fum.write_whole(self.image)
237 267
238 def dump_whole(self, filename): 268 def dump_whole(self, filename):
239 '''Write the whole image into a file.''' 269 '''Write the whole image into a file.'''
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 pad = ('%c' % 0xff) * (sig_size - os.path.getsize(sig_name)) 307 pad = ('%c' % 0xff) * (sig_size - os.path.getsize(sig_name))
278 new_sig.write(pad) 308 new_sig.write(pad)
279 new_sig.close() 309 new_sig.close()
280 310
281 # Inject the new signature block into the image 311 # Inject the new signature block into the image
282 new_sig = open(sig_name, 'r').read() 312 new_sig = open(sig_name, 'r').read()
283 self.image = self.fum.put_section( 313 self.image = self.fum.put_section(
284 self.image, fv_section.get_sig_name(), new_sig) 314 self.image, fv_section.get_sig_name(), new_sig)
285 if write_through: 315 if write_through:
286 self.fum.write_partial(self.image, (fv_section.get_sig_name(), )) 316 self.fum.write_partial(self.image, (fv_section.get_sig_name(), ))
OLDNEW
« no previous file with comments | « chromeos_interface.py ('k') | saft_flashrom_util.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698