diff options
author | Evan Green <evgreen@chromium.org> | 2019-06-03 14:52:53 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-06-06 00:32:59 +0000 |
commit | 58e306fba992825dd2270d63be4628f9b8b22d91 (patch) | |
tree | 84583f853b5968262eae93aeab487d550b3d941c /futility | |
parent | 79ecc414b64e1d2b0ebc1be255f497ed1886a0ef (diff) | |
download | vboot-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>
Diffstat (limited to 'futility')
-rw-r--r-- | futility/vb1_helper.c | 6 |
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. */ |