cros_bundle_firmware: Save the compressed size to SPL when u-boot is compressed
SPL u-boot may load a compressed u-boot. We should save the compressed
size to SPL when u-boot is compressed. A new parameter of compress is
added in the method ConcatPropContents().
BUG=chromium-os:37724
TEST=manual
Use a FDT in which RO u-boot flashmap has the property: compress = "lzo".
Run cros_bundle_firmware -v3 and check the compressed size is used:
U-Boot size: 0x48000 (rounded up from 0x47085)
Change-Id: Ibab098b556668d759d8767b5ec8a8f8291338e24
Reviewed-on: https://gerrit.chromium.org/gerrit/42694
Commit-Queue: Tom Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Tom Wai-Hong Tam <waihong@chromium.org>
diff --git a/host/lib/bundle_firmware.py b/host/lib/bundle_firmware.py
index 42720f9..fd0a73a 100644
--- a/host/lib/bundle_firmware.py
+++ b/host/lib/bundle_firmware.py
@@ -955,7 +955,11 @@
# blob_type)
else:
prop_list = spl_payload[0].split(',')
- spl_load_size = len(pack.ConcatPropContents(prop_list, False)[0])
+ compress = fdt.GetString('/flash/ro-boot', 'compress', 'none')
+ if compress == 'none':
+ compress = None
+ spl_load_size = len(pack.ConcatPropContents(prop_list, compress,
+ False)[0])
self._out.Info("BL2/SPL contains '%s', size is %d / %#x" %
(', '.join(prop_list), spl_load_size, spl_load_size))
bl2 = self.ConfigureExynosBl2(fdt, spl_load_size, self.exynos_bl2)