cros_bundle_firmware: Add option to specify EC binary
The EC (Embedded Controller) is a separate microprocessor in the system which
also has firmware. Allow this as a new file which can be placed in a blob in
the flash map.
BUG=chromium-os:32034
TEST=manual
$ FEATURES=test emerge-daisy cros-devutils
Run cros_bundle_firmware with -e option and see that it completes
successfully.
Change-Id: I44abd16d8a3154f91a20e332f53eb5d0c4ee2c12
Reviewed-on: https://gerrit.chromium.org/gerrit/25861
Commit-Ready: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
diff --git a/host/lib/bundle_firmware.py b/host/lib/bundle_firmware.py
index 8b7b5f6..fa3a8be 100644
--- a/host/lib/bundle_firmware.py
+++ b/host/lib/bundle_firmware.py
@@ -104,6 +104,7 @@
self.exynos_bl2 = None # Filename of Exynos BL2 (SPL)
self.spl_source = 'straps' # SPL boot according to board settings
self.skeleton_fname = None # Filename of Coreboot skeleton file
+ self.ecbin_fname = None # Filename of EC file
def SetDirs(self, keydir):
"""Set up directories required for Bundle.
@@ -115,7 +116,7 @@
def SetFiles(self, board, bct, uboot=None, bmpblk=None, coreboot=None,
postload=None, seabios=None, exynos_bl1=None, exynos_bl2=None,
- skeleton=None):
+ skeleton=None, ecbin=None):
"""Set up files required for Bundle.
Args:
@@ -129,6 +130,7 @@
exynos_bl1: The filename of the exynos BL1 file
exynos_bl2: The filename of the exynos BL2 file (U-Boot spl)
skeleton: The filename of the coreboot skeleton file.
+ ecbin: The filename of the EC (Embedded Controller) file.
"""
self._board = board
self.uboot_fname = uboot
@@ -140,6 +142,7 @@
self.exynos_bl1 = exynos_bl1
self.exynos_bl2 = exynos_bl2
self.skeleton_fname = skeleton
+ self.ecbin_fname = ecbin
def SetOptions(self, small):
"""Set up options supported by Bundle.
@@ -189,6 +192,8 @@
self.coreboot_fname = os.path.join(build_root, 'coreboot.rom')
if not self.skeleton_fname:
self.skeleton_fname = os.path.join(build_root, 'skeleton.bin')
+ if not self.ecbin_fname:
+ self.ecbin_fname = os.path.join(build_root, 'ec.RW.bin')
def GetFiles(self):
"""Get a list of files that we know about.
@@ -719,6 +724,8 @@
pack.AddProperty('image', signed)
elif blob_type == 'exynos-bl1':
pack.AddProperty(blob_type, self.exynos_bl1)
+ elif blob_type == 'ecbin':
+ pack.AddProperty(blob_type, self.ecbin_fname)
elif blob_type == 'exynos-bl2':
spl_load_size = os.stat(pack.GetProperty('boot+dtb')).st_size
bl2 = self.ConfigureExynosBl2(fdt, spl_load_size, self.exynos_bl2)