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>
This commit is contained in:
parent
c947fee479
commit
115360fdb3
|
@ -20,38 +20,6 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "chromeos.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)
|
int __attribute__((weak)) clear_recovery_mode_switch(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,29 +45,14 @@ void elog_add_boot_reason(void);
|
||||||
/* functions implemented in watchdog.c */
|
/* functions implemented in watchdog.c */
|
||||||
void elog_add_watchdog_reset(void);
|
void elog_add_watchdog_reset(void);
|
||||||
void reboot_from_watchdog(void);
|
void reboot_from_watchdog(void);
|
||||||
|
|
||||||
int vboot_enable_developer(void);
|
|
||||||
int vboot_enable_recovery(void);
|
|
||||||
int vboot_skip_display_init(void);
|
|
||||||
#else
|
#else
|
||||||
static inline void elog_add_boot_reason(void) { return; }
|
static inline void elog_add_boot_reason(void) { return; }
|
||||||
static inline void elog_add_watchdog_reset(void) { return; }
|
static inline void elog_add_watchdog_reset(void) { return; }
|
||||||
static inline void reboot_from_watchdog(void) { return; }
|
static inline void reboot_from_watchdog(void) { return; }
|
||||||
static inline int vboot_skip_display_init(void) { return 0; }
|
|
||||||
#endif /* CONFIG_CHROMEOS */
|
#endif /* CONFIG_CHROMEOS */
|
||||||
|
|
||||||
struct romstage_handoff;
|
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"
|
#include "gnvs.h"
|
||||||
struct device;
|
struct device;
|
||||||
|
|
||||||
|
@ -84,6 +69,5 @@ static inline void chromeos_reserve_ram_oops(struct device *dev, int idx) {}
|
||||||
#endif /* CONFIG_CHROMEOS_RAMOOPS */
|
#endif /* CONFIG_CHROMEOS_RAMOOPS */
|
||||||
|
|
||||||
void cbmem_add_vpd_calibration_data(void);
|
void cbmem_add_vpd_calibration_data(void);
|
||||||
void vboot_reboot(void);
|
|
||||||
|
|
||||||
#endif /* __CHROMEOS_H__ */
|
#endif /* __CHROMEOS_H__ */
|
||||||
|
|
|
@ -55,6 +55,33 @@ int vboot_get_handoff_info(void **addr, uint32_t *size)
|
||||||
return 0;
|
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)
|
void vboot_reboot(void)
|
||||||
{
|
{
|
||||||
if (IS_ENABLED(CONFIG_CONSOLE_CBMEM_DUMP_TO_UART))
|
if (IS_ENABLED(CONFIG_CONSOLE_CBMEM_DUMP_TO_UART))
|
||||||
|
|
|
@ -39,5 +39,13 @@ struct vboot_components {
|
||||||
/* The following functions return 0 on success, < 0 on error. */
|
/* The following functions return 0 on success, < 0 on error. */
|
||||||
int vboot_named_region_device(const char *name, struct region_device *rdev);
|
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_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 */
|
#endif /* VBOOT_COMMON_H */
|
||||||
|
|
Loading…
Reference in New Issue