From 5aecacca053c3ce8bdb7b8ce94473703b3240e37 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Mon, 26 Jan 2015 13:11:31 -0800 Subject: vboot2 workbuf alignment is now 16 bytes, not 8 BUG=chromium:452179 BRANCH=ToT CQ-DEPEND=CL:243362 TEST=manual emerge-veyron_pinky coreboot Original-Change-Id: Ibcbaea2990e5e06ea7cfaaa5412ef7c1477f5fcc Original-Signed-off-by: Bill Richardson Original-Reviewed-on: https://chromium-review.googlesource.com/243380 Original-Reviewed-by: Randall Spangler (cherry picked from commit 8e5c18eeb21944bdcb064b4491c6781d16ef5608) Signed-off-by: Aaron Durbin Change-Id: I26f6fb67655cb1dfbdcdc48530ef6bfeb1aa692a Reviewed-on: http://review.coreboot.org/9705 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- src/vendorcode/google/chromeos/memlayout.h | 2 +- src/vendorcode/google/chromeos/vboot2/verstub.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/vendorcode') diff --git a/src/vendorcode/google/chromeos/memlayout.h b/src/vendorcode/google/chromeos/memlayout.h index a7ea32e00e..9a1009324a 100644 --- a/src/vendorcode/google/chromeos/memlayout.h +++ b/src/vendorcode/google/chromeos/memlayout.h @@ -26,7 +26,7 @@ * and algorithm -- what works for you might stop working after an update. Do * NOT lower the asserted minimum without consulting vboot devs (rspangler)! */ #define VBOOT2_WORK(addr, size) \ - REGION(vboot2_work, addr, size, 8) \ + REGION(vboot2_work, addr, size, 16) \ _ = ASSERT(size >= 12K, "vboot2 work buffer must be at least 12K!"); #ifdef __VERSTAGE__ diff --git a/src/vendorcode/google/chromeos/vboot2/verstub.c b/src/vendorcode/google/chromeos/vboot2/verstub.c index 86c6e1ce2a..c4319ba256 100644 --- a/src/vendorcode/google/chromeos/vboot2/verstub.c +++ b/src/vendorcode/google/chromeos/vboot2/verstub.c @@ -32,8 +32,11 @@ static struct vb2_working_data *init_vb2_working_data(void) wd = vboot_get_working_data(); memset(wd, 0, _vboot2_work_size); - /* 8-byte alignment for ARMv7 */ - wd->buffer_offset = ALIGN_UP(sizeof(*wd), 8); + /* + * vboot prefers 16-byte alignment. This takes away 16 bytes + * from the VBOOT2_WORK region, but the vboot devs said that's okay. + */ + wd->buffer_offset = ALIGN_UP(sizeof(*wd), 16); wd->buffer_size = _vboot2_work_size - wd->buffer_offset; return wd; -- cgit v1.2.3