summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2015-10-26 09:51:41 -0700
committerchrome-bot <chrome-bot@chromium.org>2015-11-03 11:01:25 -0800
commitd599c6602bd3cc4c4bf2e3fb7aebb214ee8ea775 (patch)
treeda530a5a8ca21cd4f01e8e866be419a96ff0912b
parent2e13994f1d7cffefd15f5caa5b8c6f3b9c1af4d9 (diff)
downloadchromite-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.py5
-rw-r--r--scripts/pushimage.py10
-rw-r--r--scripts/pushimage_unittest.py6
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, {})