[coreboot-gerrit] New patch to review for coreboot: d9d6751 vboot: add vb2_working_data_size()

Aaron Durbin (adurbin@chromium.org) gerrit at coreboot.org
Sat May 9 00:16:51 CEST 2015


Aaron Durbin (adurbin at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10156

-gerrit

commit d9d6751f2b738c2b5362bb5f02b1ab2f5eeba571
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Fri May 8 17:07:04 2015 -0500

    vboot: add vb2_working_data_size()
    
    Instead of using the symbols directly provide a size
    function to provide symmetry between getting the work
    data and size. It also allows for an abstraction where
    the linker symbols may not be the only source of this
    information.
    
    Change-Id: I4568064a0050d118c3544ab1ea59a08eb0bad8e4
    Signed-off-by: Aaron Durbi <adurbin at chromium.org>
---
 src/vendorcode/google/chromeos/vboot2/common.c       | 5 +++++
 src/vendorcode/google/chromeos/vboot2/misc.h         | 1 +
 src/vendorcode/google/chromeos/vboot2/vboot_loader.c | 6 ++++--
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/vendorcode/google/chromeos/vboot2/common.c b/src/vendorcode/google/chromeos/vboot2/common.c
index beffebe..289005c 100644
--- a/src/vendorcode/google/chromeos/vboot2/common.c
+++ b/src/vendorcode/google/chromeos/vboot2/common.c
@@ -30,6 +30,11 @@ struct vb2_working_data * const vboot_get_working_data(void)
 	return (struct vb2_working_data *)_vboot2_work;
 }
 
+size_t vb2_working_data_size(void)
+{
+	return _vboot2_work_size;
+}
+
 void *vboot_get_work_buffer(struct vb2_working_data *wd)
 {
 	return (void *)((uintptr_t)wd + wd->buffer_offset);
diff --git a/src/vendorcode/google/chromeos/vboot2/misc.h b/src/vendorcode/google/chromeos/vboot2/misc.h
index d942d56..175e2c2 100644
--- a/src/vendorcode/google/chromeos/vboot2/misc.h
+++ b/src/vendorcode/google/chromeos/vboot2/misc.h
@@ -43,6 +43,7 @@ struct vb2_working_data {
 };
 
 struct vb2_working_data * const vboot_get_working_data(void);
+size_t vb2_working_data_size(void);
 void *vboot_get_work_buffer(struct vb2_working_data *wd);
 
 static inline void vb2_get_selected_region(struct vb2_working_data *wd,
diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_loader.c b/src/vendorcode/google/chromeos/vboot2/vboot_loader.c
index c731abb..b9ae263 100644
--- a/src/vendorcode/google/chromeos/vboot2/vboot_loader.c
+++ b/src/vendorcode/google/chromeos/vboot2/vboot_loader.c
@@ -63,15 +63,17 @@ static int verstage_should_load(void)
 static void init_vb2_working_data(void)
 {
 	struct vb2_working_data *wd;
+	size_t work_size;
 
+	work_size = vb2_working_data_size();
 	wd = vboot_get_working_data();
-	memset(wd, 0, _vboot2_work_size);
+	memset(wd, 0, work_size);
 	/*
 	 * 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;
+	wd->buffer_size = work_size - wd->buffer_offset;
 }
 
 static int vboot_loader_active(struct prog *prog)



More information about the coreboot-gerrit mailing list