[coreboot-gerrit] New patch to review for coreboot: google/chromeos: guard cbmem_find() in verstage and bootblock

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Wed Feb 3 16:37:30 CET 2016


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13580

-gerrit

commit 9d92adf8486e8986f6c62858e09ac7aa3e2e7164
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Mon Jan 25 16:39:56 2016 -0600

    google/chromeos: guard cbmem_find() in verstage and bootblock
    
    When vboot_handoff_flag() is called in the bootblock or a separate
    verstage there's no memory nor the possibility of dram coming online.
    Therefore, don't bother to attempt call cbmem_find().
    
    BUG=chrome-os-partner:44827
    BRANCH=glados
    TEST=Built chell with separate verstage which pulls in vboot_common.c
         dependency. No more linking errors w/ cbmem_find() not being
         around.
    
    Change-Id: I494c93adc1c00459fdfaa8ce535c6b4c884ed0fb
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 414ce6aeaff657dc90289b25e5c883562189b154
    Original-Change-Id: I8a5f2d154026ce794a70e7ec38883fa3c28fb6e7
    Original-Signed-off-by: Aaron Durbin <adurbin at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/324070
    Original-Reviewed-by: Duncan Laurie <dlaurie at chromium.org>
---
 src/vendorcode/google/chromeos/vboot_common.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/vendorcode/google/chromeos/vboot_common.c b/src/vendorcode/google/chromeos/vboot_common.c
index eef5417..28135a0 100644
--- a/src/vendorcode/google/chromeos/vboot_common.c
+++ b/src/vendorcode/google/chromeos/vboot_common.c
@@ -20,6 +20,7 @@
 #include <console/console.h>
 #include <fmap.h>
 #include <reset.h>
+#include <rules.h>
 #include <stddef.h>
 #include <string.h>
 
@@ -41,6 +42,12 @@ int vboot_get_handoff_info(void **addr, uint32_t *size)
 {
 	struct vboot_handoff *vboot_handoff;
 
+	/* No flags are available in a separate verstage or bootblock because
+	 * cbmem only comes online when dram does. */
+	if ((ENV_VERSTAGE && IS_ENABLED(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK)) ||
+		ENV_BOOTBLOCK)
+		return -1;
+
 	vboot_handoff = cbmem_find(CBMEM_ID_VBOOT_HANDOFF);
 
 	if (vboot_handoff == NULL)



More information about the coreboot-gerrit mailing list