chromeos: vboot-related functions move to common vboot code

This moves a few vboot-prefixed functions that were defined in chromeos.c to
vboot_common.c, since those are only relevant to vboot and depend on the vboot
handoff data. This allows more separation between CONFIG_CHROMEOS and what
CONFIG_CHROMEOS selects, so that each separate option (such as
CONFIG_VBOOT_VERIFY_FIRMWARE) can be enabled separately.

Thus, the actual definitions of these functions will only be declared when
CONFIG_VBOOT_VERIFY_FIRMWARE is set, so the check before calling
vboot_skip_display_init in bootmode was also adapted.

Change-Id: I52f8a408645566dac0a2100e819c8ed5d3d88ea5
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-on: http://review.coreboot.org/11497
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
diff --git a/src/vendorcode/google/chromeos/chromeos.c b/src/vendorcode/google/chromeos/chromeos.c
index c2190b7..4864b8c 100644
--- a/src/vendorcode/google/chromeos/chromeos.c
+++ b/src/vendorcode/google/chromeos/chromeos.c
@@ -20,38 +20,6 @@
 #include <stddef.h>
 #include <string.h>
 #include "chromeos.h"
-#include <boot/coreboot_tables.h>
-#include <cbfs.h>
-#include <cbmem.h>
-#include <console/console.h>
-#include "vboot_handoff.h"
-
-static int vboot_handoff_flag(uint32_t flag)
-{
-	struct vboot_handoff *vbho;
-
-	vbho = cbmem_find(CBMEM_ID_VBOOT_HANDOFF);
-
-	if (vbho == NULL)
-		return 0;
-
-	return !!(vbho->init_params.out_flags & flag);
-}
-
-int vboot_skip_display_init(void)
-{
-	return !vboot_handoff_flag(VB_INIT_OUT_ENABLE_DISPLAY);
-}
-
-int vboot_enable_developer(void)
-{
-	return vboot_handoff_flag(VB_INIT_OUT_ENABLE_DEVELOPER);
-}
-
-int vboot_enable_recovery(void)
-{
-	return vboot_handoff_flag(VB_INIT_OUT_ENABLE_RECOVERY);
-}
 
 int __attribute__((weak)) clear_recovery_mode_switch(void)
 {
diff --git a/src/vendorcode/google/chromeos/chromeos.h b/src/vendorcode/google/chromeos/chromeos.h
index 798ab3e..bdc9435 100644
--- a/src/vendorcode/google/chromeos/chromeos.h
+++ b/src/vendorcode/google/chromeos/chromeos.h
@@ -45,29 +45,14 @@
 /* functions implemented in watchdog.c */
 void elog_add_watchdog_reset(void);
 void reboot_from_watchdog(void);
-
-int vboot_enable_developer(void);
-int vboot_enable_recovery(void);
-int vboot_skip_display_init(void);
 #else
 static inline void elog_add_boot_reason(void) { return; }
 static inline void elog_add_watchdog_reset(void) { return; }
 static inline void reboot_from_watchdog(void) { return; }
-static inline int vboot_skip_display_init(void) { return 0; }
 #endif /* CONFIG_CHROMEOS */
 
 struct romstage_handoff;
 
-#if CONFIG_VBOOT_VERIFY_FIRMWARE
-/* Returns 0 on success < 0 on error. */
-int vboot_get_handoff_info(void **addr, uint32_t *size);
-#else /* CONFIG_VBOOT_VERIFY_FIRMWARE */
-static inline int vboot_get_handoff_info(void **addr, uint32_t *size)
-{
-	return -1;
-}
-#endif /* CONFIG_VBOOT_VERIFY_FIRMWARE */
-
 #include "gnvs.h"
 struct device;
 
@@ -84,6 +69,5 @@
 #endif /* CONFIG_CHROMEOS_RAMOOPS */
 
 void cbmem_add_vpd_calibration_data(void);
-void vboot_reboot(void);
 
 #endif /* __CHROMEOS_H__ */
diff --git a/src/vendorcode/google/chromeos/vboot_common.c b/src/vendorcode/google/chromeos/vboot_common.c
index 2fd29b6..1c216d0d 100644
--- a/src/vendorcode/google/chromeos/vboot_common.c
+++ b/src/vendorcode/google/chromeos/vboot_common.c
@@ -55,6 +55,33 @@
 	return 0;
 }
 
+static int vboot_handoff_flag(uint32_t flag)
+{
+	struct vboot_handoff *vbho;
+
+	vbho = cbmem_find(CBMEM_ID_VBOOT_HANDOFF);
+
+	if (vbho == NULL)
+		return 0;
+
+	return !!(vbho->init_params.out_flags & flag);
+}
+
+int vboot_skip_display_init(void)
+{
+	return !vboot_handoff_flag(VB_INIT_OUT_ENABLE_DISPLAY);
+}
+
+int vboot_enable_developer(void)
+{
+	return vboot_handoff_flag(VB_INIT_OUT_ENABLE_DEVELOPER);
+}
+
+int vboot_enable_recovery(void)
+{
+	return vboot_handoff_flag(VB_INIT_OUT_ENABLE_RECOVERY);
+}
+
 void vboot_reboot(void)
 {
 	if (IS_ENABLED(CONFIG_CONSOLE_CBMEM_DUMP_TO_UART))
diff --git a/src/vendorcode/google/chromeos/vboot_common.h b/src/vendorcode/google/chromeos/vboot_common.h
index 088cd1e..f4d5e11 100644
--- a/src/vendorcode/google/chromeos/vboot_common.h
+++ b/src/vendorcode/google/chromeos/vboot_common.h
@@ -39,5 +39,13 @@
 /* The following functions return 0 on success, < 0 on error. */
 int vboot_named_region_device(const char *name, struct region_device *rdev);
 int vboot_region_device(const struct region *reg, struct region_device *rdev);
+int vboot_get_handoff_info(void **addr, uint32_t *size);
+
+/* The following functions return 1 for true and 0 for false. */
+int vboot_skip_display_init(void);
+int vboot_enable_recovery(void);
+int vboot_enable_developer(void);
+
+void vboot_reboot(void);
 
 #endif /* VBOOT_COMMON_H */