[coreboot-gerrit] New patch to review for coreboot: chromeos/vboot: allow platform to hook into vboot_reboot()

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Wed Feb 3 16:37:24 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/13575

-gerrit

commit 68fa20b4782988754f51005695a24c8ce2636e3b
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Fri Jan 22 16:33:57 2016 -0600

    chromeos/vboot: allow platform to hook into vboot_reboot()
    
    Sometimes it's necessary for the platform to perform clean up
    tasks prior to reboot when employing vboot. For example, x86 systems
    that resume and do vboot verification may need to clear their
    sleep control register prior to doing a cold reset so that the
    next boot doesn't appear to be a resume. Allow that hook by
    introducing vboot_platform_prepare_reboot().
    
    BUG=chrome-os-partner:46049
    BRANCH=glados
    TEST=Ensure vboot_platform_prepare_reboot() called from vboot_reboot().
    
    Change-Id: I622c9181d9fa3048204e3df3223d5dd4b458abca
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: f31ffc40bde002dec398fd4dd9d2ee9d65df0d7b
    Original-Change-Id: I97318cec34494a7fc4b1ecf2cb22715d20e730ff
    Original-Signed-off-by: Aaron Durbin <adurbin at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/323501
    Original-Reviewed-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Reviewed-by: Duncan Laurie <dlaurie at chromium.org>
---
 src/vendorcode/google/chromeos/vboot_common.c | 5 +++++
 src/vendorcode/google/chromeos/vboot_common.h | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/vendorcode/google/chromeos/vboot_common.c b/src/vendorcode/google/chromeos/vboot_common.c
index 448aad6..eef5417 100644
--- a/src/vendorcode/google/chromeos/vboot_common.c
+++ b/src/vendorcode/google/chromeos/vboot_common.c
@@ -92,10 +92,15 @@ int vboot_recovery_reason(void)
 	return sd->recovery_reason;
 }
 
+void __attribute__((weak)) vboot_platform_prepare_reboot(void)
+{
+}
+
 void vboot_reboot(void)
 {
 	if (IS_ENABLED(CONFIG_CONSOLE_CBMEM_DUMP_TO_UART))
 		cbmem_dump_console();
+	vboot_platform_prepare_reboot();
 	hard_reset();
 	die("failed to reboot");
 }
diff --git a/src/vendorcode/google/chromeos/vboot_common.h b/src/vendorcode/google/chromeos/vboot_common.h
index a658d62..250b0e5 100644
--- a/src/vendorcode/google/chromeos/vboot_common.h
+++ b/src/vendorcode/google/chromeos/vboot_common.h
@@ -64,6 +64,9 @@ int vboot_retrieve_hash(void *digest, size_t digest_size);
  */
 int vboot_platform_is_resuming(void);
 
+/* Allow the platform to do any clean up work when vboot requests a reboot. */
+void vboot_platform_prepare_reboot(void);
+
 /* Main logic for verified boot. verstage() is the stage entry point
  * while the verstage_main() is just the core logic. */
 void verstage_main(void);



More information about the coreboot-gerrit mailing list