diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2015-10-26 09:51:41 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2015-11-03 11:01:25 -0800 |
commit | d599c6602bd3cc4c4bf2e3fb7aebb214ee8ea775 (patch) | |
tree | da530a5a8ca21cd4f01e8e866be419a96ff0912b | |
parent | 2e13994f1d7cffefd15f5caa5b8c6f3b9c1af4d9 (diff) | |
download | chromite-d599c6602bd3cc4c4bf2e3fb7aebb214ee8ea775.tar.gz |
pushimage: add support for signing accessories images
'accessory_usbpd' and 'accessory_rwsig' are used to sign standalone
accesory MCU firmwares (right now, the former are all the USB type-C
accessories: e.g. Zinger power supply, DingDong and HoHo display
dongles, the latter is the Smaug wireless keyboard).
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:46635
TEST=bin/pushimage --debug --test-sign premp --sign-types accessory_rwsig --board smaug gs://chromeos-image-archive/smaug-firmware/R45-7132.239.0
TEST=./scripts/pushimage_unittest
Change-Id: I6481c68061f50b9acc3656a1167d64ced79ec011
Reviewed-on: https://chromium-review.googlesource.com/308725
Commit-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | cbuildbot/constants.py | 5 | ||||
-rw-r--r-- | scripts/pushimage.py | 10 | ||||
-rw-r--r-- | scripts/pushimage_unittest.py | 6 |
3 files changed, 18 insertions, 3 deletions
diff --git a/cbuildbot/constants.py b/cbuildbot/constants.py index 13b5e5d00..0a64af3a5 100644 --- a/cbuildbot/constants.py +++ b/cbuildbot/constants.py @@ -760,7 +760,12 @@ IMAGE_TYPE_TEST = 'test' IMAGE_TYPE_RECOVERY = 'recovery' IMAGE_TYPE_FACTORY = 'factory' IMAGE_TYPE_FIRMWARE = 'firmware' +# NVidia Tegra SoC resume firmware blob. IMAGE_TYPE_NV_LP0_FIRMWARE = 'nv_lp0_firmware' +# USB PD accessory microcontroller firmware (e.g. power brick, display dongle). +IMAGE_TYPE_ACCESSORY_USBPD = 'accessory_usbpd' +# Standalone accessory microcontroller firmware (e.g. wireless keyboard). +IMAGE_TYPE_ACCESSORY_RWSIG = 'accessory_rwsig' IMAGE_TYPE_TO_NAME = { IMAGE_TYPE_BASE: BASE_IMAGE_BIN, diff --git a/scripts/pushimage.py b/scripts/pushimage.py index 58c0ca23c..7c56e3459 100644 --- a/scripts/pushimage.py +++ b/scripts/pushimage.py @@ -49,6 +49,8 @@ _SUPPORTED_IMAGE_TYPES = ( constants.IMAGE_TYPE_FACTORY, constants.IMAGE_TYPE_FIRMWARE, constants.IMAGE_TYPE_NV_LP0_FIRMWARE, + constants.IMAGE_TYPE_ACCESSORY_USBPD, + constants.IMAGE_TYPE_ACCESSORY_RWSIG, constants.IMAGE_TYPE_BASE, ) @@ -303,6 +305,8 @@ def PushImage(src_path, board, versionrev=None, profile=None, priority=50, firmware_basename = _ImageNameBase(constants.IMAGE_TYPE_FIRMWARE) nv_lp0_firmware_basename = _ImageNameBase( constants.IMAGE_TYPE_NV_LP0_FIRMWARE) + acc_usbpd_basename = _ImageNameBase(constants.IMAGE_TYPE_ACCESSORY_USBPD) + acc_rwsig_basename = _ImageNameBase(constants.IMAGE_TYPE_ACCESSORY_RWSIG) test_basename = _ImageNameBase(constants.IMAGE_TYPE_TEST) base_basename = _ImageNameBase(constants.IMAGE_TYPE_BASE) hwqual_tarball = 'chromeos-hwqual-%s-%s.tar.bz2' % (board, versionrev) @@ -335,6 +339,12 @@ def PushImage(src_path, board, versionrev=None, profile=None, priority=50, ('firmware_from_source.tar.bz2', nv_lp0_firmware_basename, 'tar.bz2', constants.IMAGE_TYPE_NV_LP0_FIRMWARE), + + ('firmware_from_source.tar.bz2', acc_usbpd_basename, 'tar.bz2', + constants.IMAGE_TYPE_ACCESSORY_USBPD), + + ('firmware_from_source.tar.bz2', acc_rwsig_basename, 'tar.bz2', + constants.IMAGE_TYPE_ACCESSORY_RWSIG), ) # The following build artifacts are copied and marked for signing, if diff --git a/scripts/pushimage_unittest.py b/scripts/pushimage_unittest.py index ae6f6c861..9f5dcf1fa 100644 --- a/scripts/pushimage_unittest.py +++ b/scripts/pushimage_unittest.py @@ -233,7 +233,7 @@ class PushImageTests(gs_unittest.AbstractGSContextTest): with mock.patch.object(gs.GSContext, 'Exists', return_value=True): urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0', sign_types=['recovery']) - self.assertEqual(self.gs_mock.call_count, 22) + self.assertEqual(self.gs_mock.call_count, 26) self.assertTrue(self.mark_mock.called) self.assertEqual(urls, EXPECTED) @@ -251,7 +251,7 @@ class PushImageTests(gs_unittest.AbstractGSContextTest): with mock.patch.object(gs.GSContext, 'Exists', return_value=True): urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0', sign_types=['base']) - self.assertEqual(self.gs_mock.call_count, 24) + self.assertEqual(self.gs_mock.call_count, 28) self.assertTrue(self.mark_mock.called) self.assertEqual(urls, EXPECTED) @@ -259,7 +259,7 @@ class PushImageTests(gs_unittest.AbstractGSContextTest): """Verify nothing is signed when we request an unavailable type""" urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0', sign_types=['nononononono']) - self.assertEqual(self.gs_mock.call_count, 20) + self.assertEqual(self.gs_mock.call_count, 24) self.assertFalse(self.mark_mock.called) self.assertEqual(urls, {}) |