 Chromium Code Reviews
 Chromium Code Reviews Issue 3350021:
  Generate GBB during factory instead of writing a prebuilt GBB.  (Closed) 
  Base URL: http://git.chromium.org/git/autotest.git
    
  
    Issue 3350021:
  Generate GBB during factory instead of writing a prebuilt GBB.  (Closed) 
  Base URL: http://git.chromium.org/git/autotest.git| Index: client/site_tests/factory_WriteGBB/factory_WriteGBB.py | 
| diff --git a/client/site_tests/factory_WriteGBB/factory_WriteGBB.py b/client/site_tests/factory_WriteGBB/factory_WriteGBB.py | 
| index 36e6dc3da2659f39b94a2e61ef4be9558a23a40c..73542536674039df2d60d8af18401dd582d31233 100644 | 
| --- a/client/site_tests/factory_WriteGBB/factory_WriteGBB.py | 
| +++ b/client/site_tests/factory_WriteGBB/factory_WriteGBB.py | 
| @@ -4,44 +4,35 @@ | 
| import glob, os | 
| -from autotest_lib.client.bin import factory | 
| from autotest_lib.client.bin import test, utils | 
| from autotest_lib.client.common_lib import error | 
| -from autotest_lib.client.common_lib import flashrom_util | 
| +from autotest_lib.client.common_lib import gbb_util | 
| class factory_WriteGBB(test.test): | 
| - version = 1 | 
| + version = 2 | 
| - def run_once(self, gbb_file='', shared_dict={}): | 
| - os.chdir(self.bindir) | 
| + def run_once(self, shared_dict={}): | 
| + # More convenient to set the CWD to hardware_Components since a lot of | 
| + # values in the component list are based on that directory. | 
| + os.chdir(os.path.join(self.bindir, '../hardware_Components')) | 
| - # If found the HwQual ID in shared_dict, use the GBB with the same ID. | 
| + # If found the HwQual ID in shared_dict, identify the component files. | 
| if 'part_id_hwqual' in shared_dict: | 
| - id = shared_dict['part_id_hwqual'] | 
| - id = id.rpartition(' ')[0].replace(' ', '_') | 
| - gbb_file = 'gbb*%s' % id | 
| - | 
| - gbb_files = glob.glob(gbb_file) | 
| - if len(gbb_files) > 1: | 
| - raise error.TestError('More than one GBB file found') | 
| - elif len(gbb_files) == 1: | 
| - gbb_file = gbb_files[0] | 
| - else: | 
| - raise error.TestError('Unable to find GBB file: %s' % gbb_file) | 
| - gbb_data = utils.read_file(gbb_file) | 
| - | 
| - flashrom = flashrom_util.FlashromUtility() | 
| - flashrom.initialize(flashrom.TARGET_BIOS) | 
| - | 
| - gbb_section = 'FV_GBB' | 
| - original_data = flashrom.read_section(gbb_section) | 
| - # If no difference, no need to update. | 
| - if gbb_data == original_data: | 
| - return | 
| - | 
| - original_file = os.path.join(self.resultsdir, 'original_gbb.bin') | 
| - utils.open_write_close(original_file, original_data) | 
| - | 
| - flashrom.write_section(gbb_section, gbb_data) | 
| - flashrom.commit() | 
| + id = shared_dict['part_id_hwqual'].replace(' ', '_') | 
| + component_file = 'data_*/components_%s' % id | 
| + | 
| + component_files = glob.glob(component_file) | 
| + if len(component_files) != 1: | 
| + raise error.TestError( | 
| + 'Unable to find the component file: %s' % component_file) | 
| + component_file = component_files[0] | 
| + components = eval(utils.read_file(component_file)) | 
| + | 
| + gbb = gbb_util.GBBUtility(temp_dir=self.resultsdir, | 
| + keep_temp_files=True) | 
| 
Hung-Te
2010/09/13 08:09:05
any reason to force keeping temp files here?
 
Tom Wai-Hong Tam
2010/09/13 18:47:43
Since updating GBB is risky. So want to keep the t
 | 
| + gbb.set_bmpfv(utils.read_file(components['data_bitmap_fv'][0])) | 
| + gbb.set_hwid(components['part_id_hwqual'][0]) | 
| + gbb.set_recoverykey(utils.read_file(components['key_recovery'][0])) | 
| + gbb.set_rootkey(utils.read_file(components['key_root'][0])) | 
| + gbb.commit() |