cros_bundle_firmware: force enable coreboot handling

We always build with coreboot, and it is required by a bunch of
components, so split it out of the dynamic loop and just run it first.

BUG=chromium:595715
BRANCH=none
TEST=none

Change-Id: Iac7a769a587d1c25b2d2e861bff96074c8ee5e16
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://chromium-review.googlesource.com/393752
Commit-Ready: Patrick Georgi <pgeorgi@chromium.org>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
diff --git a/host/lib/bundle_firmware.py b/host/lib/bundle_firmware.py
index c4f5ca1..b93b26a 100644
--- a/host/lib/bundle_firmware.py
+++ b/host/lib/bundle_firmware.py
@@ -763,7 +763,7 @@
       BlobDeferral if a blob is waiting for a dependency.
     """
     if blob_type == 'coreboot':
-      self._CreateCorebootStub(pack, self.coreboot_fname)
+      pass
     elif blob_type == 'legacy':
       pack.AddProperty('legacy', self.seabios_fname)
     elif blob_type.startswith('cbfs'):
@@ -805,6 +805,11 @@
     complete = False
     deferred_list = []
 
+    # We always have a coreboot blob, and some other components rely on it, so
+    # make sure it's ready when the others come in.
+    blob_list.remove('coreboot')
+    self._CreateCorebootStub(pack, self.coreboot_fname)
+
     # Build blobs allowing for dependencies between blobs. While this is
     # an potential O(n^2) operation, in practice most blobs aren't dependent
     # and should resolve in a few passes.