summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Green <evgreen@chromium.org>2019-06-03 14:52:53 -0700
committerCommit Bot <commit-bot@chromium.org>2019-06-06 00:32:59 +0000
commit58e306fba992825dd2270d63be4628f9b8b22d91 (patch)
tree84583f853b5968262eae93aeab487d550b3d941c
parent79ecc414b64e1d2b0ebc1be255f497ed1886a0ef (diff)
downloadvboot-58e306fba992825dd2270d63be4628f9b8b22d91.tar.gz
futility: Round up kernel blob to 4k
When booting off of a 4kb device, depthcharge gets upset when reading the main kernel blob (after reading a 64k chunk initially) because the total size is not an even number of 4k sectors. Most of the parts of the kernel blob are rounded up to 4kb, except for one. Align the whole image up to 4kb so that it's an even number of sectors on a 4kb device. BUG=b:134061077 BRANCH=none TEST=Boot off a UFS card Change-Id: Iffa93cccd2b5902161fb373efb37f7414e816455 Signed-off-by: Evan Green <evgreen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1641958 Reviewed-by: Julius Werner <jwerner@chromium.org>
-rw-r--r--futility/vb1_helper.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/futility/vb1_helper.c b/futility/vb1_helper.c
index 92cdda16..ab72f05a 100644
--- a/futility/vb1_helper.c
+++ b/futility/vb1_helper.c
@@ -668,6 +668,12 @@ uint8_t *CreateKernelBlob(uint8_t *vmlinuz_buf, uint32_t vmlinuz_size,
g_param_size +
g_bootloader_size +
g_vmlinuz_header_size;
+
+ /*
+ * Round the whole blob up so it's a multiple of sectors, even on 4k
+ * devices.
+ */
+ g_kernel_blob_size = roundup(g_kernel_blob_size, CROS_ALIGN);
VB2_DEBUG("g_kernel_blob_size 0x%" PRIx64 "\n", g_kernel_blob_size);
/* Allocate space for the blob. */